src/cm/media/js/lib/yui/yui_3.10.3/releasenotes/HISTORY.widget.md
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
Widget Change History
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
=====================
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
3.10.3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
3.10.2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
  * Fixed contentBox remaining in Y.Node _instances cache, when
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
    widget hasn't been rendered, and `widget.destroy(true)` [deep destroy]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
    is used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
3.10.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
3.10.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
  * Added custom prefix support to widget.getSkinName,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    derived https://github.com/yui/yui3/pull/327
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
3.9.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
3.9.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
3.8.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
  * No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
3.7.3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
  * No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
3.7.2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
  * No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
3.7.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
  * No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
3.7.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
 * Fixed regression in `Widget.getByNode()`, introduced in 3.5.0, where the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
   Widget would not be found if the user changed the id of the boundingBox node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
   after the widget was rendered.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
   We go back to using the Node's guid for caching instead of the DOM node id.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
   The change was originally made to lay the groundwork for string based rendering,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
   where a boundingBox node reference would not be present during initialization.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
   This can still be achieved post-render by populating the instance map, after a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
   Node reference has been established/added to the DOM (when we get there).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
3.6.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
 * Widget no longer runs html parser against the default `contentBox` created
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
   from `CONTENT_TEMPLATE`, so that html parser implementations don't need to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
   check for `null` results for missing nodes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
3.5.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
 * Cleaned up logic to detach document focus listener after last Widget is destroyed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
   The count was off by one, leaving one Widget in memory.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
 * Refactored some of the box stamping code, to avoid Node references
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
   until render. Changed caching mechanism for Y.Widget.getByNode to use node.get("id")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
 * Patched after listeners in Widget with a if (e.target === this), so that homogenous
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
   bubbles don't end up changing state at both the source and the target. Broader
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
   fix needs to go into Event/EventTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
 * Optimized focus handler registration, by only registering a single document focus
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
   listener and using Widget.getByNode to ship out handling to the specific widget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
   instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
 * Widget will now default to an empty object config, if one isn't passed in,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
   so that HTML_PARSER can work with a static ATTRS srcNode definition.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
   It's not possible to address this just at the HTML_PARSER level, since the config
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
   object gets used by reference, so we need to make sure everything is updating the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
   config object which is passed to Base's initialization chain.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
3.4.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
  * No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
3.4.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
  * Added workaround in destructor for single box widgets (contentBox === boundingBox)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    Also extracted DOM removal into separate method, which can be overridden
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    if custom widgets don't want rendered DOM removed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
  * Fixed UI_EVENTS js exception when dealing with nested widgets rendered
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    by different Y instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
  * Fixed UI_EVENTS invoking nested widget listeners more than once (also
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
    fixed regression to Parent-Child as a result of this change).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
  * Added support for destroy(true) to Widget, which will remove and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
    destroy all child nodes (not just the boundingBox and contentBox)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    contained within the Widget's boundingBox in order to help control
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    Node cache size over long-running applications.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
    destroy() will maintain its current behavior due to the potentially
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
    high run-time cost of destroying all child nodes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
    Widget developers still need to continue with the best practice of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
    destroying explicit node references they create, in their destructors
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
    to support the destroy() case.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
3.3.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
  * HTML_PARSER now return null instead of an empty node list, if no nodes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    are found, when using the [selector] syntax, so that the default value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    will be applied for the attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
  * UI_EVENTS support and skin util methods (only getSkinName currently)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
    broken out of widget-base into separate submodules, widget-uievents and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    widget-skin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
  * widget-base-ie broken out as conditional module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
  * Fixed widget-locale support. Needed lazyAdd:false, for strings attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
  * Changed widget UI_EVENTS type parsing, to use EventTarget.parseType and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
    removed after() override, since everything ends up going through on()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
    eventually.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
3.2.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
  * Minimized widget dependencies from the complete node, base rollups,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
    to only the node and base submodules widget actually uses
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
  * Fixed issue in UI_EVENTS handling, where removing the last listener for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
    a ui event, didn't clear out the _delegates hash even though the handler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
    was detached (for example,  in tabview, if you remove all tabs, and then
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    add a new tab, clicking on the new tab didn't work.)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
3.1.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
  * Fixed ticket #2528758 : using widget's DOM event facade ends with error during destroy
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
  * Fixed ticket #2528760 : _applyParsedConfig merges arrays, instead of letting user config win
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
  * "init, render and destroy listeners now called synchronously, if event already fired (see Event README)"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
3.1.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
  * "render" event now published with the defaultTargetOnly set to true.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
  * Added support for MyWidget.CSS_PREFIX static property
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
    to let developers define their own CSS PREFIX instead of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
    yui-<MyWidget.NAME>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
  * Changed default value for the tabIndex attribute to null, meaning by default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
    a Widget's bounding box will not be a focusable element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
  * Widget now has built-in support for Progressive Enhancement.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
    1. The document element (HTML) is now stamped with a class name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
       (yui-js-enabled) indicating that JS is enabled allowing for the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
       creation of JS-aware Widget CSS style rules for Progressive Enhancement.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
    2. Widget has support for a class name representing the "loading"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
       state that can be used in combination with the "yui-js-enabled" class name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
       to create style rules for widgets that are in the process of loading.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
       There is support for use of both a generic Widget and type-specific
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
       Widget class name by default (for example:  "yui-widget-loading" and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
       "yui-tabview-loading").
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
    3. Widget's renderer will remove the "loading" class names from the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
       bounding box allowing the fully rendered and functional widget to be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
       revealed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
    Developer Usage / Requirements
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
    Developers can take advantage of the system by following two steps:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
    1. Simply stamping the bounding box of their widgets with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
       corresponding "loading" state class name.  The idea being that the markup
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
       for this widget is already on the page, and the JS components required
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
       to transform/bring the widget to life are in the process of loading.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    2. Providing the definition of the loading style for the widget(s).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
  * Removed parentNode.inDoc() check from render, to allow implementations
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
    to render to parentNodes which are document fragments. If rendering to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
    a document fragment, the implementation is responsible for adding the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
    document fragment to the document during the render lifecycle phase.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
  * Split widget module into the following sub-modules
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
    1. widget-base : Core lifecycle and API support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
    2. widget-htmlparser : HTML parser support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
    The "widget" module, is a roll up of the widget-base and widget-htmlparser
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
    submodules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
    The widget-locale is a standalone module, which contains the deprecated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
    Internationalization support and has been replaced by the Y.Intl language
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
    pack support, to allow strings to be defined separately from code.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
  * Removed moveStyles support for 3.1. Can be re-added if required, but
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
    currently does not seem to be in use.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
  * Made render event fireOnce (along with init and destroy in Base)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
  * Widget will now fire user-generated events like DOM elements do (e.g.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
    'click', 'mouseover').  Like all other Widget events, these events are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
    prefixed with the Widget name (e.g. 'menuitem:click') and the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
    context of the event listener will be the Widget that fired the event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
    The goals/purpose of the Widget UI events are:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
    1. Provide developers with the ability to listen for UI events as though the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
       Widget is an atomic element, as opposed to DOM events that will bubble up
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
       through all of the elements that compose a Widget's UI.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
    2. These are events that many Widget instances are going to want to publish
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
       and fire, so Widget does this by default to ensure that these events are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
       fired in a performant, consistent way across Widget implementations.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
    Additional info:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    1. Widget developers don't have to explicitly publish a given UI event in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
       order for Widget consumers to listen for them.  By default UI events are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
       only published and fired if someone is listening for them.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
    2. Widget developers can choose to publish a given UI event in order to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
       explicitly control some aspect of the event.  The most likely use case
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
       is the desire to provide the default implementation/handler for a given
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
       event.  For example: a developer might want to publish a click event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
       for a Menu Widget with the goal of providing the default click
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
       implementation/function (what gets canceled if a listener calls
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
       the preventDefault() method.)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    3. The set of user-generated events published by widget is defined by the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
       UI_EVENTS prototype property.  Widget developers can use this property
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
       to pair down or extend the number of events that are published and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
       fired automatically.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
    4. For performance, these events are only created when someone is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
       listening, and the actual firing of these events is facilitated by a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
       single, delegated DOM event listener.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
  * content box now expands to fill bounding box. CSS is used for browsers
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
    which support box-sizing:border-box. Expansion is handled programmatically
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
    for others (currently IE6 & IE7). Maybe some edge cases which need
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
    resolution.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
  * Added an "id" attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
  * Added support for auto-rendering of widgets at the end of construction,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
    using the "render" attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
  * Added support for single-box widgets (contentBox and boundingBox can
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    point to same node).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
    Widget developers can set CONTENT_TEMPLATE to null if they have a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
    widget which doesn't need dual-box support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
  * Added _bindAttrUI and _syncAttrUI sugar methods, to bind after listeners
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
    and sync methods, by attribute name.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
  * The widget's bounding box is now removed from the DOM and destroyed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
    when the widget it destroyed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
  * Added "srcNode" attribute, which acts as the root for HTML_PARSER.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
    This allows widgets to support progressive enhancement, without having
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
    to put the burden on the user to create and point to bounding boxes,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
    or content boxes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
  * Added protected _getSrcNode and _applyParsedConfig methods to allow for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
    HTML_PARSER customization, by allowing Widget developers to customize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
    the node passed into _parseNode on the input side, and the final merged
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    configuration on the output side of the srcNode parsing process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
    The default Widget _getSrcNode implementation uses "srcNode" if set,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
    otherwise falls back to "contentBox", for 3.0.0 compatibility.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
    The default Widget _applyParsedConfig implementation aggregates the user
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
    configuration literal, with the configuration output from parsed node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    with the user configuration taking precedence.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
    NOTE: All HTML_PARSER related changes are backward compatible.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
    Existing Widget implementations should still work. However HTML_PARSER
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
    implementations based on contentBox being the root node should be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
    modified to work off of srcNode before the 3.1.0 release.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
3.0.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
  * No Changes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
3.0.0 beta 1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
  * PluginHost moved down to Base.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
  * Render event args added to event facade instead of being passed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
    across separately (e.parentNode).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
  * "hasFocus" attribute renamed to "focused"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
  * "focused" attribute is read only
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
  * "focused" attribute is set via:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    1. user interaction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    2. the "focus" and "blur" methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
  * Only one DOM focus event handler is used now (two for WebKit) and it is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
    bound to the widget's ownerDocument.  This allows modal widgets to maintain
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
    a reference to the element in the document that previously had focus and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
    to be able to restore that focus when the modal widget is hidden.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
  * "tabIndex" attribute was updated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
    1. accepts a number or null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
    2. more documentation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
3.0.0PR2 - Initial release
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
--------------------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356