Releases: Colossus-Services/bones_ui
v3.0.7
-
UIComponent:- Rollback: avoid
WeakReferenceissues with WASM on Chrome/Android.- Replaced
DualWeakMap<UIElement, UIComponent>withExpando<WeakReference<UIComponent>>for_contentsUIComponents. - Updated
_setContentand_recycleto storeWeakReference(this)in_contentsUIComponents. - Updated
getContentUIComponentto retrieve the target from the weak reference. - Removed
_contentsUIComponents.purge()call frompurgeGlobals.
- Replaced
- Rollback: avoid
-
Dependencies:
- Updated
dom_builderfrom ^3.0.4 to ^3.0.5. - Updated
swiss_knifefrom ^3.3.7 to ^3.3.9.
- Updated
v3.0.6
-
UIComponent:getContentUIComponent: replaced direct map access withDualWeakMap.getNoPurgefor_contentsUIComponents.
-
UIDOMGenerator:- Added override for
isMappablemethod to excludeTextNodeand certainDOMElementtags (br,p) from being mappable.
- Added override for
-
Dependencies:
- Updated
dom_builderfrom ^3.0.2 to ^3.0.4. - Updated
swiss_knifefrom ^3.3.5 to ^3.3.7.
- Updated
v3.0.5
-
UIComponent:toRenderableList:- Changed return type from
List<dynamic>?toList<Object>?. - Simplified list conversion logic; now accepts
List<Object>,Iterable<Object?>, andMapwith renderable keys/values.
- Changed return type from
_toContentElementsImpl:- Replaced
_normalizeRenderListValueusage for HTML string rendering with direct$htmlcall and DOM node building.
- Replaced
_normalizeRenderListValue:- Added null check returning null immediately.
- Reordered and refined type checks for better clarity and correctness.
- Removed redundant
UIComponentcheck duplication.
_buildRenderList:- Added null check after normalization to skip null values.
-
Dependency updates:
dom_builder: ^3.0.2
v3.0.4
UIComponent:_notifyFinishRendered: updated to prevent concurrent executions by caching a future and resetting it on completion._notifyFinishRenderedImpl: refactored to async method called by_notifyFinishRendered._onPurge: added early return if_subComponentistrueto skip purging for subcomponents.
v3.0.3
v3.0.2
-
UIComponent:- Added private
_subComponentflag to distinguish subcomponents. - Refactored constructors:
- Added private named constructor
UIComponent._to centralize initialization. - Added public mirror constructor
UIComponentwith detailed documentation on parameters controlling rendering, styling, and structure. - Added new constructor
UIComponent.subComponentfor creating components attached to an existingparentComponent, sharing its DOM mapping context.
- Added private named constructor
- Updated
disposemethod to avoid disposing shareddomTreeMapwhen the component is a subcomponent.
- Added private
-
UIButton(button.dart):- Extended
$uiButtonLoaderfunction to support additional attributes for loaded text styling and content:- Added parameters:
loadedTextClass,loadedTextStyle,loadedTextErrorClass,loadedTextErrorStyle,loadedTextOK,loadedTextError. - Added corresponding attributes to the returned DOM element for these new parameters.
- Added parameters:
- Extended
v3.0.1
-
UIComponent:- Updated
renderto notify UI roots finish render before purging UI components and roots asynchronously after a 300ms delay. - Added private async method
_purgeUIto purge components and roots with yielding. - Replaced synchronous
_onFinishRenderwith async_onPurgethat purges DOM tree map and yields. - Made
purgeGlobalsasync and added yields between purge calls.
- Updated
-
UIRootComponent:- Modified
notifyFinishRenderto only emit event without purging. - Made
purgeRootasync, purging UI components tree and DOM tree map with yields, and awaitingUIComponent.purgeGlobals.
- Modified
-
bones_ui_utils.dart:- Added
yeldutility function to yield to event loop for at least 1 millisecond.
- Added
-
UICapture:- Replaced all internal
_yeldcalls withyeldfrombones_ui_utils.dartfor consistent async yielding.
- Replaced all internal
v3.0.0
3.0.0
-
Release v3.0.0
-
Dependencies:
- Updated
dom_toolsfrom^3.0.0-beta.19to^3.0.0. - Updated
dom_builderfrom^3.0.0-beta.11to^3.0.0. - intl_messages: ^3.0.0
- Updated
3.0.0-beta.20
-
UIEventHandler:- Added
unregisterEventListenerandclearEventListenersmethods.
- Added
-
EventHandlerPrivate:- Changed
_eventListenersto nullable and lazily initialized. - Added
_unregisterEventListenerand_clearEventListenersimplementations.
- Changed
-
ElementProviderandCSSProvider:- Updated calls to
buildDOMto includetreeMapandsetTreeMapRootparameters.
- Updated calls to
-
UIComponent:- Replaced
ExpandowithDualWeakMapfor static field_asyncRenderingZoneComponent. - Added
_domTreeMapfield anddomTreeMapgetter for lazy DOM tree mapping. - Added
domTreeMapIfInitializedgetter and staticdomTreeMapDummy. - Replaced
ExpandowithDualWeakMapfor_contentsUIComponents. - Updated parent setting methods to use named parameter
addToParent. - Added
_resolveParentFromParentUIComponentto better resolve_parent. - Updated many list conversions from
.toList()to.asListViewFixedfor performance. - Added
_onRenderand_onChangelazy event streams. - Added
_renderedUIRootsand_renderedUIComponentssets to track rendering. - Improved
_markRenderTimeand rendering finish notification logic. - Added
disposeand_recyclemethods for lifecycle management. - Added static
purgeGlobalsto clear global UI state. - Updated rendering and async content handling to use nullable collections.
- Updated event listener attachment to use
addEventListenerTyped.
- Replaced
-
bones_ui_extension.dart:- Added
ElementStreamExtensionandStreamSubscriptionExtensionto track subscriptions inDOMTreeMap.
- Added
-
UIDOMGenerator:- Updated
addExternalElementToElementandtoElementsto accepttreeMapandcontextparameters. - Updated calls to
buildDOMto passtreeMapandsetTreeMapRoot.
- Updated
-
UIRootComponent:- Changed
_uiComponentsTreeto nullable and lazily initialized. - Added
_onPurgedUIComponentscallback to dispose purged components. - Updated methods to safely handle nullable
_uiComponentsTree. - Added
purgeRootmethod to purge tree and global UI state.
- Changed
-
Added
_UIDOMTreeReferenceMapsubclass to prevent premature purging of components not fully initialized or disposed. -
UIButtonBaseandUIButtonLoader:- Updated event listener attachment to use
addEventListenerTyped. - Fixed null safety and type checks for button elements.
- Updated event listener attachment to use
-
UICapture:- Added new
CaptureDataFormat.urlOrBlobUrlformat. - Added
selectedFileDataAsURLOrDataURLBase64getter. - Updated
_readFileand_filterCapturedDatato support new format and improved async flow with_yeldhelper. - Updated
_CapturedDataclass to store optional MIME type and support new format. - Improved data format conversions to preserve MIME type.
- Added helper
_yeldfunction for async yielding.
- Added new
-
UIDialogBase:- Fixed background color style to use
rgbwhen alpha is 1.0.
- Fixed background color style to use
-
_CanvasEditImage:- Added delayed
_configurecall after construction. - Updated
_updateCanvasDimensionto return bool indicating if dimension changed. - Improved zoom and translate setters to avoid unnecessary renders.
- Added delayed
-
InputConfig:- Added optional
parentparameter to rendering methods. - Updated DOM building calls to pass
treeMapandsetTreeMapRoot. - Updated
_resolveValueTextto useparentfor intl message resolution.
- Added optional
-
UIInputTable:- Updated rendering of inputs and labels to pass
domTreeMapandsetTreeMapRoot.
- Updated rendering of inputs and labels to pass
-
UILoading:- Updated
asDIVElementbuildDOM calls to passtreeMapandsetTreeMapRoot.
- Updated
-
MasonryItemand_MasonryRenderItem:- Updated DOM generation calls to pass
treeMapandsetTreeMapRoot.
- Updated DOM generation calls to pass
-
UITemplateElementGenerator:- Updated DOM generation calls to pass
treeMap,context, andsetTreeMapRoot. - Updated template building to use
dsxResolutionenum instead of boolean flags.
- Updated DOM generation calls to pass
-
pubspec.yaml:- Updated dependencies:
web_utils: ^1.0.21dom_tools: ^3.0.0-beta.19dom_builder: ^3.0.0-beta.11swiss_knife: ^3.3.5statistics: ^1.2.1test: ^1.29.0test_api: ^0.7.9test_core: ^0.6.15build_web_compilers: ^4.4.11build_runner: ^2.11.1dependency_validator: ^5.0.4
- Updated dependencies:
3.0.0-beta.19
- dom_tools: ^3.0.0-beta.13
- dom_builder: ^3.0.0-beta.7
- web_utils: ^1.0.19
3.0.0-beta.18
-
UIDOMGenerator:toElements:- Fix resolution of
UIComponent, callingUIComponent.ensureRenderedbefore returnUIComponent.content.
- Fix resolution of
-
dom_builder: ^3.0.0-beta.6
3.0.0-beta.17
-
UIComponent:getFieldElementTyped: useasElementOfNullable.
-
web_utils: ^1.0.18
3.0.0-beta.16
-
UIDOMGenerator:addExternalElementToElement: improve external element resolution.attachFutureElement: improve element resolution.
-
js_interop_utils: ^1.0.9
-
web_utils: ^1.0.17
-
dom_tools: ^3.0.0-beta.12
-
dom_builder: ^3.0.0-beta.5
-
expressions: ^0.2.5+3
-
collection: ^1.19.1
-
test: ^1.28.0
-
test_api: ^0.7.8
-
test_core: ^0.6.14
-
build_web_compilers: ^4.4.3
-
build_runner: ^2.10.4
-
dependency_validator: ^5.0.3
3.0.0-beta.15
- Merge 2.5.21
InputConfig:- Added field
precision. - Added support for type
decimal.
- Added field
3.0.0-beta.14
- Merge 2.5.20:
UIComponent:- Optimize
findChildDeepwith a BFS queue.
- Optimize
3.0.0-beta.13
-
Merge 2.5.19:
UIComponent:_getContentChildrenImpl,_findInContentChildDeepImpl,_findChildrenDeepImpl,_listFieldsEntriesInContentDeepImpl: Switched to iterative breadth-first search for up to 10× faster element lookup in deep UI trees.getFields,getFieldElementByValue,getElementFieldName,getFieldsElementsMap,parseChildElementValue:- added parameter
resolveUIComponents = true.
- added parameter
-
test: ^1.26.3
-
test_api: ^0.7.7
-
test_core: ^0.6.12
3.0.0-beta.12
-
Merge 2.5.17:
UIDialog:- Added properties
autoScrollYandautoScrollX.
- Added properties
-
dom_tools: ^3.0.0-beta.11
-
swiss_knife: ^3.3.1
-
build_web_compilers: ^4.2.0
-
build_runner: ^2.5.4
3.0.0-beta.11
- Merge 2.5.16:
UIComponent:-
Optimized
subUIComponentsDeeplyandgetRenderedUIComponents- Both now return
Iterable<UIComponent>. subUIComponentsDeeplyis optimized as a lazysync*generator and recursively callssubElem.subUIComponentsDeeply.
- Both now return
-
Improve
_resolveUIRootComponent. -
_callRenderImpl: fix issue whenparentis passed on constructor but it's already appended in a sub-element. -
test: ^1.26.2
-
test_api: ^0.7.6
-
test_core: ^0.6.11
-
dependency_validator: ^5.0.2
-
3.0.0-beta.10
-
UISVG:- replace
createHTMLwithcreateElementfor SVG element creation.
- replace
-
UIComponent:- replace
appendwithappendChildfor DOM consistency.
- replace
-
js_interop_utils: ^1.0.8
-
web_utils: ^1.0.15
-
dom_tools: ^3.0.0-beta.10
-
archive: ^4.0.7
-
test: ^1.26.2
-
test_api: ^0.7.6
-
test_core: ^0.6.11
-
build_web_compilers: ^4.1.5
3.0.0-beta.9
-
Merge v2.5.15
UIComponent:- Added
renderedElementsAsync.
- Added
UIDialogBase:- Added
configureButtonsto configure the buttonsonClick. posRenderandposAsyncRendercallsconfigureButtons.
- Added
-
js_interop_utils: ^1.0.7
-
web_utils: ^1.0.14
-
dom_tools: ^3.0.0-beta.9
-
dom_builder: ^3.0.0-beta.4
-
archive: ^4.0.5
3.0.0-beta.8
-
web_utils: ^1.0.12
-
dom_tools: ^3.0.0-beta.8
-
project_template: ^1.1.1
-
archive: ^4.0.4
-
dependency_validator: ^5.0.2
3.0.0-beta.7
✨♻️ refactor(bones_ui_test_tools):
-
Standardize
selectNonTypedand rename it toselect. -
Standardize
selectNonTypedAll/selectAllNonTypedand rename it toselectAll. -
Ensure that
selectTypedexists wherequerySelectorTypedexists. -
web_utils: ^1.0.11
3.0.0-beta.6
-
Avoids using
identicalwithElement(JSObject) to avoid inconsistencies in Wasm. -
dom_tools: ^3.0.0-beta.7
-
dom_builder: ^3.0.0-beta.3
-
web: ^1.1.1
-
mercury_client: ^2.3.0
3.0.0-beta.5
- web_utils: ^1.0.9
- intl_messages: ^3.0.0-beta.1
- dom_tools: ^3.0.0-beta.5
- swiss_knife: ^3.3.0
- statistics: ^1.2.0
- resource_portable: ^3.1.2
- intl: ^0.20.2
3.0.0-beta.4
- js_interop_utils: ^1.0.6
3.0.0-beta.3
- web_utils: ^1.0.7
- mercury_client: ^2.2.5
3.0.0-beta.2
- web_utils: ^1.0.6
- dom_tools: ^3.0.0-beta.4
- dom_builder: ^3.0.0-beta.2
3.0.0-beta.1
-
CI: test with
dart2jsanddart2wasm(on Chrome). -
sdk: '>=3.6.0 <4.0.0'
-
js_interop_utils: ^1.0.5
-
web_utils: ^1.0.5
-
dom_tools: ^3.0.0-beta.3
-
dom_builder: ^3.0.0-beta.1
-
web: ^1.1.0
-
collection: ^1.19.0
-
test: ^1.25.15
-
stream_channel: ^2.1.4
-
lints: ^5.1.1
-
build_web_compilers: ^4.1.1
-
build_runner: ^2.4.15
v3.0.0-beta.20
-
UIEventHandler:- Added
unregisterEventListenerandclearEventListenersmethods.
- Added
-
EventHandlerPrivate:- Changed
_eventListenersto nullable and lazily initialized. - Added
_unregisterEventListenerand_clearEventListenersimplementations.
- Changed
-
ElementProviderandCSSProvider:- Updated calls to
buildDOMto includetreeMapandsetTreeMapRootparameters.
- Updated calls to
-
UIComponent:- Replaced
ExpandowithDualWeakMapfor static field_asyncRenderingZoneComponent. - Added
_domTreeMapfield anddomTreeMapgetter for lazy DOM tree mapping. - Added
domTreeMapIfInitializedgetter and staticdomTreeMapDummy. - Replaced
ExpandowithDualWeakMapfor_contentsUIComponents. - Updated parent setting methods to use named parameter
addToParent. - Added
_resolveParentFromParentUIComponentto better resolve_parent. - Updated many list conversions from
.toList()to.asListViewFixedfor performance. - Added
_onRenderand_onChangelazy event streams. - Added
_renderedUIRootsand_renderedUIComponentssets to track rendering. - Improved
_markRenderTimeand rendering finish notification logic. - Added
disposeand_recyclemethods for lifecycle management. - Added static
purgeGlobalsto clear global UI state. - Updated rendering and async content handling to use nullable collections.
- Updated event listener attachment to use
addEventListenerTyped.
- Replaced
-
bones_ui_extension.dart:- Added
ElementStreamExtensionandStreamSubscriptionExtensionto track subscriptions inDOMTreeMap.
- Added
-
UIDOMGenerator:- Updated
addExternalElementToElementandtoElementsto accepttreeMapandcontextparameters. - Updated calls to
buildDOMto passtreeMapandsetTreeMapRoot.
- Updated
-
UIRootComponent:- Changed
_uiComponentsTreeto nullable and lazily initialized. - Added
_onPurgedUIComponentscallback to dispose purged components. - Updated methods to safely handle nullable
_uiComponentsTree. - Added
purgeRootmethod to purge tree and global UI state.
- Changed
-
Added
_UIDOMTreeReferenceMapsubclass to prevent premature purging of components not fully initialized or disposed. -
UIButtonBaseandUIButtonLoader:- Updated event listener attachment to use
addEventListenerTyped. - Fixed null safety and type checks for button elements.
- Updated event listener attachment to use
-
UICapture:- Added new
CaptureDataFormat.urlOrBlobUrlformat. - Added
selectedFileDataAsURLOrDataURLBase64getter. - Updated
_readFileand_filterCapturedDatato support new format and improved async flow with_yeldhelper. - Updated
_CapturedDataclass to store optional MIME type and support new format. - Improved data format conversions to preserve MIME type.
- Added helper
_yeldfunction for async yielding.
- Added new
-
UIDialogBase:- Fixed background color style to use
rgbwhen alpha is 1.0.
- Fixed background color style to use
-
_CanvasEditImage:- Added delayed
_configurecall after construction. - Updated
_updateCanvasDimensionto return bool indicating if dimension changed. - Improved zoom and translate setters to avoid unnecessary renders.
- Added delayed
-
InputConfig:- Added optional
parentparameter to rendering methods. - Updated DOM building calls to pass
treeMapandsetTreeMapRoot. - Updated
_resolveValueTextto useparentfor intl message resolution.
- Added optional
-
UIInputTable:- Updated rendering of inputs and labels to pass
domTreeMapandsetTreeMapRoot.
- Updated rendering of inputs and labels to pass
-
UILoading:- Updated
asDIVElementbuildDOM calls to passtreeMapandsetTreeMapRoot.
- Updated
-
MasonryItemand_MasonryRenderItem:- Updated DOM generation calls to pass
treeMapandsetTreeMapRoot.
- Updated DOM generation calls to pass
-
UITemplateElementGenerator:- Updated DOM generation calls to pass
treeMap,context, andsetTreeMapRoot. - Updated template building to use
dsxResolutionenum instead of boolean flags.
- Updated DOM generation calls to pass
-
pubspec.yaml:- Updated dependencies:
web_utils: ^1.0.21dom_tools: ^3.0.0-beta.19dom_builder: ^3.0.0-beta.11swiss_knife: ^3.3.5statistics: ^1.2.1test: ^1.29.0test_api: ^0.7.9test_core: ^0.6.15build_web_compilers: ^4.4.11build_runner: ^2.11.1dependency_validator: ^5.0.4
- Updated dependencies:
v3.0.0-beta.19
- dom_tools: ^3.0.0-beta.13
- dom_builder: ^3.0.0-beta.7
- web_utils: ^1.0.19