xwidget 0.0.35
xwidget: ^0.0.35 copied to clipboard
A package for building dynamic UIs in Flutter using an expressive, XML based markup language.
0.0.35 (Feb 2, 2024) #
- Fixed readability issues with README.md file.
- Added documentation builder tool (internal).
0.0.34 (Feb 2, 2024) #
BREAKING CHANGES: Please up all usages of Data to Model.
- Renamed
DatatoModelto more accurately represent its purpose. - Fixed a bug where
Modeloperators[]and[]=were incorrectly callinggetValueandsetValuerespectively. They now directly access the underlying collection. - Added static instance management methods to
Modelto help with state management:singleInstance,keyedInstance,clearInstances,hasInstance - Reorganized documentation.
0.0.33 (Jan 28, 2024) #
- Fixed dot/bracket notation parsing of
Listpaths. - Fixed relative
importstatements. - Export
MediaQueryWidget.
0.0.32 (Jan 23, 2024) #
Please run dart run xwidget:generate after upgrading.
- Fixed issues with code generator not recognizing some
Listtypes. - Improved EL dot notation path resolution error messages.
- Changed
<builder/>'sforattribute from required to optional. This is needed for creating lists of builders as required byBottomNavLayout.pages. - Added
innerListsattribute to<List/>for configuration of how inner lists are handled. The options areaddandspread.add(default) will add the inner list object.spreadwill add the inner list's items to the containing list. - Added
visibleattribute to<fragment/>. - Added new EL functions:
randomDouble,randomInt,replaceAll,replaceFirst - Improved code generator's handling of private constant defaults.
- Added
<Media/>component. Writes MediaQuery values toDependencies. - Added
createMaterialColor,parseMaterialColorutility functions.
0.0.31 (Jan 1, 2024) #
BREAKING CHANGES: Please run dart run xwidget:generate after upgrading.
- Renamed
ListOfelement toListfor consistency - Added
Mapelement. Example usage:<Map for="attribute"> <Entry key="name" value="name"/> <Entry value="description">description</Entry> </Map> - Allow
param,forEach, andifelements as optional children offragmentelement. Example usage:<fragment name="header"> <param name="bottom" value="tab_bar"/> </fragment> - Auto scope dependencies for elements that support the
dependenciesScopeattribute. - Updated minimum
petitparserversion to6.0.0. - Removed deprecated imports.
0.0.30 (Dec 12, 2023) #
BREAKING CHANGES: Please run dart run xwidget:generate after upgrading.
- Controller now extends
StatefulWidget. This allows Controllers to use mixins designed for stateful widgets such asTickerProviderStateMixin. - Renamed
Controller.initializetoController.init. - Removed
buildparameter from Controller constructor. - Removed multi-controller support from Controllers.
- Some code cleanup
0.0.29 (Nov 8, 2023) #
BREAKING CHANGES: Please run dart run xwidget:generate after upgrading.
- Renamed
executionparameter tobuildinControllerWidgetconstructor. - Fixed
ControllerWidget's async build. - Enhanced
parseDurationfunction to acceptm,min,mins,h,hr,hrs,d,day,daysduration suffixes i.e.5m,1hr,3days. - Added
isTrue,isFalse, andlogDebugEL functions. - Improved invalid EL function error message.
- Minor XML parsing performance improvements.
0.0.28 (Oct 31, 2023) #
- Fixed reference parser 'null' error.
- Fixed
parseEnummethod signature.
0.0.27 (Oct 2, 2023) #
- Added
varDisposaloption toValueListener. Possible values arenone,byOwner, andbyLastListener. - Added
onChangecallback toValueListener. - Updated
DataValueNotifierto be owner and listener aware. - Added
removeValuemethod toDependenciesandMapBracketsextension. This method is dot/bracket notation aware. - Deleted
removemethod fromDependencies. UseremoveValueinstead.
0.0.26 (Sep 17, 2023) #
- Updated dependencies.
0.0.25 (Sep 17, 2023) #
- Updated documentation.
0.0.24 (Sep 12, 2023) #
- Added EL functions
isTrueOrNullandisFalseOrNull. - Updated documentation.
0.0.23 (Sep 8, 2023) #
- Removed
disposeOfDependenciesparameter fromDynamicBuilderconstructor. Inflater.parseAttributenow returns the unparsed value if the value is not parsed.
0.0.22 (Sep 5, 2023) #
- Updated analyzer and linter rules
- Minor code formatting
- Added publishing tool
0.0.21 (Aug 22, 2023) #
- Improved inflater builder's generation of default values from variables.
- Added new built-in EL function
toBool. - Updated documentation.
0.0.20 (Aug 16, 2023) #
BREAKING CHANGES: Please run dart run xwidget:generate after upgrading.
- Changed
Inflater.inflatesignature to pass a list of unprocessed child strings instead of a single preprocessed string. The inflater's implementation now determines how to process the strings i.e.Textinflater usesXWidgetUtils.joinStrings(text). - Removed
includeAttributesargument fromXWidget.inflateXmlElementChildrensignature. UseexcludeAttributesargument instead. - Removed
XWidget.inflateFromXmlconvenience method. UseXWidget.inflateFromXmlElementinstead. - Added an
excutionoption to theControllerinflater that specifies its inflation method, either asynchronous or synchronous. Valid values areasyncandsync. The default issync. - Minor performance improvements when setting or retrieving
Dependenciesvalues and parsing certain attribute types. - Added
XWidgetUtils.joinStringsutility function. - Added fragment XML caching to improve inflater performance. Use
XWidget.xmlCacheEnabledto enable or disable the cache. Enabled by default.
0.0.19 (Aug 9, 2023) #
- Attribute parsing performance improvements.
- Documentation updates and additions.
- Minor code cleanup.
0.0.18 (Aug 3, 2023) #
- Added support for a simplified inflater and icon specification format. See the 'Inflaters Configuration' and 'Icons Configuration' README sections.
- Updated documentation.
0.0.17 (Jul 7, 2023) #
- Substantially increased attribute value parsing performance.
- Added embedded expression parsing to attribute values i.e.
<Text data="Dear ${name},"/> - Removed
@fragmentattribute directive. Use thefragmenttag accompanied with theforattribute instead. - Replaced
copyDependenciesoption withdependenciesScope. Can benew,copy, orinherit. - Added
dependenciesScopeoption tofrgamenttag. - Updated documentation.
0.0.16 (Jul 4, 2023) #
- Improved fragment XML validation.
- Auto generate inflater attribute restrictions for enum types.
- Removed ability to override built-in functions.
- Controller no longer extends
WidgetsBindingObserver. Subclasses can add it as a mixin, if needed. - Added
callbackschema element. - Updated documentation
0.0.15 (Jul 2, 2023) #
- Overhauled EL functions to simplify implementation.
- Renamed
handlertag tocallback. - Fixed
actionattribute evaluation incallbacktag. - Added
returnVarattribute tocallbacktag. - Deleted deprecated
attributetag. UseListOfinflater instead. - Documentation updates and additions.
0.0.14 (Jun 23, 2023) #
- Inflater parsers now return the unparsed value if there's no attribute name match.
- Inflater builder now skips deprecated elements by default.
- Resources
can now use an alternate AssetBundle,
when passed to
loadResourcesmethod. Otherwise, it uses rootBundle. - Documentation updates.
- Added
fragmenttag unit tests.
0.0.13 (Jun 18, 2023) #
- Removed unnecessary import that was causing a web compatibility issue.
- Updated
vartag to allow dot/bracket notation in name attribute. - Continued work on documentation.
0.0.12 (Jun 15, 2023) #
- Improved CommonLog callback feature. Callback now returns a bool to continue or skip logging.
- Updated xwidget dependency in example 'pubspec.yaml' to point to pub.flutter-io.cn.
- Fixed invalid identifier parsing error.
- Fixed deprecated usages.
0.0.11 (Jun 12, 2023) #
- Improved log messages from code generator.
- Replaced deprecated commands in documentation.
0.0.10 (Jun 12, 2023) #
- Continued work on documentation.
- Added license.
0.0.9 (Jun 10, 2023) #
- ControllerWidget now supports multiple controllers.
- Initialize CommonLog with callback functions instead of class instance.
- EL parser now capable of referencing global dependencies.
- Improved Dependencies toString() format.
- Added more unit tests.
0.0.8 (Jun 5, 2023) #
- Fixed inflater builder getOnlyChild function call.
- Fixed example inflaters.
0.0.7 (Jun 4, 2023) #
- Renamed logging class from Log to CommonLog.
- Created XWidgetUtils to hold XWidget helper functions.
- Created CommonUtils to hold common helper functions.
- Cleaned up messy exports.
- Documentation updates.
0.0.6 (Jun 4, 2023) #
- Added example folder.
- Fixed async resources loading issue.
0.0.5 (Jun 4, 2023) #
- Fixed inflater builder's default imports.
- Fixed default inflater config location.
- Fixed controller builder's type scanner.
- Export EL parser.
- Export custom widgets.
- Export logger.
0.0.4 (Jun 4, 2023) #
- Restructured project files.
- Statically create required inflaters.
- Added InvalidType checks to inflater builder.
- Added inflater test.
0.0.3 (Jun 3, 2023) #
- Fixed library resolution issue.
0.0.2 (Jun 2, 2023) #
- Continued work on documentation.
- Fixed an issue with source analysis.
- Automatically scan 'lib/xwidget/controllers' for controllers.
0.0.1 (May 31, 2023) #
- Initial release.
- Fully functional, but lacking proper documentation and unit tests.