Enyo now supports the W3C pointer events recommendation and will use those in preference to mouse events when available. The earlier MSPointer event support is now only enabled when W3C pointer events aren't detected, fixing a touch-recognition problem in Internet Explorer 11.
enyo.Model.set() now supports the force parameter.
Removed unusable feature dirty
from enyo.Binding as implementing it would
cause unnecessary overhead and it ultimately a useless feature since they are
synchronously executed.
Removed the modelChanged() and deprecated controllerChanged() base methods from enyo.UiComponent
thus any developer code currently calling this.inherited(arguments)
from within an overloaded
modelChanged() method will fail and needs to be removed. This is a feature change required by ENYO-3339.
Removed the stop() method from enyo.Binding as required by ENYO-3338. Instead of
calling that method via the binding reference in a transform return undefined
(or nothing since undefined
is the default) to achieve the same behavior.
Instances of enyo.Binding will no longer propagate undefined
; instead use null
.
Deprecated the controllers
array for enyo.Application; instead use components
with the same features. This should modify bindings from .app.controllers.{name}
to
.app.$.{name}
for controllers/components created for an enyo.Application instance.
Deprecated the controller
property for enyo.DataRepeater and all sub-kinds; instead use
collection
. This also means you should update any overloaded controllerChanged
methods
to instead be collectionChanged
and bindings referencing controller
to collection
.
The registered event system previously employed by enyo.Model and enyo.Collection has been reworked and is no longer dependent on enyo.Store. See enyo.RegisteredEventSupport for more information. This change means the API methods previously available via enyo.Store (including the observer support implementation) no longer exist.
enyo.Collection is now a sub-kind of enyo.Component and thus employs the default enyo.ObserverSupport mechanims (as well as enyo.ComputedSupport).
enyo.Model now employs the default enyo.ObserverSupport and enyo.BindingSupport with
the same limitation of only working with attributes
of the record.
As required by ENYO-3339, enyo.Binding now registers for an entire path and will update based on changes anywhere in the path.
enyo.Store now throws an error instead of a warning when a duplicate primaryKey
is
found for unique records in the same enyo.Store.
Removed macro support from bindings
Changed bindingDefaults to only apply to the bindings defined in the description in which it lives
Changed computed and observers to use space delimited string of dependent properties instead of array (array still supported, but deprecated)
Computed properties now send previous and current values to their observers.
enyo.ViewController.resetView removed, replaced with resetView property that controls if the view is automatically recreated when destroyed.
Removed internal "concat" property, replaced by concat static method on kinds. Should have no application impact unless code was extending the framework in very deep ways.
Fixed missing "release" event for end of hold gesture, bug introduced in 2.3.0.pre.8
Fixed regression with this.inherited's handling of replacement argumments.
enyo.trim() updated to use native String.prototype.trim() when available.
Change to enyo.Model parse
method handling, before it was confusing to
developers because it was only executed under specific circumstances (there
were reasons for this) but now it will be executed on all fetched data and all
data passed to the constructor (when call new enyo.Model
and passing
attributes, or when it is created using enyo.store.createRecord
or an
enyo.Collection instantiates it). This does require that the method checks
to see what data is being passed in if it was relying on this method to
reformat fields or meta-properties from remote data but also creates local
records that already have the correct data format.
Change to enyo.Model merge
strategy that now accepts instanced record(s) or
data hash(es), can merge without forcing the record to be instanced, and to
remain inline with the parse
method change will parse any data being merged
if it is a data hash (not if it is an instanced record). This method no longer
accepts the optional second parameter.
Change to enyo.Model add
method that no longer accepts optional third
parameter and will automatically call the model's parse
method if it is a
data-hash (not an instanced record).
Added framework method enyo.getPosition
that returns an immutable object with
the most recent clientX, clientY, pageX, pageY and screenX, screenY values.
As noted in the documentation, IE8 and Opera both report inconsistent values for
screenX, screenY and we facade the pageX, pageY values for IE8 since they are
unsupported.
The enyo.Application controllers
property has been deprecated. While current
code using it should continue to execute properly it is recommended you update your
applications to use the components
array instead and bindings from .app.controller.name
should instead be .app.$.name
. References of the controllers
property on instances
of enyo.Application are actually using the $
property by alias. THIS FUNCTIONALITY
WILL BE REMOVED IN THE NEXT MAJOR RELEASE AFTER 2.3.0.
The defaultKind
of enyo.Application has been set to enyo.Controller.
The enyo.Collection kind is now a subkind of enyo.Component which means it now inherits from the enyo.ObserverSupport mixin as opposed to the special observer support in enyo.Model.
The global
property has now been moved to a property of the enyo.Controller kind
and controllers whose global
flag is set to true
will not be destroyed even if
their owner
is an enyo.Application that is being destroyed.
You can no longer retrieve an index from enyo.Collection use the get
method.