- no change
- no change
- Bug fix: A glitch occurred when an reversing a previously reversed animation. [Ticket 2528581]
- Bug fix: Better cleanup on destroy. [Ticket 2528820]
- Bug fix: Was not resuming properly from pause. [Ticket 2528938]
- no change
- Now firing the resume event.
- Added a boolean arg for stop() to force it to skip to the last frame.
- Initial release.
-
Controller: Added a workaround for an iOS 4 bug that causes the previous URL to be displayed in the location bar after calling
save()
orreplace()
with a new URL. -
Controller: Fixed a bug that caused the controller to get stuck in a "dispatching" state if
save()
was called with no routes defined. -
Model: The
validate()
method is now only called whensave()
is called, rather than on every attribute change. If validation fails, the save operation will be aborted.
- Initial release.
- No changes.
- No changes.
- Initial release.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
-
[!]
queue-base
is now part ofyui
. -
[!]
queue-run
was renamedasync-queue
and bothasync-queue
andqueue-promote
are now independent modules. -
AsyncQueue
defaults to asynchronous callback execution (again).
- Overhaul. Broken into
queue-base
,queue-promote
, andqueue-run
.
- No changes.
- Initial release.
- No changes.
-
Added params to constructor, to support call to addAttrs on construction with user values, when augmenting and invoking constructor manually.
Also broke out addAttrs logic on construction (introduced for Node), into it's own _initAttrs method to facilitate customization.
- Changed instanceof to Y.instanceOf, to prevent leaks in IE7
- Added protected helper method (_getAttrCfg) to return the configuration for a given attribute.
- Fixed ticket #2528753 : Sub attribute value crashed after setting another sub attribute.
-
writeOnce can be set to "initOnly", which can be used to prevent the user from setting the value outside of the initial configuration when using the addAttrs.
When used with Base, this means that the user can only define a value for the Attribute during construction.
-
Attribute change events are now published with the defaultTargetOnly property set to true.
-
newVal property of event object passed to change event listeners will now be the value returned from the Attribute's getter (if defined)
-
setter, getter, validator and valueFn can now be specified as strings, referring to the method names to be invoked on the Attribute instance.
-
set/get can now be called for ad-hoc attributes (attributes which have not been added/configured).
-
Fixed issue where custom getters were being called with undefined values, for the initial set.
-
Limited the case for which an attribute will not notify after listeners, if the value is unchanged after a set, to primitive values (values for which Lang.isObject(newVal) returns false).
This allows after listeners to be invoked, when resetting the value to the same object reference, which has properties updated, or arrays with elements modified.
-
Attribute broken up into attribute-base and attribute-complex submodules.
attribute-complex adds support for complex attributes ({x.y.z : 5}) to addAttrs.
-
Removed Attribute.CLONE support in the interests of simplicity. Was not being used. Can re-evaluate support if real world demand for it exists.
-
Changed "set" and "get" configuration properties for setter and getter methods to "setter" and "getter" respectively.
-
Added support for setter to return Attribute.INVALID_VALUE to prevent attribute state from being changed.
This allows developers to combine setter and validator functionality into one method if performance optimization is required.
-
"validator" is now invoked before "setter".
-
Renamed xxxAtt and xxxAtts methods to xxxAttr, xxxAttrs for consistency.
-
"after" listeners are only notified if attribute value really changes (preVal !== newVal).
-
Extending classes can now overwrite ATTRS configuration properties from super classes, including writeOnce and readOnly attributes.
The ATTRS configurations are merged across the class hierarchy, before they are used to initialize the attributes.
-
addAttr now prevents re-adding attributes which are already configured in order to maintain consistent state.
-
Event prefix wrapper functions (on, after etc.) removed - Event.Target now accepts an event prefix configuration value
-
Added additional log messages to assist with debugging.
-
Attribute change events are no longer fired for initial set.
-
Split up State add/get/remove into add/addAll, get/getAll, remove/removeAll to avoid having to create object literals for critical path [ add/get single key values ].
-
Attribute getter, setter, validator now also receive attribute name as the 2nd arg (val, name).
-
If Attributes initialized through addAttrs have a user provided value which is not valid, the initial attribute value will revert to the default value in the attribute configuration, if it exists.
-
reset() no longer resets readOnly or writeOnce attributes. Only publically settable values are reset.
-
Added modifyAttr method, to allow component developer to modify configuration of an attribute which has already been added. The set of attribute configuration properties which can be modified after it has been added are limited to getter, readOnly, writeOnce and broadcast.
-
Added support for lazy attribute configuration. Base uses this feature to lazily intialize all Attributes on the first call to get/set, for performance optimization.
lazyAdd:true/false can be used to over-ride this behavior for a particular attribute.
-
Added valueFn support, to allowing static attribute values configuration to set instance based values.
-
Added reset method.
-
Added private setter for use by class implementation code to set readOnly, writeOnce values.
-
The "combobox" ARIA role is no longer automatically added to an AutoCompleteList input node. After consulting with the Y! Accessibility team, we felt that the combobox role doesn't accurately represent the out-of-the-box interactions that AutoCompleteList provides. Implementers can still apply this role (or any other ARIA role) to the input node manually if desired.
-
Fixed a bug that prevented the autocomplete list from being hidden after right-clicking on the list and then clicking elsewhere in the document. [Ticket #2531009]
-
Added the ability to use a
<select>
node as a result source. -
Function sources may now be either asynchronous or synchronous. Returning an array of results from a function source will cause it to be treated as synchronous (same as in 3.3.0). For async operation, don't return anything, and pass an array of results to the provided callback function when the results become available. [Ticket #2529974]
-
Added a
sourceType
attribute toAutoCompleteBase
, which may be used to force a specific source type, overriding the automatic source type detection. [Ticket #2529974] -
The
scrollIntoView
config option is now much smarter. It will only scroll if the selected result isn't fully visible. If the result is already entirely within the visible area of the viewport, no scrolling will occur. -
A pre-existing
listNode
may now be specified at initialization time. -
Added
subWordMatch
filters and highlighters. [Contributed by Tobias Schultze] -
The
this
object now refers to the current AutoComplete instance instead of the window in list locators, text locators, filters, formatters, highlighters, and requestTemplate functions. -
Added an
originEvent
property to the event facade ofselect
events. It contains an event facade of the DOM event that triggered the selection if the selection was triggered by a DOM event. -
Small performance improvement for filters operating on empty query strings. [Ticket #2529949]
-
Result list alignment is now updated both when results change and when the window is resized instead of only when the list becomes visible. This makes right-aligned lists with dynamic widths less awkward.
-
Fixed a bug that prevented CSS-based z-index values from taking effect on the AutoComplete list and required the z-index to be set via JS. The
.yui3-aclist
class now provides a default z-index of 1, and this can be overridden with custom CSS. Specifying azIndex
attribute value via JS no longer has any effect. -
Fixed a bug that caused the IE6 iframe shim under the AutoComplete list to be sized incorrectly the first time the list was displayed.
-
Fixed a bug in which the
requestTemplate
would sometimes be used as the query instead of being appended to the source URL. This affected XHR and JSONP sources that used both a{query}
placeholder in the source string and a customrequestTemplate
value. [Ticket #2529895] -
Fixed a bug that caused the
requestTemplate
function to be called twice for an XHR request instead of just once. -
Fixed a bug in which JSONP, XHR, and YQL requests were cached solely based on the query rather than on the complete request. This could result in cache collisions when two requests with the same query but different parameters (provided by a requestTemplate) were made. [Ticket #2530410]
-
Fixed a bug that caused the
&
character to be treated as an up arrow key in Firefox. [Ticket #2530455] -
Removed the "beta" label. Hooray!
- Initial release.
- No changes.
-
Base now destroys plugins before destroying itself
-
Base.create/mix extensions can now define initializer and destructor prototype functions, which will get invoked after the initializer for the host class into which they are mixed and before it's destructor.
-
Use a hash version of whitelist mix for improved performance. Also removed non-required hasOwnProperty check and delete.
-
Fixed Base.mix when used on a class created using Base.create
-
toString no longer inadvertently stamps the object, however, we now stamp Base objects in the constructor, to support use cases where the "toString" stamping was implicitly being relied upon (e.g. in DD, as hashkeys).
- Fixed Base.create to properly isolate ATTRS on extensions
- No changes
-
As the final step in the destroy phase, Base now does a detachAll() to avoid invoking listeners which may be waiting to be in an async. step which occurs after destruction.
-
"init" and "destroy" events are now published with the defaultTargetOnly property set to true
-
Added support for MyClass.EVENT_PREFIX to allow developers to define their own event prefix
-
Made "init" and "destroy" events fireOnce:true (along with "render" in Widget), so that subscriptions made after the events are fired, are notified immediately.
-
Dynamic and non-dynamically built classes now have their extensions instantiated the same way - during _initHierarchy.
-
Updated ATTRS handling for Base.build, so that ATTRS are also aggregated at the attribute configuration object level, allowing extensions to add to, or overwrite, attribute configuration properties on the host.
-
Added sugar Base.create and Base.mix methods on top of Base.build, to simplify the 2 main use cases:
- Creating a completely new class which uses extensions.
- Mixing in extensions to an existing class.
-
Documented non-attribute on, after, bubbleTargets and plugins property support in the Base constructor config argument
-
Fixed hasImpl method on built classes, to look up the class hierarchy for applied extensions.
-
Plugin.Host removed from base-base module and delivered as it's own module - "pluginhost"
-
base broken up into..
base-base: Provides class hierarchy support for ATTRS and initialization
base-build: Provides Extension support in the form of Base.build
base-pluginhost: Augments Plugin.Host to Base, adding plugin support
-
Config argument for init event now merged into the event facade, instead of being passed separately (available as e.cfg).
-
Removed Base.create. On review, considered to be overkill. Users can easily create new instances, using Base.build
-
Moved PluginHost down from Widget to Base, since utils and Node will also support Plugins.
-
PluginHost.plug and unplug now accept the plugin class as arguments [plug(pluginClass, cfg) and unplug(pluginClass)].
-
Split base module up into base-base and base-build.
-
Added lazy attribute initialization support, to improve performance.
This also removes order dependency when processing ATTRS for a particular class.
If a get/set call is made for an uninitialized attribute A, in the getter/setter/validator or valueFns of another attribute B, A will be intiailized on the fly.
-
Added ability to subscribe to on/after events through the constructor config object, e.g.:
new MyBaseObject({ on: { init: handlerFn, myAttrChange: handlerFn }, after: { init: handlerFn, myAttrChange: handlerFn }, ... });
-
Developers can now override the default clone behavior we use to isolate default ATTRS config values, using cloneDefaultValue, e.g.:
ATTRS = { myAttr : { value: AnObjectOrArrayReference cloneDefaultValue: true|false|"deep"|"shallow" } }
If the cloneDefaultValue property is not defined, Base will clone any Arrays or Object literals which are used as default values when configuring attributes for an instance, so that updates to instance values do not modify the default value.
This behavior can be over-ridden using the cloneDefaultValue property:
true, deep:
Use Y.clone to protect the default value.
shallow:
Use Y.merge, to protect the default value.
false:
Don't clone Arrays or Object literals. The value is intended to be used by reference, for example, when it points to a utility object.
-
Base.plug and Base.unplug used to add static Plugins (default plugins for a class). Replaces static PLUGINS array, allowing subclasses to easily unplug static plugins added higher up in the hierarchy.
-
Base adds all attributes lazily. This means attributes don't get initialized until the first call to get/set, speeding up construction of Base based objects.
Attributes which have setters which set some other state in the object, can configure the attribute to disable lazy initialization, by setting lazyAdd:false as part of their attribute configuration, so that the setter gets invoked during construction.
- No changes.
- Added support to flush a specific request from the cache. [Pat Cavit]
- Wrap access to
win.localStorage
in try/catch in case it has been disabled. [Ticket #2529572]
-
Added
cache-offline
submodule. Thecache
submodule is renamed tocache-base
and thecache
module is now a rollup. -
The
Cache
class no longer extendsPlugin.Base
.Cache
now extendsBase
, andCacheOffline
extendsCache
. Implementers who wish to useCache
as a plugin should usePlugin.Cache
in thecache-plugin
submodule. -
Added
expires
Attribute toCache
. Cached entries now includeexpires
andcached
values.
- No changes.
- No changes.
- Initial release.
- Calendar now supports Japanese language internationalization
- Multiple calendars can now be used on the same page [Ticket #2530925]
- When individual dates are clicked in Firefox, they are not text-selected [Ticket #2530754]
- Multiple date selection now works correctly when it spans the Daylight Savings Time change date [Ticket #2530979]
- A few documentation issues have been fixed [Tickets #2530929 and #2530930]
- #2530109 Fixed issue in which the NumericAxis roundingMethod was not always being respected when a number was specified.
- #2531100 Fixed issue in which the NumericAxis was not correctly calculating its data range when a minimum or maximum was explicitly set.
- #2530127 Added originEvent, pageX and pageY properties to the event facade for marker and planar events.
- #2530591 Added ability to accept custom series classes.
- #2530592 Fixed errors resulting from empty series.
- #2530810 Removed hard-coded class prefixes.
- #2530908 Fixed issue in which the NumericAxis was not respecting explicitly set minimum and maximum values in some cases.
- #2530969 Ensure underlying dom nodes of markers have unique ids.
- #2530984 Fixed issue in which PieChart was not resizing properly.
- #2531024 Fixed issue in which PieChart did not draw from center when width and height were not equal.
- #2530985 Fixed issue in which PieChart failed to always render in MSIE 8.
- #2531020 Fixed issue in which gridlines could be hidden by other elements.
- #2531040 Fixed issue in which missing data broke stacked histograms.
- #2531071 Fixed issue in which charts would not render if one of the series was empty.
- Charts only requires datatype-number and datatype-date instead of the datatype rollup.
- #2530413 Position axis labels with transform instead of css styles.
- #2530533 Fixed issue in which stacked bar/column displayed inaccurated data on mouseover when zero values appeared in the series.
- #2530404 Fix issue in which markers were incorrectly omitted from graphs.
- #2530395 SplineSeries extends LineSeries instead of CartesianSeries.
- #2529841 Add axis title.
- #2530143 Refactor to use Graphics API
- #2530223 Fixed bug in which negative value markers were not displayed in column/bar series.
- #2529849 Fixed styles documentation bug
- #2530115 Fixed bug preventing tooltip's node from being overwritten.
- #2529972 Fixed issue in which zero/null values were falsely creating markers in stacked bar and column series.
- #2529926 Fixed issue in which null values were being treated as zero.
- #2529925 Fixed bug in which dashed line was not drawn in combo and line series.
- #2529926 Fixed issue in which null values in data provider are treated as 0.
- #2529927 Addressed issue in which primitive value strings were not being parsed correctly in the TimeAxis.
- #2529971 Force range on a NumericAxis when all values are zero.
- #2529842 Ensure Numeric axis has at least on negative and positive tick when minimum is less than zero and maximum is greater than zero.
- #2529840 Changed stacked bar and column series to handle cases in which the item value is at or rounded to zero.
- Initial release.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
-
IMPORTANT: Changed default prefix to "yui3-" to avoid collisions with yui2 code, which uses "yui-". Bundled CSS has also been updated.
-
getClassName can now be invoked with a boolean skipPrefix argument set to true to avoid adding the default prefix when creating the class name.
-
Whitespace is no longer replaced in the generated class name.
- No changes.
- Now uses Y.cached
- All white space is stripped from incoming arguments
- Initial 3.0 revision
- Sparse arrays are now handled correctly in the non-native fallback
implementation of
Y.Array.lastIndexOf()
. [Ticket #2530966]
- Sparse arrays are now handled correctly in the non-native implementations of
Array.every
,Array.filter
,Array.find
,Array.map
, andArray.reduce
. [Ticket #2530376]
- [!] The
sort
parameter ofArray.unique
has been deprecated. It still works, but you're encouraged not to use it as it will be removed from a future version of YUI. Array.lastIndexOf
now supports thefromIndex
parameter as specified in ES5.- Improved the performance of
Array.filter
,Array.map
,Array.reduce
, andArray.unique
, especially in browsers without native ES5 array extras.
- No changes.
- No changes.
array-extras
is the base submodule for the package.- Added
ArrayList
for generic iterable objects. Array.forEach
is an alias forArray.each
.- Added
Array.invoke
to execute a named method on an array of objects.
unique
withsort
works.
- Fixed load time fork assumptions.
- Initial release.
- No changes.
- CSS classes generated from the
style
attribute changed from, e.g.,yui3-inline-console
toyui3-console-inline
.
- No changes.
- No changes.
- No changes.
-
CSS class references updated from
yui-*
toyui3-*
. -
Internal reorganization (API and functionality unaffected)
-
Fixed double escapement of
&
when used with ConsoleFilters and hiding and showing content with HTML entities. -
Strings broken out into Intl. language resource bundles. English (en, default) and Spanish (es) supported.
-
Added attribute
style
to allowinline-block
,block
, orabsolute
positioning. -
Moved the hidden state CSS to the sam skin and increased rule specificity.
-
printBuffer
no longer throws an error when called against an empty buffer. -
Removed
label
property from normalized message object since it was just a copy of category. -
Moved
collapsed
CSS class to theboundingBox
and nowcollapse()
resizes theboundingBox
accordingly. -
Added
useBrowserConsole
attribute as a pass through to the YUI config. Default tofalse
so when aConsole
is instantiated, messages are redirected toConsole
rather than duplicated there. -
collapse()
,expand()
, andlog()
are now chain-able.
-
logSource
attribute added to configure listening for events from a specific target. Also useful for subscribing to all log events across multiple YUI instances. -
Lowered
consoleLimit
default to 300. -
printLimit
attribute added to limit the number of entries from the buffer to output in a givenprintBuffer()
call. -
printBuffer(max)
argument added to limit the number of entries to print in this cycle. -
Changed from
setTimeout
tosetInterval
to chunk DOM output. -
logLevel
constants changed to strings and categories outside info, warn, and error are not treated as info. -
CSS updates.
-
Support for
height
andwidth
attribute configuration. -
Changed
<input type="button">
to<button type="button">
. -
Added
collapse()
/expand()
. -
Entry addition and removal now occurs off DOM.
-
Entry removal checks that the target Node is present before removing it.
-
Y.config.debug
explicitly set to false during print cycle to avoid infinite loops.
- Initial release.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- Internal reorganization (API and functionality unaffected).
- Adding attribute
cacheLimit
to limit memory overrun from holding onto all log messages.
- Initial release.
- No changes.
- No changes.
- No changes.
- Introduced a private method for setting the document to use in tests.
- Updated tests to run without setting cookies to
document.cookie
.
- No changes.
- No changes.
- No changes.
- Synchronized with the 2.x version of cookie:
- Changes formatting of date from
toGMTString()
totoUTCString()
(trac# 2527892). - Updated
remove()
so that it no longer modifies the options object that is passed in (trac# 2527838). - Changed behavior for Boolean cookies (those that don't contain an equals
sign). Previously, calling
Cookie.get()
on a Boolean cookie would return the name of the cookie. Now, it returns an empty string. This is necessary because IE doesn't store an equals sign when the cookie value is empty ("info=" becomes just "info"). - Added
Cookie.exists()
to allow for easier Boolean cookie detection. - Removed check for cookie value before parsing. Previously, parsing checked
for
name=value
, now it parses anything that is passed in. - Removing the last subcookie with
removeSub()
now removes the cookie if theremoveIfEmpty
option is set totrue
. (trac# 2527954) - Added option to disable url encoding/decoding by passing
options.raw
toset()
andget()
. (trac# 2527953). - Changed
get()
to take an options object withraw
andconverter
properties. If a function is passed instead of an object then it is used as the converter for backward compatibility (trac# 2527953).
- Changes formatting of date from
- Synchronized with latest 2.x version of cookie.
- Initial release.
- Bug fix: Nested mixed list types were incorrectly styled. [Ticket 2530302]
- No code changes.
- No code changes.
- No code changes.
- No code changes.
- No code changes.
- Initial release.
- No change.
- No change.
- No change.
- No change.
- No change.
- No change.
- Initial release. 3.0.0PR1 - Initial release
Module Name: "cssfonts" Documentation: http://developer.yahoo.com/yui/3/cssfonts
The foundational CSS Fonts provides cross-browser typographical normalization and control while still allowing users to choose and adjust their font size. Both Standards and Quirks modes are supported in A-grade browsers.
- No change.
- No change.
- No change.
-
[!] The pre-3.2.0 CSS Grids Utility has been deprecated, and its module has been renamed to
cssgrids-deprecated
. It will be removed completely in a future release. -
Initial release of the new CSS Grids Utility.
- No change.
- No change.
- Initial release.
**** version 3.0.0 ***
- deprecated for YUI 3
**** version 3.0.0 beta 1 ***
- deprecated for YUI 3
**** version 3.0.0 PR2 ***
* Added self-clearing for templates (e.g. div.yui-t1) for
cases when they are not within #bd. Per ticket 2201115
* Corrected ordering issue for "gb" per internal ticket
2251219 and Sourceforge ticket 2131681
* Enabled nesting of gf within gc per internal ticket
1458071 and Sourceforget ticket 1786723
3.0.0PR1 - Initial release
Module Name: "cssgrids" Documentation: http://developer.yahoo.com/yui/3/cssgrids
The foundational CSS Grids offers four preset page widths, six preset two-column source-order-independent content templates, and the ability to stack and nest subdivided regions of two, three, or four columns. The file provides over 1000 page layout combinations. Other features include:
* Supports fluid 100-percent layouts, fluid- and
fixed-width layouts at 750px, 950px, and 974px
centered, and the ability to easily customize the
width.
* Flexible in response to user initiated font-size
adjustments.
* Template columns are source-order independent; put
your most important content earlier in your markup
for improved accessibility and SEO.
* Self-clearing footer. No matter which column is
longer, the footer stays below the longest.
* Accommodates IAB's Ad Unit Guidelines for common
ad dimensions.
*** NOTE: This module is deprecated. This functionality will be provided in a future release.
- Moved list-type to list declaration.
- No change.
- No change.
- No change.
- No change.
- No change.
- Initial release.
- No changes.
- Added support to accept the results array as input, leaving
schema.resultListLocator
as optional. - Field locators that contain . or [???] now fail over to look for that
locator as a single property name rather than a nested value. For example,
a locator
"not.nested"
would look forinputRecord.not.nested
for a value, but if it doesn't find one, it will look forinputRecord["not.nested"]
. If it finds a value there, it will not look for a nested value for subsequent records. getPath
is far more tolerant of locator strings. In particular, it considered utf-8 characters that didn't match the\w
regex group to be invalid. This is fixed.
- Bug 2528429: Added support for locator property to DataSchema.JSON resultFields.
- Known Android issues (bugs 2529621, 2529758, 2529775): XML parsing is buggy on the Android WebKit browser.
- Set custom parser execution scope to be DataSchema instance.
- No changes.
- Added support for nested schemas.
- Added support for XPath resultListLocator, instead of requiring the use of 'getElementsByTagName'.
- Improved support for DOM elements in DataSchema.XML when IE xmldoc.selectNodes(String) fails.
- Field list is now optional for DataSchema.JSON. If omitted, all response data is returned.
- Fixed a bug in field resolution where null might be discovered along the resolution path. Now exits gracefully rather than throwing an error.
- Support for DOM elements in DataSchema.XML.
- Initial release.
- No changes.
setInterval
fires firstsendRequest
in a 0mssetTimout
, then subsequent calls after the configured timeout. [Ticket #2529182]
- success callbacks that throw an error no longer result in the
data
event being fired again. [Ticket #2529824]
- Un-anonymize
DataSource.IO
callback functions. [Ticket #2529466]
-
Removed hardcoded
DataSource.IO
fromDataSourceJSONSchema
. -
Added ability to cancel underlying IO and Get transactions.
-
Better
DataSource
error handling. -
Added
ioConfig
Attribute toDataSource.IO
.
- No changes.
-
[!]
DataSource
'ssendRequest()
argument signature has changed in a non-backward-compatible way. It now accepts a single object containing the propertiesrequest
,callback
, andcfg
. -
DataSource.Get
bug fixed where it was trying to delete the proxy callback in the wrong location during cleanup. -
Changed from array of proxy callbacks to object with guid keys to support services that don't properly handle array indexes in the callback parameter (Twitter).
-
Code reorganized (API and functionality unaffected).
-
DataSource.IO
now passes request value to IO. -
DataSource.Function
now catches exception and fires error event.
- Initial release.
-
Removed the
td
property from the object passed to cell formatters by default. Implementers should return innerHTML or modify thetdTemplate
and set properties on theo
object passed to the formatter for template substitution. For implementers that must have a Node for the cell, a new prototype methodcreateCell(o)
may be called from formatters. The method creates a Node using the standard template substitution oftdTemplate
+ values stored ino
. It then adds the cell Node to thetd
property ono
and returns the created Node. That said, using strings will make the table faster (maybe not in this release, but in 3.5.0). [Ticket #2529920] -
Added a column attribute
emptyCellValue
to populate cells without content values. In your column definition, specify a value you want to show in the rendered cell in the case of missing data. The defaultemptyCellValue
is the empty string, so no more "{value}" showing up in tables. [Ticket #2529921]
-
Render cycle revamped to avoid calls through the Attribute API for each cell. This should improve render performance somewhat. More performance improvements to come in 3.5.0. The object passed through the render loops' supporting methods now has additional properties and many properties are added earlier. o.td still refers to the cell added by the previous loop iteration--a proper fix is coming in 3.5.0. Look in the Gallery for a patch module.
-
Now creates a new
RecordSet
for each instance rather than reusing the same one. [Ticket #2529980] -
Captions are only added if a value is set for the
caption
attribute [Ticket #2529968]
-
Initial release.
-
Known Android issue (Ticket #2529761): Scrolling is currently not supported on the Android WebKit browser.
- No changes
-
Languages are no longer fetch-able for the
datatype-date
module, only for thedatatype-date-format
module:var availLangs = Y.Intl.getAvailableLangs("datatype-date-format");
- No changes.
- No changes.
- No changes.
- Changed to use YUI language resource bundles rather than proprietary infrastructure.
- No changes.
- Initial release.
- No changes.
- #2529889 Example for Delegate Drag and Drop has wrong parameters
- #2529905 Using DDNodeScroll with DDDelegate causes JS error in Safari
- #2530050 Incorrect documentation
- #2530451 DragDrop enhancement - ability to use dd with non-node objects.
- #2530576 change notest needed in history file
- #2529382 DD Delegate breaks when a draggable is nested and uses a handle
- #2529407 Add tickAlignX and tickAlignY events to Y.Plugin.DDConstrained
- #2529409 [Pull Request] - #2529407 Add tickAlignX and tickAlignY events to Y.Plugin.DDConstrained
- #2529463 Screen goes red in some YUI 3 D&D examples in IE=8 doc mode
- #2529469 Reset _lastTickYFired/_lastTickXFired on drag end
- #2529470 [Pull Request] - #2529469 Reset _lastTickYFired/_lastTickXFired on drag end
- #2529484 DD example not working when run from local directory or hosted on YUIbuild
- #2529577 Slider thumb frozen on mousedown+mousemove in IE9
IMPORTANT dd-plugin and dd-plugin-drop are no longer bundled with the dd module. They are now official plugins and need to be "used" on their own.
Moved to new Gesture support. DD now works off both mouse events and touch events natively with the "drag-gestures" plugin that is conditionally loaded when touch events are found on the page.
- #2528693 3.1.0PR1 DD Examples fail in Opera 10.5
- #2528765 DD uses window references
- #2528797 Drag and drop breaks input text select()
- #2528959 Mouseenter event bubbles up when using both modules dd-plugin and dd-constrain
- #2529070 Drop destroy is throwing errors when the node is removed with .remove(true) using dd delegate
- #2529094 DD hard codes CSS prefix
- #2527964 DD constrain2node cached position causes misalignment when that node is moved
- #2528229 Configuration to override region caching in Constrain plugin
- #2528395 Add a DD.Drag delegate class
- #2528457 Add invalid selector check to Delegate
- #2528488 Delegate errors without Drop plugin
- #2528509 Drag and drop slow on linux ff3.5.6
- #2528539 drag:start should fire before drag:enter
- #2528540 DDConstrained using cacheRegion set to false throws js errors when drag starts
- #2528560 drag:over event is not firing when useShim is false
- #2528578 DDConstrained has no default constraining config
- #2528585 drag:dropmiss being fired on simple click
- #2528592 Add throttle support to DD mousemove
- #2528596 Support Node instances as handles in Drag
- #2528607 Drop events not firing when attached to a Drag target
- #2528608 Default Drag throttleTime should be -1
- #2528613 dragNode XY not sync with the mouse if it has its dimensions changed on drag:start
- #2528096 Updated initialization routine so plugins load before DD attachs to the node.
- #2528119 Added SELECT selector to invalidHandles.
- #2528124 Fixed issue with creating more than one DD instance on a node.
- #2528149 Fixed _noShim use case
Added a plugin to support Window and Node based scrolling
var dd = new Y.DD.Drag({
node: '#drag'
}).plug(Y.plugin.DDWinScroll);
var dd = new Y.DD.Drag({
node: '#drag'
}).plug(Y.plugin.DDNodeScroll, {
node: '#some-parent-with-scroll'
});
Proxy and Constrained were moved to the plugin modal, there are some syntax changes:
PR2 - Proxy:
var dd = new Y.DD.Drag({
node: '#drag',
proxy: true,
moveOnEnd: false
});
Current - Proxy:
var dd = new Y.DD.Drag({
node: '#drag'
}).plug(Y.plugin.DDProxy, {
moveOnEnd: false
});
PR2 - Constrained:
var dd = new Y.DD.Drag({
node: '#drag',
constrain2node: '#wrap'
});
Current - Constrained:
var dd = new Y.DD.Drag({
node: '#drag'
}).plug(Y.plugin.DDConstrained, {
constrain2node: '#wrap'
});
Converted Everything to use setXY now that FF2 is not supported. Performance tweaks to dragging over a target.
Added bubbles config option to help with extending later. Updated _checkRegion to perform Bottom, Top, Left, Right validation instead of Top, Bottom, Left, Right
Known Issues:
-
Firefox 2.x: Proxy Drags with handles inside an element with overflow: hidden will not target properly.
-
All: Scrolling Module not available as of this release.
-
Changed method name from _getNewValueFromMousedown to _handleMousedown
-
Improved mousedown on ring handling [Ticket #2530597]
-
Improved handling of dragging the handle past max/min and around multiple revolutions. [Ticket #2530766]
-
Fixed problem with Dial having incorrect center X and Y following a browser resize. [Ticket #2531111]
-
Names of 3 configuration attributes have changed: stepsPerRev -> stepsPerRevolution handleDist -> handleDistance centerButtonDia -> centerButtonDiameter
-
New configuration attributes: markerDiameter handleDiameter
-
Enhancement: In addition to setting the Dial by dragging the handle as it was in 3.3.0, Dial now supports setting the value by clicking on the Ring. This does not cross value "wrapping" boundries. For example: If a Dial has 0 degrees = value 0, and the Dial's current handle position is 10 degrees with a value = 10, then a mousedown at 355 degrees will result in a value of 355 not -10. In this case all mousedown events will result in values between 0 and 355. This is within current value "wrapping" boundries. Moving across value wrapping boundaries, must be done by dragging the handle or using the keyboard.
-
Changed the name of class marker-max-min
- to - yui3-dial-marker-max-min
-
Enhancement: In 3.3.0, when the user dragged the handle past the min or max, the Marker displayed as red to indicate min/max. When the cursor was released, the marker was no longer displayed. There remained no user feedback indicating max/min. When the keyboard was used to change the value, no min/max indication was displayed, except that the handle stopped moving. In this release, the Marker display state of red remains as long as the Dial is at min/max, regardless of mouse or keyboard use. If you don't want min/max feedback, CSS class yui3-dial-marker-max-min can be overridden.
-
When mousedown is used to set its value, Dial now has intuitive handling of different configurations of min, max where stepsPerRevolution is greater than or less than one revolution. [Ticket #2530306]
- New Beta Component Deprecated _setLabelString, _setTooltipString, _setResetString. Instead, use DialObjName.set('strings',{'label':'My new label', 'resetStr';'My New Reset'}); before DialObjName.render(); One or more strings can be changed at a time. Removed _setXYResetString. Now done through CSS. Not called by Dial.js anymore.
- No changes.
- The ancestor/ancestors methods now accept an optional stopAt function.
- IE alpha filter for opacity no longer affects existing filters.
- Fixes for IE9, Firefox 4, and Chrome creators.
- setStyle(node, '') now clears inline styles.
- adds ancestors method.
- CSS "transform" vendor prefix is now optional with set/getStyle.
- Bug fix: IE6/IE7 were failing inDoc checks for cloned nodes. [Ticket 2529232]
- Bug fix: viewportRegion() was incorrectly documented. [Ticket 2528756]
- adds support for hypenated attributes.
- Bug fix: iOS already includes scroll amount. [Ticket 2528390]
- initial release.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- Better handling of HTML elements.
- Added
/regexp/
formatting.
- No changes.
- Initial release.
###3.4.1
No changes.
Third release of EditorBase. Considerable work was done on this component, but there are no public tickets associated with the issues that were resolved. This version of EditorBase is the current version being used in the new Yahoo! Mail. It's production stable and ready to be used with the proper skins and GUI.
Second release of EditorBase. Considerable work was done on this component, but there are no public tickets associated with the issues that were resolved.
Initial Release
This release is a core utility release, the Editor instance that is created contains no GUI. It's only the iframe rendering and event system.
- No changes.
- Non-string arguments to
html()
andregex()
are now coerced to strings. [Ticket #2530408]
- Initial release.
-
Calling Y.on('syntheticEvent', callback) without a context/selector argument now defaults to
window
(or the global object) [Ticket #2530081] -
event-resize, a.k.a. Y.on('windowresize', ...) migrated to synthetic event infrastructure. Now detachable, etc. Also properly throttles the resize event on newer Gecko engines. That browser sniff was old! [Ticket #2530805]
-
event-outside
added for "outside" events. -
Y.Event.define(name)
adds name toDOM_EVENTS
whitelist. Accepts event name string or array of string names. -
event-hover
properly pulls in required moduleevent-mouseenter
. -
DOM event subscriptions are now removed and objects cleaned up after last subscription is detached; same for synthetic events.
-
key
synthetic event migrated to official synth infrastructure; and now supports delegation. -
key
event spec param now supports letters and named keys. E.g.:'enter+ctrl' == '13+ctrl'
,'up:a' == 'up:65'
and'A' == '65+shift'
. -
Added experimental config
YUI({ lazyEventFacade: true })
that triggers a mode for DOM EventFacades in IE8 to use getters to access event properties that involve any calculation, such ase.target
ande.currentTarget
; this should also improve performance. -
mouseenter
andmouseleave
events now filter the native event rather than the generatedDOMEventFacades
formouseover
/mouseout
. This results in fewer calls toY.one
(e.target
,currentTarget
,relatedTarget
) as well, so should improve performance. -
Added
onceAfter()
method to do a self-detachingafter()
subscription. [Ticket #2529464] -
Y.on(type, callback, HTMLElement[], COMPAT)
subscriptions to attach to multiple elements in one call now correctly use native DOM elements instead of Nodes for all subscriptions. [Ticket #2529807] -
Plugged the leaked global
GLOBAL_ENV
. [Ticket #2530227] -
Fixed synth architecture to properly resubscribe to synths that use
processArgs
if the target is not available at the time of subscription. [Ticket #2530293]
-
Added support for
delegate({ click: fn, keyup: fn2 }, …)
anddelegate(['click', 'keyup'], fn, …)
. -
Delegation containers are now potential matches for the filter.
-
Nested delegate matches will now have callback executed for all matching targets in bubbling order.
-
e.stopPropagation()
in nested delegate matches now works as expected. -
The raw DOM event is no longer double wrapped (i.e. was:
e._event._event
). -
event-focus
now uses XHTML-friendly feature test to fork for IE. -
New
event-hover
module providingnode.on('hover', in, out)
. -
e.button
/e.which
normalization. -
e.which
normalized for key operations as well. -
Split out IE-specific code into
event-base-ie
conditional module.
-
Added event and facade support for touch.
-
Synthetic event infrastructure rebuilt. Changes include:
-
Support for delegation.
-
Passing
DOMEventFacade
tonotifier.fire(e)
now recommended. -
Fixed issue where firing the notifier from inside DOM event subs would result in duplicate synth sub execution if the same synth was subscribed multiple times on the same Node.
-
Synths can now be detached with
node.purge(t|f, 'synthName')
. -
Event.define(type, config, *force*)
third arg added to override existing events. Only use this if you really know what you're doing. -
Changed
allowDups
topreventDups
,true
by default to mimic existing behavior elsewhere in the event system.
-
-
delegate()
now defers to synthetic event def more intelligently. -
Added support for passing filter function to delegate.
-
delegate()
now executes callback for each filter match up the bubble path. -
Added detach category support to
delegate()
. -
Migrate
mouseenter
,mouseleave
,focus
, andblur
toEvent.define
. -
focus
andblur
now guarantee execution order of subs matches bubble order when multiple delegates are created from different levels. -
event-synthetic
added to 'event' rollup module.
- fired
fireOnce()
listeners are executed synchronously.
-
Removed deprecated
delegate
custom event. As of 3.1.0 use thedelegate()
method on aNode
instance orY
instance. -
Updated the
event-focus
submodule so that the specializedfocus
andblur
events that enable thefocus
andblur
events to bubble do not apply when addingfocus
andblur
events to thewindow
object. -
Synthetic event creation API added.
-
delegate
enhancements. -
unload
event fix. -
Compatibility with Firefox's untouchable anonymous
div
.
-
Added
onreadystatechange
fork indomready
to handle the event in IE when YUI is hosted in aniframe
. -
Added
mousewheel
support. -
Added
Y.delegate()
function that is a bit easier to use thanY.on('delegate', …)
. -
Default scope of
mouseenter
andmouseleave
events is theNode
instance to which the listener is attached. -
Default scope of delegated event listeners is the
Node
instance that matched the supplied CSS selector. -
All special DOM event handlers (
focus
,blur
,mousewheel
,resize
,delegate
, etc.) are broken down into submodules. Core DOM event functionality is provided in event-base.js, and all of the functionality is rolled into event.js. -
Additional Safari key remapping.
-
Special DOM events can now be routed through
delegate()
. -
Y.on()
can targetNode
andNodeList
references correctly. -
Fixed
onAvailable()
lazy DOM listener detach handles. -
When configured to return a detach handle, a single object is always returned. Previously requests that resolved to multiple listeners returned an array.
-
DOM event, custom event, and simulate event moved to separate modules.
-
Added an event for DOM event delegation. It only fires if the target or its descendants match a supplied selector.
Y.on('delegate', fn, el, 'click', 'selector', …)
The event facade sets the following properties:
target
: the target of the event.currentTarget
: the element that the selector matched.container
: the bound element (the delegation container).
-
Added
mouseenter
/mouseleave
events:Y.on('mouseenter', fn, el, 'click', 'selector', …)
Y.on('mouseleave', fn, el, 'click', 'selector', …)
-
Added
Y.on('windowresize', fn)
, which attempts to normalize when the event fires across all browsers (once at the end of the resize rather than continuously during the resize). -
Fixed
unsubscribeAll()
return value. -
Added ability to skip facade creation where performance is a concern.
-
Moved
DOMReady
core toyui-base
. -
Focus/blur abstraction works in Opera when the bound element is the target.
-
purgeElement
only reads element guids, it does not create new ones for elements without one. -
Event.attach()
returns a single handle if the result from collection processing is a single item.
-
Fixed IE notification error when no arguments are supplied.
-
Added
event-simulate
. -
getListeners()
works when the element has no listeners defined. -
Event.addListener()
removed. Exists only in compat layer. -
addListerer()
triggers 2.x event behavior. -
Removed extra undefined parameter passed to DOM event listeners.
-
Compat layer contains
Event.on()
. -
Event adapter support added to
Y.on()
. -
Added
focus
andblur
event adaptors (support for propagation of these events.) -
publish and subscribe support an object for the type, allowing for multiple events/subscriptions.
-
subscriber failures throw an error by default rather than log.
-
subscriber failures are not routed through
Y.fail
in order to improve the debug experience. -
New facades created every
fire()
. -
before()
method re-added toEventTarget
, which delegates toDo.before()
orsubscribe()
. -
EventTarget.after()
will delegate toDo.after()
if type is a function. -
Added keylistener:
Y.on('key', fn, element, 'down:13,65+ctrl+shift')
. -
event:ready
event deprecated in favor ofdomready
.
- Initial Release.
- onceAfter (added in 3.4.0) now works for array and object signatures. [Ticket #2531121]
- Custom events published from
Y
no longer bubble by default.
-
Undocumented and poorly named
each()
method on EventHandle changed tobatch()
. -
After listeners for events fired in a
defaultFn
or listener are queued in the correct order. -
Added
Y.Do.originalRetVal
andY.Do.currentRetVal
statics accessible byY.Do.after()
subscribers. -
Exposed the previously private
EventTarget.parseType
.
-
Fixed
defaultTargetOnly
publish configuration. -
detach()
now decrementssubCount
/afterCount
. -
Detaching via category no longer affects subscriptions on other objects.
- No changes.
-
Wildcard prefix subscriptions supported:
target.on('*:click', …)
will be notified whentree:click
,tab:click
, etc are fired. -
Added
EventTarget::once
, which is equivalent toon()
, except the listener automatically detaches itself once executed. -
Added event monitoring. When configured, an
EventTarget
will emit events forpublish()
,attach()
,fire()
, anddetach()
operations on the hosted events. -
EventTarget::on
'stype
parameter is overloaded to accept arrays and objects for attaching multiple types at once. -
EventTarget::detach
returns the event target like the API docs already stated. -
Events can now be configured to execute the
defaultFn
only on the targeted object, not on the bubble targets. -
The event order has been reworked so that the after listeners for the entire event stack execute after all
defaultFn
across the entire bubble stack.
-
Broken into core base and complex modules.
-
broadcast
works for simple events. -
If configured to return an
EventHandle
, the return value will always be a single object, regardless of how many listeners were attached. Previously, multiple listeners provided an array of detach handles.
-
[!] Exposed methods are
on()
for the before moment,after()
for the after moment, anddetach()
for unsubscribe.subscribe()
,before()
,unsubscribe()
, and corresponding methods are deprecated. -
Implemented the
broadcast
flag:broadcast = 1
: local, accessible viaY.on('prefix:event')
.broadcast = 2
: global, accessible viaY.on()
or globally viaY.Global.on('prefix:event')
.
Broadcast listeners cannot effect the
defaultFn
or host subscribers (so are in effect, after listeners), although this is still possible by added eitherY
orY.Global
asEventTarget
s. -
Moved
event-custom
out ofevent
package. -
EventTarget
accepts aprefix
configuration. This is used in all exposed methods to handle shortcuts to event names, e.g.,'click'
and'menu:click'
are the same if the prefix is'menu'
. -
Event type accepts a event category which can be used to detach events:
Y.on('category|prefix:event', fn); Y.detach('category|prefix:event'); Y.detach('category|*');
-
Added
chain
config to events that makes the return value the event target rather than a detach handle. Use with the detach category prefix. -
The
type
parameter can be an object containing multiple events to attach:Y.on({ 'event1': fn1, 'event2': fn2 });
-
Y.fire
payload for event facades can be another facade or a custom event.
- Fixed preventDefault:true for flick
- For flick, reset start time on first move, to handle case where user mousesdown/touchstarts but then doesn't move their finger for 5s leading to inaccurate velocity.
-
Use touches current target if already set, as opposed to over-riding it with touch current target
-
Flick "y" axis param now handled correctly.
- New beta component
- No changes.
- No changes.
-
Focus is now used (in addition to keyboard and mouse events) as a sign that we should begin polling for value changes. [Ticket #2529294]
-
If the value changes while an element is not focused, that change will no longer be reported the next time polling is started (since it couldn't have been user input).
-
Module renamed to
event-valuechange
and refactored to be a true synthetic event. -
The
value
andoldValue
event facade properties were renamed tonewVal
andprevVal
respectively, for consistency with other change event facades throughout the library. -
Performance improvements.
- No changes.
- No changes.
- Initial release as
value-change
.
- No changes.
- Initial release.
- Now using ClassNameManager to get the CSS class name for the highlight element, so custom class prefixes other than "yui3" will be respected. [Ticket #2530811]
-
Fixed a bug that resulted in invalid escaped HTML when running a highlighter with an empty needle. [Ticket #2529945]
-
Fixed an off-by-one bug in which an unhighlighted single char at the end of a highlighted string would be discarded when using
allFold()
. [Ticket #2530529]
- Initial release.
- No changes.
-
[!] The
history-deprecated
module, which was deprecated in YUI 3.2.0, has been removed from the library. -
HistoryHTML5 now uses the new
window.history.state
property (which showed up in Firefox 4 and the HTML5 spec after YUI 3.3.0 was released) to get the current HTML5 history state. -
Removed the
enableSessionStorage
config option that was previously used to work around the lack of an HTML5 API for getting the current state. -
Added a
force
config parameter to History constructors. If set totrue
, ahistory:change
event will be fired whenever the URL changes, even if there is no associated state change. -
Bug fix: On a page with a
<base>
element, replacing a hash-based history state resulted in a broken URL. [Contributed by Ben Joffe] [Ticket #2530305] -
Bug fix: In IE6 and IE7, navigating to a page with a hash state could result in endlessly repeating
history:change
events. [Ticket #2529990] -
Bug fix: In IE6 and IE7, replacing a history state would actually result in a new history entry being added. [Ticket #2530301]
-
Bug fix: Setting an improperly encoded hash value outside of HistoryHash resulted in two history entries being created. [Ticket #2529399]
-
Bug fix: Changes to the URL hash (as opposed to the iframe hash) are now reflected in the history state in IE6 and IE7. [Ticket #2529400]
-
[!] The pre-3.2.0 Browser History Utility has been deprecated, and its module has been renamed to
history-deprecated
. It will be removed completely in a future release. -
Initial release of the new History Utility.
- No changes.
- Added classNameAction option for ImgGroup. Setting to "enhanced" means that when using className on an element, the src attribute is replaced rather than simply removing the class name. [Ticket #2530087]
- No changes.
- No changes.
- No changes.
- PNG image fix for IE6 [Ticket #2528448]
- Convert deprecated Y.get calls to Y.one
- No changes.
- 3.0 conversion
- New features:
- Fold groups indicated by a distance from the fold, and images are loaded in cascading fashion as each reaches that distance Scroll and resize triggers are set automatically for these groups
- Custom triggers can belong to the global Y instance or to any local event target
- Bg, Src, and Png images are all registered with groups via the same "registerImage" method, and differentiated by attribute parameters
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- Initial Release.
-
HTTP 304 now treated as a success condition. [Ticket #2530931]
-
Fixed transport creation error when both io-xdr and io-upload-iframe modules are in use [Ticket #2530999]
-
Querystring stringify added to io-upload-iframe. [Ticket #2531037]
-
Fixed request abort error in IE. [Ticket #2531038]
-
Add try/catch to io-upload-iframe response to handle failure cases where the document may be inaccessible. [Ticket #2531041]
-
Add IO support for XHR basic user authentication. [Ticket #2530023]
-
Revert Y.mix usage for synchronous requests. [Ticket #2531056]
-
Fixed io-upload-iframe transport destruction. [Ticket #2531058]
-
Added ability to get the configuration of a transaction. [Ticket #2528240]
-
Instantiable IO. [Ticket #2529314]
-
IO now uses
event-custom
and event facades. [Ticket #2529317] -
Exposed more of the internals of IO for extensibility. [Ticket #2529447]
-
Fixed IO iframe upload to reset form attributes. [Ticket #2529553]
-
Add IO support for XHR basic user authentication. [Ticket #2530023]
-
IO will not send
data
forGET
,HEAD
andDELETE
HTTP methods. [Ticket #2530091] -
Fixed issue with IO doubling the URL query-params on a HTTP
GET
request when sendingdata
together with form serialization. [Ticket #2530494]
-
When using
io-xdr
to loadio.swf
, a date-time stamp will appended, as a query-string, to the transport source for IE. [Ticket #2528898] -
Implemented default HTTP headers can be suppressed in the transaction's configuration object by setting the header with a value of
disable
. [Ticket #2529324]For example:
var config = { headers: { "X-Requested-With": "disable" } };
-
Use Y.io without listening for the
io:xdrReady
event. [Ticket #2528710] -
Fixed native XDR detection for IE8 in
io-xdr
. [Ticket #2529290]
-
Fixed malformed HTML entities in JSON response, when using
io-upload-iframe
. [Ticket #2528646] -
Fixed configuration HTTP headers should override preset HTTP headers, when identical. [Ticket #2528893]
-
[!] Fixed security vulnerability in
io-xdr
when using the Flash transport. Removed:Security.allowDomain("*")
setting fromio.as
(source) andio.swf
(compiled). The implementation reverts back to the version in 3.0.0.This reversion prevents third-party sites from being able to load
io.swf
from a disparate domain, and make HTTP requests with the SWF's domain privileges, and passing the domain's credentials. Only the domain servingio.swf
will be permitted to load it, and call its fields.See the "Security Bulletin" for more details: http://yuilibrary.com/yui/docs/io/#security-bulletin
- Fixed broken synchronous IO requests in IE. [Ticket #2528739]
-
YUI io now supports synchronous transactions for same-domain requests. To enable synchronous transactions, set the configuration property
sync
totrue
; the default behavior isfalse
. During a synchronous request, all io events will fire, and response data are accessible through the events. Response data are also returned by io, as an alternative. [Ticket #2528181]For example:
var request = Y.io(uri, { sync: true });
request
will contain the following fields, when the tx is complete:id
status
statusText
getResponseHeader()
getAllResponseHeaders()
responseText
responseXML
arguments
When making synchronous requests:
- The transaction cannot be aborted,
- The transaction's progress cannot be monitored.
-
arguments
defined in the configuration object are now passed to io global event handlers, as well. [Ticket #2528393] -
Only pass the value of the
arguments
property to listeners if defined. [Ticket #2528313]
-
Native cross-domain transactions are now supported in
io-xdr
. To specify an XDR transaction, set the config object with the following properties:-
use
: Specify eithernative
orflash
as the desired XDR transport. -
credentials
: Set totrue
if cookies are to be sent with the request. Does not work with XDomainRequest (e.g., IE8) or the Flash transport. -
datatType
: Set toxml
if the response is an XML document.
For example:
var configuration.xdr = { use : 'flash', // Required -- 'flash` or 'native'. credentials : true, // Optional. dataType : 'xml' // Optional. };
The
use
property is required. The others are optional or functionality- specific.When using the native transport, io will fallback to the Flash transport if the browser is not capable of supporting the native mode. Make sure the resource responds with the correct
Access-Control-Allow-Origin
header before attempting a native XDR request. -
-
The sub-module
datatype-xml
is now a dependency forio-xdr
, to support XML response data in XDR transactions. -
XDR transport initialization is simplified to one required value -- the path to Flash transport. For example:
Y.io.transport({ src:'io.swf' });
-
The
io-queue
sub-module now implements YUIQueue
. The io queue interface allows transaction callback handlers to be processed in the order the transactions were sent, regardless of actual server response order. For example:-
io queue is used to make three requests.
-
The actual server response order happens to be: transaction 2, 1, 3.
-
However, using the queue interface, the transaction callbacks are processed in the order of: transaction 1, 2, 3.
-
-
All transaction event flows now resolves to
success
orfailure
; the abort event is removed. Transaction abort and timeout conditions resolve tofailure
, and is distinguishable in the response data. Specifically, the response object'sstatus
andstatusText
properties will be populated as:-
response.status
will be 0. -
response.statusText
will be set totimeout
orabort
to differentiate the two possible conditions.
-
-
A new
end
event is introduced in the transaction event flow; this is the terminal event for all transactions. Its event handler signature is the same as thestart
event, receiving the transaction id and user-defined arguments.-
The global event name is
io:end
. -
To subscribe to the transaction event, define the
end
property in the transaction's configuration object.{on: {end: function(){…} } }
.
-
-
YUI
io
is now comprised of several modules, allowing users to specify and implement only the needed modules. These modules are:-
io-base
: This is the IO base class, usingXMLHttpRequest
as the transport. -
io-xdr
: This sub-module extends IO to enable cross-domain transactions using Flash as the transport. -
io-form
: This sub-module extends IO to enable the serialization of an HTML form as transaction data. -
io-upload-iframe
: This sub-module extends IO, to allow file uploads with an HTML form, using aniframe
transport. -
io-queue
: This sub-module extends IO to add transaction queuing capabilities.
-
-
If defined in the configuration object, user-specified, HTTP
Content-Type
headers will correctly override POST default headers, for HTTP POST transactions. [Ticket #SF2262707] -
XML is not supported as a response datatype when using sub-modules
io-xdr
andio-upload-iframe
.
- Initial Release.
- No changes.
- Remove indirect
eval()
. [Ticket #2530295]
- No changes.
-
Convert parse input to a string before processing.
-
eval()
now referenced indirectly to allow for better compression. -
dateToString
deprecated; use areplacer
. A Date function extension is in the works.
- No changes.
-
useNative___ disabled for browsers with very broken native APIs (FF3.1beta1-3).
-
Assumption of
window
removed to support browser-less environment.
-
Leverages native
JSON.stringify
if available. -
Added
Y.JSON.useNativeParse
anduseNativeStringify
properties that can be set tofalse
to use the JavaScript implementations. Use these if your use case triggers an edge-case bug in one of the native implementations. Hopefully these will be unnecessary in a few minor versions of the A-grade browsers. -
Added support for
toJSON()
methods on objects being stringified. -
Moved Date stringification before replacer to be in accordance with ES5.
-
Leverages native
JSON.parse
if available. -
Stringify API change. Third argument changed from depth control to indent (Per the ECMA 5 spec).
-
Stringify now throws an
Error
if the object has cyclical references (Per the ECMA 5 spec). -
Restructured
stringify()
to leverageY.Lang.type
.
- No changes.
- Initial release.
- No changes.
- Support added to specify charset or additional attributes to add to the script tag.
- Success and failure callbacks are no longer executed if the request takes longer than the configured timeout
- allowCache config option added to use the same function proxy for generated requests. Useful to benefit from YQL caching.
Initial release
- No changes.
- Added Alias support and flattened the module structure.
- Alias support: When asking for: "dd" Loader actually asks for: "dd-ddm-base,dd-ddm,dd-ddm-drop,dd-drag,dd-proxy,dd-constrain,dd-drop,dd-scroll,dd-drop-plugin"
- Better RLS support
- 'when' config for conditional modules (before, after, or instead).
- Conditional module support based on user agent detection or test function.
- Added gallery css support
- performance optimizations, cached yui metadata, shared instances, etc
- Fixed ticket #2528771 : Loader has incorrect default for "base" - uses Y.Env, instead of Y.Env.base
- Fixed ticket #2528784 : Regression requesting language packs using Y.use("lang/datatype-date_xx", fn) in build yui3-2029
- Added a 'patterns' property. Modules that are not predefined will be created with the default values if it matches one of the patterns defined for the instance.
- Added module groups. This allows for specifying the base path and the combo properties for a group of modules. The combo support now allows for multiple combo domains.
- Handles simultaneous bootstrapping and loading better.
- Added support for dynamically loading language packs along with modules that have them.
- Intrinsic support for loading yui3-gallery modules.
- Intrinsic support for loading yui2 modules via the 2in3 project.
- Submodule breakdown to allow use of loader without all of the YUI3 metadata.
- Metadata is managed per component instead of centrally.
- Extremely long combo urls are split into multiple requests.
- Loader defends itself against metadata that creates circular dependencies.
- Extracted from the YUI seed. Now fetched dynamically if there are missing dependencies if not included.
- Reads metadata from on-page modules registered via Y.add if the module is not already known.
- Many new modules, many modules reorganized, dependency information has been tuned.
-
Bug fix: Calling insert(null) was throwing an error. [Ticket 2529991]
-
Bug fix: The removeAttribute method was not chainable in IE < 9. [Ticket 2529230]
-
Bug fix: Calling Y.all() without arguments was failing to return an empty NodeList. [Ticket 2530164]
-
Added optional stopAt function/selector argument for ancestor/ancestors().
-
[!] The empty() method now always does a recursive purge. [Ticket 2529829]
-
Added the getDOMNode() and getDOMNodes() methods to Node and NodeList prototypes.
-
The one() method now accepts IDs that begin with a number. [Ticket 2529376]
-
Bug fix: NodeList show()/hide() methods were broken with Transition. [Ticket 2529908]
-
Bug fix: Some NodeList array methods were returning incorrectly. [Ticket 2529942]
-
Added wrap()/unwrap(), show()/hide(), empty(), and load() methods.
-
Added Array 1.5 methods to NodeList.
-
Added the destroy() method to NodeList. [Ticket 2529256]
-
Added the once() method to NodeList. [Ticket 2529369]
-
The appendChild() and insertBefore() methods now accept HTML. [Ticket 2529301]
-
Added the appendTo() method. [Ticket 2529299]
-
Added the ancestors() method. [Ticket 2528610]
-
The setStyle() method now ignores undefined values.
-
Bug fix: Enable querying cloned nodes in IE 6/7. [Ticket 2529487]
-
Added the transition() method.
-
Bug fix: checked pseudo-class for IE input elements. [Ticket 2528895]
-
Bug fix: Fixed IE8 input element rendering. [Ticket 2529035]
- Bug fix: The setContent() method incorrectly handled falsey values. [Ticket 2528740]
-
Added support for invalid IDs. [Ticket 2528195]
-
Fix duplicate IDs across YUI instances. [Ticket 2528199]
-
Allow empty setContent() call to remove content. [Ticket 2528269]
-
Bug fix: Arguments passed to next() were being incorrectly handled. [Ticket 2528295]
- Initial release.
- No changes.
- No changes.
- No changes.
- New beta component
- No changes.
- No changes.
- Fixed an issue with next/previous behavior that could cause focus to get
stuck at the beginning or end of a control set when the
circular
attribute was set tofalse
. [Ticket #2529353]
- Fixed an issue that prevented arrow keys from working properly in form input fields and textareas inside a focused node. [Ticket #2529041]
- No changes.
- No changes.
- Updated the "refresh" method so that it will set up event listeners if they haven't yet been set up, enabling the Focus Manager to be plugged into an empty Node with the focusable descendants to be added later.
- Fixed an issue where mousing down on a child node of a descendant would result in the descendant losing focus.
- Initial release.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
-
Fixed issue where moving the mouse from a submenu label directly out of the document to the browser chrome would trigger a JS error in IE.
-
Fixed issue where submenus would not appear if the user landed on a submenu label by moving the mouse diagonally from the parent menu.
- No changes.
- Now lives on the
Plugin
namespace, as opposed to theplugin
namespace. - Now requires the Focus Manager Node Plugin (
Y.Plugin.NodeFocusManager
). - Now extends
Y.Base
.
- Initial release.
- No changes.
-
Significant performance improvements for
augment()
. -
Bug fix:
augment()
handled thewhitelist
parameter incorrectly when augmenting a function. [Ticket #2530036]
clone()
no longer fails on DOM objects in IE.
- No changes.
clone()
passes functions through.
-
Added
Y.some()
. -
Improved iterators over native objects and YUI list object.
-
Improved deep clone, particularly when dealing with self-referencing objects.
-
Fixed complex property merge when doing a deep aggregation.
- No functional changes.
-
bind()
now adds the arguments supplied to bind before the arguments supplied when the function is executed. Addedrbind()
to provide the old functionality (arguments supplied to bind are appended to the arguments collection supplied to the function when executed). -
bind()
supports a string representing a function on the context object in order to allow overriding methods on superclasses that are bound to a function displaced by AOP. -
Fixed array handling in
clone()
.
- No changes.
- Initial release.
- No changes, see Widget and extensions for changes to dependencies.
- No changes, see Widget and extensions for changes to dependencies.
- No changes, see Widget and extensions for changes to dependencies.
- No changes, see Widget and extensions for changes to dependencies.
- No changes.
-
Added WidgetConstrain support to the packaged Overlay class.
-
Fixed centering when content is set in constructor.
-
Initial release.
-
Modified progressive enhancement use case, to use Document Fragments instead of
innerHTML
to preserve event listeners. -
Fixed use of
centered
,x
andy
in the constructor. These all neededlazyAdd
configuration since they had setters which modified other attribute state.
-
Panel's CSS related to WidgetButtons has been improved. The styling for Panel's header is now much more flexible, while maintaining the position of the close button across browsers and varying amounts of content. [Ticket #2530978]
-
Panel now has a working Night skin. [Ticket #2530937]
-
The sprite image assets for the "close" button on Panels have moved into the WidgetButtons extension's assets. [Ticket #2530952]
-
See also Widget and extensions for changes to dependencies.
- Initial release.
- No changes.
- No changes
- No changes
- Fixed onHostEvent to actually use on (was using after)
- Plugin.Base can now be mixed in as an extension
- No changes
- Added separate host method and host event specific subscription methods, to resolve inconsistency when using doBefore/doAfter in cases where the host supported both an event and a method of the same name.
- No changes
-
Moved Y.Plugin to Y.Plugin.Base
-
Host/Owner object now available through public "host" attribute, as opposed to protected _owner property (this.get("host"))
- No changes.
- No changes.
-
Broke pluginhost into pluginhost-base, pluginhost-config
pluginhost-base provides the core plug/unplug methods.
pluginhost-config provides support for constructor configuration and static configuration of plugins.
-
Added log statement if an invalid plugin is provided
- No changes
- No changes
- Plugins now destroyed correctly, when host is destroyed.
- Split out of "base" as a standalone module, for use by Node.
- No changes.
- No changes.
-
The stringify method in querystring-stringify and querystring-stringify-simple now accepts a configuration object in the second argument. All configuration properties are optional.
For querystring-stringify-simple, the configuration object contains only one property: arrayKey. The default value is false.
For querystring-stringify, the configuration object can be defined with three properties (default values are in parenthesis): arrayKey (false), eq (=), and sep (&).
-
Fixed malformed HTML entities in JSON response, when using
io-upload-iframe
. [Ticket #2528646] -
Fixed configuration HTTP headers should override preset HTTP headers, when identical. [Ticket #2528893]
- No changes.
- No changes.
- Initial release.
- No changes.
- Fixed bug in
promote()
method where the item moved to the head of the queue was wrapped in an array.
- No changes.
- No changes.
- No changes.
- No changes.
queue-base
is now part ofYUI
.queue-run
was renamedasync-queue
and both it andqueue-promote
are now independent modules.
- Overhaul: Broken into
queue-base
,queue-promote
, andqueue-run
.
- No changes.
3.0.0pr1
- Initial release.
- No changes.
- No Changes.
- Initial Release.
No changes.
- #2529992 Allow Resizable nodes be used with DD.Delegate
- #2530007 [Pull Request] - #2529992 Allow Resizable nodes be used with DD.Delegate
Initial release
-
Fixed incorrect scroll width/height calculations to account for translate (for real this time) on Chrome, and now Safari.
translateZ applied for h/w acceleration was resulting in the incorrect scroll values.
-
Removed fallback to cb.scrollWidth/Height, when determining scroll dimensions. This was masking the real problem with translate impacting boundingBox scroll width/height calcs mentioned above.
-
Fixed scrollbar racing ahead of scroll position on FF 5+ with native transition support enabled.
-
Added ability to disable scrollview completely, disable flick or disable drag
// Stops SV from moving through flick/drag or the API. sv.set("disabled", true);
// Stops SV from reacting to flick. Can still drag/scroll through API sv.set("flick", false);
// Stops SV from reacting to drag. Can still flick, scroll through API sv.set("drag", false);
-
Resync UI on scrollview-list class application.
-
Fixed _uiDimensionsChange code which was looking explicitly for the "width" attribute. Just plain wrong.
-
Added vertical paging support.
-
Removed DOMSubtreeModified event listening which was only really kicking in for Webkit and was too heavy handed. User now needs to call syncUI() manually on all browsers, if the content of the scrollview is changed, and may potentially result in dimension changes.
-
Broke out use of transform3d into a seperate method, and added a protected flag, _forceHWTransforms, to allow for customization if required (H/W acceleration related glitches or changing the set of browsers for which we attempt to force it).
-
Created Scrollview-List plugin to provide out-of-the-box handling of List (LI) content inside horizontal and vertical ScrollViews.
-
Fixed incorrect scroll width/height calculations on Chrome 9+, FF when syncUI() [ or _uiDimensionsChange() ] was called when the ScrollView was scrolled over.
-
Protected state flags are now reset if _uiDimensionsChange results in flipped orientation.
-
Use the larger of bb.scrollWidth/Height or cb.scrollWidth/Height, to calculate scroll dimensions to account for FF (which clips cb.scrollWidth) and Chrome/MacOS (which clips bb.scrollWidth when translated even after incorrect scroll calcs above).
-
Fixed shared scrollbar node across multiple instances.
-
Changed async call to _uiDimensionsChange after render, to a sync call.
-
Corrected skin prefix to be yui3-skin-sam instead yui-skin-sam.
-
Refactored for kweight, and broke out scrollview-base-ie conditional module.
-
Don't prevent default on gesturemoveend, so that click listeners on elements inside the scrollview respond reliably. Panning is still prevented by preventing gesturemousemove.
-
Removed generic CSS in scrollview-base.css targeting UL/LI content. The rules were added to support the common use case, but were too broad, and in general, scrollview is content agnostic.
-
The same support can be achieved by adding cssreset to the page (to remove LI bullets, padding, margin), and adding inline block rules, when providing horizontal scrollview content as a list. These rules are provided below:
/* To layout horizontal LIs */ #my-horiz-scrollview-content li { display: inline-block; *display: inline; *zoom:1; }
/* For IE - needs a non-transparent background to pick up events */ #my-scrollview-content li { *zoom:1; background-color:#fff; }
-
Added prefix-less border radius scrollbar styles for IE9.
-
Made scrollbar-paginator skinnable:false. It has no CSS which is applied, out of the box currently. The paginator CSS shipped in 3.2.0, was not actively applied.
- New beta component
- No changes.
- No changes.
- No changes.
- Initial release.
- No changes.
- No changes.
- Default
thumbUrl
no longer broken when using the seed file from the combo service.
-
Leverages touch events when the UA supports them.
-
(un)Swapped skin files for
audio
andaudio-light
skins.
- No changes.
-
[!] Major refactoring. Broken into
SliderBase
,ClickableRail
, andSliderValueRange
classes, andY.Slider
is the product ofY.Base.build(…)
of these.SliderBase
is responsible for rendering the UI and broadcastingslideStart
,slideEnd
, andthumbMove
events.ClickableRail
adds support for clicking on therail
to move thethumb
.SliderValueRange
adds support formin
,max
, andvalue
attributes. Values are integers ranging from 0 to 100 by default.Base.build()
in different value algorithms or extensions to specialize fromSliderBase
. -
[!]
railSize
attribute renamed tolength
. -
[!]
maxGutter
andminGutter
attributes removed. Use CSS and/or apply manually viaslider._dd.con.set('gutter', …);
. -
[!]
rail
,thumb
,thumbImg
Node
attributes removed, as well asHTML_PARSER
support. Progressive enhancement stems from a value source, not a markup source. Various progressive enhancement extensions will arrive in future versions. -
Sam skin updated and 7 new skins added (
sam-dark
,round
,round-dark
,capsule
,capsule-dark
,audio
,audio-light
). -
New markup and CSS structure including separate shadow image (set to same image as thumb, positioned via CSS ala sprite.
-
Thumb placement method changed from
setXY()
andDD
positioning methods to simplersetStyle('left', x)
ortop
for vertical Sliders. Allows rendering and modifying in hidden containers without the need tosyncUI()
when making visible. Still recommended to callsyncUI()
if rendered off DOM, but may not be necessary if using Sam skin. YMMV.
-
Removed noop
_setValueFn()
and the setter config for thevalue
attribute. -
Renamed static protected
AXIS_KEYS
to_AXIS_KEYS
. -
Renamed
_defUpdateValueFromDD
to_defThumbDragFn
per naming conventions. -
Added
_convertOffsetToValue
to mirror_convertValueToOffset
.
-
Renamed the
valueSet
custom event topositionThumb
and rejiggered the logic of the default function and support methods. -
renamed
_defSyncUI
to_defSyncFn
for library nomenclature consistency. -
Added protected
_convertValueToOffset
to help position the thumb. -
Set
bubble: false
on theDD.Drag
instance.
- Initial release.
No changes.
No changes.
- #2529220 Sortable does not allow dragging from original container to a different container back to original i...
- #2529063 Sortable: add getOrdering method
- #2528754 Sortable with nested lists
- #2528761 Request for Sortables to provide events from->to
- #2528769 Scroll Sortables
- #2528819 Sortable allows child div to move outside parent div
- #2529061 Sortable.destroy removes node
No changes.
Initial Release
- No changes.
- No Changes.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- Initial release.
- Now replaces everything if not undefined instead of only objects, strings and numbers (@satyam)
- Added
{LBRACE}
and{RBRACE}
as possible replacement strings so that braces can be included in the resulting string (@satyam) - Improved the restoration of undefined replacements (@satyam)
- No changes.
- No changes.
- No change to this utility, but
Y.Lang.sub()
was added to the YUI core. This is a lightweight version of the substitute utility that follows the same templating syntax, but lacks recursive replacements, object dumping, and string formatting. The advantage is that it is very small, and available in the YUI core -- perhaps the regular expression implementation will be faster than the string manipulation that happens in substitute in some situations.
- No changes.
- Substitute has a
recurse
option to support nested templates (the previous default behavior). Normal operation is now a single level substitution which is tolerant of brackets in the replacement string.
- No changes.
- No changes.
- Initial release.
- No changes.
- No changes.
- Fixed an undefined variable bug
- Fixes to documentation
- Added allowedDomain flashvar to pass the security settings to YUIBridge.
- No changes
- No changes
- Initial Release
- No changes.
- No changes.
- Added API documentation
- Contribution by Ryan Cannon: #2529113 fixed logic in isFlashVersionAtLeast() to account for omitted minor and revision versions of the Flash player.
- No changes
- No changes
- Initial Release
- No change.
- Now accepts a Node instance for the Tab
content
attribute. [Ticket 2529830]
- No change.
- Bug fix: No longer requesting non-existent tabview-plugin.css. [Ticket 2529830]
- Bug fix: Allow for nested TabView widgets. [Ticket 2528737]
- Bug fix: Removed default styling from core CSS. [Ticket 2528782]
- Initial release
- No changes.
- No changes.
- Initial release.
- No change.
-
The transition module now conditionally loads transition-timer as needed.
-
Native transitions are now used when possible for Firefox.
-
Removed transition events in favor of config/callback.
-
Added workaround for webkit transition issue with "auto" values. [Ticket 2529354]
-
Bug fix: Added workaround for Native callbacks failing to fire when transitioning to current value. [Ticket 2529397]
-
Bug fix: Timer-based were throwing errors if the node is removed AND destroyed. [Ticket 2529519]
- Initial release.
- No changes in source code
- Minor example changes
- No changes
- Minor changes in documentation
- Initial release
- No changes.
-
Added workaround in destructor for single box widgets (contentBox === boundingBox) Also extracted DOM removal into separate method, which can be overridden if custom widgets don't want rendered DOM removed.
-
Fixed UI_EVENTS js exception when dealing with nested widgets rendered by different Y instances.
-
Fixed UI_EVENTS invoking nested widget listeners more than once (also fixed regression to Parent-Child as a result of this change).
-
Added support for destroy(true) to Widget, which will remove and destroy all child nodes (not just the boundingBox and contentBox) contained within the Widget's boundingBox in order to help control Node cache size over long-running applications.
destroy() will maintain its current behavior due to the potentially high run-time cost of destroying all child nodes.
Widget developers still need to continue with the best practice of destroying explicit node references they create, in their destructors to support the destroy() case.
-
HTML_PARSER now return null instead of an empty node list, if no nodes are found, when using the [selector] syntax, so that the default value will be applied for the attribute.
-
UI_EVENTS support and skin util methods (only getSkinName currently) broken out of widget-base into separate submodules, widget-uievents and widget-skin.
-
widget-base-ie broken out as conditional module.
-
Fixed widget-locale support. Needed lazyAdd:false, for strings attribute
-
Changed widget UI_EVENTS type parsing, to use EventTarget.parseType and removed after() override, since everything ends up going through on() eventually.
-
Minimized widget dependencies from the complete node, base rollups, to only the node and base submodules widget actually uses
-
Fixed issue in UI_EVENTS handling, where removing the last listener for a ui event, didn't clear out the _delegates hash even though the handler was detached (for example, in tabview, if you remove all tabs, and then add a new tab, clicking on the new tab didn't work.)
- Fixed ticket #2528758 : using widget's DOM event facade ends with error during destroy
- Fixed ticket #2528760 : _applyParsedConfig merges arrays, instead of letting user config win
- "init, render and destroy listeners now called synchronously, if event already fired (see Event README)"
-
"render" event now published with the defaultTargetOnly set to true.
-
Added support for MyWidget.CSS_PREFIX static property to let developers define their own CSS PREFIX instead of yui-<MyWidget.NAME>.
-
Changed default value for the tabIndex attribute to null, meaning by default a Widget's bounding box will not be a focusable element.
-
Widget now has built-in support for Progressive Enhancement.
-
The document element (HTML) is now stamped with a class name (yui-js-enabled) indicating that JS is enabled allowing for the creation of JS-aware Widget CSS style rules for Progressive Enhancement.
-
Widget has support for a class name representing the "loading" state that can be used in combination with the "yui-js-enabled" class name to create style rules for widgets that are in the process of loading.
There is support for use of both a generic Widget and type-specific Widget class name by default (for example: "yui-widget-loading" and "yui-tabview-loading"). -
Widget's renderer will remove the "loading" class names from the bounding box allowing the fully rendered and functional widget to be revealed.
Developer Usage / Requirements
Developers can take advantage of the system by following two steps:
-
Simply stamping the bounding box of their widgets with the corresponding "loading" state class name. The idea being that the markup for this widget is already on the page, and the JS components required to transform/bring the widget to life are in the process of loading.
-
Providing the definition of the loading style for the widget(s).
-
-
Removed parentNode.inDoc() check from render, to allow implementations to render to parentNodes which are document fragments. If rendering to a document fragment, the implementation is responsible for adding the document fragment to the document during the render lifecycle phase.
-
Split widget module into the following sub-modules
- widget-base : Core lifecycle and API support.
- widget-htmlparser : HTML parser support.
The "widget" module, is a roll up of the widget-base and widget-htmlparser submodules.
The widget-locale is a standalone module, which contains the deprecated Internationalization support and has been replaced by the Y.Intl language pack support, to allow strings to be defined separately from code.
-
Removed moveStyles support for 3.1. Can be re-added if required, but currently does not seem to be in use.
-
Made render event fireOnce (along with init and destroy in Base)
-
Widget will now fire user-generated events like DOM elements do (e.g. 'click', 'mouseover'). Like all other Widget events, these events are prefixed with the Widget name (e.g. 'menuitem:click') and the default context of the event listener will be the Widget that fired the event.
The goals/purpose of the Widget UI events are:
-
Provide developers with the ability to listen for UI events as though the Widget is an atomic element, as opposed to DOM events that will bubble up through all of the elements that compose a Widget's UI.
-
These are events that many Widget instances are going to want to publish and fire, so Widget does this by default to ensure that these events are fired in a performant, consistent way across Widget implementations.
Additional info:
-
Widget developers don't have to explicitly publish a given UI event in order for Widget consumers to listen for them. By default UI events are only published and fired if someone is listening for them.
-
Widget developers can choose to publish a given UI event in order to explicitly control some aspect of the event. The most likely use case is the desire to provide the default implementation/handler for a given event. For example: a developer might want to publish a click event for a Menu Widget with the goal of providing the default click implementation/function (what gets canceled if a listener calls the preventDefault() method.)
-
The set of user-generated events published by widget is defined by the UI_EVENTS prototype property. Widget developers can use this property to pair down or extend the number of events that are published and fired automatically.
-
For performance, these events are only created when someone is listening, and the actual firing of these events is facilitated by a single, delegated DOM event listener.
-
-
content box now expands to fill bounding box. CSS is used for browsers which support box-sizing:border-box. Expansion is handled programmatically for others (currently IE6 & IE7). Maybe some edge cases which need resolution.
-
Added an "id" attribute.
-
Added support for auto-rendering of widgets at the end of construction, using the "render" attribute.
-
Added support for single-box widgets (contentBox and boundingBox can point to same node).
Widget developers can set CONTENT_TEMPLATE to null if they have a widget which doesn't need dual-box support.
-
Added _bindAttrUI and _syncAttrUI sugar methods, to bind after listeners and sync methods, by attribute name.
-
The widget's bounding box is now removed from the DOM and destroyed when the widget it destroyed.
-
Added "srcNode" attribute, which acts as the root for HTML_PARSER.
This allows widgets to support progressive enhancement, without having to put the burden on the user to create and point to bounding boxes, or content boxes.
-
Added protected _getSrcNode and _applyParsedConfig methods to allow for HTML_PARSER customization, by allowing Widget developers to customize the node passed into _parseNode on the input side, and the final merged configuration on the output side of the srcNode parsing process.
The default Widget _getSrcNode implementation uses "srcNode" if set, otherwise falls back to "contentBox", for 3.0.0 compatibility.
The default Widget _applyParsedConfig implementation aggregates the user configuration literal, with the configuration output from parsed node, with the user configuration taking precedence.
NOTE: All HTML_PARSER related changes are backward compatible.
Existing Widget implementations should still work. However HTML_PARSER implementations based on contentBox being the root node should be modified to work off of srcNode before the 3.1.0 release.
- No Changes
-
PluginHost moved down to Base.
-
Render event args added to event facade instead of being passed across separately (e.parentNode).
-
"hasFocus" attribute renamed to "focused"
-
"focused" attribute is read only
-
"focused" attribute is set via:
- user interaction
- the "focus" and "blur" methods
-
Only one DOM focus event handler is used now (two for WebKit) and it is bound to the widget's ownerDocument. This allows modal widgets to maintain a reference to the element in the document that previously had focus and to be able to restore that focus when the modal widget is hidden.
-
"tabIndex" attribute was updated
- accepts a number or null
- more documentation
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- Initial release.
- No changes.
- Initial release.
-
Added support for
classNames
property for button configurations which will add the CSS class names to the button Node. The default "close" button uses this, adding ayui3-button-close
CSS class to itself. [Ticket #2531091] -
Fixed the default template for the "close" button to not contain malformed HTML by replacing the
<div>
element inside of a<span>
with a<span>
. The in-lined CSS in the style attribute on the button was moved into an external CSS file which provides the basic styling for the default "close" button for both the Sam and Night skins. The CSS classyui3-widget-buttons
is now applied to theboundingBox
of Widgets which use WidgetButtons. [Ticket #2530952] -
Fixed a bug where instance-level properties were not being initialized causing references to bubble-up the chain to the prototype incorrectly. [Ticket #2530998]
- Initial release.
- No changes.
- No changes
- Changed instanceof to Y.instanceOf, to prevent leaks in IE7
- No changes
- No changes
-
Add new ROOT_TYPE property to constrain the behavior of the "root" attribute to instances of a specified type
-
Fixes to remove method so that it always returns a reference to the child removed
-
Fixed focus-contention issues which caused infinite recursion when multiple modal Panels were visible on the page at the same time. [Ticket #2530953]
-
It is now possible to instantiate a Widget that uses the WidgetModality extension without needing to pass in a configuration Object. [Contributed by Jakub Kuźma] [Ticket #2531086]
-
Replaced references to
document
withY.config.doc
. [Ticket #2531220]
- Initial release.
-
Fixed issue with children not being destroyed, when parent.destroy() is called.
-
Added if (sibling.get("rendered")) check before trying to insert children after/before siblings. This is not required for the out of the box Parent/Child implementation, but is useful for custom implementations which customize children to render asynchronously.
See #2529863
-
Fixed issue where previously rendered children, added to an empty parent, would not get rendered into the parent's child container node.
Based on the pull request from andreas-karlsson, with the root fix and unit test (nicely done): yui#25
- No changes
-
Changed instanceof to Y.instanceOf, to prevent leaks in IE7
-
Renamed "type" in child configuration, to "childType", so that children can have a "type" attribute for it's own context (A FormElement widget for examplei, with a "type").
"type" is still supported but deprecated for backward compatibility, so it's only used to define a child widget type if "childType" is not provided.
-
Fixed remove(), to actually remove child from DOM also.
- No changes
- No changes
- "childAdded" event renamed to "addChild"
- "childRemoved" event renamed to "removeChild"
- Now augmented with Y.ArrayList
- "selection" attribute now returns an Y.ArrayList or Widget
- Removed "children" attribute since that functionality is provided
by Y.ArrayList
- Can retrieve # of child via the size() method
- Can iterate children via this.each()
- Can retrieve a individual child via the item() method
- add method will always return a Y.ArrayList instance for easy chaining
- removeAll method will always return a Y.ArrayList instance for easy chaining
- added selectAll() and deselectAll() methods
- widget UI will render children added/inserted children after widget is rendered
- widget UI will update when a child is removed
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- Relatively positioned bounding boxes, will default to page position instead of 0,0
-
Initial release.
-
Fixed ability to set individual x, y values.
-
The widget's alignment is now re-synced to the DOM every time the widget's
visible
Attribute is changed totrue
. [Ticket #2530779] -
Syncing the current alignment to the DOM is now supported in the public API by calling
align()
with no arguments. [Ticket #2529911]
- Added
alignOn
attribute which allows the implementer to specify when the Widget should be re-aligned.
- No changes.
- No changes.
- No changes.
- Renamed module from
widget-position-ext
towidget-position-align
.
- Initial release.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- Initial release.
- The shim element is now sizing correctly the first time a widget is shown
after it was instantiated with the
visible
Attribute set tofalse
. Note: The shim element is only used with IE 6 by default. [Ticket #2529127]
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
-
Initial release.
-
Recreate iframe shim from
TEMPLATE
for each instance, instead of cloning a class level cached Node instance, so thatownerDocument
can be set to match theboundingBox
.
- No changes.
- Move attribute event listeners to
_renderUIStdMod()
method so thatsetStdModContent()
can be called onrenderUI()
.
-
[!] Removed
_addNodeHTML()
, and renamed_addNodeRef()
to_addStdModContent()
(both private), since one method now handles both Strings and Node/NodeLists. -
Changed instanceof to Y.instanceOf, to prevent leaks in IE7.
-
Moved to
node.insert()
for content management, since it now handles Strings, Nodes and NodeLists. This also fixes an issue where resetting the content to the existing content (e.g. callingsyncUI()
), would blow away the content in IE.
- Setting content to
null
(orundefined
, orNaN
), will remove section from the std mod.
- No changes.
-
Changed widget stdmod
renderUI()
/syncUI()
/bindUI()
toY.before
, so that they are called before the Widget implementation, and setup theheader
/body
/footer
Node references for the Widget impl to use. -
Setting section content to
""
will now create the respective section. -
Fixed
fillHeight
, to work withcontentBox
height, now that it fillsboundingBox
. -
Fixed
setStdModContent("markupString", AFTER | BEFORE)
so that it usesnode.append()
,node.prepend()
instead ofinnerHTML
to maintain event listeners. -
fillHeight
is now invoked whenheight
is changed. It was not being invoked because of a typo in the event name.
-
Initial release.
-
Cleaned up the way
headerContent
,bodyContent
,footerContent
are configured, so that the actual stored value is always accurate, without the need for a getter which talks to the DOM directly. -
Recreate sections from
TEMPLATE
string for each instance, instead of cloning a class level cached Node instance, so thatownerDocument
can be set to match thecontentBox
. -
Replaced use of
innerHTML
for progressive enhancement use case with a Document Fragment when parsing and then settingheaderContent
,bodyContent
,footerContent
inHTML_PARSER
impl, to maintain event listeners etc.
No changes.
#2530246 - Fixed bug in yql module where options ('opts') were not actually being used. This prevented use YQL calls over SSL, which some tables require.
#2529504 - Added support for JSONP allowCache setting to make YQL requests use the same callback
Initial Release
-
Sparse arrays are now handled correctly in the non-native fallback implementation of
Y.Array.indexOf()
. [Ticket #2530966] -
Y.mix()
will no longer shadow prototype properties on the receiver unless theoverwrite
parameter is true. This was the pre-3.4.0 behavior, but was changed in 3.4.0. We're changing it back to preserve backwards compatibility. [Ticket #2530501] -
The non-native fallback implementation of
Y.Object.keys()
now contains a workaround for buggy browsers that treat functionprototype
properties as enumerable in violation of the ES5 spec. -
Y.Object.size()
now returns0
for non-objects. This was the pre-3.4.0 behavior, but regressed in 3.4.0. [Ticket #2531069]
- Added
Y.Array.dedupe()
, which provides an optimized solution for deduping arrays of strings. When you know an array contains only strings, usededupe
, since it's faster thanunique
. Y.Lang.isArray()
now uses the native ES5Array.isArray()
method when possible.Y.Object()
now uses the native ES5Object.create()
method when possible.Y.Object.keys()
now uses the native ES5Object.keys()
method when possible.- Sparse arrays are now handled correctly in the non-native fallback
implementations of
Y.Array.each
,Y.Array.hash
, andY.Array.some
. [Ticket #2530376] - Added async:true support to Get, to dispatch scripts/link nodes in parallel. NOTE: Order of execution is not guaranteed (it's not required for the YUI Module use case, for which this feature was introduced - to improve performance). onSuccess is called once, after all files are loaded.
- Added onProgress callback support to Get, which is useful when dispatching multiple scripts using the [] syntax. onProgress is called when each script is done loading.
- Added fast path for repeat calls to
use()
with the same arguments. - Added a
Y.destroy()
method, which destroys the YUI instance. - Added
Y.Lang.now()
, which returns the current time in milliseconds. - Added
YUI.GlobalConfig
to allow three stages of configuration (YUI.GlobalConfig
-->YUI_Config
--> instance configs). This is helpful in non-browser environments for supplying a global config for the YUI container.
- Added
Y.Lang.sub()
, which is a very lightweight version ofY.substitute()
. Y.Array.hash()
no longer skips falsy values.- Script errors in module and
use()
callback functions are caught and routed throughY.error
. Y.error
invokations can be monitored with theerrorFn
configuration.- Returning
true
from theerrorFn
will prevent the script error from halting further script execution. - Added UA properties for mobile devices and ensured that UA is only evaluated once.
- The YUI global will overwrite itself when included again, while attempting to preserve the global environment of previous instances.
- Added a remote loader service submodule.
- Added a features submodule. This is used by the capability-based loader when dispatching to a remote loader service.
- Removed the limit on the number of config objects you can supply to the
YUI
constructor.
- YUI will attempt to fetch newly discovered dependencies after a module is dynamically loaded.
- The
documentElement
(<html>
) is now stamped with ayui3-js-enabled
classname to indicate that JS is enabled. This allows for the creation of JS-aware CSS style rules that progressively enhance the page. - Added the ability to define a global configuration object (
YUI_config
). - Added
Y.Object.some()
andY.some()
, which are analogous toY.Array.some()
. - UA refinements for Chrome, Android and other browsers/platforms.
- Inserted script nodes get
charset="utf-8"
by default. - Added
last()
toQueue
for LIFO support. - Added throttle utility to buffer expensive functions that are called frequently.
- The
YUI.add()
callback now gets the module name as the second parameter for generic processing of similar modules. - Added
intl-base
submodule to process the decision tree for selecting language packs when dynamically loading internationalized modules. Y.guid()
generates identifiers that are safe to use as HTML attributes.- Improved persistent messaging for missing modules/functionality.
- Bootstrapping improved to prevent simultaneous loading of resources when multiple instances are launched at the same moment.
- The YUI script source URL is read in order to try to dynamically determine the base path for loading resources on demand.
- The core loads without errors in non-browser environments.
- Extracted the loader from the seed file. If loader is not available, but
get
is and dependencies are missing, the loader will be fetched before continuing. - User agent detection is more granular. For example, Firefox 3.5 reports Gecko 1.91 rather than 1.9.
- Fixed
Y.UA.os
. - Added additional mobile device detection.
- Get utility cleans up attribues before purging nodes.
Y.cached
accepts a parameter to refresh a cached value.yui-log
andyui-later
are now optional modules that are included withyui.js
.queue-base
is no longer a submodule ofqueue
-- it's now part ofyui-base
.- All YUI submodules end up in the
yui
build directory. - Dynamic loading can be disabled by setting the
bootstrap
config tofalse
.
Y.fail
has been renamed toY.error
so thatY.fail
can be used for the assertion engine.Y.stamp
now accepts areadOnly
parameter to be used when you are only interested in reading an existing guid rather than creating a new one.Y.stamp
defends against stamping items that can't be stamped.- Added to
Y.Object
:values()
,hasKey()
,hasValue()
,size()
,getValue()
,setValue()
(the latter two are for manipulating nested values). Y.use
calls are queued during dynamic loading.- Added
Y.cached
for function memoizing - Added
numericSort
toY.Array
. - The
yui:log
event broadcasts globally.
- Added
Y.Lang.type
(typeof
abstraction) and refactored some 'is' methods to use it.
- Accepts an attribute collection config to apply to inserted nodes.
id
attributes are globally unique- Now accepts
purgethreshold
as a config option. This will set the number of transactions required before auto removing nodes from previous transactions (default is 20).
yuitest
renamed totest
, now requirescollection
.- Lots of new module metadata.
- Added
onCSS
. - Loader requests are queued globally.
- Accepts
jsAttributes
andcssAttributes
configs for adding attributes to inserted nodes - Added
force
config.
- Added
secure
property for SSL detection. - Added
os
property for OS detection. - Added Adobe Air and Google Caja detection.
- The initial dependency calculation should not allow automatic rollup.
Y.fail
will throw/rethrow errors by default (throwFail
is nowtrue
).Y.namespace
reverted to scrubYAHOO
out if included as the first level of the namespace.useConsole
config changed touseBrowserConsole
.
- Added
Y.Array.some()
.
- Protects against trailing commas in the array of files to load.
get
requiresyui-base
.loader
requiresget
.- Combo URL build process defends against undefined modules.
- Added combo handler support for CSS.
- Filters are correctly applied to combo and fullpath URLs.
- Added
compat
,profiler
,yuitest
,widget
,stylesheet
,classnamemanager
,overlay
,plugin
,slider
, andconsole
modules. - Added
io
submodules. queue
requiresevent
.- Added submodule metadata logic.
- Added plugin metadata logic.
- Added skin metadata logic.
- Initial release.
No changes.
Removed from yui-core and bumped to a stand alone module.