What's New
Version 3.0 - May 25, 2023
Toolchain migrated to Vite
onInit event triggers during the init of jet views
Predefined _hidden view
Views can be overridden at runtime
App can have a custom view loader
Objects can be used as view params
Ability to define app and view params through config() or show() commands
Jetapp view doesn't copy methods of the app on self
Popup subviews leave empty elements in parent collections
Versions 2.1.1 - 2.1.7
The ability to use a map of overrides in the view config
Improved TypeScript support (locate views through generics)
Correct handling of top-level JetView submodules on navigation
Fixes to routers
Version 2.1 - July 8, 2019
Better routing logic (including subviews)
webix.fullscreen support for JetView elements
Typed results for navigation rejections (NavigationBlocked error)
UnloadGuard: optimizations to guard triggers
Various other fixes
Version 2.0 - February 21, 2019
New Features
The ability to show views in new windows
The ability to show windows like other views by including them in the app URL
Several same-level subviews can have their own app URLs and work independently of each other
Menu plugin can change URL parameters
User plugin: the ability to add several pages accessible for non-authorized users
Locale plugin: additional configuration property for setting Webix locales
Locale plugin: the ability to split localization and load parts on demand
Locale plugin: the ability to configure Polyglot
Locale plugin: the ability to disable locale loading from jet-locales
UrlRouter shares the same settings with HashRouter
Webix Jet supports IE11+
HashRouter works more stable during in-browser navigation
New SubRouter that enables navigation in sub-modules
The ability to use Webix Jet without Webpack
The ability to import Webix code as a module
Changes in API and Inner Logic
getUrl() and getUrlString() for app and view
removeView() of Webix widgets triggers destroy() of the Jet views inside them
getSubView() and contains() can be called for JetApp
The refresh() method for app and view returns a promise
view.refresh() works for views with sub-elements
app.refresh() works when an app is inside a Webix Jet view
app.refresh() triggers refresh of the top view instead of using its own custom logic
The order of destroy and init events: first, the old view is destroyed, then the new view is initialized
Version 1.6 - June 26, 2018
new WJET utility for faster prototyping
JetView has the refresh() method
better support for ES6 modules: app.views can return a promise of an ES6 module, which can be used for code-splitting
Version 1.5 - April 24, 2018
the ability to compile a Jet app into a standalone bundle and use it in other apps or as is
the ability to compile a Jet app as a component and use it as a Webix widget
Version 1.4 - April 11, 2018
JetView class instances can be created in config()
Version 1.3 - January 11, 2018
UrlParam plugin
ability to set optional path for the Locale plugin
"app:user:login" and "app:user:logout" events
Version 1.2 - December 12, 2017
show and getSubView APIs updated
this.ui updated
allows to define custom HTML parent
can be used with JetView classes
ability to remove "!" from the hash URL
HashRouter supports config.routes
views can define string-to-string mapping
Webix Jet 1.0 - September 26, 2017
Major update after version 0.5:
views and app modules as ES6 classes
using Webpack as a module bundler
ability to choose among 4 routers
ability to use 6 plugins for common tasks
Last updated