The LaxarJS team is proud to announce its first stable release!
This release introduces the following new features:
- The bundle version of LaxarJS can now be installed directly through the bower registry using
bower install laxar
- Widgets can now be loaded using custom adapters, and no longer have to depend on AngularJS (#170, #174, #171, #154)
- An adapter for plain JavaScript widgets is available out-of-the-box (#124)
- When using
laxar.storage
, multiple applications served from the same origin get individual storage prefixes to avoid collisions - All JSON schemas can leverage JSON schema v4 now (#189, #35)
- Added the
axFlowService
to generate hyperlinks for navigation targets (#117) - Layouts may now be part of the theme in addition to the application (#186)
- Controls have JSON descriptors now, which allows for them to be loaded from any location, especially from
bower_components
(#197) - The path to the default theme is now configurable, meaning that you do not have to use LaxarJS UiKit to style your application (#202)
We removed a lot of boilerplate and legacy code:
- Mixin support was removed in favor of compositions (#92)
- The number and size of the builtin helper libraries was reduced:
laxar.text
was replaced by the smaller and simplerlaxar.string
helpers, whilelaxar.logging
was simplified and several helpers were removed (#70, #128) - The compatibilty support for old-style
didUpdate
events was removed, always use JSON-patch fordidUpdate
(#103) - MSIE8 support was dropped (#158, #161)
- jQuery is no longer a runtime dependency, but still available to widget tests (#147)
- The underscore dependency was removed, in favor of standard ES5 features (#88)
- The
laxar.storage
helper no longer implements shims for older browsers, but uses a transient object (#136) - The
axPageFade
directive is now an optional standalone control (#180) - The somewhat broken live theme switching was removed because YAGNI (#182, #159)
Various other improvements to performance:
- Flow definition is loaded along with the other assets, avoiding an HTTP roundtrip and improving minification (#116)
- All file listings can now be integrated into the application bundle (#183)
We improved the API consistency and simplicity in various places:
- The widget scope was generalized as
axContext
which provides widget services independent of the integration technology (#167) - The
widget.json
is now automatically used for validation in spec tests (#149) - Our AngularJS modules and injections now adopt the AngularJS coding styles (#160, #178)
- Generated topic- and DOM-IDs are more compact now, and always carry an
ax
prefix (#175)
Other Noteworthy Changes
The companion library LaxarJS Patterns was also released as version 1.0.0; here are the most important changes:
- Artifact was renamed from
laxar_patterns
tolaxar-patterns
(#39) - The bundle version of LaxarJS Patterns can now be installed directly through the bower registry using
bower install laxar-patterns
- The
patterns.resources
helper no longer supports old-styledidUpdate
events (#27) - The
patterns.resources
helper now always puts its managed resource under$scope.resources
, oraxContext.resources
for non-angular widgets (#29). - The
patterns.actions
helper seamlessly works with promises now, and accepts an event payload (#34, #33) - The underscore library is no longer a dependency (#25)
The companion library LaxarJS UiKit was also released as version 1.0.0; here are the most important changes:
- The artifact was renamed from
laxar_uikit
tolaxar-uikit
(#121) - The bundle version of LaxarJS UiKit can now be installed directly through the bower registry using
bower install laxar-uikit
- The formatters and parsers are now public LaxarJS UiKit APIs (#115)
- The DOM helpers were removed along with MSIE8 compatibility (#106, #108, #114)
- The only remaining built-in controls are
html-attribute
andi18n
. All other controls and their dependencies may now be installed through Bower. This means that trunk8, jQuery, jQuery UI, bootstrap-affix and bootstrap-tooltip are no longer mandatory parts of any LaxarJS application (#105)