-
Notifications
You must be signed in to change notification settings - Fork 1.3k
YUI 3.11.0 Change History Rollup
- Added
Y.ArraySort.naturalCompare()
, which compares two strings or numbers (or a number and a string) in natural order. This ensures that a value like 'foo2' is sorted before 'foo10', whereas a standard ASCII sort would sort 'foo10' first. [Ryan Grove]
-
Fixed an issue that triggered an extra execution of a callback. [Ticket #2528602] [Ticket #2531758] [Ticket #2531844]
-
Fixed a bug in which the until condition of a callback was evaluated prematurely when the previous callback paused the queue.
-
Fixed a bug in which the 'complete' event would not be fired if stop was called from inside a callback.
-
Fixed regression introduced with the solution for setter opts, added in 3.10.2, for cases where user subscribed to attribute change events, with additional arguments to be passed to the subscriber, for example:
host.after("myattrChange", fn(e, custArg){}, context, custArgValue); ... host.set("myattr", 10, {src:"foo"});
-
For performance reasons, attribute now bypasses the event subsystem, if there are no listeners, and sets the attribute value directly (still going through all the attribute infrastructure - setter, validator etc.).
- Added Hungarian language support
-
BaseObservable now bypasses the event sub-system if there are no listeners for the
init
event, during construction, to optimize performance. -
Base and BaseCore now add all ATTRS definitions, across the hierarchy, in a single shot. Prior to this change, they used to be added a class at a time.
That is, for Foo extends Bar, the order of operations used to be:
- Add Bar ATTRS
- Call Bar initializer
- Add Foo ATTRS
- Call Foo initializer
Now it is:
- Add Foo and Bar's ATTRS together
- Call Bar initializer
- Call Foo initializer
This means there's a subtle order of operation change. There may potentially be setters/getters/valueFns in Foo, which expected Bar's initializer to have been executed already. This is expected to be rare, and the change fixes issues encountered in real-world code where setters/getters/valueFns in superclass ATTRS overidden in a subclass, wouldn't be able to access the subclass' attributes.
See the Base and BaseCore API docs and the base-core unit tests for more details.
-
Cleaned up lang (see PR #878) [Jeroen Versteeg]:
- removed unused lang/calendar (only lang/calendar-base is used)
- removed unused short_weekdays strings from lang/calendar-base
- replaced weekdays strings from lang/calendar-base with datatype/date-format
-
Setting
minimumDate
ormaximumDate
now correctly disables nodes before or after those dates. [Arnaud Didry] -
Added Hungarian language support [Gábor Kovács]
-
toArray()
always returns alpha values [Pull Request #548] [Ticket #2533111]
- Added Hungarian language support [Gábor Kovács]
-
Release Paginator for DataTable. DataTable's Paginator consists of a few files and components each with a single purpose in mind. Model- Mixes in Paginator-Core to provide a model for the DataTable Paginator View- Sets up a view of controls that is associated with a single model Controller- Binds and maintains the state between the model and the view as well as the interaction with DataTables other components. Templates- A collection of templates used by the view and the controller to add mark up to the layout in a unified manner. The template is created using
Y.Template.Micro
but can be updated to use any precompiled templating language. Skins- Night and Sam skins for the default paginator view. -
Release a default footer view that will create an empty
<tfoot>
for row placement in the footer node. This is optionally added by the Paginator when the location is specified for the footer if it is not already in place. -
Update
_afterDataChange()
to only change the row modified. [Pull Request #695] [Ticket #2532962] -
Expand the title change to allow for a columns title, key, abbr and label for more flexibility with column titles. [Pull Request #703] [Ticket #2533220]
-
Added Hungarian language support [Gábor Kovács]
- Added Hungarian language support [Gábor Kovács]
-
Fixed:
Y.Selector
could return an incorrect number of elements in browsers that don't support supportgetElementsByTagName()
orquerySelectorAll()
on document fragments. [Ezequiel Rodriguez] -
Fixed: In Opera,
Y.Selector
failed to include selected<option>
elements when the:checked
pseudo-selector was used. [Jeroen Versteeg]
- Fix exception when sel.anchorNode doesn't exist. [rgrove]
-
Fixed issue with fireOnce subscribers not receiving the facade, if subscription came in after the fire, and the initial fire had no listeners (the bug was introduced in 3.10.0, with the no listener perf. optimizations).
The subscribers in the broken code would have received the raw payload instead (e.g. {opts:foo}).
- Added support for
stopPropagation()
andstopImmediatePropagation()
on thevaluechange
event facade. [Wei Wang]
- Upgraded Handlebars.js to v1.0.12. See Handlebars' release notes.
- Restore form attributes after successful upload in io-upload-iframe. [Ticket #2533186] [ipeychev]
- Upgraded
request
module dependency forio-nodejs
for compatibility with Node.js v0.10. [Pull Request #940]
- Preserve base jsonp _format if {callback} found. Fixes #700 [lsmith]
- Added:
Node#getHTML()
now works when used against document fragments. [Ezequiel Rodriguez]
-
Added an
isNodeOnscreen()
method that returnstrue
if the given node is within the visible bounds of the viewport,false
otherwise. [Ryan Grove] -
Improved the performance of
getOffscreenNodes()
andgetOnscreenNodes()
. [Ryan Grove] -
Fixed a bug that caused
getOffscreenNodes()
andgetOnscreenNodes()
to return incorrect information when used on a scrollable node rather than the body. [Ryan Grove]
- Initial release.
- Added
onceHostEvent
andonceAfterHostEvent
methods.
- Changed the value of
this
inside callbacks toundefined
to match the Promises A+ spec.
- Modified YUITest.hasNoKeys() to bypass Android 2.3.x prototype enumeration bug. (GH #949)
-
Added
Tree.Node#depth()
, which returns the depth of the node, starting at 0 for the root node. [Ryan Grove] -
Added
Tree.Sortable#sort()
, which sorts the children of every node in a sortable tree. [Ryan Grove] -
Tree#emptyNode()
now removes nodes without triggering a node map reindex for each node, which makes it significantly faster when emptying a node with lots of children. [Ryan Grove] -
When inserting a node that already exists in the same parent (which results in that node being removed and then re-inserted),
Tree#insertNode()
now adjusts the insertion index to ensure that the node is re-inserted at the correct position after being removed, even if that position has shifted as a result of the removal. [Ryan Grove] -
The
remove
event is now fired when a node is removed and re-inserted as the result of aTree#appendNode()
,Tree#insertNode()
, orTree#prependNode()
call. Previously, the node was removed silently with no event.The
src
property of theremove
event facade in this case will be set to "add". Filter on this source if you want to ignore these events. [Ryan Grove] -
The
Tree#createNode()
,Tree#insertNode()
, andTree#traverseNode()
methods now throw or log informative error messages when given a destroyed node instead of failing cryptically (or succeeding when they shouldn't). [Ryan Grove] -
The
Tree.Node#isRoot()
method now returnsfalse
on destroyed nodes instead of causing an exception. [Ryan Grove] -
The
Tree.Sortable#sortNode()
andTree.Sortable.Node#sort()
methods now accept adeep
option. If set totrue
, the entire hierarchy will be sorted (children, children's children, etc.). [Ryan Grove] -
Tree.Sortable: Sort comparator functions are now executed in their original context. When the sort comparator lives on the tree, its
this
object will be the tree instance. When it lives on a node, itsthis
object will be the node. When specified as an anonymous function in an options object, itsthis
object will be the global object. [Ryan Grove]
-
The Widget HTML_PARSER implementation has been updated to use the new _preAddAttrs() hook in Base, since Base now adds all attributes across the hierarchy in one shot. Widget HTML_PARSER requires contentBox/srcNode, and related attributes to be set up first.
This is purely an internal implementation change at the base Widget layer, and there is no impact to existing implementations.
-
Moved implementation code from the Constructor to the
initializer
to account for Base order of operation changes in this release.This is one of the older extensions which needed to be upgraded after
initializer
support was added for extensions.This has no end user impact.
-
Moved implementation code from the Constructor to the
initializer
to account for Base order of operation changes in this release.This is one of the older extensions which needed to be upgraded after
initializer
support was added for extensions.This has no end user impact.
-
Moved implementation code from the Constructor to the
initializer
to account for Base order of operation changes in this release.This is one of the older extensions which needed to be upgraded after
initializer
support was added for extensions.This has no end user impact.
-
Moved implementation code from the Constructor to the
initializer
to account for Base order of operation changes in this release.This is one of the older extensions which needed to be upgraded after
initializer
support was added for extensions.This has no end user impact.
-
Moved implementation code from the Constructor to the
initializer
to account for Base order of operation changes in this release.This is one of the older extensions which needed to be upgraded after
initializer
support was added for extensions.This has no end user impact.
-
Fixed:
fillHeight
didn't work correctly when a section's content was set after rendering. [Jeroen Versteeg] -
Moved implementation code from the Constructor to the
initializer
to account for Base order of operation changes in this release.This is one of the older extensions which needed to be upgraded after
initializer
support was added for extensions.This has no end user impact.
-
Y.Array.dedupe()
is now slightly faster in ES5-compliant browsers. [Ezequiel Rodriguez] -
Brought
Y.Lang.trim()
,trimLeft()
, andtrimRight()
into compliance with ES5, and added feature tests to ensure that native implementations are only used if they work properly. [Ezequiel Rodriguez] -
Y.Object.keys()
now falls back to the non-native shim for Android 2.3.x because the native version incorrectly enumerates theprototype
property. -
Y.UA
now correctly identifies IE 11. [Ryan Grove] -
Y.UA
now identifies Opera 15+ as both Opera and WebKit. Previously it was identified as Chrome, since it uses the same Blink rendering engine as Chrome. [Ryan Grove] -
Removed all instances of
path.existsSync()
from YUI core, as part of node.js target environments being brought up to v0.8. [Clarence Leung]
2