src/cm/media/js/lib/yui/yui_3.10.3/releasenotes/HISTORY.event.md
changeset 525 89ef5ed3c48b
equal deleted inserted replaced
524:322d0feea350 525:89ef5ed3c48b
       
     1 Event Infrastructure Change History
       
     2 ===================================
       
     3 
       
     4 3.10.3
       
     5 ------
       
     6 
       
     7 * No changes.
       
     8 
       
     9 3.10.2
       
    10 ------
       
    11 
       
    12 * Fixed `nodelist.on()` for rare custom module use cases.
       
    13 
       
    14   In certain rare custom module loading circumstances [#2533242,
       
    15   https://github.com/yui/yui3/pull/689] dom-core is attached after
       
    16   event-base, which resulted in the `YDOM = Y.DOM` module level reference
       
    17   being undefined [1].
       
    18 
       
    19   This would break things like `nodelist.on()` which used the reference
       
    20   under the hood.
       
    21 
       
    22   [1] Added in 3.7.3, as part of the Win8 `isWindow()` fix.
       
    23 
       
    24 * Fixed DOM event facade, when Y instance was set to emitFacade:true.
       
    25 
       
    26   With the Y instance's emitFacade set to true, DOM event subscriptions
       
    27   would receive a Y.EventFacade instance instead of a Y.DOMEventFacade
       
    28   instance, and as a result target and currentTarget would be set to
       
    29   the Y instance, instead of a Y.Node instance.
       
    30 
       
    31 3.10.1
       
    32 ------
       
    33 
       
    34 * No changes.
       
    35 
       
    36 3.10.0
       
    37 ------
       
    38 
       
    39 * No changes.
       
    40 
       
    41 3.9.1
       
    42 -----
       
    43 
       
    44 * No changes.
       
    45 
       
    46 3.9.0
       
    47 -----
       
    48 
       
    49 * `delegate()` now silences events originating from disabled form controls in
       
    50   IE, like it does natively in other browsers. [#2532677]
       
    51 
       
    52 3.8.1
       
    53 -----
       
    54 
       
    55 * No changes.
       
    56 
       
    57 3.8.0
       
    58 -----
       
    59 
       
    60 * No changes.
       
    61 
       
    62 3.7.3
       
    63 -----
       
    64 
       
    65 * Changed onbeforeactivate feature test to account for Win 8 packaged Apps, which
       
    66   don't allow inline JS code in innerHTML.
       
    67 
       
    68   http://msdn.microsoft.com/en-us/library/windows/apps/hh465388.aspx
       
    69 
       
    70 3.7.2
       
    71 -----
       
    72 
       
    73 * No changes.
       
    74 
       
    75 3.7.1
       
    76 -----
       
    77 
       
    78 * No changes.
       
    79 
       
    80 3.7.0
       
    81 -----
       
    82 
       
    83 * Changed event-synthetic, to support CustomEvent performance optimizations.
       
    84 
       
    85   Mainly the deprecation of CustomEvent subscribers and afters instance properties,
       
    86   which event-synthetic was referring to directly. The direct reference was replaced
       
    87   by a public API method call.
       
    88 
       
    89   See src/event-custom/HISTORY.md for more details about the deprecated properties.
       
    90 
       
    91 * `event-tap` was migrated from Gallery and it supports "fast-click" on touch
       
    92   devices.
       
    93 
       
    94 * Added try/catch around the internal window unload listener event-base adds,
       
    95   so that YUI works in Chrome Packaged Apps. They don't support unload,
       
    96   but still have a window.onunload, so no real way to feature test without
       
    97   a try/catch anyway.
       
    98 
       
    99 3.6.0
       
   100 -----
       
   101 
       
   102 * No changes.
       
   103 
       
   104 3.5.1
       
   105 -----
       
   106 
       
   107   * No changes.
       
   108 
       
   109 3.5.0
       
   110 -----
       
   111   * `event-simulate` references to `window` replaced with `Y.config.win`
       
   112     [#2531223]
       
   113   * `event-resize` no longer throws an exception in IE [#2531310]
       
   114   * "avilable" and "contentready" handlers that throw exceptions no longer
       
   115     result in infinite polling [#2531375]
       
   116   * Added `event-touch`, `event-flick`, `event-move`, and `event-valuechange` to
       
   117     the `event` virtual rollup in accordance with the docs.
       
   118   * 'key' event does a better job parsing character filters. Uses `e.which`
       
   119     instead of `e.keyCode` or `e.charCode`.
       
   120   * `node.delegate('focus', fn, '.not-focusable')` now works.  Properly supports
       
   121     delegation where the filter matches non-focusable parent nodes of the
       
   122     focused target. Same for blur. [#2531334] (`event-focus`)
       
   123   * `node.delegate('focus', fn, filterThatMatchesNode); node.focus();` now
       
   124     works. [#2531734]
       
   125 
       
   126 3.4.1
       
   127 -----
       
   128   * Calling Y.on('syntheticEvent', callback) without a context/selector argument
       
   129     now defaults to `window` (or the global object) [Ticket #2530081]
       
   130 
       
   131   * event-resize, a.k.a. Y.on('windowresize', ...) migrated to synthetic event
       
   132     infrastructure. Now detachable, etc. Also properly throttles the resize
       
   133     event on newer Gecko engines. That browser sniff was old! [Ticket #2530805]
       
   134 
       
   135 3.4.0
       
   136 -----
       
   137   * `event-outside` added for "outside" events.
       
   138 
       
   139   * `Y.Event.define(name)` adds name to `DOM_EVENTS` whitelist. Accepts event
       
   140     name string or array of string names.
       
   141 
       
   142   * `event-hover` properly pulls in required module `event-mouseenter`.
       
   143 
       
   144   * DOM event subscriptions are now removed and objects cleaned up after last
       
   145     subscription is detached; same for synthetic events.
       
   146 
       
   147   * `key` synthetic event migrated to official synth infrastructure; and now
       
   148     supports delegation.
       
   149 
       
   150   * `key` event spec param now supports letters and named keys. E.g.:
       
   151     `'enter+ctrl' == '13+ctrl'`, `'up:a' == 'up:65'` and `'A' == '65+shift'`.
       
   152 
       
   153   * Added experimental config `YUI({ lazyEventFacade: true })` that triggers a
       
   154     mode for DOM EventFacades in IE8 to use getters to access event properties
       
   155     that involve any calculation, such as `e.target` and `e.currentTarget`; this
       
   156     should also improve performance.
       
   157 
       
   158   * `mouseenter` and `mouseleave` events now filter the native event rather than
       
   159     the generated `DOMEventFacades` for `mouseover`/`mouseout`. This results in
       
   160     fewer calls to `Y.one` (`e.target`, `currentTarget`, `relatedTarget`) as
       
   161     well, so should improve performance.
       
   162 
       
   163   * Added `onceAfter()` method to do a self-detaching `after()` subscription.
       
   164     [Ticket #2529464]
       
   165 
       
   166   * `Y.on(type, callback, HTMLElement[], COMPAT)` subscriptions to attach to
       
   167     multiple elements in one call now correctly use native DOM elements instead
       
   168     of Nodes for all subscriptions. [Ticket #2529807]
       
   169 
       
   170   * Plugged the leaked global `GLOBAL_ENV`. [Ticket #2530227]
       
   171 
       
   172   * Fixed synth architecture to properly resubscribe to synths that use
       
   173     `processArgs` if the target is not available at the time of subscription.
       
   174     [Ticket #2530293]
       
   175 
       
   176 3.3.0
       
   177 -----
       
   178 
       
   179   * Added support for `delegate({ click: fn, keyup: fn2 }, …)` and
       
   180     `delegate(['click', 'keyup'], fn, …)`.
       
   181 
       
   182   * Delegation containers are now potential matches for the filter.
       
   183 
       
   184   * Nested delegate matches will now have callback executed for all matching
       
   185     targets in bubbling order.
       
   186 
       
   187   * `e.stopPropagation()` in nested delegate matches now works as expected.
       
   188 
       
   189   * The raw DOM event is no longer double wrapped (i.e. was: `e._event._event`).
       
   190 
       
   191   * `event-focus` now uses XHTML-friendly feature test to fork for IE.
       
   192 
       
   193   * New `event-hover` module providing `node.on('hover', in, out)`.
       
   194 
       
   195   * `e.button`/`e.which` normalization.
       
   196 
       
   197   * `e.which` normalized for key operations as well.
       
   198 
       
   199   * Split out IE-specific code into `event-base-ie` conditional module.
       
   200 
       
   201 3.2.0
       
   202 -----
       
   203 
       
   204   * Added event and facade support for touch.
       
   205 
       
   206   * Synthetic event infrastructure rebuilt. Changes include:
       
   207 
       
   208     * Support for delegation.
       
   209 
       
   210     * Passing `DOMEventFacade` to `notifier.fire(e)` now recommended.
       
   211 
       
   212     * Fixed issue where firing the notifier from inside DOM event subs would
       
   213       result in duplicate synth sub execution if the same synth was subscribed
       
   214       multiple times on the same Node.
       
   215 
       
   216     * Synths can now be detached with `node.purge(t|f, 'synthName')`.
       
   217 
       
   218     * `Event.define(type, config, *force*)` third arg added to override existing
       
   219       events. Only use this if you really know what you're doing.
       
   220 
       
   221     * Changed `allowDups` to `preventDups`, `true` by default to mimic existing
       
   222       behavior elsewhere in the event system.
       
   223 
       
   224   * `delegate()` now defers to synthetic event def more intelligently.
       
   225 
       
   226   * Added support for passing filter function to delegate.
       
   227 
       
   228   * `delegate()` now executes callback for each filter match up the bubble path.
       
   229 
       
   230   * Added detach category support to `delegate()`.
       
   231 
       
   232   * Migrate `mouseenter`, `mouseleave`, `focus`, and `blur` to `Event.define`.
       
   233 
       
   234   * `focus` and `blur` now guarantee execution order of subs matches bubble
       
   235     order when multiple delegates are created from different levels.
       
   236 
       
   237   * `event-synthetic` added to 'event' rollup module.
       
   238 
       
   239 3.1.1
       
   240 -----
       
   241 
       
   242   * fired `fireOnce()` listeners are executed synchronously.
       
   243 
       
   244 3.1.0
       
   245 -----
       
   246 
       
   247   * Removed deprecated `delegate` custom event. As of 3.1.0 use the `delegate()`
       
   248     method on a `Node` instance or `Y` instance.
       
   249 
       
   250   * Updated the `event-focus` submodule so that the specialized `focus` and
       
   251     `blur` events that enable the `focus` and `blur` events to bubble do not
       
   252     apply when adding `focus` and `blur` events to the `window` object.
       
   253 
       
   254   * Synthetic event creation API added.
       
   255 
       
   256   * `delegate` enhancements.
       
   257 
       
   258   * `unload` event fix.
       
   259 
       
   260   * Compatibility with Firefox's untouchable anonymous `div`.
       
   261 
       
   262 3.0.0
       
   263 -----
       
   264 
       
   265   * Added `onreadystatechange` fork in `domready` to handle the event in IE when
       
   266     YUI is hosted in an `iframe`.
       
   267 
       
   268   * Added `mousewheel` support.
       
   269 
       
   270   * Added `Y.delegate()` function that is a bit easier to use than
       
   271     `Y.on('delegate', …)`.
       
   272 
       
   273   * Default scope of `mouseenter` and `mouseleave` events is the `Node` instance
       
   274     to which the listener is attached.
       
   275 
       
   276   * Default scope of delegated event listeners is the `Node` instance that
       
   277     matched the supplied CSS selector.
       
   278 
       
   279   * All special DOM event handlers (`focus`, `blur`, `mousewheel`, `resize`,
       
   280     `delegate`, etc.) are broken down into submodules. Core DOM event
       
   281     functionality is provided in event-base.js, and all of the functionality is
       
   282     rolled into event.js.
       
   283 
       
   284   * Additional Safari key remapping.
       
   285 
       
   286   * Special DOM events can now be routed through `delegate()`.
       
   287 
       
   288   * `Y.on()` can target `Node` and `NodeList` references correctly.
       
   289 
       
   290   * Fixed `onAvailable()` lazy DOM listener detach handles.
       
   291 
       
   292   * When configured to return a detach handle, a single object is always
       
   293     returned. Previously requests that resolved to multiple listeners returned
       
   294     an array.
       
   295 
       
   296 3.0.0beta1
       
   297 ----------
       
   298 
       
   299   * DOM event, custom event, and simulate event moved to separate modules.
       
   300 
       
   301   * Added an event for DOM event delegation. It only fires if the target or its
       
   302     descendants match a supplied selector.
       
   303 
       
   304         Y.on('delegate', fn, el, 'click', 'selector', …)
       
   305 
       
   306     The event facade sets the following properties:
       
   307 
       
   308       * `target`: the target of the event.
       
   309       * `currentTarget`: the element that the selector matched.
       
   310       * `container`: the bound element (the delegation container).
       
   311 
       
   312   * Added `mouseenter`/`mouseleave` events:
       
   313 
       
   314     * `Y.on('mouseenter', fn, el, 'click', 'selector', …)`
       
   315     * `Y.on('mouseleave', fn, el, 'click', 'selector', …)`
       
   316 
       
   317   * Added `Y.on('windowresize', fn)`, which attempts to normalize when the event
       
   318     fires across all browsers (once at the end of the resize rather than
       
   319     continuously during the resize).
       
   320 
       
   321   * Fixed `unsubscribeAll()` return value.
       
   322 
       
   323   * Added ability to skip facade creation where performance is a concern.
       
   324 
       
   325   * Moved `DOMReady` core to `yui-base`.
       
   326 
       
   327   * Focus/blur abstraction works in Opera when the bound element is the target.
       
   328 
       
   329   * `purgeElement` only reads element guids, it does not create new ones for
       
   330     elements without one.
       
   331 
       
   332   * `Event.attach()` returns a single handle if the result from collection
       
   333     processing is a single item.
       
   334 
       
   335 3.0.0pr2
       
   336 --------
       
   337 
       
   338   * Fixed IE notification error when no arguments are supplied.
       
   339 
       
   340   * Added `event-simulate`.
       
   341 
       
   342   * `getListeners()` works when the element has no listeners defined.
       
   343 
       
   344   * `Event.addListener()` removed. Exists only in compat layer.
       
   345 
       
   346   * `addListerer()` triggers 2.x event behavior.
       
   347 
       
   348   * Removed extra undefined parameter passed to DOM event listeners.
       
   349 
       
   350   * Compat layer contains `Event.on()`.
       
   351 
       
   352   * Event adapter support added to `Y.on()`.
       
   353 
       
   354   * Added `focus` and `blur` event adaptors (support for propagation of these
       
   355     events.)
       
   356 
       
   357   * publish and subscribe support an object for the type, allowing for multiple
       
   358     events/subscriptions.
       
   359 
       
   360   * subscriber failures throw an error by default rather than log.
       
   361 
       
   362   * subscriber failures are not routed through `Y.fail` in order to improve the
       
   363     debug experience.
       
   364 
       
   365   * New facades created every `fire()`.
       
   366 
       
   367   * `before()` method re-added to `EventTarget`, which delegates to
       
   368     `Do.before()` or `subscribe()`.
       
   369 
       
   370   * `EventTarget.after()` will delegate to `Do.after()` if type is a function.
       
   371 
       
   372   * Added keylistener: `Y.on('key', fn, element, 'down:13,65+ctrl+shift')`.
       
   373 
       
   374   * `event:ready` event deprecated in favor of `domready`.
       
   375 
       
   376 3.0.0pr1
       
   377 --------
       
   378 
       
   379   * Initial Release.