BF: Composite: Added recursion detection for include of composite markup
If a recursion is detected when the module is included, an error is output.
BF: Composite: Correction of validation with message and notification without model
BF: Composite: Correction of mounting of child elements in a condition
BF: Composite: Correction of the queue during rendering when a lock exists
BF: Expression: Unification of the suppressed output
Only the value undefined but not the string "undefined" suppresses the output.
False and comparable non-true values are now output.
BF: Reactive: Correction for the use of arrays
The data type incorrectly changed from array to object.
BF: Reactive: Correction/optimization for elements with iterate
The renderer always updates the top element with iterate in the DOM so that
temporary variables are available in the expressions.
BF: Reactive: Correction of recursive triggered updates
BF: Review: Optimization and corrections
Added detection of future incompatibilities.
Reduce the size of the releases.
BF: Test: Correction of wrong output of Element.prototype.toPlainString()
CR: Reactive: Optimization of object-model-view decoupling
CR: Reactive: Refactoring to distinguish from frameworks with similar name
CR: SiteMap: Inactive by default
Attribute static is then not required for composites.
Simplifies micro frontends without face-flow.
SiteMap becomes active with the call of the method SiteMap.customize(...).
CR: Expression: Extension of the syntax for elements and variables
- support of the underscore at the beginning
- support of complex element syntax #[...]
CR: Expression: Optimization (consequent new implementation)
- complete new approach for parser and interpreter
CR: Expression: Omission of automatic use of get and is methods for fields
- since getters and setters are available in JavaScript
CR: Expression: omission of tolerance for undefined parts in object chains (like JSP EL)
- is too extensive in JavaScript with ReferenceError/TypeError/undefined/false/null/...
- is replaced by (?...), in case of error this syntax in the brackets will return false
CR: Composite: Errors during rendering are output in the view
- Rendering does not abort
- Errors are also logged as errors on the console
- Errors can also be subscribed as a composite event
CR: Composite: Renamed method Object.using(...) in Object.use(...)
CR: Composite: Optimization when loading module resources
- change of sequence to: JS, CSS, HTML (markup)
- JavaScript for modules is only loaded if no JavaScript model exists
- CSS for modules is only loaded if HTML is also loaded
- omission of the HEAD request
Minimizes HTTP requests in the background and when loading the page.
CR: Composite: Extension of the element ID with a unique identifier
format: name:qualifier...#identifier@namespace...:model
The unique identifier is for the view and business logic, but has no effect on composite.
CR: Composite: Added @-attributes as attribute templates for elements
Creates corresponding attributes, which is convenient if they use expressions as value.
CR: Composite: Changing the behavior of the validation
Synchronization and function execution are no longer blocked by violations.
For the previous strict behavior, the attributes validate and strict must be combined.
CR: Scripting: Outsourcing and isolating the execution of Composite JavaScript
CR: Scripting: Optimization macros for Composite JavaScript
- can now be used anywhere in the code, also in combination with conditions
- can now also be separated from the next command with a semicolon
CR: Scripting: Added macro #export for Composite JavaScript
Makes local variables and constants from modules usable in the global namespace.
CR: Scripting: Added macro #use for Composite JavaScript
Creates namespaces if they do not already exist.
CR: Scripting: Added macro (?...) for Composite JavaScript
In case of an error the value of the enclosed logic is equivalent to false
without throwing an error, except for syntax errors.
except for syntax errors.
CR: Datasource: Optimization when loading module resources
- omission of the HEAD request
- omission of XML error when the request receives an error page
Minimizes HTTP requests in the background and when loading the page.
CR: Messages: Added messages as alternative object tree for associative array Messages
CR: Messages: Added Messages.customize(label, ...values) to fill placeholders with values
CR: Namespace: Renamed method Namespace.using(...) in Namespace.use(...)
CR: Extension: Math.unique(...) replaces Math.uniqueId(...)
CR: Extension: Math.serial() replaces Math.uniqueSerialId(...)
The method is now completely time-based and independent of Math.unique().
The serial is still unique and as text chronologically sortable.
CR: Release: Added the manual (de/en) to the release package (zip)
CR: Release: Channels with major number are omitted
CR: Release: Revision of the release channels
- standard: contains all minimized
for test and deployment
- standard-max: contains all
not minimized and with comments
for development and testing
- core: contains all minimized, except the Test API
for deployment
- core-max: contains all minimized, except the Test API
not minimized and with comments
for development and testing
- micro: contains all minimized, except SiteMap, minimized
for development and testing and deployment of micro frontends without face-flow
- micro-max: contains all minimized, except SiteMap
not minimized and with comments
for development and testing of micro frontends without face-flow
- micro-core: contains all minimized, except the Test API and SiteMap
for deployment of micro frontends without face-flow
- micro-core-max: contains all minimized, except the test API and SiteMap
not minimized and with comments
for development and testing of micro frontends without face-flow