diff --git a/lib/outputrequirementslib.php b/lib/outputrequirementslib.php
index baabc5ca7d8..0dbe7bbb985 100644
--- a/lib/outputrequirementslib.php
+++ b/lib/outputrequirementslib.php
@@ -167,13 +167,22 @@ class page_requirements_manager {
$this->yui3loader = new stdClass();
$this->YUI_config = new YUI_config();
+ if (strpos($CFG->httpswwwroot, 'https:') === 0) {
+ // On HTTPS sites all JS must be loaded from https sites,
+ // YUI CDN does not support https yet, sorry.
+ $CFG->useexternalyui = 0;
+ }
+
// Set up some loader options.
- if (!empty($CFG->useexternalyui) and strpos($CFG->httpswwwroot, 'https:') !== 0) {
- $this->yui3loader->base = 'http://yui.yahooapis.com/' . $CFG->yui3version . '/build/';
+ $this->yui3loader->local_base = $CFG->httpswwwroot . '/lib/yuilib/'. $CFG->yui3version . '/';
+ $this->yui3loader->local_comboBase = $CFG->httpswwwroot . '/theme/yui_combo.php'.$sep;
+
+ if (!empty($CFG->useexternalyui)) {
+ $this->yui3loader->base = 'http://yui.yahooapis.com/' . $CFG->yui3version . '/';
$this->yui3loader->comboBase = 'http://yui.yahooapis.com/combo?';
} else {
- $this->yui3loader->base = $CFG->httpswwwroot . '/lib/yuilib/'. $CFG->yui3version . '/build/';
- $this->yui3loader->comboBase = $CFG->httpswwwroot . '/theme/yui_combo.php'.$sep;
+ $this->yui3loader->base = $this->yui3loader->local_base;
+ $this->yui3loader->comboBase = $this->yui3loader->local_comboBase;
}
// Enable combo loader? This significantly helps with caching and performance!
@@ -1219,25 +1228,28 @@ class page_requirements_manager {
$code = '';
+ // Note: SimpleYUI is broken in 3.12 and will not be available in future YUI versions,
+ // that is why we can not load it from CDN.
+
if ($this->yui3loader->combine) {
if (!empty($page->theme->yuicssmodules)) {
$modules = array();
foreach ($page->theme->yuicssmodules as $module) {
- $modules[] = "$CFG->yui3version/build/$module/$module-min.css";
+ $modules[] = "$CFG->yui3version/$module/$module-min.css";
}
$code .= '';
}
- $code .= '';
+ $code .= '';
} else {
if (!empty($page->theme->yuicssmodules)) {
foreach ($page->theme->yuicssmodules as $module) {
$code .= '';
}
}
- $code .= '';
- $code .= '';
+ $code .= '';
+ $code .= '';
}
diff --git a/lib/setup.php b/lib/setup.php
index ecf49176559..40cab06f4da 100644
--- a/lib/setup.php
+++ b/lib/setup.php
@@ -322,7 +322,7 @@ umask($CFG->umaskpermissions);
// exact version of currently used yui2 and 3 library
$CFG->yui2version = '2.9.0';
-$CFG->yui3version = '3.9.1';
+$CFG->yui3version = '3.12.0';
// Store settings from config.php in array in $CFG - we can use it later to detect problems and overrides.
if (!isset($CFG->config_php_settings)) {
diff --git a/lib/thirdpartylibs.xml b/lib/thirdpartylibs.xml
index 6ec4089fb9f..d3e16ae5f14 100644
--- a/lib/thirdpartylibs.xml
+++ b/lib/thirdpartylibs.xml
@@ -200,7 +200,7 @@
The callback signature is Unlike fill, and attributes of , Graphic
- * Shape instances. The anim-shape submodule can be used for all animations involving
- * Graphic Shape attributes.
+ * Adds support for the transform and fill attributes of Graphic
+ * and Shape instances. The anim-shape submodule can be used for all animations
+ * involving Graphic Shape attributes.
*
* @module anim
* @submodule anim-shape
@@ -183,4 +189,4 @@ YUI.add('anim-shape', function (Y, NAME) {
-}, '3.9.1', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
+}, '3.12.0', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
diff --git a/lib/yuilib/3.9.1/build/anim-shape/anim-shape-min.js b/lib/yuilib/3.12.0/anim-shape/anim-shape-min.js
old mode 100644
new mode 100755
similarity index 85%
rename from lib/yuilib/3.9.1/build/anim-shape/anim-shape-min.js
rename to lib/yuilib/3.12.0/anim-shape/anim-shape-min.js
index b2575e612fe..d1cc7d4adeb
--- a/lib/yuilib/3.9.1/build/anim-shape/anim-shape-min.js
+++ b/lib/yuilib/3.12.0/anim-shape/anim-shape-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("anim-shape",function(e,t){var n=Number,r,i,s="color",o="stops",u="type",a=function(t,r,i,o,u,a){var f=0,l=e.Anim.getUpdatedColorValue,c,h,p,d=i.length,v=[],m;for(;ffill, and attributes of Graphic
- * Shape instances. The anim-shape submodule can be used for all animations involving
- * Graphic Shape attributes.
+ * Adds support for the transform and fill attributes of Graphic
+ * and Shape instances. The anim-shape submodule can be used for all animations
+ * involving Graphic Shape attributes.
*
* @module anim
* @submodule anim-shape
@@ -183,4 +189,4 @@ YUI.add('anim-shape', function (Y, NAME) {
-}, '3.9.1', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
+}, '3.12.0', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
diff --git a/lib/yuilib/3.9.1/build/anim-xy/anim-xy-debug.js b/lib/yuilib/3.12.0/anim-xy/anim-xy-debug.js
old mode 100644
new mode 100755
similarity index 73%
rename from lib/yuilib/3.9.1/build/anim-xy/anim-xy-debug.js
rename to lib/yuilib/3.12.0/anim-xy/anim-xy-debug.js
index 283f1d227d5..76f38afe86c
--- a/lib/yuilib/3.9.1/build/anim-xy/anim-xy-debug.js
+++ b/lib/yuilib/3.12.0/anim-xy/anim-xy-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('anim-xy', function (Y, NAME) {
/**
@@ -24,4 +30,4 @@ Y.Anim.behaviors.xy = {
-}, '3.9.1', {"requires": ["anim-base", "node-screen"]});
+}, '3.12.0', {"requires": ["anim-base", "node-screen"]});
diff --git a/lib/yuilib/3.12.0/anim-xy/anim-xy-min.js b/lib/yuilib/3.12.0/anim-xy/anim-xy-min.js
new file mode 100755
index 00000000000..2f2bf96dc1a
--- /dev/null
+++ b/lib/yuilib/3.12.0/anim-xy/anim-xy-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("anim-xy",function(e,t){var n=Number;e.Anim.behaviors.xy={set:function(e,t,r,i,s,o,u){e._node.setXY([u(s,n(r[0]),n(i[0])-n(r[0]),o),u(s,n(r[1]),n(i[1])-n(r[1]),o)])},get:function(e){return e._node.getXY()}}},"3.12.0",{requires:["anim-base","node-screen"]});
diff --git a/lib/yuilib/3.9.1/build/anim-xy/anim-xy.js b/lib/yuilib/3.12.0/anim-xy/anim-xy.js
old mode 100644
new mode 100755
similarity index 73%
rename from lib/yuilib/3.9.1/build/anim-xy/anim-xy.js
rename to lib/yuilib/3.12.0/anim-xy/anim-xy.js
index 283f1d227d5..76f38afe86c
--- a/lib/yuilib/3.9.1/build/anim-xy/anim-xy.js
+++ b/lib/yuilib/3.12.0/anim-xy/anim-xy.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('anim-xy', function (Y, NAME) {
/**
@@ -24,4 +30,4 @@ Y.Anim.behaviors.xy = {
-}, '3.9.1', {"requires": ["anim-base", "node-screen"]});
+}, '3.12.0', {"requires": ["anim-base", "node-screen"]});
diff --git a/lib/yuilib/3.9.1/build/app-base/app-base-debug.js b/lib/yuilib/3.12.0/app-base/app-base-debug.js
old mode 100644
new mode 100755
similarity index 99%
rename from lib/yuilib/3.9.1/build/app-base/app-base-debug.js
rename to lib/yuilib/3.12.0/app-base/app-base-debug.js
index 4ecab09888f..e884a26ff82
--- a/lib/yuilib/3.9.1/build/app-base/app-base-debug.js
+++ b/lib/yuilib/3.12.0/app-base/app-base-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('app-base', function (Y, NAME) {
/**
@@ -1096,4 +1102,4 @@ Default `serverRouting` attribute value for all apps.
**/
-}, '3.9.1', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
+}, '3.12.0', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
diff --git a/lib/yuilib/3.9.1/build/app-base/app-base-min.js b/lib/yuilib/3.12.0/app-base/app-base-min.js
old mode 100644
new mode 100755
similarity index 93%
rename from lib/yuilib/3.9.1/build/app-base/app-base-min.js
rename to lib/yuilib/3.12.0/app-base/app-base-min.js
index 72137be10e4..612735536c3
--- a/lib/yuilib/3.9.1/build/app-base/app-base-min.js
+++ b/lib/yuilib/3.12.0/app-base/app-base-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("app-base",function(e,t){var n=e.Lang,r=e.Object,i=e.PjaxBase,s=e.Router,o=e.View,u=e.ClassNameManager.getClassName,a=e.config.win,f;f=e.Base.create("app",e.Base,[o,s,i],{views:{},initializer:function(t){function i(t,r){n[r]=e.merge(n[r],t)}t||(t={});var n={};r.each(this.views,i),r.each(t.views,i),this.views=n,this._viewInfoMap={},this.after("activeViewChange",e.bind("_afterActiveViewChange",this)),this.get("serverRouting")||this._pjaxBindUI()},createView:function(t,i){var s=this.getViewInfo(t),u=s&&s.type||o,a,f;return a=n.isString(u)?r.getValue(e,u.split(".")):u,f=new a(i),this._viewInfoMap[e.stamp(f,!0)]=s,f},getViewInfo:function(t){return n.isString(t)?this.views[t]:t&&this._viewInfoMap[e.stamp(t,!0)]},render:function(){var t=e.App.CLASS_NAMES,n=this.get("container"),r=this.get("viewContainer"),i=this.get("activeView"),s=i&&i.get("container"),o=n.compareTo(r);return n.addClass(t.app),r.addClass(t.views),i&&!r.contains(s)&&r.appendChild(s),!n.contains(r)&&!o&&n.appendChild(r),this},showView:function(t,r,i,s){var o,u;return i||(i={}),s?i=e.merge(i,{callback:s}):n.isFunction(i)&&(i={callback:i}),n.isString(t)&&(o=this.getViewInfo(t),o&&o.preserve&&o.instance?(t=o.instance,this._viewInfoMap[e.stamp(t,!0)]=o):(t=this.createView(t,r),u=!0)),i.update&&!u&&t.setAttrs(r),"render"in i?i.render&&t.render():u&&t.render(),this._set("activeView",t,{options:i})},_attachView:function(e,t){if(!e)return;var n=this.getViewInfo(e),r=this.get("viewContainer");e.addTarget(this),n&&(n.instance=e),r[t?"prepend":"append"](e.get("container"))},_destroyContainer:function(){var t=e.App.CLASS_NAMES,n=this.get("container"),r=this.get("viewContainer"),i=n.compareTo(r);if(e.one("body").compareTo(n)){this.detachEvents(),n.removeClass(t.app),i?n.removeClass(t.views):r.remove(!0);return}r.remove(!0),i||n.remove(!0)},_detachView:function(t){if(!t)return;var n=this.getViewInfo(t)||{};n.preserve?t.remove():(t.destroy({remove:!0}),delete this._viewInfoMap[e.stamp(t,!0)],t===n.instance&&delete n.instance),t.removeTarget(this)},_getViewContainer:function(e){return!e&&!this._viewContainer&&(e=this._viewContainer=this.create(),this._set("viewContainer",e)),e},_initHtml5:function(){return this.get("serverRouting")===!1?!1:s.html5},_isChildView:function(e,t){var n=this.getViewInfo(e),r=this.getViewInfo(t);return n&&r?this.getViewInfo(n.parent)===r:!1},_isParentView:function(e,t){var n=this.getViewInfo(e),r=this.getViewInfo(t);return n&&r?this.getViewInfo(r.parent)===n:!1},_navigate:function(t,n){return this.get("serverRouting")||(n=e.merge({force:!0},n)),i.prototype._navigate.call(this,t,n)},_save:function(t,n){var r;return this.get("serverRouting")&&!this.get("html5")?this._hasSameOrigin(t)?(a&&(r=this._joinURL(t||""),n?a.location.replace(r):a.location=r),this):(e.error("Security error: The new URL must be of the same origin as the current URL."),this):s.prototype._save.apply(this,arguments)},_uiSetActiveView:function(e,t,n){n||(n={});var r=n.callback,i=this._isChildView(e,t),s=!i&&this._isParentView(e,t),o=!!n.prepend||s;if(e===t)return r&&r.call(this,e);this._attachView(e,o),this._detachView(t),r&&r.call(this,e)},_afterActiveViewChange:function(e){this._uiSetActiveView(e.newVal,e.prevVal,e.options)}},{ATTRS:{activeView:{value:null,readOnly:!0},container:{valueFn:function(){return e.one("body")}},html5:{valueFn:"_initHtml5"},linkSelector:{value:"a"},serverRouting:{valueFn:function(){return e.App.serverRouting},writeOnce:"initOnly"},viewContainer:{getter:"_getViewContainer",setter:e.one,writeOnce:!0}},_NON_ATTRS_CFG:["views"]}),e.namespace("App").Base=f,e.App=e.mix(e.Base.create("app",f,[]),e.App,!0),e.App.CLASS_NAMES={app:u("app"),views:u("app","views")}},"3.9.1",{requires:["classnamemanager","pjax-base","router","view"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("app-base",function(e,t){var n=e.Lang,r=e.Object,i=e.PjaxBase,s=e.Router,o=e.View,u=e.ClassNameManager.getClassName,a=e.config.win,f;f=e.Base.create("app",e.Base,[o,s,i],{views:{},initializer:function(t){function i(t,r){n[r]=e.merge(n[r],t)}t||(t={});var n={};r.each(this.views,i),r.each(t.views,i),this.views=n,this._viewInfoMap={},this.after("activeViewChange",e.bind("_afterActiveViewChange",this)),this.get("serverRouting")||this._pjaxBindUI()},createView:function(t,i){var s=this.getViewInfo(t),u=s&&s.type||o,a,f;return a=n.isString(u)?r.getValue(e,u.split(".")):u,f=new a(i),this._viewInfoMap[e.stamp(f,!0)]=s,f},getViewInfo:function(t){return n.isString(t)?this.views[t]:t&&this._viewInfoMap[e.stamp(t,!0)]},render:function(){var t=e.App.CLASS_NAMES,n=this.get("container"),r=this.get("viewContainer"),i=this.get("activeView"),s=i&&i.get("container"),o=n.compareTo(r);return n.addClass(t.app),r.addClass(t.views),i&&!r.contains(s)&&r.appendChild(s),!n.contains(r)&&!o&&n.appendChild(r),this},showView:function(t,r,i,s){var o,u;return i||(i={}),s?i=e.merge(i,{callback:s}):n.isFunction(i)&&(i={callback:i}),n.isString(t)&&(o=this.getViewInfo(t),o&&o.preserve&&o.instance?(t=o.instance,this._viewInfoMap[e.stamp(t,!0)]=o):(t=this.createView(t,r),u=!0)),i.update&&!u&&t.setAttrs(r),"render"in i?i.render&&t.render():u&&t.render(),this._set("activeView",t,{options:i})},_attachView:function(e,t){if(!e)return;var n=this.getViewInfo(e),r=this.get("viewContainer");e.addTarget(this),n&&(n.instance=e),r[t?"prepend":"append"](e.get("container"))},_destroyContainer:function(){var t=e.App.CLASS_NAMES,n=this.get("container"),r=this.get("viewContainer"),i=n.compareTo(r);if(e.one("body").compareTo(n)){this.detachEvents(),n.removeClass(t.app),i?n.removeClass(t.views):r.remove(!0);return}r.remove(!0),i||n.remove(!0)},_detachView:function(t){if(!t)return;var n=this.getViewInfo(t)||{};n.preserve?t.remove():(t.destroy({remove:!0}),delete this._viewInfoMap[e.stamp(t,!0)],t===n.instance&&delete n.instance),t.removeTarget(this)},_getViewContainer:function(e){return!e&&!this._viewContainer&&(e=this._viewContainer=this.create(),this._set("viewContainer",e)),e},_initHtml5:function(){return this.get("serverRouting")===!1?!1:s.html5},_isChildView:function(e,t){var n=this.getViewInfo(e),r=this.getViewInfo(t);return n&&r?this.getViewInfo(n.parent)===r:!1},_isParentView:function(e,t){var n=this.getViewInfo(e),r=this.getViewInfo(t);return n&&r?this.getViewInfo(r.parent)===n:!1},_navigate:function(t,n){return this.get("serverRouting")||(n=e.merge({force:!0},n)),i.prototype._navigate.call(this,t,n)},_save:function(t,n){var r;return this.get("serverRouting")&&!this.get("html5")?this._hasSameOrigin(t)?(a&&(r=this._joinURL(t||""),n?a.location.replace(r):a.location=r),this):(e.error("Security error: The new URL must be of the same origin as the current URL."),this):s.prototype._save.apply(this,arguments)},_uiSetActiveView:function(e,t,n){n||(n={});var r=n.callback,i=this._isChildView(e,t),s=!i&&this._isParentView(e,t),o=!!n.prepend||s;if(e===t)return r&&r.call(this,e);this._attachView(e,o),this._detachView(t),r&&r.call(this,e)},_afterActiveViewChange:function(e){this._uiSetActiveView(e.newVal,e.prevVal,e.options)}},{ATTRS:{activeView:{value:null,readOnly:!0},container:{valueFn:function(){return e.one("body")}},html5:{valueFn:"_initHtml5"},linkSelector:{value:"a"},serverRouting:{valueFn:function(){return e.App.serverRouting},writeOnce:"initOnly"},viewContainer:{getter:"_getViewContainer",setter:e.one,writeOnce:!0}},_NON_ATTRS_CFG:["views"]}),e.namespace("App").Base=f,e.App=e.mix(e.Base.create("app",f,[]),e.App,!0),e.App.CLASS_NAMES={app:u("app"),views:u("app","views")}},"3.12.0",{requires:["classnamemanager","pjax-base","router","view"]});
diff --git a/lib/yuilib/3.9.1/build/app-base/app-base.js b/lib/yuilib/3.12.0/app-base/app-base.js
old mode 100644
new mode 100755
similarity index 99%
rename from lib/yuilib/3.9.1/build/app-base/app-base.js
rename to lib/yuilib/3.12.0/app-base/app-base.js
index 4ecab09888f..e884a26ff82
--- a/lib/yuilib/3.9.1/build/app-base/app-base.js
+++ b/lib/yuilib/3.12.0/app-base/app-base.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('app-base', function (Y, NAME) {
/**
@@ -1096,4 +1102,4 @@ Default `serverRouting` attribute value for all apps.
**/
-}, '3.9.1', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
+}, '3.12.0', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
diff --git a/lib/yuilib/3.9.1/build/app-content/app-content-debug.js b/lib/yuilib/3.12.0/app-content/app-content-debug.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/app-content/app-content-debug.js
rename to lib/yuilib/3.12.0/app-content/app-content-debug.js
index 80f0fd2d2e5..7c4b1238be8
--- a/lib/yuilib/3.9.1/build/app-content/app-content-debug.js
+++ b/lib/yuilib/3.12.0/app-content/app-content-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('app-content', function (Y, NAME) {
/**
@@ -232,4 +238,4 @@ Y.App.Content = AppContent;
Y.Base.mix(Y.App, [AppContent]);
-}, '3.9.1', {"requires": ["app-base", "pjax-content"]});
+}, '3.12.0', {"requires": ["app-base", "pjax-content"]});
diff --git a/lib/yuilib/3.9.1/build/app-content/app-content-min.js b/lib/yuilib/3.12.0/app-content/app-content-min.js
old mode 100644
new mode 100755
similarity index 80%
rename from lib/yuilib/3.9.1/build/app-content/app-content-min.js
rename to lib/yuilib/3.12.0/app-content/app-content-min.js
index e4f2a1a67cc..0e43d638756
--- a/lib/yuilib/3.9.1/build/app-content/app-content-min.js
+++ b/lib/yuilib/3.12.0/app-content/app-content-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("app-content",function(e,t){function r(){n.apply(this,arguments)}var n=e.PjaxContent;r.route=["loadContent","_contentRoute"],r.prototype={showContent:function(t,n,r){t=e.one(t),typeof n=="function"&&(n={callback:n},r=null),n=e.merge({render:!1},n);var i=n.view||"",s=typeof i=="string"?i:i.name,o=typeof i!="string"?i.config:{},u=this.getViewInfo(s),a,f,l,c;return delete n.view,t&&t.isFragment()&&t.get("childNodes").size()===1&&(t=t.get("firstChild")),t&&t.get("nodeType")===1?a=t:(l=u&&u.type||e.View,c=typeof l=="string"?e.Object.getValue(e,l.split(".")):l,f=c.prototype.containerTemplate,a=e.Node.create(f),a.append(t)),o=e.merge(o,{container:a}),this.showView(s,o,n,r)},_contentRoute:function(t,n,r){var i=n.content,s=e.config.doc,o;if(!i||!i.node)return r();i.title&&s&&(o=this.onceAfter("activeViewChange",function(){s.title=i.title})),this.showContent(i.node),o&&o.detach(),r()}},r.ATTRS=e.Attribute.protectAttrs(n.ATTRS),e.mix(r,n,!1,null,1),e.App.Content=r,e.Base.mix(e.App,[r])},"3.9.1",{requires:["app-base","pjax-content"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("app-content",function(e,t){function r(){n.apply(this,arguments)}var n=e.PjaxContent;r.route=["loadContent","_contentRoute"],r.prototype={showContent:function(t,n,r){t=e.one(t),typeof n=="function"&&(n={callback:n},r=null),n=e.merge({render:!1},n);var i=n.view||"",s=typeof i=="string"?i:i.name,o=typeof i!="string"?i.config:{},u=this.getViewInfo(s),a,f,l,c;return delete n.view,t&&t.isFragment()&&t.get("childNodes").size()===1&&(t=t.get("firstChild")),t&&t.get("nodeType")===1?a=t:(l=u&&u.type||e.View,c=typeof l=="string"?e.Object.getValue(e,l.split(".")):l,f=c.prototype.containerTemplate,a=e.Node.create(f),a.append(t)),o=e.merge(o,{container:a}),this.showView(s,o,n,r)},_contentRoute:function(t,n,r){var i=n.content,s=e.config.doc,o;if(!i||!i.node)return r();i.title&&s&&(o=this.onceAfter("activeViewChange",function(){s.title=i.title})),this.showContent(i.node),o&&o.detach(),r()}},r.ATTRS=e.Attribute.protectAttrs(n.ATTRS),e.mix(r,n,!1,null,1),e.App.Content=r,e.Base.mix(e.App,[r])},"3.12.0",{requires:["app-base","pjax-content"]});
diff --git a/lib/yuilib/3.9.1/build/app-content/app-content.js b/lib/yuilib/3.12.0/app-content/app-content.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/app-content/app-content.js
rename to lib/yuilib/3.12.0/app-content/app-content.js
index 80f0fd2d2e5..7c4b1238be8
--- a/lib/yuilib/3.9.1/build/app-content/app-content.js
+++ b/lib/yuilib/3.12.0/app-content/app-content.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('app-content', function (Y, NAME) {
/**
@@ -232,4 +238,4 @@ Y.App.Content = AppContent;
Y.Base.mix(Y.App, [AppContent]);
-}, '3.9.1', {"requires": ["app-base", "pjax-content"]});
+}, '3.12.0', {"requires": ["app-base", "pjax-content"]});
diff --git a/lib/yuilib/3.9.1/build/app-transitions-css/app-transitions-css-min.css b/lib/yuilib/3.12.0/app-transitions-css/app-transitions-css-min.css
old mode 100644
new mode 100755
similarity index 81%
rename from lib/yuilib/3.9.1/build/app-transitions-css/app-transitions-css-min.css
rename to lib/yuilib/3.12.0/app-transitions-css/app-transitions-css-min.css
index aa01464456b..d710f9864fa
--- a/lib/yuilib/3.9.1/build/app-transitions-css/app-transitions-css-min.css
+++ b/lib/yuilib/3.12.0/app-transitions-css/app-transitions-css-min.css
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-app-transitioning .yui3-app-views,.yui3-app-views.yui3-app-transitioning{overflow-x:hidden;position:relative;white-space:nowrap;letter-spacing:-0.31em;text-rendering:optimizespeed}.opera-only :-o-prefocus,.yui3-app-transitioning .yui3-app-views,.yui3-app-views.yui3-app-transitioning{word-spacing:-0.43em}.yui3-app-transitioning .yui3-app-views>*,.yui3-app-views.yui3-app-transitioning>*{display:inline-block;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto;width:100%;white-space:normal;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#yui3-css-stamp.app-transitions-css{display:none}
diff --git a/lib/yuilib/3.9.1/build/app-transitions-css/app-transitions-css.css b/lib/yuilib/3.12.0/app-transitions-css/app-transitions-css.css
old mode 100644
new mode 100755
similarity index 88%
rename from lib/yuilib/3.9.1/build/app-transitions-css/app-transitions-css.css
rename to lib/yuilib/3.12.0/app-transitions-css/app-transitions-css.css
index 590e653c9c1..0a77507eb9d
--- a/lib/yuilib/3.9.1/build/app-transitions-css/app-transitions-css.css
+++ b/lib/yuilib/3.12.0/app-transitions-css/app-transitions-css.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-app-transitioning .yui3-app-views,
.yui3-app-views.yui3-app-transitioning {
overflow-x: hidden;
diff --git a/lib/yuilib/3.9.1/build/app-transitions-native/app-transitions-native-debug.js b/lib/yuilib/3.12.0/app-transitions-native/app-transitions-native-debug.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/app-transitions-native/app-transitions-native-debug.js
rename to lib/yuilib/3.12.0/app-transitions-native/app-transitions-native-debug.js
index 6fdf5bab50d..57424e438cb
--- a/lib/yuilib/3.9.1/build/app-transitions-native/app-transitions-native-debug.js
+++ b/lib/yuilib/3.12.0/app-transitions-native/app-transitions-native-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('app-transitions-native', function (Y, NAME) {
/**
@@ -351,4 +357,4 @@ Y.App.TransitionsNative = AppTransitionsNative;
Y.Base.mix(Y.App, [AppTransitionsNative]);
-}, '3.9.1', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
+}, '3.12.0', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
diff --git a/lib/yuilib/3.9.1/build/app-transitions-native/app-transitions-native-min.js b/lib/yuilib/3.12.0/app-transitions-native/app-transitions-native-min.js
old mode 100644
new mode 100755
similarity index 90%
rename from lib/yuilib/3.9.1/build/app-transitions-native/app-transitions-native-min.js
rename to lib/yuilib/3.12.0/app-transitions-native/app-transitions-native-min.js
index f1a8f0ac56a..87db4a21dc3
--- a/lib/yuilib/3.9.1/build/app-transitions-native/app-transitions-native-min.js
+++ b/lib/yuilib/3.12.0/app-transitions-native/app-transitions-native-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("app-transitions-native",function(e,t){function r(){}var n=e.App.Transitions;r.prototype={initializer:function(){this._transitioning=!1,this._viewTransitionQueue=[],e.Do.before(this._queueActiveView,this,"_uiSetActiveView")},_dequeueActiveView:function(){var t=this._viewTransitionQueue,n=t.shift(),r;n&&(t.length&&(r=e.merge(n[2],{transition:!1}),n.splice(2,1,r)),this._uiTransitionActiveView.apply(this,n))},_getFx:function(e,t,r){var i=n.FX,s=this.get("transitions");return r===!1||!s?null:r?i[r]:this._isChildView(e,t)?i[s.toChild]:this._isParentView(e,t)?i[s.toParent]:i[s.navigate]},_queueActiveView:function(){var t=e.Array(arguments,0,!0);return this._viewTransitionQueue.push(t),this._transitioning||this._dequeueActiveView(),new e.Do.Prevent},_uiTransitionActiveView:function(t,n,r){function p(){return this._detachView(n),s.removeClass(o),i&&i.call(this,t),this._transitioning=!1,this._dequeueActiveView()}r||(r={});var i=r.callback,s,o,u,a,f,l,c,h;if(t===n)return i&&i.call(this,t),this._transitioning=!1,this._dequeueActiveView();l=this._getFx(t,n,r.transition),u=this._isChildView(t,n),a=!u&&this._isParentView(t,n),f=!!r.prepend||a;if(!l)return this._attachView(t,f),this._detachView(n),i&&i.call(this,t),this._transitioning=!1,this._dequeueActiveView();this._transitioning=!0,s=this.get("container"),o=e.App.CLASS_NAMES.transitioning,s.addClass(o),this._attachView(t,f),h=new e.Parallel({context:this}),c={crossView:!!n&&!!t,prepended:f},t&&l.viewIn&&t.get("container").transition(l.viewIn,c,h.add()),n&&l.viewOut&&n.get("container").transition(l.viewOut,c,h.add()),h.done(p)}},e.mix(e.Transition.fx,{"app:fadeIn":{opacity:1,duration:.3,on:{start:function(e){var t={opacity:0},n=e.config;n.crossView&&!n.prepended&&(t.transform="translateX(-100%)"),this.setStyles(t)},end:function(){this.setStyle("transform","translateX(0)")}}},"app:fadeOut":{opacity:0,duration:.3,on:{start:function(e){var t={opacity:1},n=e.config;n.crossView&&n.prepended&&(t.transform="translateX(-100%)"),this.setStyles(t)},end:function(){this.setStyle("transform","translateX(0)")}}},"app:slideLeft":{duration:.3,transform:"translateX(-100%)",on:{start:function(){this.setStyles({opacity:1,transform:"translateX(0%)"})},end:function(){this.setStyle("transform","translateX(0)")}}},"app:slideRight":{duration:.3,transform:"translateX(0)",on:{start:function(){this.setStyles({opacity:1,transform:"translateX(-100%)"})},end:function(){this.setStyle("transform","translateX(0)")}}}}),e.App.TransitionsNative=r,e.Base.mix(e.App,[r])},"3.9.1",{requires:["app-transitions","app-transitions-css","parallel","transition"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("app-transitions-native",function(e,t){function r(){}var n=e.App.Transitions;r.prototype={initializer:function(){this._transitioning=!1,this._viewTransitionQueue=[],e.Do.before(this._queueActiveView,this,"_uiSetActiveView")},_dequeueActiveView:function(){var t=this._viewTransitionQueue,n=t.shift(),r;n&&(t.length&&(r=e.merge(n[2],{transition:!1}),n.splice(2,1,r)),this._uiTransitionActiveView.apply(this,n))},_getFx:function(e,t,r){var i=n.FX,s=this.get("transitions");return r===!1||!s?null:r?i[r]:this._isChildView(e,t)?i[s.toChild]:this._isParentView(e,t)?i[s.toParent]:i[s.navigate]},_queueActiveView:function(){var t=e.Array(arguments,0,!0);return this._viewTransitionQueue.push(t),this._transitioning||this._dequeueActiveView(),new e.Do.Prevent},_uiTransitionActiveView:function(t,n,r){function p(){return this._detachView(n),s.removeClass(o),i&&i.call(this,t),this._transitioning=!1,this._dequeueActiveView()}r||(r={});var i=r.callback,s,o,u,a,f,l,c,h;if(t===n)return i&&i.call(this,t),this._transitioning=!1,this._dequeueActiveView();l=this._getFx(t,n,r.transition),u=this._isChildView(t,n),a=!u&&this._isParentView(t,n),f=!!r.prepend||a;if(!l)return this._attachView(t,f),this._detachView(n),i&&i.call(this,t),this._transitioning=!1,this._dequeueActiveView();this._transitioning=!0,s=this.get("container"),o=e.App.CLASS_NAMES.transitioning,s.addClass(o),this._attachView(t,f),h=new e.Parallel({context:this}),c={crossView:!!n&&!!t,prepended:f},t&&l.viewIn&&t.get("container").transition(l.viewIn,c,h.add()),n&&l.viewOut&&n.get("container").transition(l.viewOut,c,h.add()),h.done(p)}},e.mix(e.Transition.fx,{"app:fadeIn":{opacity:1,duration:.3,on:{start:function(e){var t={opacity:0},n=e.config;n.crossView&&!n.prepended&&(t.transform="translateX(-100%)"),this.setStyles(t)},end:function(){this.setStyle("transform","translateX(0)")}}},"app:fadeOut":{opacity:0,duration:.3,on:{start:function(e){var t={opacity:1},n=e.config;n.crossView&&n.prepended&&(t.transform="translateX(-100%)"),this.setStyles(t)},end:function(){this.setStyle("transform","translateX(0)")}}},"app:slideLeft":{duration:.3,transform:"translateX(-100%)",on:{start:function(){this.setStyles({opacity:1,transform:"translateX(0%)"})},end:function(){this.setStyle("transform","translateX(0)")}}},"app:slideRight":{duration:.3,transform:"translateX(0)",on:{start:function(){this.setStyles({opacity:1,transform:"translateX(-100%)"})},end:function(){this.setStyle("transform","translateX(0)")}}}}),e.App.TransitionsNative=r,e.Base.mix(e.App,[r])},"3.12.0",{requires:["app-transitions","app-transitions-css","parallel","transition"]});
diff --git a/lib/yuilib/3.9.1/build/app-transitions-native/app-transitions-native.js b/lib/yuilib/3.12.0/app-transitions-native/app-transitions-native.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/app-transitions-native/app-transitions-native.js
rename to lib/yuilib/3.12.0/app-transitions-native/app-transitions-native.js
index 6fdf5bab50d..57424e438cb
--- a/lib/yuilib/3.9.1/build/app-transitions-native/app-transitions-native.js
+++ b/lib/yuilib/3.12.0/app-transitions-native/app-transitions-native.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('app-transitions-native', function (Y, NAME) {
/**
@@ -351,4 +357,4 @@ Y.App.TransitionsNative = AppTransitionsNative;
Y.Base.mix(Y.App, [AppTransitionsNative]);
-}, '3.9.1', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
+}, '3.12.0', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
diff --git a/lib/yuilib/3.9.1/build/app-transitions/app-transitions-debug.js b/lib/yuilib/3.12.0/app-transitions/app-transitions-debug.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/app-transitions/app-transitions-debug.js
rename to lib/yuilib/3.12.0/app-transitions/app-transitions-debug.js
index c7bf8402918..fd267e2f6e8
--- a/lib/yuilib/3.9.1/build/app-transitions/app-transitions-debug.js
+++ b/lib/yuilib/3.12.0/app-transitions/app-transitions-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('app-transitions', function (Y, NAME) {
/**
@@ -240,4 +246,4 @@ Y.mix(Y.App.CLASS_NAMES, {
});
-}, '3.9.1', {"requires": ["app-base"]});
+}, '3.12.0', {"requires": ["app-base"]});
diff --git a/lib/yuilib/3.9.1/build/app-transitions/app-transitions-min.js b/lib/yuilib/3.12.0/app-transitions/app-transitions-min.js
old mode 100644
new mode 100755
similarity index 74%
rename from lib/yuilib/3.9.1/build/app-transitions/app-transitions-min.js
rename to lib/yuilib/3.12.0/app-transitions/app-transitions-min.js
index 776391a6230..0c9e9c2d1cd
--- a/lib/yuilib/3.9.1/build/app-transitions/app-transitions-min.js
+++ b/lib/yuilib/3.12.0/app-transitions/app-transitions-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("app-transitions",function(e,t){function n(){}n.ATTRS={transitions:{setter:"_setTransitions",value:!1}},n.FX={fade:{viewIn:"app:fadeIn",viewOut:"app:fadeOut"},slideLeft:{viewIn:"app:slideLeft",viewOut:"app:slideLeft"},slideRight:{viewIn:"app:slideRight",viewOut:"app:slideRight"}},n.prototype={transitions:{navigate:"fade",toChild:"slideLeft",toParent:"slideRight"},_setTransitions:function(t){var n=this.transitions;return t&&t===!0?e.merge(n):t}},e.App.Transitions=n,e.Base.mix(e.App,[n]),e.mix(e.App.CLASS_NAMES,{transitioning:e.ClassNameManager.getClassName("app","transitioning")})},"3.9.1",{requires:["app-base"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("app-transitions",function(e,t){function n(){}n.ATTRS={transitions:{setter:"_setTransitions",value:!1}},n.FX={fade:{viewIn:"app:fadeIn",viewOut:"app:fadeOut"},slideLeft:{viewIn:"app:slideLeft",viewOut:"app:slideLeft"},slideRight:{viewIn:"app:slideRight",viewOut:"app:slideRight"}},n.prototype={transitions:{navigate:"fade",toChild:"slideLeft",toParent:"slideRight"},_setTransitions:function(t){var n=this.transitions;return t&&t===!0?e.merge(n):t}},e.App.Transitions=n,e.Base.mix(e.App,[n]),e.mix(e.App.CLASS_NAMES,{transitioning:e.ClassNameManager.getClassName("app","transitioning")})},"3.12.0",{requires:["app-base"]});
diff --git a/lib/yuilib/3.9.1/build/app-transitions/app-transitions.js b/lib/yuilib/3.12.0/app-transitions/app-transitions.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/app-transitions/app-transitions.js
rename to lib/yuilib/3.12.0/app-transitions/app-transitions.js
index c7bf8402918..fd267e2f6e8
--- a/lib/yuilib/3.9.1/build/app-transitions/app-transitions.js
+++ b/lib/yuilib/3.12.0/app-transitions/app-transitions.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('app-transitions', function (Y, NAME) {
/**
@@ -240,4 +246,4 @@ Y.mix(Y.App.CLASS_NAMES, {
});
-}, '3.9.1', {"requires": ["app-base"]});
+}, '3.12.0', {"requires": ["app-base"]});
diff --git a/lib/yuilib/3.9.1/build/array-extras/array-extras-debug.js b/lib/yuilib/3.12.0/array-extras/array-extras-debug.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/array-extras/array-extras-debug.js
rename to lib/yuilib/3.12.0/array-extras/array-extras-debug.js
index b8751f86892..4cec7489fac
--- a/lib/yuilib/3.9.1/build/array-extras/array-extras-debug.js
+++ b/lib/yuilib/3.12.0/array-extras/array-extras-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('array-extras', function (Y, NAME) {
/**
@@ -398,4 +404,4 @@ A.flatten = function(a) {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/array-extras/array-extras-min.js b/lib/yuilib/3.12.0/array-extras/array-extras-min.js
old mode 100644
new mode 100755
similarity index 88%
rename from lib/yuilib/3.9.1/build/array-extras/array-extras-min.js
rename to lib/yuilib/3.12.0/array-extras/array-extras-min.js
index b93477d3d8a..207b16ccc3a
--- a/lib/yuilib/3.9.1/build/array-extras/array-extras-min.js
+++ b/lib/yuilib/3.12.0/array-extras/array-extras-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("array-extras",function(e,t){var n=e.Array,r=e.Lang,i=Array.prototype;n.lastIndexOf=r._isNative(i.lastIndexOf)?function(e,t,n){return n||n===0?e.lastIndexOf(t,n):e.lastIndexOf(t)}:function(e,t,n){var r=e.length,i=r-1;if(n||n===0)i=Math.min(n<0?r+n:n,r);if(i>-1&&r>0)for(;i>-1;--i)if(i in e&&e[i]===t)return i;return-1},n.unique=function(e,t){var n=0,r=e.length,i=[],s,o,u,a;e:for(;ncallback( item, index ).each, if the callback returns true, the
- * iteratation will stop.
The callback signature is callback( item, index ).
Unlike each, if the callback returns true, the
- * iteratation will stop.
When the labelValues attribute is explicitly set, the labelValues are dictated by the set value and + * the position of ticks and labels are determined by where those values would fall on the axis.
+ * + * @attribute labelValues + * @type Array + */ + labelValues: { + lazyAdd: false, + + setter: function(val) + { + var opts = arguments[2]; + if(!val || (opts && opts.src && opts.src === "internal")) + { + this._labelValuesExplicitlySet = false; + } + else + { + this._labelValuesExplicitlySet = true; + } + return val; + } + }, + + /** + * Suppresses the creation of the the first visible label and tick. + * + * @attribute hideFirstMajorUnit + * @type Boolean + */ + hideFirstMajorUnit: { + value: false + }, + + /** + * Suppresses the creation of the the last visible label and tick. + * + * @attribute hideLastMajorUnit + * @type Boolean + */ + hideLastMajorUnit: { + value: false } /** @@ -3107,4 +3133,4 @@ Y.Axis = Y.Base.create("axis", Y.Widget, [Y.AxisBase], { Y.AxisType = Y.Base.create("baseAxis", Y.Axis, [], {}); -}, '3.9.1', {"requires": ["dom", "widget", "widget-position", "widget-stack", "graphics", "axis-base"]}); +}, '3.12.0', {"requires": ["dom", "widget", "widget-position", "widget-stack", "graphics", "axis-base"]}); diff --git a/lib/yuilib/3.9.1/build/axis/axis-min.js b/lib/yuilib/3.12.0/axis/axis-min.js old mode 100644 new mode 100755 similarity index 59% rename from lib/yuilib/3.9.1/build/axis/axis-min.js rename to lib/yuilib/3.12.0/axis/axis-min.js index 73e7cdfca56..e9aa8216d87 --- a/lib/yuilib/3.9.1/build/axis/axis-min.js +++ b/lib/yuilib/3.12.0/axis/axis-min.js @@ -1,5 +1,11 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + YUI.add("axis",function(e,t){var n=e.config,r=n.doc,i=e.Lang,s=i.isString,o=e.DOM,u,a,f,l;u=function(){},u.prototype={_getDefaultMargins:function(){return{top:0,left:0,right:4,bottom:0}},setTickOffsets:function(){var e=this,t=e.get("styles").majorTicks,n=t.length,r=n*.5,i=t.display;e.set("topTickOffset",0),e.set("bottomTickOffset",0);switch(i){case"inside":e.set("rightTickOffset",n),e.set("leftTickOffset",0);break;case"outside":e.set("rightTickOffset",0),e.set("leftTickOffset",n);break;case"cross":e.set("rightTickOffset",r),e.set("leftTickOffset",r);break;default:e.set("rightTickOffset",0),e.set("leftTickOffset",0)}},drawTick:function(e,t,n){var r=this,i=r.get("styles"),s=i.padding,o=n.length,u={x:s.left,y:t.y},a={x:o+s.left,y:t.y};r.drawLine(e,u,a)},getLineStart:function(){var e=this.get("styles"),t=e.padding,n=e.majorTicks,r=n.length,i=n.display,s={x:t.left,y:0};return i==="outside"?s.x+=r:i==="cross"&&(s.x+=r/2),s},getLabelPoint:function(e){return{x:e.x-this.get("leftTickOffset"),y:e.y}},updateMaxLabelSize:function(e,t){var n=this,r=this._labelRotationProps,i=r.rot,s=r.absRot,o=r.sinRadians,u=r.cosRadians,a;i===0?a=e:s===90?a=t:a=u*e+o*t,n._maxLabelSize=Math.max(n._maxLabelSize,a)},getExplicitlySized:function(e){if(this._explicitWidth){var t=this,n=t._explicitWidth,r=t._totalTitleSize,i=t.get("leftTickOffset"),s=e.label.margin.right;return t._maxLabelSize=n-(i+s+r),!0}return!1},positionTitle:function(e){var t=this,n=t._titleBounds,r=t.get("styles").title.margin,i=t._titleRotationProps,s=n.right-n.left,o=e.offsetWidth,u=e.offsetHeight,a=o*-0.5+s*.5,f=t.get("height")*.5-u*.5;i.labelWidth=o,i.labelHeight=u,r&&r.left&&(a+=r.left),i.x=a,i.y=f,i.transformOrigin=[.5,.5],t._rotate(e,i)},positionLabel:function(e,t,n,r){var i=this,s=i.get("leftTickOffset"),o=this._totalTitleSize,u=t.x+o-s,a=t.y,f=this._labelRotationProps,l=f.rot,c=f.absRot,h=i._maxLabelSize,p=this._labelWidths[r],d=this._labelHeights[r];l===0?(u-=p,a-=d*.5):l===90?u-=p*.5:l===-90?(u-=p*.5,a-=d):(u-=p+d*c/360,a-=d*.5),f.labelWidth=p,f.labelHeight=d,f.x=Math.round(h+u),f.y=Math.round(a),this._rotate(e,f)},_setRotationCoords:function(e){var t=e.rot,n=e.absRot,r,i,s=e.labelWidth,o=e.labelHeight;t===0?(r=s,i=o*.5):t===90?(i=0,r=s*.5):t===-90?(r=s*.5,i=o):(r=s+o*n/360,i=o*.5),e.x-=r,e.y-=i},_getTransformOrigin:function(e){var t;return e===0?t=[0,0]:e===90?t=[.5,0]:e===-90?t=[.5,1]:t=[1,.5],t},offsetNodeForTick:function(){},setCalculatedSize:function(){var e=this,t=this.get("graphic"),n=e.get("styles"),r=n.label,i=e.get("leftTickOffset"),s=e._maxLabelSize,o=this._totalTitleSize,u=Math.round(o+i+s+r.margin.right);this._explicitWidth&&(u=this._explicitWidth),this.set("calculatedWidth",u),t.set("x",u-i)}},e.LeftAxisLayout=u,a=function(){},a.prototype={_getDefaultMargins:function(){return{top:0,left:4,right:0,bottom:0}},setTickOffsets:function(){var e=this,t=e.get("styles").majorTicks,n=t.length,r=n*.5,i=t.display;e.set("topTickOffset",0),e.set("bottomTickOffset",0);switch(i){case"inside":e.set("leftTickOffset",n),e.set("rightTickOffset",0);break;case"outside":e.set("leftTickOffset",0),e.set("rightTickOffset",n);break;case"cross":e.set("rightTickOffset",r),e.set("leftTickOffset",r);break;default:e.set("leftTickOffset",0),e.set("rightTickOffset",0)}},drawTick:function(e,t,n){var r=this,i=r.get("styles"),s=i.padding,o=n.length,u={x:s.left,y:t.y},a={x:s.left+o,y:t.y};r.drawLine(e,u,a)},getLineStart:function(){var e=this,t=e.get("styles"),n=t.padding,r=t.majorTicks,i=r.length,s=r.display,o={x:n.left,y:n.top};return s==="inside"?o.x+=i:s==="cross"&&(o.x+=i/2),o},getLabelPoint:function(e){return{x:e.x+this.get("rightTickOffset"),y:e.y}},updateMaxLabelSize:function(e,t){var n=this,r=this._labelRotationProps,i=r.rot,s=r.absRot,o=r.sinRadians,u=r.cosRadians,a;i===0?a=e:s===90?a=t:a=u*e+o*t,n._maxLabelSize=Math.max(n._maxLabelSize,a)},getExplicitlySized:function(e){if(this._explicitWidth){var t=this,n=t._explicitWidth,r=this._totalTitleSize,i=t.get("rightTickOffset"),s=e.label.margin.right;return t._maxLabelSize=n-(i+s+r),!0}return!1},positionTitle:function(e){var t=this,n=t._titleBounds,r=t.get("styles").title.margin,i=t._titleRotationProps,s=e.offsetWidth,o=e.offsetHeight,u=n.right-n.left,a=this.get("width")-s*.5-u*.5,f=t.get("height")*.5-o*.5;i.labelWidth=s,i.labelHeight=o,r&&r.right&&(a-=r.left),i.x=a,i.y=f,i.transformOrigin=[.5,.5],t._rotate(e,i)},positionLabel:function(e,t,n,r){var i=this,s=i.get("rightTickOffset"),o=n.label,u=0,a=t.x,f=t.y,l=this._labelRotationProps,c=l.rot,h=l.absRot,p=this._labelWidths[r],d=this._labelHeights[r];o.margin&&o.margin.left&&(u=o.margin.left),c===0?f-=d*.5:c===90?(a-=p*.5,f-=d):c===-90?a-=p*.5:(f-=d*.5,a+=d/2*h/90),a+=u,a+=s,l.labelWidth=p,l.labelHeight=d,l.x=Math.round(a),l.y=Math.round(f),this._rotate(e,l)},_setRotationCoords:function(e){var t=e.rot,n=e.absRot,r=0,i=0,s=e.labelWidth,o=e.labelHeight;t===0?i=o*.5:t===90?(r=s*.5,i=o):t===-90?r=s*.5:(i=o*.5,r=o/2*n/90),e.x-=r,e.y-=i},_getTransformOrigin:function(e){var t;return e===0?t=[0,0]:e===90?t=[.5,1]:e===-90?t=[.5,0]:t=[0,.5],t},offsetNodeForTick:function(e){var t=this,n=t.get("leftTickOffset"),r=0-n;e.setStyle("left",r)},setCalculatedSize:function(){var e=this,t=e.get("styles"),n=t.label,r=this._totalTitleSize,i=Math.round(e.get("rightTickOffset")+e._maxLabelSize+r+n.margin.left);this._explicitWidth&&(i=this._explicitWidth),e.set("calculatedWidth",i),e.get("contentBox").setStyle("width",i)}},e.RightAxisLayout=a,f=function(){},f.prototype={_getDefaultMargins:function(){return{top:4,left:0,right:0,bottom:0}},setTickOffsets:function(){var e=this,t=e.get("styles").majorTicks,n=t.length,r=n*.5,i=t.display;e.set("leftTickOffset",0),e.set("rightTickOffset",0);switch(i){case"inside":e.set("topTickOffset",n),e.set("bottomTickOffset",0);break;case"outside":e.set("topTickOffset",0),e.set("bottomTickOffset",n);break;case"cross":e.set("topTickOffset",r),e.set("bottomTickOffset",r);break;default:e.set("topTickOffset",0),e.set("bottomTickOffset",0)}},getLineStart:function( ){var e=this.get("styles"),t=e.padding,n=e.majorTicks,r=n.length,i=n.display,s={x:0,y:t.top};return i==="inside"?s.y+=r:i==="cross"&&(s.y+=r/2),s},drawTick:function(e,t,n){var r=this,i=r.get("styles"),s=i.padding,o=n.length,u={x:t.x,y:s.top},a={x:t.x,y:o+s.top};r.drawLine(e,u,a)},getLabelPoint:function(e){return{x:e.x,y:e.y+this.get("bottomTickOffset")}},updateMaxLabelSize:function(e,t){var n=this,r=this._labelRotationProps,i=r.rot,s=r.absRot,o=r.sinRadians,u=r.cosRadians,a;i===0?a=t:s===90?a=e:a=o*e+u*t,n._maxLabelSize=Math.max(n._maxLabelSize,a)},getExplicitlySized:function(e){if(this._explicitHeight){var t=this,n=t._explicitHeight,r=t._totalTitleSize,i=t.get("bottomTickOffset"),s=e.label.margin.right;return t._maxLabelSize=n-(i+s+r),!0}return!1},positionTitle:function(e){var t=this,n=t._titleBounds,r=t.get("styles").title.margin,i=t._titleRotationProps,s=n.bottom-n.top,o=e.offsetWidth,u=e.offsetHeight,a=t.get("width")*.5-o*.5,f=t.get("height")-u/2-s/2;i.labelWidth=o,i.labelHeight=u,r&&r.bottom&&(f-=r.bottom),i.x=a,i.y=f,i.transformOrigin=[.5,.5],t._rotate(e,i)},positionLabel:function(e,t,n,r){var i=this,s=i.get("bottomTickOffset"),o=n.label,u=0,a=i._labelRotationProps,f=a.rot,l=a.absRot,c=Math.round(t.x),h=Math.round(t.y),p=i._labelWidths[r],d=i._labelHeights[r];o.margin&&o.margin.top&&(u=o.margin.top),f>0?h-=d/2*f/90:f<0?(c-=p,h-=d/2*l/90):c-=p*.5,h+=u,h+=s,a.labelWidth=p,a.labelHeight=d,a.x=c,a.y=h,i._rotate(e,a)},_setRotationCoords:function(e){var t=e.rot,n=e.absRot,r=e.labelWidth,i=e.labelHeight,s,o;t>0?(s=0,o=i/2*t/90):t<0?(s=r,o=i/2*n/90):(s=r*.5,o=0),e.x-=s,e.y-=o},_getTransformOrigin:function(e){var t;return e>0?t=[0,.5]:e<0?t=[1,.5]:t=[0,0],t},offsetNodeForTick:function(e){var t=this;e.setStyle("top",0-t.get("topTickOffset"))},setCalculatedSize:function(){var e=this,t=e.get("styles"),n=t.label,r=e._totalTitleSize,i=Math.round(e.get("bottomTickOffset")+e._maxLabelSize+n.margin.top+r);e._explicitHeight&&(i=e._explicitHeight),e.set("calculatedHeight",i)}},e.BottomAxisLayout=f,l=function(){},l.prototype={_getDefaultMargins:function(){return{top:0,left:0,right:0,bottom:4}},setTickOffsets:function(){var e=this,t=e.get("styles").majorTicks,n=t.length,r=n*.5,i=t.display;e.set("leftTickOffset",0),e.set("rightTickOffset",0);switch(i){case"inside":e.set("bottomTickOffset",n),e.set("topTickOffset",0);break;case"outside":e.set("bottomTickOffset",0),e.set("topTickOffset",n);break;case"cross":e.set("topTickOffset",r),e.set("bottomTickOffset",r);break;default:e.set("topTickOffset",0),e.set("bottomTickOffset",0)}},getLineStart:function(){var e=this,t=e.get("styles"),n=t.padding,r=t.majorTicks,i=r.length,s=r.display,o={x:0,y:n.top};return s==="outside"?o.y+=i:s==="cross"&&(o.y+=i/2),o},drawTick:function(e,t,n){var r=this,i=r.get("styles"),s=i.padding,o=n.length,u={x:t.x,y:s.top},a={x:t.x,y:o+s.top};r.drawLine(e,u,a)},getLabelPoint:function(e){return{x:e.x,y:e.y-this.get("topTickOffset")}},updateMaxLabelSize:function(e,t){var n=this,r=this._labelRotationProps,i=r.rot,s=r.absRot,o=r.sinRadians,u=r.cosRadians,a;i===0?a=t:s===90?a=e:a=o*e+u*t,n._maxLabelSize=Math.max(n._maxLabelSize,a)},getExplicitlySized:function(e){if(this._explicitHeight){var t=this,n=t._explicitHeight,r=t._totalTitleSize,i=t.get("topTickOffset"),s=e.label.margin.right;return t._maxLabelSize=n-(i+s+r),!0}return!1},positionTitle:function(e){var t=this,n=t._titleBounds,r=t.get("styles").title.margin,i=t._titleRotationProps,s=e.offsetWidth,o=e.offsetHeight,u=n.bottom-n.top,a=t.get("width")*.5-s*.5,f=u/2-o/2;i.labelWidth=s,i.labelHeight=o,r&&r.top&&(f+=r.top),i.x=a,i.y=f,i.transformOrigin=[.5,.5],t._rotate(e,i)},positionLabel:function(e,t,n,r){var i=this,s=this._totalTitleSize,o=i._maxLabelSize,u=t.x,a=t.y+s+o,f=this._labelRotationProps,l=f.rot,c=f.absRot,h=this._labelWidths[r],p=this._labelHeights[r];l===0?(u-=h*.5,a-=p):l===90?(u-=h,a-=p*.5):l===-90?a-=p*.5:l>0?(u-=h,a-=p-p*l/180):a-=p-p*c/180,f.x=Math.round(u),f.y=Math.round(a),f.labelWidth=h,f.labelHeight=p,this._rotate(e,f)},_setRotationCoords:function(e){var t=e.rot,n=e.absRot,r=e.labelWidth,i=e.labelHeight,s,o;t===0?(s=r*.5,o=i):t===90?(s=r,o=i*.5):t===-90?o=i*.5:t>0?(s=r,o=i-i*t/180):o=i-i*n/180,e.x-=s,e.y-=o},_getTransformOrigin:function(e){var t;return e===0?t=[0,0]:e===90?t=[1,.5]:e===-90?t=[0,.5]:e>0?t=[1,.5]:t=[0,.5],t},offsetNodeForTick:function(){},setCalculatedSize:function(){var e=this,t=e.get("graphic"),n=e.get("styles"),r=n.label.margin,i=r.bottom+e._maxLabelSize,s=e._totalTitleSize,o=this.get("topTickOffset"),u=Math.round(o+i+s);this._explicitHeight&&(u=this._explicitHeight),e.set("calculatedHeight",u),t.set("y",u-o)}},e.TopAxisLayout=l,e.Axis=e.Base.create("axis",e.Widget,[e.AxisBase],{getLabelByIndex:function(e,t){var n=this.get("position"),r=n==="left"||n==="right"?"vertical":"horizontal";return this._getLabelByIndex(e,t,r)},bindUI:function(){this.after("dataReady",e.bind(this._dataChangeHandler,this)),this.after("dataUpdate",e.bind(this._dataChangeHandler,this)),this.after("stylesChange",this._updateHandler),this.after("overlapGraphChange",this._updateHandler),this.after("positionChange",this._positionChangeHandler),this.after("widthChange",this._handleSizeChange),this.after("heightChange",this._handleSizeChange),this.after("calculatedWidthChange",this._handleSizeChange),this.after("calculatedHeightChange",this._handleSizeChange)},_calculatedWidth:0,_calculatedHeight:0,_dataChangeHandler:function(){this.get("rendered")&&this._drawAxis()},_positionChangeHandler:function(e){this._updateGraphic(e.newVal),this._updateHandler()},_updateGraphic:function(e){var t=this.get("graphic");e==="none"?t&&t.destroy():t||this._setCanvas()},_updateHandler:function(){this.get("rendered")&&this._drawAxis()},renderUI:function(){this._updateGraphic(this.get("position"))},syncUI:function(){var e=this._layout,t,n,r,i,s;if(e){t=e._getDefaultMargins(),n=this.get("styles"),r=n.label.margin,i=n.title.margin;for(s in t)t.hasOwnProperty(s)&&(r[s]=r[s]===undefined?t[s]:r[s],i[s]=i[s]===undefined? -t[s]:i[s])}this._drawAxis()},_setCanvas:function(){var t=this.get("contentBox"),n=this.get("boundingBox"),r=this.get("position"),i=this._parentNode,s=this.get("width"),o=this.get("height");n.setStyle("position","absolute"),n.setStyle("zIndex",2),s=s?s+"px":i.getStyle("width"),o=o?o+"px":i.getStyle("height"),r==="top"||r==="bottom"?t.setStyle("width",s):t.setStyle("height",o),t.setStyle("position","relative"),t.setStyle("left","0px"),t.setStyle("top","0px"),this.set("graphic",new e.Graphic),this.get("graphic").render(t)},_getDefaultStyles:function(){var t={majorTicks:{display:"inside",length:4,color:"#dad8c9",weight:1,alpha:1},minorTicks:{display:"none",length:2,color:"#dad8c9",weight:1},line:{weight:1,color:"#dad8c9",alpha:1},majorUnit:{determinant:"count",count:11,distance:75},top:"0px",left:"0px",width:"100px",height:"100px",label:{color:"#808080",alpha:1,fontSize:"85%",rotation:0,margin:{top:undefined,right:undefined,bottom:undefined,left:undefined}},title:{color:"#808080",alpha:1,fontSize:"85%",rotation:undefined,margin:{top:undefined,right:undefined,bottom:undefined,left:undefined}},hideOverlappingLabelTicks:!1};return e.merge(e.Renderer.prototype._getDefaultStyles(),t)},_handleSizeChange:function(e){var t=e.attrName,n=this.get("position"),r=n==="left"||n==="right",i=this.get("contentBox"),s=n==="bottom"||n==="top";i.setStyle("width",this.get("width")),i.setStyle("height",this.get("height")),(s&&t==="width"||r&&t==="height")&&this._drawAxis()},_layoutClasses:{top:l,bottom:f,left:u,right:a},drawLine:function(e,t,n){e.moveTo(t.x,t.y),e.lineTo(n.x,n.y)},_getTextRotationProps:function(e){if(e.rotation===undefined)switch(this.get("position")){case"left":e.rotation=-90;break;case"right":e.rotation=90;break;default:e.rotation=0}var t=Math.min(90,Math.max(-90,e.rotation)),n=Math.abs(t),r=Math.PI/180,i=parseFloat(parseFloat(Math.sin(n*r)).toFixed(8)),s=parseFloat(parseFloat(Math.cos(n*r)).toFixed(8));return{rot:t,absRot:n,radCon:r,sinRadians:i,cosRadians:s,textAlpha:e.alpha}},_drawAxis:function(){if(this._drawing){this._callLater=!0;return}this._drawing=!0,this._callLater=!1;if(this._layout){var e=this.get("styles"),t=e.line,n=e.label,r=e.majorTicks,i=r.display!=="none",s,o=e.majorUnit,u,a,f=0,l=this._layout,c,h,p,d,v,m=this.get("labelFunction"),g=this.get("labelFunctionScope"),y=this.get("labelFormat"),b=this.get("graphic"),w=this.get("path"),E,S,x=this.get("position"),T=x==="left"||x==="right"?"vertical":"horizontal";this._labelWidths=[],this._labelHeights=[],b.set("autoDraw",!1),w.clear(),w.set("stroke",{weight:t.weight,color:t.color,opacity:t.alpha}),this._labelRotationProps=this._getTextRotationProps(n),this._labelRotationProps.transformOrigin=l._getTransformOrigin(this._labelRotationProps.rot),l.setTickOffsets.apply(this),c=this.getLength(),h=l.getLineStart.apply(this),u=this.getTotalMajorUnits(o),a=this.getMajorUnitDistance(u,c,o),this.set("edgeOffset",this.getEdgeOffset(u,c)*.5);if(u<1)this._clearLabelCache();else{s=this.getFirstPoint(h),this.drawLine(w,h,this.getLineEnd(s)),i&&(E=this.get("tickPath"),E.clear(),E.set("stroke",{weight:r.weight,color:r.color,opacity:r.alpha}),l.drawTick.apply(this,[E,s,r])),this._createLabelCache(),this._tickPoints=[],this._maxLabelSize=0,this._totalTitleSize=0,this._titleSize=0,this._setTitle(),S=l.getExplicitlySized.apply(this,[e]);for(;f0?s=o.shift():(s=r.createElement("span"),s.className=e.Lang.trim([s.className,"axisLabel"].join(" ")),this.get("contentBox").append(s)),r.createElementNS||s.style.filter&&(s.style.filter=null),s.style.display="block",s.style.whiteSpace="nowrap",s.style.position="absolute";for(i in n)n.hasOwnProperty(i)&&!u.hasOwnProperty(i)&&(s.style[i]=n[i]);return s},_createLabelCache:function(){if(this._labels)while(this._labels.length>0)this._labelCache.push(this._labels.shift());else this._clearLabelCache -();this._labels=[]},_clearLabelCache:function(){if(this._labelCache){var t=this._labelCache.length,n=0,r;for(;nWhen the labelValues attribute is explicitly set, the labelValues are dictated by the set value and + * the position of ticks and labels are determined by where those values would fall on the axis.
+ * + * @attribute labelValues + * @type Array + */ + labelValues: { + lazyAdd: false, + + setter: function(val) + { + var opts = arguments[2]; + if(!val || (opts && opts.src && opts.src === "internal")) + { + this._labelValuesExplicitlySet = false; + } + else + { + this._labelValuesExplicitlySet = true; + } + return val; + } + }, + + /** + * Suppresses the creation of the the first visible label and tick. + * + * @attribute hideFirstMajorUnit + * @type Boolean + */ + hideFirstMajorUnit: { + value: false + }, + + /** + * Suppresses the creation of the the last visible label and tick. + * + * @attribute hideLastMajorUnit + * @type Boolean + */ + hideLastMajorUnit: { + value: false } /** @@ -3107,4 +3133,4 @@ Y.Axis = Y.Base.create("axis", Y.Widget, [Y.AxisBase], { Y.AxisType = Y.Base.create("baseAxis", Y.Axis, [], {}); -}, '3.9.1', {"requires": ["dom", "widget", "widget-position", "widget-stack", "graphics", "axis-base"]}); +}, '3.12.0', {"requires": ["dom", "widget", "widget-position", "widget-stack", "graphics", "axis-base"]}); diff --git a/lib/yuilib/3.9.1/build/base-base/base-base-debug.js b/lib/yuilib/3.12.0/base-base/base-base-debug.js old mode 100644 new mode 100755 similarity index 59% rename from lib/yuilib/3.9.1/build/base-base/base-base-debug.js rename to lib/yuilib/3.12.0/base-base/base-base-debug.js index bbae3f498b4..5f552f68d1b --- a/lib/yuilib/3.9.1/build/base-base/base-base-debug.js +++ b/lib/yuilib/3.12.0/base-base/base-base-debug.js @@ -1,4 +1,10 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + YUI.add('base-base', function (Y, NAME) { /** @@ -32,6 +38,20 @@ YUI.add('base-base', function (Y, NAME) { * * *+ * **NOTE:** Prior to version 3.11.0, ATTRS would get added a class at a time. That is, + * Base would loop through each class in the hierarchy, and add the class' ATTRS, and + * then call it's initializer, and move on to the subclass' ATTRS and initializer. As of + * 3.11.0, ATTRS from all classes in the hierarchy are added in one `addAttrs` call before + * any initializers are called. This fixes subtle edge-case issues with subclass ATTRS overriding + * superclass `setter`, `getter` or `valueFn` definitions and being unable to get/set attributes + * defined by the subclass. This order of operation change may impact `setter`, `getter` or `valueFn` + * code which expects a superclass' initializer to have run. This is expected to be rare, but to support + * it, Base supports a `_preAddAttrs()`, method hook (same signature as `addAttrs`). Components can + * implement this method on their prototype for edge cases which do require finer control over + * the order in which attributes are added (see widget-htmlparser). + *
+ * + ** The static NAME property of each class extending * from Base will be used as the identifier for the class, and is used by Base to prefix * all events fired by instances of that class. @@ -55,14 +75,18 @@ YUI.add('base-base', function (Y, NAME) { *
* *+ * **NOTE:** Prior to version 3.11.0, ATTRS would get added a class at a time. That is, + * Base would loop through each class in the hierarchy, and add the class' ATTRS, and + * then call it's initializer, and move on to the subclass' ATTRS and initializer. As of + * 3.11.0, ATTRS from all classes in the hierarchy are added in one `addAttrs` call before + * any initializers are called. This fixes subtle edge-case issues with subclass ATTRS overriding + * superclass `setter`, `getter` or `valueFn` definitions and being unable to get/set attributes + * defined by the subclass. This order of operation change may impact `setter`, `getter` or `valueFn` + * code which expects a superclass' initializer to have run. This is expected to be rare, but to support + * it, Base supports a `_preAddAttrs()`, method hook (same signature as `addAttrs`). Components can + * implement this method on their prototype for edge cases which do require finer control over + * the order in which attributes are added (see widget-htmlparser). + *
+ * + ** The static NAME property of each class extending * from Base will be used as the identifier for the class, and is used by Base to prefix * all events fired by instances of that class. @@ -55,14 +75,18 @@ YUI.add('base-base', function (Y, NAME) { *
* *Mixes in a list of extensions to an existing class.
* @method mix * @static - * @param {Function} main The existing class into which the extensions should be mixed. The class needs to be Base or a class derived from Base (e.g. Widget) + * @param {Function} main The existing class into which the extensions should be mixed. + * The class needs to be Base or a class derived from Base (e.g. Widget) * @param {Function[]} extensions The set of extension classes which will mixed into the existing main class. * @return {Function} The modified main class, with extensions mixed in. */ Base.mix = function(main, extensions) { + + if (main._CACHED_CLASS_DATA) { + main._CACHED_CLASS_DATA = null; + } + return build(null, main, extensions, null, null, {dynamic:false}); }; @@ -434,25 +436,25 @@ YUI.add('base-build', function (Y, NAME) { * @private */ BaseCore._buildCfg = { + aggregates: AGGREGATES.concat(), + custom: { ATTRS : attrsAggregator, _ATTR_CFG : attrCfgAggregator, _NON_ATTRS_CFG: arrayAggregator - }, - - aggregates: AGGREGATES.concat() + } }; // Makes sure Base and BaseCore use separate `_buildCfg` objects. Base._buildCfg = { + aggregates: AGGREGATES.concat(), + custom: { ATTRS : attrsAggregator, _ATTR_CFG : attrCfgAggregator, _NON_ATTRS_CFG: arrayAggregator - }, - - aggregates: AGGREGATES.concat() + } }; -}, '3.9.1', {"requires": ["base-base"]}); +}, '3.12.0', {"requires": ["base-base"]}); diff --git a/lib/yuilib/3.12.0/base-build/base-build-min.js b/lib/yuilib/3.12.0/base-build/base-build-min.js new file mode 100755 index 00000000000..f39afdd178f --- /dev/null +++ b/lib/yuilib/3.12.0/base-build/base-build-min.js @@ -0,0 +1,8 @@ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + +YUI.add("base-build",function(e,t){function f(e,t,n){n[e]&&(t[e]=(t[e]||[]).concat(n[e]))}function l(e,t,n){n._ATTR_CFG&&(t._ATTR_CFG_HASH=null,f.apply(null,arguments))}function c(e,t,r){n.modifyAttrs(t,r.ATTRS)}var n=e.BaseCore,r=e.Base,i=e.Lang,s="initializer",o="destructor",u=["_PLUG","_UNPLUG"],a;r._build=function(t,n,i,u,a,f){var l=r._build,c=l._ctor(n,f),h=l._cfg(n,f,i),p=l._mixCust,d=c._yuibuild.dynamic,v,m,g,y,b,w;for(v=0,m=i.length;v
+ * for each (class in the hierarchy) {
+ * Call the class Extension constructors.
+ *
+ * Add the class ATTRS.
+ *
+ * Call the class initializer
+ * Call the class Extension initializers.
+ * }
+ *
+ *
+ * As of 3.11.0, ATTRS from all classes in the hierarchy are added in one `addAttrs` call
+ * before **any** initializers are called. That is, the flow becomes:
+ *
+ *
+ * for each (class in the hierarchy) {
+ * Call the class Extension constructors.
+ * }
+ *
+ * Add ATTRS for all classes
+ *
+ * for each (class in the hierarchy) {
+ * Call the class initializer.
+ * Call the class Extension initializers.
+ * }
+ *
+ *
+ * Adding all ATTRS at once fixes subtle edge-case issues with subclass ATTRS overriding
+ * superclass `setter`, `getter` or `valueFn` definitions and being unable to get/set attributes
+ * defined by the subclass. It also leaves us with a cleaner order of operation flow moving
+ * forward.
+ *
+ * However, it may require component developers to upgrade their components, for the following
+ * scenarios:
+ *
+ * 1. It impacts components which may have `setter`, `getter` or `valueFn` code which
+ * expects a superclass' initializer to have run.
+ *
+ * This is expected to be rare, but to support it, Base now supports a `_preAddAttrs()`, method
+ * hook (same signature as `addAttrs`). Components can implement this method on their prototype
+ * for edge cases which do require finer control over the order in which attributes are added
+ * (see widget-htmlparser for example).
+ *
+ * 2. Extension developers may need to move code from Extension constructors to `initializer`s
+ *
+ * Older extensions, which were written before `initializer` support was added, had a lot of
+ * initialization code in their constructors. For example, code which acccessed superclass
+ * attributes. With the new flow this code would not be able to see attributes. The recommendation
+ * is to move this initialization code to an `initializer` on the Extension, which was the
+ * recommendation for anything created after `initializer` support for Extensions was added.
+ *
* @class BaseCore
* @constructor
* @uses AttributeCore
@@ -172,6 +233,51 @@ YUI.add('base-core', function (Y, NAME) {
}
};
+ /**
+ Provides a way to safely modify a `Y.BaseCore` subclass' static `ATTRS`
+ after the class has been defined or created.
+
+ BaseCore-based classes cache information about the class hierarchy in order
+ to efficiently create instances. This cache includes includes the aggregated
+ `ATTRS` configs. If the static `ATTRS` configs need to be modified after the
+ class has been defined or create, then use this method which will make sure
+ to clear any cached data before making any modifications.
+
+ @method modifyAttrs
+ @param {Function} [ctor] The constructor function whose `ATTRS` should be
+ modified. If a `ctor` function is not specified, then `this` is assumed
+ to be the constructor which hosts the `ATTRS`.
+ @param {Object} configs The collection of `ATTRS` configs to mix with the
+ existing attribute configurations.
+ @static
+ @since 3.10.0
+ **/
+ BaseCore.modifyAttrs = function (ctor, configs) {
+ // When called without a constructor, assume `this` is the constructor.
+ if (typeof ctor !== 'function') {
+ configs = ctor;
+ ctor = this;
+ }
+
+ var attrs, attr, name;
+
+ // Eagerly create the `ATTRS` object if it doesn't already exist.
+ attrs = ctor.ATTRS || (ctor.ATTRS = {});
+
+ if (configs) {
+ // Clear cache because it has ATTRS aggregation data which is about
+ // to be modified.
+ ctor._CACHED_CLASS_DATA = null;
+
+ for (name in configs) {
+ if (configs.hasOwnProperty(name)) {
+ attr = attrs[name] || (attrs[name] = {});
+ Y.mix(attr, configs[name], true);
+ }
+ }
+ }
+ };
+
BaseCore.prototype = {
/**
@@ -312,30 +418,57 @@ YUI.add('base-core', function (Y, NAME) {
},
/**
- * A helper method used when processing ATTRS across the class hierarchy during
- * initialization. Returns a disposable object with the attributes defined for
- * the provided class, extracted from the set of all attributes passed in.
+ * A helper method used to isolate the attrs config for this instance to pass to `addAttrs`,
+ * from the static cached ATTRS for the class.
*
- * @method _filterAttrCfs
+ * @method _getInstanceAttrCfgs
* @private
*
- * @param {Function} clazz The class for which the desired attributes are required.
* @param {Object} allCfgs The set of all attribute configurations for this instance.
* Attributes will be removed from this set, if they belong to the filtered class, so
* that by the time all classes are processed, allCfgs will be empty.
*
- * @return {Object} The set of attributes belonging to the class passed in, in the form
- * of an object with attribute name/configuration pairs.
+ * @return {Object} The set of attributes to be added for this instance, suitable
+ * for passing through to `addAttrs`.
*/
- _filterAttrCfgs : function(clazz, allCfgs) {
- var cfgs = null, attr, attrs = clazz.ATTRS;
+ _getInstanceAttrCfgs : function(allCfgs) {
- if (attrs) {
- for (attr in attrs) {
- if (allCfgs[attr]) {
- cfgs = cfgs || {};
- cfgs[attr] = allCfgs[attr];
- allCfgs[attr] = null;
+ var cfgs = {},
+ cfg,
+ val,
+ subAttr,
+ subAttrs,
+ subAttrPath,
+ attr,
+ attrCfg,
+ allSubAttrs = allCfgs._subAttrs,
+ attrCfgProperties = this._attrCfgHash();
+
+ for (attr in allCfgs) {
+
+ if (allCfgs.hasOwnProperty(attr) && attr !== "_subAttrs") {
+
+ attrCfg = allCfgs[attr];
+
+ // Need to isolate from allCfgs, because we're going to set values etc.
+ cfg = cfgs[attr] = _wlmix({}, attrCfg, attrCfgProperties);
+
+ val = cfg.value;
+
+ if (val && (typeof val === "object")) {
+ this._cloneDefaultValue(attr, cfg);
+ }
+
+ if (allSubAttrs && allSubAttrs.hasOwnProperty(attr)) {
+ subAttrs = allCfgs._subAttrs[attr];
+
+ for (subAttrPath in subAttrs) {
+ subAttr = subAttrs[subAttrPath];
+
+ if (subAttr.path) {
+ O.setValue(cfg.value, subAttr.path, subAttr.value);
+ }
+ }
}
}
}
@@ -382,7 +515,9 @@ YUI.add('base-core', function (Y, NAME) {
* @private
*/
_initHierarchyData : function() {
+
var ctor = this.constructor,
+ cachedClassData = ctor._CACHED_CLASS_DATA,
c,
i,
l,
@@ -390,59 +525,71 @@ YUI.add('base-core', function (Y, NAME) {
attrCfgHash,
needsAttrCfgHash = !ctor._ATTR_CFG_HASH,
nonAttrsCfg,
- nonAttrs = (this._allowAdHocAttrs) ? {} : null,
+ nonAttrs = {},
classes = [],
attrs = [];
// Start with `this` instance's constructor.
c = ctor;
- while (c) {
- // Add to classes
- classes[classes.length] = c;
+ if (!cachedClassData) {
- // Add to attributes
- if (c.ATTRS) {
- attrs[attrs.length] = c.ATTRS;
+ while (c) {
+ // Add to classes
+ classes[classes.length] = c;
+
+ // Add to attributes
+ if (c.ATTRS) {
+ attrs[attrs.length] = c.ATTRS;
+ }
+
+ // Aggregate ATTR cfg whitelist.
+ if (needsAttrCfgHash) {
+ attrCfg = c._ATTR_CFG;
+ attrCfgHash = attrCfgHash || {};
+
+ if (attrCfg) {
+ for (i = 0, l = attrCfg.length; i < l; i += 1) {
+ attrCfgHash[attrCfg[i]] = true;
+ }
+ }
+ }
+
+ // Commenting out the if. We always aggregate, since we don't
+ // know if we'll be needing this on the instance or not.
+ // if (this._allowAdHocAttrs) {
+ nonAttrsCfg = c._NON_ATTRS_CFG;
+ if (nonAttrsCfg) {
+ for (i = 0, l = nonAttrsCfg.length; i < l; i++) {
+ nonAttrs[nonAttrsCfg[i]] = true;
+ }
+ }
+ //}
+
+ c = c.superclass ? c.superclass.constructor : null;
}
- // Aggregate ATTR cfg whitelist.
+ // Cache computed `_ATTR_CFG_HASH` on the constructor.
if (needsAttrCfgHash) {
- attrCfg = c._ATTR_CFG;
- attrCfgHash = attrCfgHash || {};
-
- if (attrCfg) {
- for (i = 0, l = attrCfg.length; i < l; i += 1) {
- attrCfgHash[attrCfg[i]] = true;
- }
- }
+ ctor._ATTR_CFG_HASH = attrCfgHash;
}
- if (this._allowAdHocAttrs) {
- nonAttrsCfg = c._NON_ATTRS_CFG;
- if (nonAttrsCfg) {
- for (i = 0, l = nonAttrsCfg.length; i < l; i++) {
- nonAttrs[nonAttrsCfg[i]] = true;
- }
- }
- }
+ cachedClassData = ctor._CACHED_CLASS_DATA = {
+ classes : classes,
+ nonAttrs : nonAttrs,
+ attrs : this._aggregateAttrs(attrs)
+ };
- c = c.superclass ? c.superclass.constructor : null;
}
- // Cache computed `_ATTR_CFG_HASH` on the constructor.
- if (needsAttrCfgHash) {
- ctor._ATTR_CFG_HASH = attrCfgHash;
- }
-
- this._classes = classes;
- this._nonAttrs = nonAttrs;
- this._attrs = this._aggregateAttrs(attrs);
+ this._classes = cachedClassData.classes;
+ this._attrs = cachedClassData.attrs;
+ this._nonAttrs = cachedClassData.nonAttrs;
},
/**
* Utility method to define the attribute hash used to filter/whitelist property mixes for
- * this class.
+ * this class for iteration performance reasons.
*
* @method _attrCfgHash
* @private
@@ -451,6 +598,32 @@ YUI.add('base-core', function (Y, NAME) {
return this.constructor._ATTR_CFG_HASH;
},
+ /**
+ * This method assumes that the value has already been checked to be an object.
+ * Since it's on a critical path, we don't want to re-do the check.
+ *
+ * @method _cloneDefaultValue
+ * @param {Object} cfg
+ * @private
+ */
+ _cloneDefaultValue : function(attr, cfg) {
+
+ var val = cfg.value,
+ clone = cfg.cloneDefaultValue;
+
+ if (clone === DEEP || clone === true) {
+ Y.log('Cloning default value for attribute:' + attr, 'info', 'base');
+ cfg.value = Y.clone(val);
+ } else if (clone === SHALLOW) {
+ Y.log('Merging default value for attribute:' + attr, 'info', 'base');
+ cfg.value = Y.merge(val);
+ } else if ((clone === undefined && (OBJECT_CONSTRUCTOR === val.constructor || L.isArray(val)))) {
+ cfg.value = Y.clone(val);
+ }
+ // else if (clone === false), don't clone the static default value.
+ // It's intended to be used by reference.
+ },
+
/**
* A helper method, used by _initHierarchyData to aggregate
* attribute configuration across the instances class hierarchy.
@@ -466,42 +639,29 @@ YUI.add('base-core', function (Y, NAME) {
* @return {Object} The aggregate set of ATTRS definitions for the instance
*/
_aggregateAttrs : function(allAttrs) {
+
var attr,
attrs,
+ subAttrsHash,
cfg,
- val,
path,
i,
- clone,
cfgPropsHash = this._attrCfgHash(),
aggAttr,
aggAttrs = {};
if (allAttrs) {
for (i = allAttrs.length-1; i >= 0; --i) {
+
attrs = allAttrs[i];
for (attr in attrs) {
if (attrs.hasOwnProperty(attr)) {
- // Protect config passed in
+ // PERF TODO: Do we need to merge here, since we're merging later in getInstanceAttrCfgs
+ // Should we move this down to only merge if we hit the path or valueFn ifs below?
cfg = _wlmix({}, attrs[attr], cfgPropsHash);
- val = cfg.value;
- clone = cfg.cloneDefaultValue;
-
- if (val) {
- if ( (clone === undefined && (OBJECT_CONSTRUCTOR === val.constructor || L.isArray(val))) || clone === DEEP || clone === true) {
- Y.log('Cloning default value for attribute:' + attr, 'info', 'base');
- cfg.value = Y.clone(val);
- } else if (clone === SHALLOW) {
- Y.log('Merging default value for attribute:' + attr, 'info', 'base');
- cfg.value = Y.merge(val);
- }
- // else if (clone === false), don't clone the static default value.
- // It's intended to be used by reference.
- }
-
path = null;
if (attr.indexOf(DOT) !== -1) {
path = attr.split(DOT);
@@ -509,15 +669,34 @@ YUI.add('base-core', function (Y, NAME) {
}
aggAttr = aggAttrs[attr];
+
if (path && aggAttr && aggAttr.value) {
- O.setValue(aggAttr.value, path, val);
+
+ subAttrsHash = aggAttrs._subAttrs;
+
+ if (!subAttrsHash) {
+ subAttrsHash = aggAttrs._subAttrs = {};
+ }
+
+ if (!subAttrsHash[attr]) {
+ subAttrsHash[attr] = {};
+ }
+
+ subAttrsHash[attr][path.join(DOT)] = {
+ value: cfg.value,
+ path : path
+ };
+
} else if (!path) {
+
if (!aggAttr) {
aggAttrs[attr] = cfg;
} else {
if (aggAttr.valueFn && VALUE in cfg) {
aggAttr.valueFn = null;
}
+
+ // Mix into existing config.
_wlmix(aggAttr, cfg, cfgPropsHash);
}
}
@@ -540,51 +719,73 @@ YUI.add('base-core', function (Y, NAME) {
* @private
*/
_initHierarchy : function(userVals) {
+
var lazy = this._lazyAddAttrs,
constr,
constrProto,
+ i,
+ l,
ci,
ei,
el,
+ ext,
extProto,
exts,
+ instanceAttrs,
+ initializers = [],
classes = this._getClasses(),
attrCfgs = this._getAttrCfgs(),
cl = classes.length - 1;
+ // Constructors
for (ci = cl; ci >= 0; ci--) {
constr = classes[ci];
constrProto = constr.prototype;
exts = constr._yuibuild && constr._yuibuild.exts;
- if (exts) {
- for (ei = 0, el = exts.length; ei < el; ei++) {
- exts[ei].apply(this, arguments);
- }
- }
-
- this.addAttrs(this._filterAttrCfgs(constr, attrCfgs), userVals, lazy);
-
- if (this._allowAdHocAttrs && ci === cl) {
- this.addAttrs(this._filterAdHocAttrs(attrCfgs, userVals), userVals, lazy);
- }
-
// Using INITIALIZER in hasOwnProperty check, for performance reasons (helps IE6 avoid GC thresholds when
// referencing string literals). Not using it in apply, again, for performance "." is faster.
+
if (constrProto.hasOwnProperty(INITIALIZER)) {
- constrProto.initializer.apply(this, arguments);
+ // Store initializer while we're here and looping
+ initializers[initializers.length] = constrProto.initializer;
}
if (exts) {
- for (ei = 0; ei < el; ei++) {
- extProto = exts[ei].prototype;
+ for (ei = 0, el = exts.length; ei < el; ei++) {
+
+ ext = exts[ei];
+
+ // Ext Constructor
+ ext.apply(this, arguments);
+
+ extProto = ext.prototype;
if (extProto.hasOwnProperty(INITIALIZER)) {
- extProto.initializer.apply(this, arguments);
+ // Store initializer while we're here and looping
+ initializers[initializers.length] = extProto.initializer;
}
}
}
}
+
+ // ATTRS
+ instanceAttrs = this._getInstanceAttrCfgs(attrCfgs);
+
+ if (this._preAddAttrs) {
+ this._preAddAttrs(instanceAttrs, userVals, lazy);
+ }
+
+ if (this._allowAdHocAttrs) {
+ this.addAttrs(this._filterAdHocAttrs(attrCfgs, userVals), userVals, lazy);
+ }
+
+ this.addAttrs(instanceAttrs, userVals, lazy);
+
+ // Initializers
+ for (i = 0, l = initializers.length; i < l; i++) {
+ initializers[i].apply(this, arguments);
+ }
},
/**
@@ -641,4 +842,4 @@ YUI.add('base-core', function (Y, NAME) {
Y.BaseCore = BaseCore;
-}, '3.9.1', {"requires": ["attribute-core"]});
+}, '3.12.0', {"requires": ["attribute-core"]});
diff --git a/lib/yuilib/3.12.0/base-core/base-core-min.js b/lib/yuilib/3.12.0/base-core/base-core-min.js
new file mode 100755
index 00000000000..288b158425c
--- /dev/null
+++ b/lib/yuilib/3.12.0/base-core/base-core-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("base-core",function(e,t){function v(e){this._BaseInvoked||(this._BaseInvoked=!0,this._initBase(e))}var n=e.Object,r=e.Lang,i=".",s="initialized",o="destroyed",u="initializer",a="value",f=Object.prototype.constructor,l="deep",c="shallow",h="destructor",p=e.AttributeCore,d=function(e,t,n){var r;for(r in t)n[r]&&(e[r]=t[r]);return e};v._ATTR_CFG=p._ATTR_CFG.concat("cloneDefaultValue"),v._NON_ATTRS_CFG=["plugins"],v.NAME="baseCore",v.ATTRS={initialized:{readOnly:!0,value:!1},destroyed:{readOnly:!0,value:!1}},v.modifyAttrs=function(t,n){typeof t!="function"&&(n=t,t=this);var r,i,s;r=t.ATTRS||(t.ATTRS={});if(n){t._CACHED_CLASS_DATA=null;for(s in n)n.hasOwnProperty(s)&&(i=r[s]||(r[s]={}),e.mix(i,n[s],!0))}},v.prototype={_initBase:function(t){e.stamp(this),this._initAttribute(t);var n=e.Plugin&&e.Plugin.Host;this._initPlugins&&n&&n.call(this),this._lazyAddAttrs!==!1&&(this._lazyAddAttrs=!0),this.name=this.constructor.NAME,this.init.apply(this,arguments)},_initAttribute:function(){p.call(this)},init:function(e){return this._baseInit(e),this},_baseInit:function(e){this._initHierarchy(e),this._initPlugins&&this._initPlugins(e),this._set(s,!0)},destroy:function(){return this._baseDestroy(),this},_baseDestroy:function(){this._destroyPlugins&&this._destroyPlugins(),this._destroyHierarchy(),this._set(o,!0)},_getClasses:function(){return this._classes||this._initHierarchyData(),this._classes},_getAttrCfgs:function(){return this._attrs||this._initHierarchyData(),this._attrs},_getInstanceAttrCfgs:function(e){var t={},r,i,s,o,u,a,f,l=e._subAttrs,c=this._attrCfgHash();for(a in e)if(e.hasOwnProperty(a)&&a!=="_subAttrs"){f=e[a],r=t[a]=d({},f,c),i=r.value,i&&typeof i=="object"&&this._cloneDefaultValue(a,r);if(l&&l.hasOwnProperty(a)){o=e._subAttrs[a];for(u in o)s=o[u],s.path&&n.setValue(r.value,s.path,s.value)}}return t},_filterAdHocAttrs:function(e,t){var n,r=this._nonAttrs,i;if(t){n={};for(i in t)!e[i]&&!r[i]&&t.hasOwnProperty(i)&&(n[i]={value:t[i]})}return n},_initHierarchyData:function(){var e=this.constructor,t=e._CACHED_CLASS_DATA,n,r,i,s,o,u=!e._ATTR_CFG_HASH,a,f={},l=[],c=[];n=e;if(!t){while(n){l[l.length]=n,n.ATTRS&&(c[c.length]=n.ATTRS);if(u){s=n._ATTR_CFG,o=o||{};if(s)for(r=0,i=s.length;r=0;--u){n=e[u];for(t in n)n.hasOwnProperty(t)&&(s=d({},n[t],f),o=null,t.indexOf(i)!==-1&&(o=t.split(i),t=o.shift()),l=c[t],o&&l&&l.value?(r=c._subAttrs,r||(r=c._subAttrs={}),r[t]||(r[t]={}),r[t][o.join(i)]={value:s.value,path:o}):o||(l?(l.valueFn&&a in s&&(l.valueFn=null),d(l,s,f)):c[t]=s))}return c},_initHierarchy:function(e){var t=this._lazyAddAttrs,n,r,i,s,o,a,f,l,c,h,p,d=[],v=this._getClasses(),m=this._getAttrCfgs(),g=v.length-1;for(o=g;o>=0;o--){n=v[o],r=n.prototype,h=n._yuibuild&&n._yuibuild.exts,r.hasOwnProperty(u)&&(d[d.length]=r.initializer);if(h)for(a=0,f=h.length;a
+ * for each (class in the hierarchy) {
+ * Call the class Extension constructors.
+ * }
+ *
+ * Add ATTRS for all classes
+ *
+ * for each (class in the hierarchy) {
+ * Call the class initializer.
+ * Call the class Extension initializers.
+ * }
+ *
+ *
+ * Adding all ATTRS at once fixes subtle edge-case issues with subclass ATTRS overriding
+ * superclass `setter`, `getter` or `valueFn` definitions and being unable to get/set attributes
+ * defined by the subclass. It also leaves us with a cleaner order of operation flow moving
+ * forward.
+ *
+ * However, it may require component developers to upgrade their components, for the following
+ * scenarios:
+ *
+ * 1. It impacts components which may have `setter`, `getter` or `valueFn` code which
+ * expects a superclass' initializer to have run.
+ *
+ * This is expected to be rare, but to support it, Base now supports a `_preAddAttrs()`, method
+ * hook (same signature as `addAttrs`). Components can implement this method on their prototype
+ * for edge cases which do require finer control over the order in which attributes are added
+ * (see widget-htmlparser for example).
+ *
+ * 2. Extension developers may need to move code from Extension constructors to `initializer`s
+ *
+ * Older extensions, which were written before `initializer` support was added, had a lot of
+ * initialization code in their constructors. For example, code which acccessed superclass
+ * attributes. With the new flow this code would not be able to see attributes. The recommendation
+ * is to move this initialization code to an `initializer` on the Extension, which was the
+ * recommendation for anything created after `initializer` support for Extensions was added.
+ *
* @class BaseCore
* @constructor
* @uses AttributeCore
@@ -170,6 +231,51 @@ YUI.add('base-core', function (Y, NAME) {
}
};
+ /**
+ Provides a way to safely modify a `Y.BaseCore` subclass' static `ATTRS`
+ after the class has been defined or created.
+
+ BaseCore-based classes cache information about the class hierarchy in order
+ to efficiently create instances. This cache includes includes the aggregated
+ `ATTRS` configs. If the static `ATTRS` configs need to be modified after the
+ class has been defined or create, then use this method which will make sure
+ to clear any cached data before making any modifications.
+
+ @method modifyAttrs
+ @param {Function} [ctor] The constructor function whose `ATTRS` should be
+ modified. If a `ctor` function is not specified, then `this` is assumed
+ to be the constructor which hosts the `ATTRS`.
+ @param {Object} configs The collection of `ATTRS` configs to mix with the
+ existing attribute configurations.
+ @static
+ @since 3.10.0
+ **/
+ BaseCore.modifyAttrs = function (ctor, configs) {
+ // When called without a constructor, assume `this` is the constructor.
+ if (typeof ctor !== 'function') {
+ configs = ctor;
+ ctor = this;
+ }
+
+ var attrs, attr, name;
+
+ // Eagerly create the `ATTRS` object if it doesn't already exist.
+ attrs = ctor.ATTRS || (ctor.ATTRS = {});
+
+ if (configs) {
+ // Clear cache because it has ATTRS aggregation data which is about
+ // to be modified.
+ ctor._CACHED_CLASS_DATA = null;
+
+ for (name in configs) {
+ if (configs.hasOwnProperty(name)) {
+ attr = attrs[name] || (attrs[name] = {});
+ Y.mix(attr, configs[name], true);
+ }
+ }
+ }
+ };
+
BaseCore.prototype = {
/**
@@ -308,30 +414,57 @@ YUI.add('base-core', function (Y, NAME) {
},
/**
- * A helper method used when processing ATTRS across the class hierarchy during
- * initialization. Returns a disposable object with the attributes defined for
- * the provided class, extracted from the set of all attributes passed in.
+ * A helper method used to isolate the attrs config for this instance to pass to `addAttrs`,
+ * from the static cached ATTRS for the class.
*
- * @method _filterAttrCfs
+ * @method _getInstanceAttrCfgs
* @private
*
- * @param {Function} clazz The class for which the desired attributes are required.
* @param {Object} allCfgs The set of all attribute configurations for this instance.
* Attributes will be removed from this set, if they belong to the filtered class, so
* that by the time all classes are processed, allCfgs will be empty.
*
- * @return {Object} The set of attributes belonging to the class passed in, in the form
- * of an object with attribute name/configuration pairs.
+ * @return {Object} The set of attributes to be added for this instance, suitable
+ * for passing through to `addAttrs`.
*/
- _filterAttrCfgs : function(clazz, allCfgs) {
- var cfgs = null, attr, attrs = clazz.ATTRS;
+ _getInstanceAttrCfgs : function(allCfgs) {
- if (attrs) {
- for (attr in attrs) {
- if (allCfgs[attr]) {
- cfgs = cfgs || {};
- cfgs[attr] = allCfgs[attr];
- allCfgs[attr] = null;
+ var cfgs = {},
+ cfg,
+ val,
+ subAttr,
+ subAttrs,
+ subAttrPath,
+ attr,
+ attrCfg,
+ allSubAttrs = allCfgs._subAttrs,
+ attrCfgProperties = this._attrCfgHash();
+
+ for (attr in allCfgs) {
+
+ if (allCfgs.hasOwnProperty(attr) && attr !== "_subAttrs") {
+
+ attrCfg = allCfgs[attr];
+
+ // Need to isolate from allCfgs, because we're going to set values etc.
+ cfg = cfgs[attr] = _wlmix({}, attrCfg, attrCfgProperties);
+
+ val = cfg.value;
+
+ if (val && (typeof val === "object")) {
+ this._cloneDefaultValue(attr, cfg);
+ }
+
+ if (allSubAttrs && allSubAttrs.hasOwnProperty(attr)) {
+ subAttrs = allCfgs._subAttrs[attr];
+
+ for (subAttrPath in subAttrs) {
+ subAttr = subAttrs[subAttrPath];
+
+ if (subAttr.path) {
+ O.setValue(cfg.value, subAttr.path, subAttr.value);
+ }
+ }
}
}
}
@@ -378,7 +511,9 @@ YUI.add('base-core', function (Y, NAME) {
* @private
*/
_initHierarchyData : function() {
+
var ctor = this.constructor,
+ cachedClassData = ctor._CACHED_CLASS_DATA,
c,
i,
l,
@@ -386,59 +521,71 @@ YUI.add('base-core', function (Y, NAME) {
attrCfgHash,
needsAttrCfgHash = !ctor._ATTR_CFG_HASH,
nonAttrsCfg,
- nonAttrs = (this._allowAdHocAttrs) ? {} : null,
+ nonAttrs = {},
classes = [],
attrs = [];
// Start with `this` instance's constructor.
c = ctor;
- while (c) {
- // Add to classes
- classes[classes.length] = c;
+ if (!cachedClassData) {
- // Add to attributes
- if (c.ATTRS) {
- attrs[attrs.length] = c.ATTRS;
+ while (c) {
+ // Add to classes
+ classes[classes.length] = c;
+
+ // Add to attributes
+ if (c.ATTRS) {
+ attrs[attrs.length] = c.ATTRS;
+ }
+
+ // Aggregate ATTR cfg whitelist.
+ if (needsAttrCfgHash) {
+ attrCfg = c._ATTR_CFG;
+ attrCfgHash = attrCfgHash || {};
+
+ if (attrCfg) {
+ for (i = 0, l = attrCfg.length; i < l; i += 1) {
+ attrCfgHash[attrCfg[i]] = true;
+ }
+ }
+ }
+
+ // Commenting out the if. We always aggregate, since we don't
+ // know if we'll be needing this on the instance or not.
+ // if (this._allowAdHocAttrs) {
+ nonAttrsCfg = c._NON_ATTRS_CFG;
+ if (nonAttrsCfg) {
+ for (i = 0, l = nonAttrsCfg.length; i < l; i++) {
+ nonAttrs[nonAttrsCfg[i]] = true;
+ }
+ }
+ //}
+
+ c = c.superclass ? c.superclass.constructor : null;
}
- // Aggregate ATTR cfg whitelist.
+ // Cache computed `_ATTR_CFG_HASH` on the constructor.
if (needsAttrCfgHash) {
- attrCfg = c._ATTR_CFG;
- attrCfgHash = attrCfgHash || {};
-
- if (attrCfg) {
- for (i = 0, l = attrCfg.length; i < l; i += 1) {
- attrCfgHash[attrCfg[i]] = true;
- }
- }
+ ctor._ATTR_CFG_HASH = attrCfgHash;
}
- if (this._allowAdHocAttrs) {
- nonAttrsCfg = c._NON_ATTRS_CFG;
- if (nonAttrsCfg) {
- for (i = 0, l = nonAttrsCfg.length; i < l; i++) {
- nonAttrs[nonAttrsCfg[i]] = true;
- }
- }
- }
+ cachedClassData = ctor._CACHED_CLASS_DATA = {
+ classes : classes,
+ nonAttrs : nonAttrs,
+ attrs : this._aggregateAttrs(attrs)
+ };
- c = c.superclass ? c.superclass.constructor : null;
}
- // Cache computed `_ATTR_CFG_HASH` on the constructor.
- if (needsAttrCfgHash) {
- ctor._ATTR_CFG_HASH = attrCfgHash;
- }
-
- this._classes = classes;
- this._nonAttrs = nonAttrs;
- this._attrs = this._aggregateAttrs(attrs);
+ this._classes = cachedClassData.classes;
+ this._attrs = cachedClassData.attrs;
+ this._nonAttrs = cachedClassData.nonAttrs;
},
/**
* Utility method to define the attribute hash used to filter/whitelist property mixes for
- * this class.
+ * this class for iteration performance reasons.
*
* @method _attrCfgHash
* @private
@@ -447,6 +594,30 @@ YUI.add('base-core', function (Y, NAME) {
return this.constructor._ATTR_CFG_HASH;
},
+ /**
+ * This method assumes that the value has already been checked to be an object.
+ * Since it's on a critical path, we don't want to re-do the check.
+ *
+ * @method _cloneDefaultValue
+ * @param {Object} cfg
+ * @private
+ */
+ _cloneDefaultValue : function(attr, cfg) {
+
+ var val = cfg.value,
+ clone = cfg.cloneDefaultValue;
+
+ if (clone === DEEP || clone === true) {
+ cfg.value = Y.clone(val);
+ } else if (clone === SHALLOW) {
+ cfg.value = Y.merge(val);
+ } else if ((clone === undefined && (OBJECT_CONSTRUCTOR === val.constructor || L.isArray(val)))) {
+ cfg.value = Y.clone(val);
+ }
+ // else if (clone === false), don't clone the static default value.
+ // It's intended to be used by reference.
+ },
+
/**
* A helper method, used by _initHierarchyData to aggregate
* attribute configuration across the instances class hierarchy.
@@ -462,40 +633,29 @@ YUI.add('base-core', function (Y, NAME) {
* @return {Object} The aggregate set of ATTRS definitions for the instance
*/
_aggregateAttrs : function(allAttrs) {
+
var attr,
attrs,
+ subAttrsHash,
cfg,
- val,
path,
i,
- clone,
cfgPropsHash = this._attrCfgHash(),
aggAttr,
aggAttrs = {};
if (allAttrs) {
for (i = allAttrs.length-1; i >= 0; --i) {
+
attrs = allAttrs[i];
for (attr in attrs) {
if (attrs.hasOwnProperty(attr)) {
- // Protect config passed in
+ // PERF TODO: Do we need to merge here, since we're merging later in getInstanceAttrCfgs
+ // Should we move this down to only merge if we hit the path or valueFn ifs below?
cfg = _wlmix({}, attrs[attr], cfgPropsHash);
- val = cfg.value;
- clone = cfg.cloneDefaultValue;
-
- if (val) {
- if ( (clone === undefined && (OBJECT_CONSTRUCTOR === val.constructor || L.isArray(val))) || clone === DEEP || clone === true) {
- cfg.value = Y.clone(val);
- } else if (clone === SHALLOW) {
- cfg.value = Y.merge(val);
- }
- // else if (clone === false), don't clone the static default value.
- // It's intended to be used by reference.
- }
-
path = null;
if (attr.indexOf(DOT) !== -1) {
path = attr.split(DOT);
@@ -503,15 +663,34 @@ YUI.add('base-core', function (Y, NAME) {
}
aggAttr = aggAttrs[attr];
+
if (path && aggAttr && aggAttr.value) {
- O.setValue(aggAttr.value, path, val);
+
+ subAttrsHash = aggAttrs._subAttrs;
+
+ if (!subAttrsHash) {
+ subAttrsHash = aggAttrs._subAttrs = {};
+ }
+
+ if (!subAttrsHash[attr]) {
+ subAttrsHash[attr] = {};
+ }
+
+ subAttrsHash[attr][path.join(DOT)] = {
+ value: cfg.value,
+ path : path
+ };
+
} else if (!path) {
+
if (!aggAttr) {
aggAttrs[attr] = cfg;
} else {
if (aggAttr.valueFn && VALUE in cfg) {
aggAttr.valueFn = null;
}
+
+ // Mix into existing config.
_wlmix(aggAttr, cfg, cfgPropsHash);
}
}
@@ -534,51 +713,73 @@ YUI.add('base-core', function (Y, NAME) {
* @private
*/
_initHierarchy : function(userVals) {
+
var lazy = this._lazyAddAttrs,
constr,
constrProto,
+ i,
+ l,
ci,
ei,
el,
+ ext,
extProto,
exts,
+ instanceAttrs,
+ initializers = [],
classes = this._getClasses(),
attrCfgs = this._getAttrCfgs(),
cl = classes.length - 1;
+ // Constructors
for (ci = cl; ci >= 0; ci--) {
constr = classes[ci];
constrProto = constr.prototype;
exts = constr._yuibuild && constr._yuibuild.exts;
- if (exts) {
- for (ei = 0, el = exts.length; ei < el; ei++) {
- exts[ei].apply(this, arguments);
- }
- }
-
- this.addAttrs(this._filterAttrCfgs(constr, attrCfgs), userVals, lazy);
-
- if (this._allowAdHocAttrs && ci === cl) {
- this.addAttrs(this._filterAdHocAttrs(attrCfgs, userVals), userVals, lazy);
- }
-
// Using INITIALIZER in hasOwnProperty check, for performance reasons (helps IE6 avoid GC thresholds when
// referencing string literals). Not using it in apply, again, for performance "." is faster.
+
if (constrProto.hasOwnProperty(INITIALIZER)) {
- constrProto.initializer.apply(this, arguments);
+ // Store initializer while we're here and looping
+ initializers[initializers.length] = constrProto.initializer;
}
if (exts) {
- for (ei = 0; ei < el; ei++) {
- extProto = exts[ei].prototype;
+ for (ei = 0, el = exts.length; ei < el; ei++) {
+
+ ext = exts[ei];
+
+ // Ext Constructor
+ ext.apply(this, arguments);
+
+ extProto = ext.prototype;
if (extProto.hasOwnProperty(INITIALIZER)) {
- extProto.initializer.apply(this, arguments);
+ // Store initializer while we're here and looping
+ initializers[initializers.length] = extProto.initializer;
}
}
}
}
+
+ // ATTRS
+ instanceAttrs = this._getInstanceAttrCfgs(attrCfgs);
+
+ if (this._preAddAttrs) {
+ this._preAddAttrs(instanceAttrs, userVals, lazy);
+ }
+
+ if (this._allowAdHocAttrs) {
+ this.addAttrs(this._filterAdHocAttrs(attrCfgs, userVals), userVals, lazy);
+ }
+
+ this.addAttrs(instanceAttrs, userVals, lazy);
+
+ // Initializers
+ for (i = 0, l = initializers.length; i < l; i++) {
+ initializers[i].apply(this, arguments);
+ }
},
/**
@@ -635,4 +836,4 @@ YUI.add('base-core', function (Y, NAME) {
Y.BaseCore = BaseCore;
-}, '3.9.1', {"requires": ["attribute-core"]});
+}, '3.12.0', {"requires": ["attribute-core"]});
diff --git a/lib/yuilib/3.9.1/build/base-observable/base-observable-debug.js b/lib/yuilib/3.12.0/base-observable/base-observable-debug.js
old mode 100644
new mode 100755
similarity index 83%
rename from lib/yuilib/3.9.1/build/base-observable/base-observable-debug.js
rename to lib/yuilib/3.12.0/base-observable/base-observable-debug.js
index 15282848fc2..85cbcb91ee4
--- a/lib/yuilib/3.9.1/build/base-observable/base-observable-debug.js
+++ b/lib/yuilib/3.12.0/base-observable/base-observable-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('base-observable', function (Y, NAME) {
/**
@@ -42,7 +48,7 @@ YUI.add('base-observable', function (Y, NAME) {
* @method _initAttribute
* @private
*/
- _initAttribute: function(cfg) {
+ _initAttribute: function() {
BaseCore.prototype._initAttribute.apply(this, arguments);
AttributeObservable.call(this);
@@ -61,6 +67,7 @@ YUI.add('base-observable', function (Y, NAME) {
* @return {Base} A reference to this object
*/
init: function(config) {
+
/**
*
* Lifecycle event for the init phase, fired prior to initialization.
@@ -78,16 +85,33 @@ YUI.add('base-observable', function (Y, NAME) {
* @param {EventFacade} e Event object, with a cfg property which
* refers to the configuration object passed to the constructor.
*/
- this.publish(INIT, {
- queuable:false,
- fireOnce:true,
- defaultTargetOnly:true,
- defaultFn:this._defInitFn
- });
+
+ // PERF: Using lower level _publish() for
+ // critical path performance
+
+ var type = this._getFullType(INIT),
+ e = this._publish(type);
+
+ e.emitFacade = true;
+ e.fireOnce = true;
+ e.defaultTargetOnly = true;
+ e.defaultFn = this._defInitFn;
this._preInitEventCfg(config);
- this.fire(INIT, {cfg: config});
+ if (e._hasPotentialSubscribers()) {
+ this.fire(type, {cfg: config});
+ } else {
+
+ this._baseInit(config);
+
+ // HACK. Major hack actually. But really fast for no-listeners.
+ // Since it's fireOnce, subscribers may come along later, so since we're
+ // bypassing the event stack the first time, we need to tell the published
+ // event that it's been "fired". Could extract it into a CE method?
+ e.fired = true;
+ e.firedWith = [{cfg:config}];
+ }
return this;
},
@@ -116,6 +140,7 @@ YUI.add('base-observable', function (Y, NAME) {
if (userTargets || _BUBBLETARGETS in this) {
target = userTargets ? (config && config.bubbleTargets) : this._bubbleTargets;
+
if (L.isArray(target)) {
for (i = 0, l = target.length; i < l; i++) {
this.addTarget(target[i]);
@@ -161,7 +186,6 @@ YUI.add('base-observable', function (Y, NAME) {
* @param {EventFacade} e Event object
*/
this.publish(DESTROY, {
- queuable:false,
fireOnce:true,
defaultTargetOnly:true,
defaultFn: this._defDestroyFn
@@ -201,4 +225,4 @@ YUI.add('base-observable', function (Y, NAME) {
Y.BaseObservable = BaseObservable;
-}, '3.9.1', {"requires": ["attribute-observable"]});
+}, '3.12.0', {"requires": ["attribute-observable"]});
diff --git a/lib/yuilib/3.12.0/base-observable/base-observable-min.js b/lib/yuilib/3.12.0/base-observable/base-observable-min.js
new file mode 100755
index 00000000000..12ff3cd84ab
--- /dev/null
+++ b/lib/yuilib/3.12.0/base-observable/base-observable-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("base-observable",function(e,t){function f(){}var n=e.Lang,r="destroy",i="init",s="bubbleTargets",o="_bubbleTargets",u=e.AttributeObservable,a=e.BaseCore;f._ATTR_CFG=u._ATTR_CFG.concat(),f._NON_ATTRS_CFG=["on","after","bubbleTargets"],f.prototype={_initAttribute:function(){a.prototype._initAttribute.apply(this,arguments),u.call(this),this._eventPrefix=this.constructor.EVENT_PREFIX||this.constructor.NAME,this._yuievt.config.prefix=this._eventPrefix},init:function(e){var t=this._getFullType(i),n=this._publish(t);return n.emitFacade=!0,n.fireOnce=!0,n.defaultTargetOnly=!0,n.defaultFn=this._defInitFn,this._preInitEventCfg(e),n._hasPotentialSubscribers()?this.fire(t,{cfg:e}):(this._baseInit(e),n.fired=!0,n.firedWith=[{cfg:e}]),this},_preInitEventCfg:function(e){e&&(e.on&&this.on(e.on),e.after&&this.after(e.after));var t,r,i,u=e&&s in e;if(u||o in this){i=u?e&&e.bubbleTargets:this._bubbleTargets;if(n.isArray(i))for(t=0,r=i.length;t{weekdayname} ',
+ WEEKDAY_TEMPLATE: '{short_weekdayname} ',
/**
* A template for a single cell with a calendar day.
@@ -1657,7 +1690,7 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
});
-}, '3.9.1', {
+}, '3.12.0', {
"requires": [
"widget",
"datatype-date",
@@ -1670,12 +1703,17 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
"es",
"es-AR",
"fr",
+ "hu",
"it",
"ja",
"nb-NO",
"nl",
"pt-BR",
"ru",
+ "zh-Hans",
+ "zh-Hans-CN",
+ "zh-Hant",
+ "zh-Hant-HK",
"zh-HANT-TW"
],
"skinnable": true
diff --git a/lib/yuilib/3.12.0/calendar-base/calendar-base-min.js b/lib/yuilib/3.12.0/calendar-base/calendar-base-min.js
new file mode 100755
index 00000000000..7b95241152b
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/calendar-base-min.js
@@ -0,0 +1,10 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("calendar-base",function(e,t){function M(){M.superclass.constructor.apply(this,arguments)}var n=e.ClassNameManager.getClassName,r="calendar",i=n(r,"grid"),s=n(r,"left-grid"),o=n(r,"right-grid"),u=n(r,"body"),a=n(r,"header"),f=n(r,"header-label"),l=n(r,"weekdayrow"),c=n(r,"weekday"),h=n(r,"column-hidden"),p=n(r,"day-selected"),d=n(r,"selection-disabled"),v=n(r,"row"),m=n(r,"day"),g=n(r,"prevmonth-day"),y=n(r,"nextmonth-day"),b=n(r,"anchor"),w=n(r,"pane"),E=n(r,"status"),S=e.Lang,x=S.sub,T=e.Array.each,N=e.Object.each,C=e.Array.indexOf,k=e.Object.hasKey,L=e.Object.setValue,A=e.Object.isEmpty,O=e.DataType.Date;e.CalendarBase=e.extend(M,e.Widget,{_paneProperties:{},_paneNumber:1,_calendarId:null,_selectedDates:{},_rules:{},_filterFunction:null,_storedDateCells:{},initializer:function(){this._paneProperties={},this._calendarId=e.guid("calendar"),this._selectedDates={},A(this._rules)&&(this._rules={}),this._storedDateCells={}},renderUI:function(){var e=this.get("contentBox");e.appendChild(this._initCalendarHTML(this.get("date"))),this.get("showPrevMonth")&&this._afterShowPrevMonthChange(),this.get("showNextMonth")&&this._afterShowNextMonthChange(),this._renderCustomRules(),this._renderSelectedDates(),this.get("boundingBox").setAttribute("aria-labelledby",this._calendarId+"_header")},bindUI:function(){this.after("dateChange",this._afterDateChange),this.after("showPrevMonthChange",this._afterShowPrevMonthChange),this.after("showNextMonthChange",this._afterShowNextMonthChange),this.after("headerRendererChange",this._afterHeaderRendererChange),this.after("customRendererChange",this._afterCustomRendererChange),this.after("enabledDatesRuleChange",this._afterCustomRendererChange),this.after("disabledDatesRuleChange",this._afterCustomRendererChange),this.after("focusedChange",this._afterFocusedChange),this.after("selectionChange",this._renderSelectedDates),this._bindCalendarEvents()},_getSelectedDatesList:function(){var e=[];return N(this._selectedDates,function(t){N(t,function(t){N(t,function(t){e.push(t)},this)},this)},this),e},_getSelectedDatesInMonth:function(t){var n=t.getFullYear(),r=t.getMonth();return k(this._selectedDates,n)&&k(this._selectedDates[n],r)?e.Object.values(this._selectedDates[n][r]):[]},_isNumInList:function(e,t){if(t==="all")return!0;var n=t.split(","),r=n.length,i;while(r--){i=n[r].split("-");if(i.length===2&&e>=parseInt(i[0],10)&&e<=parseInt(i[1],10))return!0;if(i.length===1&&parseInt(n[r],10)===e)return!0}return!1},_getRulesForDate:function(e){var t=e.getFullYear(),n=e.getMonth(),r=e.getDate(),i=e.getDay(),s=this._rules,o=[],u,a,f,l;for(u in s)if(this._isNumInList(t,u))if(S.isString(s[u]))o.push(s[u]);else for(a in s[u])if(this._isNumInList(n,a))if(S.isString(s[u][a]))o.push(s[u][a]);else for(f in s[u][a])if(this._isNumInList(r,f))if(S.isString(s[u][a][f]))o.push(s[u][a][f]);else for(l in s[u][a][f])this._isNumInList(i,l)&&S.isString(s[u][a][f][l])&&o.push(s[u][a][f][l]);return o},_matchesRule:function(e,t){return C(this._getRulesForDate(e),t)>=0},_canBeSelected:function(e){var t=this.get("enabledDatesRule"),n=this.get("disabledDatesRule");return t?this._matchesRule(e,t):n?!this._matchesRule(e,n):!0},selectDates:function(e){return O.isValidDate(e)?this._addDateToSelection(e):S.isArray(e)&&this._addDatesToSelection(e),this},deselectDates:function(e){return e?O.isValidDate(e)?this._removeDateFromSelection(e):S.isArray(e)&&this._removeDatesFromSelection(e):this._clearSelection(),this},_addDateToSelection:function(e,t){if(this._canBeSelected(e)){var n=e.getFullYear(),r=e.getMonth(),i=e.getDate();k(this._selectedDates,n)?k(this._selectedDates[n],r)?this._selectedDates[n][r][i]=e:(this._selectedDates[n][r]={},this._selectedDates[n][r][i]=e):(this._selectedDates[n]={},this._selectedDates[n][r]={},this._selectedDates[n][r][i]=e),this._selectedDates=L(this._selectedDates,[n,r,i],e),t||this._fireSelectionChange()}},_addDatesToSelection:function(e){T(e,this._addDateToSelection,this),this._fireSelectionChange()},_addDateRangeToSelection:function(e,t){var n=(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4,r=e.getTime(),i=t.getTime(),s,o,u;r>i?(s=r,r=i,i=s+n):i-=n;for(o=r;o<=i;o+=864e5)u=new Date(o),u.setHours(12),this._addDateToSelection(u,o);this._fireSelectionChange()},_removeDateFromSelection:function(e,t){var n=e.getFullYear(),r=e.getMonth(),i=e.getDate();k(this._selectedDates,n)&&k(this._selectedDates[n],r)&&k(this._selectedDates[n][r],i)&&(delete this._selectedDates[n][r][i],t||this._fireSelectionChange())},_removeDatesFromSelection:function(e){T(e,this._removeDateFromSelection,this),this._fireSelectionChange()},_removeDateRangeFromSelection:function(e,t){var n=e.getTime(),r=t.getTime(),i;for(i=n;i<=r;i+=864e5)this._removeDateFromSelection(new Date(i),i);this._fireSelectionChange()},_clearSelection:function(e){this._selectedDates={},this.get("contentBox").all("."+p).removeClass(p).setAttribute("aria-selected",!1),e||this._fireSelectionChange()},_fireSelectionChange:function(){this.fire("selectionChange",{newSelection:this._getSelectedDatesList()})},_restoreModifiedCells:function(){var e=this.get("contentBox"),t;for(t in this._storedDateCells)e.one("#"+t).replace(this._storedDateCells[t]),delete this._storedDateCells[t]},_renderCustomRules:function(){this.get("contentBox").all("."+m+",."+y).removeClass(d).setAttribute("aria-disabled",!1);if(!A(this._rules)){var t,n,r;for(t=0;t{weekday_row_template}{body_template}
',HEADER_TEMPLATE:'{weekday_row} ',CALDAY_ROW_TEMPLATE:'{calday_row} ',WEEKDAY_TEMPLATE:'{short_weekdayname} ',CALDAY_TEMPLATE:'{day_content} ',NAME:"calendarBase",ATTRS:{tabIndex:{value:1},date:{value:new Date,setter:function(e){var t=this._normalizeDate(e);return O.areEqual(t,this.get("date"))?this.get("date"):t}},showPrevMonth:{value:!1},showNextMonth:{value:!1},strings:{valueFn:function(){return e.Intl.get("calendar-base")}},headerRenderer:{value:"%B %Y"},enabledDatesRule:{value:null},disabledDatesRule:{value:null},selectedDates:{readOnly:!0,getter:function(){return this._getSelectedDatesList()}},customRenderer:{lazyAdd:!1,value:{},setter:function(e){this._rules=e.rules,this._filterFunction=e.filterFunction}}}})},"3.12.0",{requires:["widget","datatype-date","datatype-date-math","cssgrids"],lang:["de","en","es","es-AR","fr","hu","it","ja","nb-NO","nl","pt-BR","ru","zh-Hans","zh-Hans-CN","zh-Hant","zh-Hant-HK","zh-HANT-TW"],skinnable:!0});
diff --git a/lib/yuilib/3.9.1/build/calendar-base/calendar-base.js b/lib/yuilib/3.12.0/calendar-base/calendar-base.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/calendar-base/calendar-base.js
rename to lib/yuilib/3.12.0/calendar-base/calendar-base.js
index 1117fe85d1c..cd6cf93e565
--- a/lib/yuilib/3.9.1/build/calendar-base/calendar-base.js
+++ b/lib/yuilib/3.12.0/calendar-base/calendar-base.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('calendar-base', function (Y, NAME) {
/**
@@ -624,18 +630,17 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
matchingRules = this._getRulesForDate(date);
if (matchingRules.length > 0) {
- dateNode = this._dateToNode(date);
if ((enRule && iOf(matchingRules, enRule) < 0) || (!enRule && disRule && iOf(matchingRules, disRule) >= 0)) {
- dateNode.addClass(SELECTION_DISABLED).setAttribute("aria-disabled", true);
+ this._disableDate(date);
}
if (L.isFunction(this._filterFunction)) {
+ dateNode = this._dateToNode(date);
this._storedDateCells[dateNode.get("id")] = dateNode.cloneNode(true);
this._filterFunction (date, dateNode, matchingRules);
}
} else if (enRule) {
- dateNode = this._dateToNode(date);
- dateNode.addClass(SELECTION_DISABLED).setAttribute("aria-disabled", true);
+ this._disableDate(date);
}
},
@@ -672,6 +677,18 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
this._dateToNode(date).addClass(CAL_DAY_SELECTED).setAttribute("aria-selected", true);
},
+ /**
+ * Add the selection-disabled class and aria-disabled attribute to a node corresponding
+ * to a given date.
+ *
+ * @method _disableDate
+ * @param {Date} date The date to disable
+ * @private
+ */
+ _disableDate: function (date) {
+ this._dateToNode(date).addClass(SELECTION_DISABLED).setAttribute("aria-disabled", true);
+ },
+
/**
* A utility method that converts a date to the node wrapping the calendar cell
* the date corresponds to..
@@ -784,6 +801,22 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
}
},
+ /**
+ * A utility method that normalizes a given date by setting its time to noon.
+ * @method _normalizeTime
+ * @param {Date} oDate The date to normalize
+ * @protected
+ * @return {Date} The normalized date
+ * set to noon.
+ */
+ _normalizeTime : function (date) {
+ if (date) {
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 12, 0, 0, 0);
+ } else {
+ return null;
+ }
+ },
+
/**
* A render assist utility method that computes the cutoff column for the calendar
@@ -1031,8 +1064,8 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
*/
_initCalendarPane : function (baseDate, pane_id) {
// Get a list of short weekdays from the internationalization package, or else use default English ones.
- var weekdays = this.get('strings.very_short_weekdays') || ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
- fullweekdays = this.get('strings.weekdays') || ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ var shortWeekDays = this.get('strings.very_short_weekdays') || ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ weekDays = Y.Intl.get('datatype-date-format').A,
// Get the first day of the week from the internationalization package, or else use Sunday as default.
firstday = this.get('strings.first_weekday') || 0,
// Compute the cutoff column of the masked calendar table, based on the start date and the first day of week.
@@ -1060,8 +1093,8 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
for (day = firstday; day <= firstday + 6; day++) {
partials.weekday_row +=
substitute(CalendarBase.WEEKDAY_TEMPLATE, {
- weekdayname: weekdays[day%7],
- full_weekdayname: fullweekdays[day%7]
+ short_weekdayname: shortWeekDays[day%7],
+ weekdayname: weekDays[day%7]
});
}
@@ -1484,7 +1517,7 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
* @protected
* @static
*/
- WEEKDAY_TEMPLATE: '{weekdayname} ',
+ WEEKDAY_TEMPLATE: '{short_weekdayname} ',
/**
* A template for a single cell with a calendar day.
@@ -1657,7 +1690,7 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
});
-}, '3.9.1', {
+}, '3.12.0', {
"requires": [
"widget",
"datatype-date",
@@ -1670,12 +1703,17 @@ Y.CalendarBase = Y.extend( CalendarBase, Y.Widget, {
"es",
"es-AR",
"fr",
+ "hu",
"it",
"ja",
"nb-NO",
"nl",
"pt-BR",
"ru",
+ "zh-Hans",
+ "zh-Hans-CN",
+ "zh-Hant",
+ "zh-Hant-HK",
"zh-HANT-TW"
],
"skinnable": true
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base.js
new file mode 100755
index 00000000000..a461da10724
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base",function(e){e.Intl.add("calendar-base","",{very_short_weekdays:["Su","Mo","Tu","We","Th","Fr","Sa"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_de.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_de.js
new file mode 100755
index 00000000000..9f7deb45603
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_de.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_de",function(e){e.Intl.add("calendar-base","de",{very_short_weekdays:["So","Mo","Di","Mi","Do","Fr","Sa"],first_weekday:1,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_en.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_en.js
new file mode 100755
index 00000000000..49bf89c547d
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_en.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_en",function(e){e.Intl.add("calendar-base","en",{very_short_weekdays:["Su","Mo","Tu","We","Th","Fr","Sa"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_es-AR.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_es-AR.js
new file mode 100755
index 00000000000..84131c8b8a4
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_es-AR.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_es-AR",function(e){e.Intl.add("calendar-base","es-AR",{very_short_weekdays:["Do","Lu","Ma","Mi","Ju","Vi","Sa"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_es.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_es.js
new file mode 100755
index 00000000000..3f4074501fc
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_es.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_es",function(e){e.Intl.add("calendar-base","es",{very_short_weekdays:["Do","Lu","Ma","Mi","Ju","Vi","Sa"],first_weekday:1,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_fr.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_fr.js
new file mode 100755
index 00000000000..34493722756
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_fr.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_fr",function(e){e.Intl.add("calendar-base","fr",{very_short_weekdays:["Di","Lu","Ma","Me","Je","Ve","Sa"],first_weekday:1,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_hu.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_hu.js
new file mode 100755
index 00000000000..b5ae9088a72
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_hu.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_hu",function(e){e.Intl.add("calendar-base","hu",{weekdays:["Vas\u00e1rnap","H\u00e9tf\u0151","Kedd","Szerda","Cs\u00fct\u00f6rt\u00f6k","P\u00e9ntek","Szombat"],short_weekdays:["Vas","H\u00e9","Ke","Sze","Cs\u00fc","P\u00e9","Szo"],very_short_weekdays:["V","H","K","Sze","Cs","P","Szo"],first_weekday:1,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_it.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_it.js
new file mode 100755
index 00000000000..d9ddf242f09
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_it.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_it",function(e){e.Intl.add("calendar-base","it",{very_short_weekdays:["Do","Lu","Ma","Me","Gi","Ve","Sa"],first_weekday:1,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_ja.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_ja.js
new file mode 100755
index 00000000000..cf4198ba204
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_ja.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_ja",function(e){e.Intl.add("calendar-base","ja",{very_short_weekdays:["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_nb-NO.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_nb-NO.js
new file mode 100755
index 00000000000..144715c6a24
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_nb-NO.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_nb-NO",function(e){e.Intl.add("calendar-base","nb-NO",{very_short_weekdays:["S\u00f8","Ma","Ti","On","To","Fr","L\u00f8"],first_weekday:1,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_nl.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_nl.js
new file mode 100755
index 00000000000..b6da4227d1c
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_nl.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_nl",function(e){e.Intl.add("calendar-base","nl",{very_short_weekdays:["zo","ma","di","woe","do","vr","za"],first_weekday:1,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_pt-BR.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_pt-BR.js
new file mode 100755
index 00000000000..84a0b299db3
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_pt-BR.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_pt-BR",function(e){e.Intl.add("calendar-base","pt-BR",{very_short_weekdays:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_ru.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_ru.js
new file mode 100755
index 00000000000..8906b5a3c8f
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_ru.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_ru",function(e){e.Intl.add("calendar-base","ru",{very_short_weekdays:["\u0412\u0441","\u041f\u043d","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041f\u0442","\u0421\u0431"],first_weekday:1,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-HANT-TW.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-HANT-TW.js
new file mode 100755
index 00000000000..95026fd750f
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-HANT-TW.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_zh-HANT-TW",function(e){e.Intl.add("calendar-base","zh-HANT-TW",{very_short_weekdays:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hans-CN.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hans-CN.js
new file mode 100755
index 00000000000..fcb67a5e75a
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hans-CN.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_zh-Hans-CN",function(e){e.Intl.add("calendar-base","zh-Hans-CN",{very_short_weekdays:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hans.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hans.js
new file mode 100755
index 00000000000..9886e73b234
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hans.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_zh-Hans",function(e){e.Intl.add("calendar-base","zh-Hans",{very_short_weekdays:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hant-HK.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hant-HK.js
new file mode 100755
index 00000000000..ab1b7abf1e0
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hant-HK.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_zh-Hant-HK",function(e){e.Intl.add("calendar-base","zh-Hant-HK",{very_short_weekdays:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hant.js b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hant.js
new file mode 100755
index 00000000000..1542d3400c0
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar-base/lang/calendar-base_zh-Hant.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("lang/calendar-base_zh-Hant",function(e){e.Intl.add("calendar-base","zh-Hant",{very_short_weekdays:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],first_weekday:0,weekends:[0,6]})},"3.12.0");
diff --git a/lib/yuilib/3.9.1/build/calendar/assets/calendar-core.css b/lib/yuilib/3.12.0/calendar/assets/calendar-core.css
old mode 100644
new mode 100755
similarity index 78%
rename from lib/yuilib/3.9.1/build/calendar/assets/calendar-core.css
rename to lib/yuilib/3.12.0/calendar/assets/calendar-core.css
index 3370415b4f5..b447ad3a5bd
--- a/lib/yuilib/3.9.1/build/calendar/assets/calendar-core.css
+++ b/lib/yuilib/3.12.0/calendar/assets/calendar-core.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-calendar {
}
diff --git a/lib/yuilib/3.9.1/build/calendar/assets/skins/night/calendar-skin.css b/lib/yuilib/3.12.0/calendar/assets/skins/night/calendar-skin.css
old mode 100644
new mode 100755
similarity index 57%
rename from lib/yuilib/3.9.1/build/calendar/assets/skins/night/calendar-skin.css
rename to lib/yuilib/3.12.0/calendar/assets/skins/night/calendar-skin.css
index 887e6c24586..c7e7ea872a4
--- a/lib/yuilib/3.9.1/build/calendar/assets/skins/night/calendar-skin.css
+++ b/lib/yuilib/3.12.0/calendar/assets/skins/night/calendar-skin.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-skin-night .yui3-calendar-day-highlighted {
background-color: #555555;
}
diff --git a/lib/yuilib/3.12.0/calendar/assets/skins/night/calendar.css b/lib/yuilib/3.12.0/calendar/assets/skins/night/calendar.css
new file mode 100755
index 00000000000..fe6365d4adc
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar/assets/skins/night/calendar.css
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+.yui3-calendar-column-hidden,.yui3-calendar-hidden{display:none}.yui3-calendar-day{cursor:pointer}.yui3-calendar-selection-disabled{cursor:default}.yui3-calendar-prevmonth-day{cursor:default}.yui3-calendar-nextmonth-day{cursor:default}.yui3-calendar-content:hover .yui3-calendar-day,.yui3-calendar-content:hover .yui3-calendar-prevmonth-day,.yui3-calendar-content:hover .yui3-calendar-nextmonth-day{-moz-user-select:none}.yui3-skin-night .yui3-calendar-day-highlighted{background-color:#555}.yui3-skin-night .yui3-calendar-day-selected.yui3-calendar-day-highlighted{background-color:#777}#yui3-css-stamp.skin-night-calendar{display:none}
diff --git a/lib/yuilib/3.9.1/build/calendar/assets/skins/sam/calendar-skin.css b/lib/yuilib/3.12.0/calendar/assets/skins/sam/calendar-skin.css
old mode 100644
new mode 100755
similarity index 56%
rename from lib/yuilib/3.9.1/build/calendar/assets/skins/sam/calendar-skin.css
rename to lib/yuilib/3.12.0/calendar/assets/skins/sam/calendar-skin.css
index 05f559e300c..6d361332dbc
--- a/lib/yuilib/3.9.1/build/calendar/assets/skins/sam/calendar-skin.css
+++ b/lib/yuilib/3.12.0/calendar/assets/skins/sam/calendar-skin.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-skin-sam .yui3-calendar-day-highlighted {
background-color: #DCDEF5;
}
diff --git a/lib/yuilib/3.9.1/build/assets/skins/sam/calendar.css b/lib/yuilib/3.12.0/calendar/assets/skins/sam/calendar.css
old mode 100644
new mode 100755
similarity index 81%
rename from lib/yuilib/3.9.1/build/assets/skins/sam/calendar.css
rename to lib/yuilib/3.12.0/calendar/assets/skins/sam/calendar.css
index 806dc4660e6..932c40984d1
--- a/lib/yuilib/3.9.1/build/assets/skins/sam/calendar.css
+++ b/lib/yuilib/3.12.0/calendar/assets/skins/sam/calendar.css
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-calendar-column-hidden,.yui3-calendar-hidden{display:none}.yui3-calendar-day{cursor:pointer}.yui3-calendar-selection-disabled{cursor:default}.yui3-calendar-prevmonth-day{cursor:default}.yui3-calendar-nextmonth-day{cursor:default}.yui3-calendar-content:hover .yui3-calendar-day,.yui3-calendar-content:hover .yui3-calendar-prevmonth-day,.yui3-calendar-content:hover .yui3-calendar-nextmonth-day{-moz-user-select:none}.yui3-skin-sam .yui3-calendar-day-highlighted{background-color:#dcdef5}.yui3-skin-sam .yui3-calendar-day-selected.yui3-calendar-day-highlighted{background-color:#758fbb}#yui3-css-stamp.skin-sam-calendar{display:none}
diff --git a/lib/yuilib/3.9.1/build/calendar/calendar-debug.js b/lib/yuilib/3.12.0/calendar/calendar-debug.js
old mode 100644
new mode 100755
similarity index 83%
rename from lib/yuilib/3.9.1/build/calendar/calendar-debug.js
rename to lib/yuilib/3.12.0/calendar/calendar-debug.js
index e7b903f44e7..07eabc3979d
--- a/lib/yuilib/3.9.1/build/calendar/calendar-debug.js
+++ b/lib/yuilib/3.12.0/calendar/calendar-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('calendar', function (Y, NAME) {
/**
@@ -89,6 +95,9 @@ Y.Calendar = Y.extend(Calendar, Y.CalendarBase, {
pane.delegate("focus", this._focusCalendarGrid, "." + CAL_GRID, this);
pane.delegate("focus", this._focusCalendarCell, "." + CAL_DAY, this);
pane.delegate("blur", this._blurCalendarGrid, "." + CAL_GRID + ",." + CAL_DAY, this);
+
+
+ this.after(['minimumDateChange', 'maximumDateChange'], this._afterCustomRendererChange);
},
/**
@@ -362,6 +371,69 @@ Y.Calendar = Y.extend(Calendar, Y.CalendarBase, {
}
},
+ /**
+ * Overrides CalendarBase.prototype._canBeSelected to disable
+ * nodes earlier than minimumDate and later than maximumDate
+ * @method _canBeSelected
+ * @private
+ */
+ _canBeSelected : function (date) {
+ var minDate = this.get('minimumDate'),
+ maxDate = this.get('maximumDate');
+
+ if ((minDate && !ydate.isGreaterOrEqual(date, minDate)) ||
+ (maxDate && ydate.isGreater(date, maxDate))) {
+ return false;
+ }
+
+ return Calendar.superclass._canBeSelected.call(this, date);
+ },
+
+ /**
+ * Overrides CalendarBase.prototype._renderCustomRules to disable
+ * nodes earlier than minimumDate and later than maximumDate
+ * @method _renderCustomRules
+ * @private
+ */
+ _renderCustomRules: function () {
+ Calendar.superclass._renderCustomRules.call(this);
+
+ var minDate = this.get('minimumDate'),
+ maxDate = this.get('maximumDate'),
+ dates = [],
+ i, l,
+ paneNum;
+
+ if (!minDate && !maxDate) {
+ return;
+ }
+
+ for (paneNum = 0; paneNum < this._paneNumber; paneNum++) {
+ paneDate = ydate.addMonths(this.get("date"), paneNum);
+ dates = dates.concat(ydate.listOfDatesInMonth(paneDate));
+ }
+
+ if (minDate) {
+ for (i = 0, l = dates.length; i < l; i++) {
+ if (!ydate.isGreaterOrEqual(dates[i], minDate)) {
+ this._disableDate(dates[i]);
+ } else {
+ break;
+ }
+ }
+ }
+
+ if (maxDate) {
+ for (i = dates.length - 1; i >= 0; i--) {
+ if (ydate.isGreater(dates[i], maxDate)) {
+ this._disableDate(dates[i]);
+ } else {
+ break;
+ }
+ }
+ }
+ },
+
/**
* Subtracts one month from the current calendar view.
* @method subtractMonth
@@ -474,29 +546,25 @@ Y.Calendar = Y.extend(Calendar, Y.CalendarBase, {
lazyAdd: false,
setter: function (val) {
- var newDate = this._normalizeDate(val),
- newTopDate = ydate.addMonths(newDate, this._paneNumber - 1),
- minDate = this.get("minimumDate"),
- maxDate = this.get("maximumDate"),
- actualMaxDate;
+ var newDate = this._normalizeDate(val),
+ newEndDate = ydate.addMonths(newDate, this._paneNumber - 1),
+ minDate = this.get("minimumDate"),
+ maxDate = this.get("maximumDate");
if ((!minDate || ydate.isGreaterOrEqual(newDate, minDate)) &&
- (!maxDate || ydate.isGreaterOrEqual(maxDate, newTopDate))
+ (!maxDate || ydate.isGreaterOrEqual(maxDate, newEndDate))
) {
return newDate;
} else if (minDate && ydate.isGreater(minDate, newDate)) {
- return minDate;
- } else if (maxDate && ydate.isGreater(newTopDate, maxDate)) {
- actualMaxDate = ydate.addMonths(maxDate, -1*(this._paneNumber - 1));
- return actualMaxDate;
+ return this._normalizeDate(minDate);
+ } else if (maxDate && ydate.isGreater(newEndDate, maxDate)) {
+ return ydate.addMonths(this._normalizeDate(maxDate), 1 - this._paneNumber);
}
}
},
/**
- * The minimum date that can be displayed by the calendar. The calendar will not
- * allow dates earlier than this one to be set, and will reset any earlier date to
- * this date. Should be `null` if no minimum date is needed.
+ * Unless minimumDate is null, it will not be possible to display and select dates earlier than this one.
*
* @attribute minimumDate
* @type Date
@@ -505,23 +573,21 @@ Y.Calendar = Y.extend(Calendar, Y.CalendarBase, {
minimumDate: {
value: null,
setter: function (val) {
- if (val) {
+ if (Y.Lang.isDate(val)) {
var curDate = this.get('date'),
- newMinDate = this._normalizeDate(val);
- if (curDate && !ydate.isGreaterOrEqual(curDate, newMinDate)) {
- this.set('date', newMinDate);
+ newMin = this._normalizeTime(val);
+ if (curDate && !ydate.isGreaterOrEqual(curDate, newMin)) {
+ this.set('date', val);
}
- return newMinDate;
+ return newMin;
} else {
- return this._normalizeDate(val);
+ return null;
}
}
},
/**
- * The maximum date that can be displayed by the calendar. The calendar will not
- * allow dates later than this one to be set, and will reset any later date to
- * this date. Should be `null` if no maximum date is needed.
+ * Unless maximumDate is null, it will not be possible to display and select dates later than this one.
*
* @attribute maximumDate
* @type Date
@@ -530,39 +596,20 @@ Y.Calendar = Y.extend(Calendar, Y.CalendarBase, {
maximumDate: {
value: null,
setter: function (val) {
- if (val) {
- var curDate = this.get('date'),
- newMaxDate = this._normalizeDate(val);
+ if (Y.Lang.isDate(val)) {
+ var curDate = this.get('date');
+
if (curDate && !ydate.isGreaterOrEqual(val, ydate.addMonths(curDate, this._paneNumber - 1))) {
- this.set('date', ydate.addMonths(newMaxDate, -1*(this._paneNumber -1)));
+ this.set('date', ydate.addMonths(this._normalizeDate(val), 1 - this._paneNumber));
}
- return newMaxDate;
+
+ return this._normalizeTime(val);
} else {
- return val;
+ return null;
}
}
}
}
});
-}, '3.9.1', {
- "requires": [
- "calendar-base",
- "calendarnavigator"
- ],
- "lang": [
- "de",
- "en",
- "es",
- "es-AR",
- "fr",
- "it",
- "ja",
- "nb-NO",
- "nl",
- "pt-BR",
- "ru",
- "zh-HANT-TW"
- ],
- "skinnable": true
-});
+}, '3.12.0', {"requires": ["calendar-base", "calendarnavigator"], "skinnable": true});
diff --git a/lib/yuilib/3.12.0/calendar/calendar-min.js b/lib/yuilib/3.12.0/calendar/calendar-min.js
new file mode 100755
index 00000000000..e72a0a61ec5
--- /dev/null
+++ b/lib/yuilib/3.12.0/calendar/calendar-min.js
@@ -0,0 +1,9 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("calendar",function(e,t){function b(){b.superclass.constructor.apply(this,arguments)}var n=e.ClassNameManager.getClassName,r="calendar",i=40,s=38,o=37,u=39,a=13,f=32,l=n(r,"day-selected"),c=n(r,"day-highlighted"),h=n(r,"day"),p=n(r,"prevmonth-day"),d=n(r,"nextmonth-day"),v=n(r,"grid"),m=e.DataType.Date,g=n(r,"pane"),y=e.UA.os;e.Calendar=e.extend(b,e.CalendarBase,{_keyEvents:[],_highlightedDateNode:null,_lastSelectedDate:null,initializer:function(){this.plug(e.Plugin.CalendarNavigator),this._keyEvents=[],this._highlightedDateNode=null,this._lastSelectedDate=null},_bindCalendarEvents:function(){var e=this.get("contentBox"),t=e.one("."+g);t.on("selectstart",this._preventSelectionStart),t.delegate("click",this._clickCalendar,"."+h+", ."+p+", ."+d,this),t.delegate("keydown",this._keydownCalendar,"."+v,this),t.delegate("focus",this._focusCalendarGrid,"."+v,this),t.delegate("focus",this._focusCalendarCell,"."+h,this),t.delegate("blur",this._blurCalendarGrid,"."+v+",."+h,this),this.after(["minimumDateChange","maximumDateChange"],this._afterCustomRendererChange)},_preventSelectionStart:function(e){e.preventDefault()},_highlightDateNode:function(e){this._unhighlightCurrentDateNode();var t=this._dateToNode(e);t.focus(),t.addClass(c)},_unhighlightCurrentDateNode:function(){var e=this.get("contentBox").all("."+c);e&&e.removeClass(c)},_getGridNumber:function(e){var t=e.get("id").split("_").reverse();return parseInt(t[0],10)},_blurCalendarGrid:function(){this._unhighlightCurrentDateNode()},_focusCalendarCell:function(e){this._highlightedDateNode=e.target,e.stopPropagation()},_focusCalendarGrid:function(){this._unhighlightCurrentDateNode(),this._highlightedDateNode=null},_keydownCalendar:function(e){var t=this._getGridNumber(e.target),n=this._highlightedDateNode?this._nodeToDate(this._highlightedDateNode):null,r=e.keyCode,c=0,h="",p,d,v,g,y;switch(r){case i:c=7,h="s";break;case s:c=-7,h="n";break;case o:c=-1,h="w";break;case u:c=1,h="e";break;case f:case a:e.preventDefault();if(this._highlightedDateNode){p=this.get("selectionMode");if(p==="single"&&!this._highlightedDateNode.hasClass(l))this._clearSelection(!0),this._addDateToSelection(n);else if(p==="multiple"||p==="multiple-sticky")this._highlightedDateNode.hasClass(l)?this._removeDateFromSelection(n):this._addDateToSelection(n)}}if(r===i||r===s||r===o||r===u)n||(n=m.addMonths(this.get("date"),t),c=0),e.preventDefault(),d=m.addDays(n,c),v=this.get("date"),g=m.addMonths(this.get("date"),this._paneNumber-1),y=new Date(g),g.setDate(m.daysInMonth(g)),m.isInRange(d,v,g)?this._highlightDateNode(d):m.isGreater(v,d)?m.isGreaterOrEqual(this.get("minimumDate"),v)||(this.set("date",m.addMonths(v,-1)),this._highlightDateNode(d)):m.isGreater(d,g)&&(m.isGreaterOrEqual(y,this.get("maximumDate"))||(this.set("date",m.addMonths(v,1)),this._highlightDateNode(d)))},_clickCalendar:function(e){var t=e.currentTarget,n=t.hasClass(h)&&!t.hasClass(p)&&!t.hasClass(d),r=t.hasClass(l),i;switch(this.get("selectionMode")){case"single":n&&(r||(this._clearSelection(!0),this._addDateToSelection(this._nodeToDate(t))));break;case"multiple-sticky":n&&(r?this._removeDateFromSelection(this._nodeToDate(t)):this._addDateToSelection(this._nodeToDate(t)));break;case"multiple":n&&(!e.metaKey&&!e.ctrlKey&&!e.shiftKey?(this._clearSelection(!0),this._lastSelectedDate=this._nodeToDate(t),this._addDateToSelection(this._lastSelectedDate)):(y==="macintosh"&&e.metaKey||y!=="macintosh"&&e.ctrlKey)&&!e.shiftKey?r?(this._removeDateFromSelection(this._nodeToDate(t)),this._lastSelectedDate=null):(this._lastSelectedDate=this._nodeToDate(t),this._addDateToSelection(this._lastSelectedDate)):(y==="macintosh"&&e.metaKey||y!=="macintosh"&&e.ctrlKey)&&e.shiftKey?this._lastSelectedDate?(i=this._nodeToDate(t),this._addDateRangeToSelection(i,this._lastSelectedDate),this._lastSelectedDate=i):(this._lastSelectedDate=this._nodeToDate(t),this._addDateToSelection(this._lastSelectedDate)):e.shiftKey&&(this._lastSelectedDate?(i=this._nodeToDate(t),this._clearSelection(!0),this._addDateRangeToSelection(i,this._lastSelectedDate),this._lastSelectedDate=i):(this._clearSelection(!0),this._lastSelectedDate=this._nodeToDate(t),this._addDateToSelection(this._lastSelectedDate))))}n?this.fire("dateClick",{cell:t,date:this._nodeToDate(t)}):t.hasClass(p)?this.fire("prevMonthClick"):t.hasClass(d)&&this.fire("nextMonthClick")},_canBeSelected:function(e){var t=this.get("minimumDate"),n=this.get("maximumDate");return t&&!m.isGreaterOrEqual(e,t)||n&&m.isGreater(e,n)?!1:b.superclass._canBeSelected.call(this,e)},_renderCustomRules:function(){b.superclass._renderCustomRules.call(this);var e=this.get("minimumDate"),t=this.get("maximumDate"),n=[],r,i,s;if(!e&&!t)return;for(s=0;s100?100:t,f=Math.max(0,a-u),d=Math.min(100,a+u),g=Math.max(0,m-u),y=Math.min(100,m+u),o.push({});for(i=0;i1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}},e.Color=e.mix(Color,e.Color),e.Color.TYPES=e.mix(e.Color.TYPES,{HSL:"hsl",HSLA:"hsla"}),e.Color.CONVERTS=e.mix(e.Color.CONVERTS,{hsl:"toHSL",hsla:"toHSLA"})},"3.9.1",{requires:["color-base"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("color-hsl",function(e,t){Color={REGEX_HSL:/hsla?\(([.\d]*), ?([.\d]*)%, ?([.\d]*)%,? ?([.\d]*)?\)/,STR_HSL:"hsl({*}, {*}%, {*}%)",STR_HSLA:"hsla({*}, {*}%, {*}%, {*})",toHSL:function(t){var n=e.Color._convertTo(t,"hsl");return n.toLowerCase()},toHSLA:function(t){var n=e.Color._convertTo(t,"hsla");return n.toLowerCase()},_rgbToHsl:function(t,n){var r,i,s,o=e.Color.REGEX_RGB.exec(t),u=o[1]/255,a=o[2]/255,f=o[3]/255,l=Math.max(u,a,f),c=Math.min(u,a,f),h=!1,p=l-c,d=l+c;return u===a&&a===f&&(h=!0),p===0?r=0:u===l?r=(60*(a-f)/p+360)%360:a===l?r=60*(f-u)/p+120:r=60*(u-a)/p+240,s=d/2,s===0||s===1?i=s:s<=.5?i=p/d:i=p/(2-d),h&&(i=0),r=Math.round(r),i=Math.round(i*100),s=Math.round(s*100),n?[r,i,s]:"hsl("+r+", "+i+"%, "+s+"%)"},_hslToRgb:function(t,n){var r=e.Color.REGEX_HSL.exec(t),i=parseInt(r[1],10)/360,s=parseInt(r[2],10)/100,o=parseInt(r[3],10)/100,u,a,f,l,c;return o<=.5?c=o*(s+1):c=o+s-o*s,l=2*o-c,u=Math.round(Color._hueToRGB(l,c,i+1/3)*255),a=Math.round(Color._hueToRGB(l,c,i)*255),f=Math.round(Color._hueToRGB(l,c,i-1/3)*255),n?[u,a,f]:"rgb("+u+", "+a+", "+f+")"},_hueToRGB:function(e,t,n){return n<0?n+=1:n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}},e.Color=e.mix(Color,e.Color),e.Color.TYPES=e.mix(e.Color.TYPES,{HSL:"hsl",HSLA:"hsla"}),e.Color.CONVERTS=e.mix(e.Color.CONVERTS,{hsl:"toHSL",hsla:"toHSLA"})},"3.12.0",{requires:["color-base"]});
diff --git a/lib/yuilib/3.9.1/build/color-hsl/color-hsl.js b/lib/yuilib/3.12.0/color-hsl/color-hsl.js
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/color-hsl/color-hsl.js
rename to lib/yuilib/3.12.0/color-hsl/color-hsl.js
index e1d2d229d08..0f6adc21ab6
--- a/lib/yuilib/3.9.1/build/color-hsl/color-hsl.js
+++ b/lib/yuilib/3.12.0/color-hsl/color-hsl.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('color-hsl', function (Y, NAME) {
/**
@@ -216,4 +222,4 @@ Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSL':'hsl', 'HSLA':'hsla'});
Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsl': 'toHSL', 'hsla': 'toHSLA'});
-}, '3.9.1', {"requires": ["color-base"]});
+}, '3.12.0', {"requires": ["color-base"]});
diff --git a/lib/yuilib/3.9.1/build/color-hsv/color-hsv-debug.js b/lib/yuilib/3.12.0/color-hsv/color-hsv-debug.js
old mode 100644
new mode 100755
similarity index 95%
rename from lib/yuilib/3.9.1/build/color-hsv/color-hsv-debug.js
rename to lib/yuilib/3.12.0/color-hsv/color-hsv-debug.js
index 5a7f5a9e642..01bc0e3e6b4
--- a/lib/yuilib/3.9.1/build/color-hsv/color-hsv-debug.js
+++ b/lib/yuilib/3.12.0/color-hsv/color-hsv-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('color-hsv', function (Y, NAME) {
/**
@@ -180,4 +186,4 @@ Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSV':'hsv', 'HSVA':'hsva'});
Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsv': 'toHSV', 'hsva': 'toHSVA'});
-}, '3.9.1', {"requires": ["color-base"]});
+}, '3.12.0', {"requires": ["color-base"]});
diff --git a/lib/yuilib/3.9.1/build/color-hsv/color-hsv-min.js b/lib/yuilib/3.12.0/color-hsv/color-hsv-min.js
old mode 100644
new mode 100755
similarity index 85%
rename from lib/yuilib/3.9.1/build/color-hsv/color-hsv-min.js
rename to lib/yuilib/3.12.0/color-hsv/color-hsv-min.js
index 2c207ab71ad..377adf11c32
--- a/lib/yuilib/3.9.1/build/color-hsv/color-hsv-min.js
+++ b/lib/yuilib/3.12.0/color-hsv/color-hsv-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("color-hsv",function(e,t){Color={REGEX_HSV:/hsva?\(([.\d]*), ?([.\d]*)%, ?([.\d]*)%,? ?([.\d]*)?\)/,STR_HSV:"hsv({*}, {*}%, {*}%)",STR_HSVA:"hsva({*}, {*}%, {*}%, {*})",toHSV:function(t){var n=e.Color._convertTo(t,"hsv");return n.toLowerCase()},toHSVA:function(t){var n=e.Color._convertTo(t,"hsva");return n.toLowerCase()},_rgbToHsv:function(t,n){var r,i,s,o=e.Color.REGEX_RGB.exec(t),u=o[1]/255,a=o[2]/255,f=o[3]/255,l=Math.max(u,a,f),c=Math.min(u,a,f),h=l-c;l===c?r=0:l===u?r=60*(a-f)/h:l===a?r=60*(f-u)/h+120:r=60*(u-a)/h+240,i=l===0?0:1-c/l;while(r<0)r+=360;return r%=360,r=Math.round(r),i=Math.round(i*100),s=Math.round(l*100),n?[r,i,s]:e.Color.fromArray([r,i,s],e.Color.TYPES.HSV)},_hsvToRgb:function(t,n){var r=e.Color.REGEX_HSV.exec(t),i=parseInt(r[1],10),s=parseInt(r[2],10)/100,o=parseInt(r[3],10)/100,u,a,f,l=Math.floor(i/60)%6,c=i/60-l,h=o*(1-s),p=o*(1-s*c),d=o*(1-s*(1-c));if(s===0)u=o,a=o,f=o;else switch(l){case 0:u=o,a=d,f=h;break;case 1:u=p,a=o,f=h;break;case 2:u=h,a=o,f=d;break;case 3:u=h,a=p,f=o;break;case 4:u=d,a=h,f=o;break;case 5:u=o,a=h,f=p}return u=Math.min(255,Math.round(u*256)),a=Math.min(255,Math.round(a*256)),f=Math.min(255,Math.round(f*256)),n?[u,a,f]:e.Color.fromArray([u,a,f],e.Color.TYPES.RGB)}},e.Color=e.mix(Color,e.Color),e.Color.TYPES=e.mix(e.Color.TYPES,{HSV:"hsv",HSVA:"hsva"}),e.Color.CONVERTS=e.mix(e.Color.CONVERTS,{hsv:"toHSV",hsva:"toHSVA"})},"3.9.1",{requires:["color-base"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("color-hsv",function(e,t){Color={REGEX_HSV:/hsva?\(([.\d]*), ?([.\d]*)%, ?([.\d]*)%,? ?([.\d]*)?\)/,STR_HSV:"hsv({*}, {*}%, {*}%)",STR_HSVA:"hsva({*}, {*}%, {*}%, {*})",toHSV:function(t){var n=e.Color._convertTo(t,"hsv");return n.toLowerCase()},toHSVA:function(t){var n=e.Color._convertTo(t,"hsva");return n.toLowerCase()},_rgbToHsv:function(t,n){var r,i,s,o=e.Color.REGEX_RGB.exec(t),u=o[1]/255,a=o[2]/255,f=o[3]/255,l=Math.max(u,a,f),c=Math.min(u,a,f),h=l-c;l===c?r=0:l===u?r=60*(a-f)/h:l===a?r=60*(f-u)/h+120:r=60*(u-a)/h+240,i=l===0?0:1-c/l;while(r<0)r+=360;return r%=360,r=Math.round(r),i=Math.round(i*100),s=Math.round(l*100),n?[r,i,s]:e.Color.fromArray([r,i,s],e.Color.TYPES.HSV)},_hsvToRgb:function(t,n){var r=e.Color.REGEX_HSV.exec(t),i=parseInt(r[1],10),s=parseInt(r[2],10)/100,o=parseInt(r[3],10)/100,u,a,f,l=Math.floor(i/60)%6,c=i/60-l,h=o*(1-s),p=o*(1-s*c),d=o*(1-s*(1-c));if(s===0)u=o,a=o,f=o;else switch(l){case 0:u=o,a=d,f=h;break;case 1:u=p,a=o,f=h;break;case 2:u=h,a=o,f=d;break;case 3:u=h,a=p,f=o;break;case 4:u=d,a=h,f=o;break;case 5:u=o,a=h,f=p}return u=Math.min(255,Math.round(u*256)),a=Math.min(255,Math.round(a*256)),f=Math.min(255,Math.round(f*256)),n?[u,a,f]:e.Color.fromArray([u,a,f],e.Color.TYPES.RGB)}},e.Color=e.mix(Color,e.Color),e.Color.TYPES=e.mix(e.Color.TYPES,{HSV:"hsv",HSVA:"hsva"}),e.Color.CONVERTS=e.mix(e.Color.CONVERTS,{hsv:"toHSV",hsva:"toHSVA"})},"3.12.0",{requires:["color-base"]});
diff --git a/lib/yuilib/3.9.1/build/color-hsv/color-hsv.js b/lib/yuilib/3.12.0/color-hsv/color-hsv.js
old mode 100644
new mode 100755
similarity index 95%
rename from lib/yuilib/3.9.1/build/color-hsv/color-hsv.js
rename to lib/yuilib/3.12.0/color-hsv/color-hsv.js
index 5a7f5a9e642..01bc0e3e6b4
--- a/lib/yuilib/3.9.1/build/color-hsv/color-hsv.js
+++ b/lib/yuilib/3.12.0/color-hsv/color-hsv.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('color-hsv', function (Y, NAME) {
/**
@@ -180,4 +186,4 @@ Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSV':'hsv', 'HSVA':'hsva'});
Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsv': 'toHSV', 'hsva': 'toHSVA'});
-}, '3.9.1', {"requires": ["color-base"]});
+}, '3.12.0', {"requires": ["color-base"]});
diff --git a/lib/yuilib/3.12.0/console-filters/assets/console-filters-core.css b/lib/yuilib/3.12.0/console-filters/assets/console-filters-core.css
new file mode 100755
index 00000000000..ab09cf0948f
--- /dev/null
+++ b/lib/yuilib/3.12.0/console-filters/assets/console-filters-core.css
@@ -0,0 +1,7 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
diff --git a/lib/yuilib/3.9.1/build/console/assets/skins/sam/console-filters-skin.css b/lib/yuilib/3.12.0/console-filters/assets/skins/sam/console-filters-skin.css
old mode 100644
new mode 100755
similarity index 84%
rename from lib/yuilib/3.9.1/build/console/assets/skins/sam/console-filters-skin.css
rename to lib/yuilib/3.12.0/console-filters/assets/skins/sam/console-filters-skin.css
index eb988f35b21..a02f42e443f
--- a/lib/yuilib/3.9.1/build/console/assets/skins/sam/console-filters-skin.css
+++ b/lib/yuilib/3.12.0/console-filters/assets/skins/sam/console-filters-skin.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-skin-sam .yui3-console-ft .yui3-console-filters-categories,
.yui3-skin-sam .yui3-console-ft .yui3-console-filters-sources {
text-align: left;
diff --git a/lib/yuilib/3.9.1/build/assets/skins/sam/console-filters.css b/lib/yuilib/3.12.0/console-filters/assets/skins/sam/console-filters.css
old mode 100644
new mode 100755
similarity index 83%
rename from lib/yuilib/3.9.1/build/assets/skins/sam/console-filters.css
rename to lib/yuilib/3.12.0/console-filters/assets/skins/sam/console-filters.css
index fee56f5d737..8f953e2b208
--- a/lib/yuilib/3.9.1/build/assets/skins/sam/console-filters.css
+++ b/lib/yuilib/3.12.0/console-filters/assets/skins/sam/console-filters.css
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-skin-sam .yui3-console-ft .yui3-console-filters-categories,.yui3-skin-sam .yui3-console-ft .yui3-console-filters-sources{text-align:left;padding:5px 0;border:1px inset;margin:0 2px}.yui3-skin-sam .yui3-console-ft .yui3-console-filters-categories{background:#fff;border-bottom:2px ridge}.yui3-skin-sam .yui3-console-ft .yui3-console-filters-sources{background:#fff;margin-bottom:2px;border-top:0 none;border-bottom-right-radius:10px;border-bottom-left-radius:10px;-moz-border-radius-bottomright:10px;-moz-border-radius-bottomleft:10px;-webkit-border-bottom-right-radius:10px;-webkit-border-bottom-left-radius:10px}.yui3-skin-sam .yui3-console-filter-label{white-space:nowrap;margin-left:1ex}#yui3-css-stamp.skin-sam-console-filters{display:none}
diff --git a/lib/yuilib/3.9.1/build/console-filters/console-filters-debug.js b/lib/yuilib/3.12.0/console-filters/console-filters-debug.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/console-filters/console-filters-debug.js
rename to lib/yuilib/3.12.0/console-filters/console-filters-debug.js
index 2d99cf3e065..6ee94deb281
--- a/lib/yuilib/3.9.1/build/console-filters/console-filters-debug.js
+++ b/lib/yuilib/3.12.0/console-filters/console-filters-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('console-filters', function (Y, NAME) {
/**
@@ -721,4 +727,4 @@ Y.namespace('Plugin').ConsoleFilters = Y.extend(ConsoleFilters, Y.Plugin.Base,
});
-}, '3.9.1', {"requires": ["plugin", "console"], "skinnable": true});
+}, '3.12.0', {"requires": ["plugin", "console"], "skinnable": true});
diff --git a/lib/yuilib/3.9.1/build/console-filters/console-filters-min.js b/lib/yuilib/3.12.0/console-filters/console-filters-min.js
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/console-filters/console-filters-min.js
rename to lib/yuilib/3.12.0/console-filters/console-filters-min.js
index d27e6a863ec..b2adc2e1b47
--- a/lib/yuilib/3.9.1/build/console-filters/console-filters-min.js
+++ b/lib/yuilib/3.12.0/console-filters/console-filters-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("console-filters",function(e,t){function b(){b.superclass.constructor.apply(this,arguments)}var n=e.ClassNameManager.getClassName,r="console",i="filters",s="filter",o="category",u="source",a="category.",f="source.",l="host",c="checked",h="defaultVisibility",p=".",d="",v=p+e.Console.CHROME_CLASSES.console_bd_class,m=p+e.Console.CHROME_CLASSES.console_ft_class,g="input[type=checkbox].",y=e.Lang.isString;e.namespace("Plugin").ConsoleFilters=e.extend(b,e.Plugin.Base,{_entries:null,_cacheLimit:Number.POSITIVE_INFINITY,_categories:null,_sources:null,initializer:function(){this._entries=[],this.get(l).on("entry",this._onEntry,this),this.doAfter("renderUI",this.renderUI),this.doAfter("syncUI",this.syncUI),this.doAfter("bindUI",this.bindUI),this.doAfter("clearConsole",this._afterClearConsole),this.get(l).get("rendered")&&(this.renderUI(),this.syncUI(),this.bindUI()),this.after("cacheLimitChange",this._afterCacheLimitChange)},destructor:function(){this._entries=[],this._categories&&this._categories.remove(),this._sources&&this._sources.remove()},renderUI:function(){var t=this.get(l).get("contentBox").one(m),n;t&&(n=e.Lang.sub(b.CATEGORIES_TEMPLATE,b.CHROME_CLASSES),this._categories=t.appendChild(e.Node.create(n)),n=e.Lang.sub(b.SOURCES_TEMPLATE,b.CHROME_CLASSES),this._sources=t.appendChild(e.Node.create(n)))},bindUI:function(){this._categories.on("click",e.bind(this._onCategoryCheckboxClick,this)),this._sources.on("click",e.bind(this._onSourceCheckboxClick,this)),this.after("categoryChange",this._afterCategoryChange),this.after("sourceChange",this._afterSourceChange)},syncUI:function(){e.each(this.get(o),function(e,t){this._uiSetCheckbox(o,t,e)},this),e.each(this.get(u),function(e,t){this._uiSetCheckbox(u,t,e)},this),this.refreshConsole()},_onEntry:function(e){this._entries.push(e.message);var t=a+e.message.category,n=f+e.message.source,r=this.get(t),i=this.get(n),s=this._entries.length-this._cacheLimit,o;s>0&&this._entries.splice(0,s),r===undefined&&(o=this.get(h),this.set(t,o),r=o),i===undefined&&(o=this.get(h),this.set(n,o),i=o),(!r||!i)&&e.preventDefault()},_afterClearConsole:function(){this._entries=[]},_afterCategoryChange:function(e){var t=e.subAttrName.replace(/category\./,d),n=e.prevVal,r=e.newVal;if(!t||n[t]!==undefined)this.refreshConsole(),this._filterBuffer();t&&!e.fromUI&&this._uiSetCheckbox(o,t,r[t])},_afterSourceChange:function(e){var t=e.subAttrName.replace(/source\./,d),n=e.prevVal,r=e.newVal;if(!t||n[t]!==undefined)this.refreshConsole(),this._filterBuffer();t&&!e.fromUI&&this._uiSetCheckbox(u,t,r[t])},_filterBuffer:function(){var e=this.get(o),t=this.get(u),n=this.get(l).buffer,r=null,i;for(i=n.length-1;i>=0;--i)!e[n[i].category]||!t[n[i].source]?r=r||i:r&&(n.splice(i,r-i),r=null);r&&n.splice(0,r+1)},_afterCacheLimitChange:function(e){if(isFinite(e.newVal)){var t=this._entries.length-e.newVal;t>0&&this._entries.splice(0,t)}},refreshConsole:function(){var e=this._entries,t=this.get(l),n=t.get("contentBox").one(v),r=t.get("consoleLimit"),i=this.get(o),s=this.get(u),a=[],f,c;if(n){t._cancelPrintLoop();for(f=e.length-1;f>=0&&r>=0;--f)c=e[f],i[c.category]&&s[c.source]&&(a.unshift(c),--r);n.setHTML(d),t.buffer=a,t.printBuffer()}},_uiSetCheckbox:function(e,t,i){if(e&&t){var u=e===o?this._categories:this._sources,a=g+n(r,s,t),f=u.one(a),h;f||(h=this.get(l),this._createCheckbox(u,t),f=u.one(a),h._uiSetHeight(h.get("height"))),f.set(c,i)}},_onCategoryCheckboxClick:function(e){var t=e.target,n;t.hasClass(b.CHROME_CLASSES.filter)&&(n=t.get("value"),n&&n in this.get(o)&&this.set(a+n,t.get(c),{fromUI:!0}))},_onSourceCheckboxClick:function(e){var t=e.target,n;t.hasClass(b.CHROME_CLASSES.filter)&&(n=t.get("value"),n&&n in this.get(u)&&this.set(f+n,t.get(c),{fromUI:!0}))},hideCategory:function(t,n){y(n)?e.Array.each(arguments,this.hideCategory,this):this.set(a+t,!1)},showCategory:function(t,n){y(n)?e.Array.each(arguments,this.showCategory,this):this.set(a+t,!0)},hideSource:function(t,n){y(n)?e.Array.each(arguments,this.hideSource,this):this.set(f+t,!1)},showSource:function(t,n){y(n)?e.Array.each(arguments,this.showSource,this):this.set(f+t,!0)},_createCheckbox:function(t,i){var o=e.merge(b.CHROME_CLASSES,{filter_name:i,filter_class:n(r,s,i)}),u=e.Node.create(e.Lang.sub(b.FILTER_TEMPLATE,o));t.appendChild(u)},_validateCategory:function(t,n){return e.Lang.isObject(n,!0)&&t.split(/\./).length<3},_validateSource:function(t,n){return e.Lang.isObject(n,!0)&&t.split(/\./).length<3},_setCacheLimit:function(t){return e.Lang.isNumber(t)?(this._cacheLimit=t,t):e.Attribute.INVALID_VALUE}},{NAME:"consoleFilters",NS:s,CATEGORIES_TEMPLATE:'',SOURCES_TEMPLATE:'',FILTER_TEMPLATE:' ',CHROME_CLASSES:{categories:n(r,i,"categories"),sources:n(r,i,"sources"),category:n(r,s,o),source:n(r,s,u),filter:n(r,s),filter_label:n(r,s,"label")},ATTRS:{defaultVisibility:{value:!0,validator:e.Lang.isBoolean},category:{value:{},validator:function(e,t){return this._validateCategory(t,e)}},source:{value:{},validator:function(e,t){return this._validateSource(t,e)}},cacheLimit:{value:Number.POSITIVE_INFINITY,setter:function(e){return this._setCacheLimit(e)}}}})},"3.9.1",{requires:["plugin","console"],skinnable:!0});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("console-filters",function(e,t){function b(){b.superclass.constructor.apply(this,arguments)}var n=e.ClassNameManager.getClassName,r="console",i="filters",s="filter",o="category",u="source",a="category.",f="source.",l="host",c="checked",h="defaultVisibility",p=".",d="",v=p+e.Console.CHROME_CLASSES.console_bd_class,m=p+e.Console.CHROME_CLASSES.console_ft_class,g="input[type=checkbox].",y=e.Lang.isString;e.namespace("Plugin").ConsoleFilters=e.extend(b,e.Plugin.Base,{_entries:null,_cacheLimit:Number.POSITIVE_INFINITY,_categories:null,_sources:null,initializer:function(){this._entries=[],this.get(l).on("entry",this._onEntry,this),this.doAfter("renderUI",this.renderUI),this.doAfter("syncUI",this.syncUI),this.doAfter("bindUI",this.bindUI),this.doAfter("clearConsole",this._afterClearConsole),this.get(l).get("rendered")&&(this.renderUI(),this.syncUI(),this.bindUI()),this.after("cacheLimitChange",this._afterCacheLimitChange)},destructor:function(){this._entries=[],this._categories&&this._categories.remove(),this._sources&&this._sources.remove()},renderUI:function(){var t=this.get(l).get("contentBox").one(m),n;t&&(n=e.Lang.sub(b.CATEGORIES_TEMPLATE,b.CHROME_CLASSES),this._categories=t.appendChild(e.Node.create(n)),n=e.Lang.sub(b.SOURCES_TEMPLATE,b.CHROME_CLASSES),this._sources=t.appendChild(e.Node.create(n)))},bindUI:function(){this._categories.on("click",e.bind(this._onCategoryCheckboxClick,this)),this._sources.on("click",e.bind(this._onSourceCheckboxClick,this)),this.after("categoryChange",this._afterCategoryChange),this.after("sourceChange",this._afterSourceChange)},syncUI:function(){e.each(this.get(o),function(e,t){this._uiSetCheckbox(o,t,e)},this),e.each(this.get(u),function(e,t){this._uiSetCheckbox(u,t,e)},this),this.refreshConsole()},_onEntry:function(e){this._entries.push(e.message);var t=a+e.message.category,n=f+e.message.source,r=this.get(t),i=this.get(n),s=this._entries.length-this._cacheLimit,o;s>0&&this._entries.splice(0,s),r===undefined&&(o=this.get(h),this.set(t,o),r=o),i===undefined&&(o=this.get(h),this.set(n,o),i=o),(!r||!i)&&e.preventDefault()},_afterClearConsole:function(){this._entries=[]},_afterCategoryChange:function(e){var t=e.subAttrName.replace(/category\./,d),n=e.prevVal,r=e.newVal;if(!t||n[t]!==undefined)this.refreshConsole(),this._filterBuffer();t&&!e.fromUI&&this._uiSetCheckbox(o,t,r[t])},_afterSourceChange:function(e){var t=e.subAttrName.replace(/source\./,d),n=e.prevVal,r=e.newVal;if(!t||n[t]!==undefined)this.refreshConsole(),this._filterBuffer();t&&!e.fromUI&&this._uiSetCheckbox(u,t,r[t])},_filterBuffer:function(){var e=this.get(o),t=this.get(u),n=this.get(l).buffer,r=null,i;for(i=n.length-1;i>=0;--i)!e[n[i].category]||!t[n[i].source]?r=r||i:r&&(n.splice(i,r-i),r=null);r&&n.splice(0,r+1)},_afterCacheLimitChange:function(e){if(isFinite(e.newVal)){var t=this._entries.length-e.newVal;t>0&&this._entries.splice(0,t)}},refreshConsole:function(){var e=this._entries,t=this.get(l),n=t.get("contentBox").one(v),r=t.get("consoleLimit"),i=this.get(o),s=this.get(u),a=[],f,c;if(n){t._cancelPrintLoop();for(f=e.length-1;f>=0&&r>=0;--f)c=e[f],i[c.category]&&s[c.source]&&(a.unshift(c),--r);n.setHTML(d),t.buffer=a,t.printBuffer()}},_uiSetCheckbox:function(e,t,i){if(e&&t){var u=e===o?this._categories:this._sources,a=g+n(r,s,t),f=u.one(a),h;f||(h=this.get(l),this._createCheckbox(u,t),f=u.one(a),h._uiSetHeight(h.get("height"))),f.set(c,i)}},_onCategoryCheckboxClick:function(e){var t=e.target,n;t.hasClass(b.CHROME_CLASSES.filter)&&(n=t.get("value"),n&&n in this.get(o)&&this.set(a+n,t.get(c),{fromUI:!0}))},_onSourceCheckboxClick:function(e){var t=e.target,n;t.hasClass(b.CHROME_CLASSES.filter)&&(n=t.get("value"),n&&n in this.get(u)&&this.set(f+n,t.get(c),{fromUI:!0}))},hideCategory:function(t,n){y(n)?e.Array.each(arguments,this.hideCategory,this):this.set(a+t,!1)},showCategory:function(t,n){y(n)?e.Array.each(arguments,this.showCategory,this):this.set(a+t,!0)},hideSource:function(t,n){y(n)?e.Array.each(arguments,this.hideSource,this):this.set(f+t,!1)},showSource:function(t,n){y(n)?e.Array.each(arguments,this.showSource,this):this.set(f+t,!0)},_createCheckbox:function(t,i){var o=e.merge(b.CHROME_CLASSES,{filter_name:i,filter_class:n(r,s,i)}),u=e.Node.create(e.Lang.sub(b.FILTER_TEMPLATE,o));t.appendChild(u)},_validateCategory:function(t,n){return e.Lang.isObject(n,!0)&&t.split(/\./).length<3},_validateSource:function(t,n){return e.Lang.isObject(n,!0)&&t.split(/\./).length<3},_setCacheLimit:function(t){return e.Lang.isNumber(t)?(this._cacheLimit=t,t):e.Attribute.INVALID_VALUE}},{NAME:"consoleFilters",NS:s,CATEGORIES_TEMPLATE:'',SOURCES_TEMPLATE:'',FILTER_TEMPLATE:' ',CHROME_CLASSES:{categories:n(r,i,"categories"),sources:n(r,i,"sources"),category:n(r,s,o),source:n(r,s,u),filter:n(r,s),filter_label:n(r,s,"label")},ATTRS:{defaultVisibility:{value:!0,validator:e.Lang.isBoolean},category:{value:{},validator:function(e,t){return this._validateCategory(t,e)}},source:{value:{},validator:function(e,t){return this._validateSource(t,e)}},cacheLimit:{value:Number.POSITIVE_INFINITY,setter:function(e){return this._setCacheLimit(e)}}}})},"3.12.0",{requires:["plugin","console"],skinnable:!0});
diff --git a/lib/yuilib/3.9.1/build/console-filters/console-filters.js b/lib/yuilib/3.12.0/console-filters/console-filters.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/console-filters/console-filters.js
rename to lib/yuilib/3.12.0/console-filters/console-filters.js
index 2d99cf3e065..6ee94deb281
--- a/lib/yuilib/3.9.1/build/console-filters/console-filters.js
+++ b/lib/yuilib/3.12.0/console-filters/console-filters.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('console-filters', function (Y, NAME) {
/**
@@ -721,4 +727,4 @@ Y.namespace('Plugin').ConsoleFilters = Y.extend(ConsoleFilters, Y.Plugin.Base,
});
-}, '3.9.1', {"requires": ["plugin", "console"], "skinnable": true});
+}, '3.12.0', {"requires": ["plugin", "console"], "skinnable": true});
diff --git a/lib/yuilib/3.12.0/console/assets/console-core.css b/lib/yuilib/3.12.0/console/assets/console-core.css
new file mode 100755
index 00000000000..ab09cf0948f
--- /dev/null
+++ b/lib/yuilib/3.12.0/console/assets/console-core.css
@@ -0,0 +1,7 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
diff --git a/lib/yuilib/3.9.1/build/console/assets/skins/sam/bg.png b/lib/yuilib/3.12.0/console/assets/skins/sam/bg.png
old mode 100644
new mode 100755
similarity index 100%
rename from lib/yuilib/3.9.1/build/console/assets/skins/sam/bg.png
rename to lib/yuilib/3.12.0/console/assets/skins/sam/bg.png
diff --git a/lib/yuilib/3.9.1/build/console/assets/skins/sam/console-skin.css b/lib/yuilib/3.12.0/console/assets/skins/sam/console-skin.css
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/console/assets/skins/sam/console-skin.css
rename to lib/yuilib/3.12.0/console/assets/skins/sam/console-skin.css
index a2e2cee3511..d378f97b53c
--- a/lib/yuilib/3.9.1/build/console/assets/skins/sam/console-skin.css
+++ b/lib/yuilib/3.12.0/console/assets/skins/sam/console-skin.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-skin-sam .yui3-console-separate {
position:absolute;
right:1em;
diff --git a/lib/yuilib/3.9.1/build/console/assets/skins/sam/console.css b/lib/yuilib/3.12.0/console/assets/skins/sam/console.css
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/console/assets/skins/sam/console.css
rename to lib/yuilib/3.12.0/console/assets/skins/sam/console.css
index 997e6d701a9..cfb47d29cbd
--- a/lib/yuilib/3.9.1/build/console/assets/skins/sam/console.css
+++ b/lib/yuilib/3.12.0/console/assets/skins/sam/console.css
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-skin-sam .yui3-console-separate{position:absolute;right:1em;top:1em;z-index:999}.yui3-skin-sam .yui3-console-inline{display:-moz-inline-stack;display:inline-block;*display:inline;zoom:1;vertical-align:top}.yui3-skin-sam .yui3-console-inline .yui3-console-content{position:relative}.yui3-skin-sam .yui3-console-content{background:#777;_background:#d8d8da url(bg.png) repeat-x 0 0;font:normal 13px/1.3 Arial,sans-serif;text-align:left;border:1px solid #777;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px}.yui3-skin-sam .yui3-console-hd,.yui3-skin-sam .yui3-console-bd,.yui3-skin-sam .yui3-console-ft{position:relative}.yui3-skin-sam .yui3-console-hd,.yui3-skin-sam .yui3-console-ft .yui3-console-controls{text-align:right}.yui3-skin-sam .yui3-console-hd{background:#d8d8da url(bg.png) repeat-x 0 0;padding:1ex;border:1px solid transparent;_border:0 none;border-top-right-radius:10px;border-top-left-radius:10px;-moz-border-radius-topright:10px;-moz-border-radius-topleft:10px;-webkit-border-top-right-radius:10px;-webkit-border-top-left-radius:10px}.yui3-skin-sam .yui3-console-bd{background:#fff;border-top:1px solid #777;border-bottom:1px solid #777;color:#000;font-size:11px;overflow:auto;overflow-x:auto;overflow-y:scroll;_width:100%}.yui3-skin-sam .yui3-console-ft{background:#d8d8da url(bg.png) repeat-x 0 0;border:1px solid transparent;_border:0 none;border-bottom-right-radius:10px;border-bottom-left-radius:10px;-moz-border-radius-bottomright:10px;-moz-border-radius-bottomleft:10px;-webkit-border-bottom-right-radius:10px;-webkit-border-bottom-left-radius:10px}.yui3-skin-sam .yui3-console-controls{padding:4px 1ex;zoom:1}.yui3-skin-sam .yui3-console-title{color:#000;display:inline;float:left;font-weight:bold;font-size:13px;height:24px;line-height:24px;margin:0;padding-left:1ex}.yui3-skin-sam .yui3-console-pause-label{float:left}.yui3-skin-sam .yui3-console-button{line-height:1.3}.yui3-skin-sam .yui3-console-collapsed .yui3-console-bd,.yui3-skin-sam .yui3-console-collapsed .yui3-console-ft{display:none}.yui3-skin-sam .yui3-console-content.yui3-console-collapsed{-webkit-border-radius:0}.yui3-skin-sam .yui3-console-collapsed .yui3-console-hd{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:0}.yui3-skin-sam .yui3-console-entry{border-bottom:1px solid #aaa;min-height:32px;_height:32px}.yui3-skin-sam .yui3-console-entry-meta{margin:0;overflow:hidden}.yui3-skin-sam .yui3-console-entry-content{margin:0;padding:0 1ex;white-space:pre-wrap;word-wrap:break-word}.yui3-skin-sam .yui3-console-entry-meta .yui3-console-entry-src{color:#000;font-style:italic;font-weight:bold;float:right;margin:2px 5px 0 0}.yui3-skin-sam .yui3-console-entry-meta .yui3-console-entry-time{color:#777;padding-left:1ex}.yui3-skin-sam .yui3-console-entry-warn .yui3-console-entry-meta .yui3-console-entry-time{color:#555}.yui3-skin-sam .yui3-console-entry-info .yui3-console-entry-meta .yui3-console-entry-cat,.yui3-skin-sam .yui3-console-entry-warn .yui3-console-entry-meta .yui3-console-entry-cat,.yui3-skin-sam .yui3-console-entry-error .yui3-console-entry-meta .yui3-console-entry-cat{display:none}.yui3-skin-sam .yui3-console-entry-warn{background:#aee url(warn_error.png) no-repeat -15px 15px}.yui3-skin-sam .yui3-console-entry-error{background:#ffa url(warn_error.png) no-repeat 5px -24px;color:#900}.yui3-skin-sam .yui3-console-entry-warn .yui3-console-entry-content,.yui3-skin-sam .yui3-console-entry-error .yui3-console-entry-content{padding-left:24px}.yui3-skin-sam .yui3-console-entry-cat{text-transform:uppercase;padding:1px 4px;background-color:#ccc}.yui3-skin-sam .yui3-console-entry-info .yui3-console-entry-cat{background-color:#ac2}.yui3-skin-sam .yui3-console-entry-warn .yui3-console-entry-cat{background-color:#e81}.yui3-skin-sam .yui3-console-entry-error .yui3-console-entry-cat{background-color:#b00;color:#fff}.yui3-skin-sam .yui3-console-hidden{display:none}#yui3-css-stamp.skin-sam-console{display:none}
diff --git a/lib/yuilib/3.9.1/build/console/assets/skins/sam/warn_error.png b/lib/yuilib/3.12.0/console/assets/skins/sam/warn_error.png
old mode 100644
new mode 100755
similarity index 100%
rename from lib/yuilib/3.9.1/build/console/assets/skins/sam/warn_error.png
rename to lib/yuilib/3.12.0/console/assets/skins/sam/warn_error.png
diff --git a/lib/yuilib/3.9.1/build/console/assets/warn_error.png b/lib/yuilib/3.12.0/console/assets/warn_error.png
old mode 100644
new mode 100755
similarity index 100%
rename from lib/yuilib/3.9.1/build/console/assets/warn_error.png
rename to lib/yuilib/3.12.0/console/assets/warn_error.png
diff --git a/lib/yuilib/3.9.1/build/console/console-debug.js b/lib/yuilib/3.12.0/console/console-debug.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/console/console-debug.js
rename to lib/yuilib/3.12.0/console/console-debug.js
index 2ce3b07006f..6c4e5dc669c
--- a/lib/yuilib/3.9.1/build/console/console-debug.js
+++ b/lib/yuilib/3.12.0/console/console-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('console', function (Y, NAME) {
/**
@@ -14,10 +20,6 @@ YUI.add('console', function (Y, NAME) {
* configured logLevel.
*
* @module console
- * @class Console
- * @extends Widget
- * @param conf {Object} Configuration object (see Configuration attributes)
- * @constructor
*/
var getCN = Y.ClassNameManager.getClassName,
CHECKED = 'checked',
@@ -91,7 +93,14 @@ var getCN = Y.ClassNameManager.getClassName,
merge = Y.merge,
substitute = Y.Lang.sub;
+/**
+A basic console that displays messages logged throughout your application.
+@class Console
+@constructor
+@extends Widget
+@param [config] {Object} Object literal specifying widget configuration properties.
+**/
function Console() {
Console.superclass.constructor.apply(this,arguments);
}
@@ -1512,4 +1521,4 @@ Y.Console = Y.extend(Console, Y.Widget,
});
-}, '3.9.1', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
+}, '3.12.0', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "hu", "it", "ja"]});
diff --git a/lib/yuilib/3.9.1/build/console/console-min.js b/lib/yuilib/3.12.0/console/console-min.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/console/console-min.js
rename to lib/yuilib/3.12.0/console/console-min.js
index 916306611eb..2619d76bac6
--- a/lib/yuilib/3.9.1/build/console/console-min.js
+++ b/lib/yuilib/3.12.0/console/console-min.js
@@ -1,3 +1,9 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add("console",function(e,t){function et(){et.superclass.constructor.apply(this,arguments)}var n=e.ClassNameManager.getClassName,r="checked",i="clear",s="click",o="collapsed",u="console",a="contentBox",f="disabled",l="entry",c="error",h="height",p="info",d="lastTime",v="pause",m="paused",g="reset",y="startTime",b="title",w="warn",E=".",S=n(u,"button"),x=n(u,"checkbox"),T=n(u,i),N=n(u,"collapse"),C=n(u,o),k=n(u,"controls"),L=n(u,"hd"),A=n(u,"bd"),O=n(u,"ft"),M=n(u,b),_=n(u,l),D=n(u,l,"cat"),P=n(u,l,"content"),H=n(u,l,"meta"),B=n(u,l,"src"),j=n(u,l,"time"),F=n(u,v),I=n(u,v,"label"),q=/^(\S+)\s/,R=/&(?!#?[a-z0-9]+;)/g,U=/>/g,z=/{message}',J=e.Lang,K=e.Node.create,Q=J.isNumber,G=J.isString,Y=e.merge,Z=e.Lang.sub;e.Console=e.extend(et,e.Widget,{_evtCat:null,_head:null,_body:null,_foot:null,_printLoop:null,buffer:null,log:function(){return e.log.apply(e,arguments),this},clearConsole:function(){return this._body.empty(),this._cancelPrintLoop(),this.buffer=[],this},reset:function(){return this.fire(g),this},collapse:function(){return this.set(o,!0),this},expand:function(){return this.set(o,!1),this},printBuffer:function(t){var n=this.buffer,r=e.config.debug,i=[],s=this.get("consoleLimit"),o=this.get("newestOnTop"),u=o?this._body.get("firstChild"):null,a;n.length>s&&n.splice(0,n.length-s),t=Math.min(n.length,t||n.length),e.config.debug=!1;if(!this.get(m)&&this.get("rendered")){for(a=0;a{str_title}
',BODY_TEMPLATE:'',FOOTER_TEMPLATE:'{str_title}
table.on('renderBody', function (e) {
+table.on('table:renderBody', function (e) {
e.view.CELL_TEMPLATE = e.view.CELL_TEMPLATE.replace(/\{content\}/,
'<div class="yui3-datatable-liner">{content}</div>');
});
@@ -297,4 +303,4 @@ Y.DataTable.ColumnWidths = ColumnWidths;
Y.Base.mix(Y.DataTable, [ColumnWidths]);
-}, '3.9.1', {"requires": ["datatable-base"]});
+}, '3.12.0', {"requires": ["datatable-base"]});
diff --git a/lib/yuilib/3.9.1/build/datatable-column-widths/datatable-column-widths-min.js b/lib/yuilib/3.12.0/datatable-column-widths/datatable-column-widths-min.js
old mode 100644
new mode 100755
similarity index 88%
rename from lib/yuilib/3.9.1/build/datatable-column-widths/datatable-column-widths-min.js
rename to lib/yuilib/3.12.0/datatable-column-widths/datatable-column-widths-min.js
index b8c1e78fd65..df66cd106cd
--- a/lib/yuilib/3.9.1/build/datatable-column-widths/datatable-column-widths-min.js
+++ b/lib/yuilib/3.12.0/datatable-column-widths/datatable-column-widths-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("datatable-column-widths",function(e,t){function i(){}var n=e.Lang.isNumber,r=e.Array.indexOf;e.Features.add("table","badColWidth",{test:function(){var t=e.one("body"),n,r;return t&&(n=t.insertBefore('',t.get("firstChild")),r=n.one("td").getComputedStyle("width")!=="1px",n.remove(!0)),r}}),e.mix(i.prototype,{COL_TEMPLATE:" ",COLGROUP_TEMPLATE:" ",setColumnWidth:function(e,t){var i=this.getColumn(e),s=i&&r(this._displayColumns,i);return s>-1&&(n(t)&&(t+="px"),i.width=t,this._setColumnWidth(s,t)),this},_createColumnGroup:function(){return e.Node.create(this.COLGROUP_TEMPLATE)},initializer:function(){this.after(["renderView","columnsChange"],this._uiSetColumnWidths)},_setColumnWidth:function(t,r){var i=this._colgroupNode,s=i&&i.all("col").item(t),o,u;s&&(r&&n(r)&&(r+="px"),s.setStyle("width",r),r&&e.Features.test("table","badColWidth")&&(o=this.getCell([0,t]),o&&(u=function(e){return parseInt(o.getComputedStyle(e),10)||0},s.setStyle("width",parseInt(r,10)-u("paddingLeft")-u("paddingRight")-u("borderLeftWidth")-u("borderRightWidth")+"px"))))},_uiSetColumnWidths:function(){if(!this.view)return;var e=this.COL_TEMPLATE,t=this._colgroupNode,n=this._displayColumns,r,i;t?t.empty():(t=this._colgroupNode=this._createColumnGroup(),this._tableNode.insertBefore(t,this._tableNode.one("> thead, > tfoot, > tbody")));for(r=0,i=n.length;r. ',t.get("firstChild")),r=n.one("td").getComputedStyle("width")!=="1px",n.remove(!0)),r}}),e.mix(i.prototype,{COL_TEMPLATE:" ",COLGROUP_TEMPLATE:" ",setColumnWidth:function(e,t){var i=this.getColumn(e),s=i&&r(this._displayColumns,i);return s>-1&&(n(t)&&(t+="px"),i.width=t,this._setColumnWidth(s,t)),this},_createColumnGroup:function(){return e.Node.create(this.COLGROUP_TEMPLATE)},initializer:function(){this.after(["renderView","columnsChange"],this._uiSetColumnWidths)},_setColumnWidth:function(t,r){var i=this._colgroupNode,s=i&&i.all("col").item(t),o,u;s&&(r&&n(r)&&(r+="px"),s.setStyle("width",r),r&&e.Features.test("table","badColWidth")&&(o=this.getCell([0,t]),o&&(u=function(e){return parseInt(o.getComputedStyle(e),10)||0},s.setStyle("width",parseInt(r,10)-u("paddingLeft")-u("paddingRight")-u("borderLeftWidth")-u("borderRightWidth")+"px"))))},_uiSetColumnWidths:function(){if(!this.view)return;var e=this.COL_TEMPLATE,t=this._colgroupNode,n=this._displayColumns,r,i;t?t.empty():(t=this._colgroupNode=this._createColumnGroup(),this._tableNode.insertBefore(t,this._tableNode.one("> thead, > tfoot, > tbody")));for(r=0,i=n.length;rtable.on('renderBody', function (e) {
+table.on('table:renderBody', function (e) {
e.view.CELL_TEMPLATE = e.view.CELL_TEMPLATE.replace(/\{content\}/,
'<div class="yui3-datatable-liner">{content}</div>');
});
@@ -297,4 +303,4 @@ Y.DataTable.ColumnWidths = ColumnWidths;
Y.Base.mix(Y.DataTable, [ColumnWidths]);
-}, '3.9.1', {"requires": ["datatable-base"]});
+}, '3.12.0', {"requires": ["datatable-base"]});
diff --git a/lib/yuilib/3.9.1/build/datatable-core/datatable-core-debug.js b/lib/yuilib/3.12.0/datatable-core/datatable-core-debug.js
old mode 100644
new mode 100755
similarity index 99%
rename from lib/yuilib/3.9.1/build/datatable-core/datatable-core-debug.js
rename to lib/yuilib/3.12.0/datatable-core/datatable-core-debug.js
index f4589fc70a4..5948a041cee
--- a/lib/yuilib/3.9.1/build/datatable-core/datatable-core-debug.js
+++ b/lib/yuilib/3.12.0/datatable-core/datatable-core-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('datatable-core', function (Y, NAME) {
/**
@@ -913,4 +919,4 @@ Y.mix(Table.prototype, {
});
-}, '3.9.1', {"requires": ["escape", "model-list", "node-event-delegate"]});
+}, '3.12.0', {"requires": ["escape", "model-list", "node-event-delegate"]});
diff --git a/lib/yuilib/3.9.1/build/datatable-core/datatable-core-min.js b/lib/yuilib/3.12.0/datatable-core/datatable-core-min.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/datatable-core/datatable-core-min.js
rename to lib/yuilib/3.12.0/datatable-core/datatable-core-min.js
index 3a4f2f5de35..44a7aad304c
--- a/lib/yuilib/3.9.1/build/datatable-core/datatable-core-min.js
+++ b/lib/yuilib/3.12.0/datatable-core/datatable-core-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("datatable-core",function(e,t){var n=e.Attribute.INVALID_VALUE,r=e.Lang,i=r.isFunction,s=r.isObject,o=r.isArray,u=r.isString,a=r.isNumber,f=e.Array,l=e.Object.keys,c;c=e.namespace("DataTable").Core=function(){},c.ATTRS={columns:{validator:o,setter:"_setColumns",getter:"_getColumns"},recordType:{getter:"_getRecordType",setter:"_setRecordType"},data:{valueFn:"_initData",setter:"_setData",lazyAdd:!1},recordset:{setter:"_setRecordset",getter:"_getRecordset",lazyAdd:!1},columnset:{setter:"_setColumnset",getter:"_getColumnset",lazyAdd:!1}},e.mix(c.prototype,{getColumn:function(e){var t,n,r,i,u;s(e)&&!o(e)?t=e:t=this.get("columns."+e);if(t)return t;n=this.get("columns");if(a(e)||o(e)){e=f(e),u=n;for(r=0,i=e.length-1;u&&r8?this._columnMap:e},_getColumnset:function(e,t){return this.get(t.replace(/^columnset/,"columns"))},_getRecordType:function(e){return e||this.data&&this.data.model},_initColumns:function(){var e=this.get("columns")||[],t;!e.length&&this.data.size()&&(t=this.data.item(0),t.toJSON&&(t=t.toJSON()),this.set("columns",l(t))),this._setColumnMap(e)},_initCoreEvents:function(){this._eventHandles.coreAttrChanges=this.after({columnsChange:e.bind("_afterColumnsChange",this),recordTypeChange:e.bind("_afterRecordTypeChange",this),dataChange:e.bind("_afterDataChange",this)})},_initData:function(){var t=this.get("recordType"),n=new e.ModelList;return t&&(n.model=t),n},_initDataProperty:function(t){var n;this.data||(n=this.get("recordType"),t&&t.each&&t.toJSON?(this.data=t,n&&(this.data.model=n)):(this.data=new e.ModelList,n&&(this.data.model=n)),this.data.addTarget(this))},initializer:function(e){var t=e.data,n=e.columns,r;this._initDataProperty(t),n||(r=(e.recordType||e.data===this.data)&&this.get("recordType"),r?n=l(r.ATTRS):o(t)&&t.length&&(n=l(t[0])),n&&this.set("columns",n)),this._initColumns(),this._eventHandles={},this._initCoreEvents()},_setColumnMap:function(e){function n(e){var r,i,s,o;for(r=0,i=e.length;r8?this._columnMap:e},_getColumnset:function(e,t){return this.get(t.replace(/^columnset/,"columns"))},_getRecordType:function(e){return e||this.data&&this.data.model},_initColumns:function(){var e=this.get("columns")||[],t;!e.length&&this.data.size()&&(t=this.data.item(0),t.toJSON&&(t=t.toJSON()),this.set("columns",l(t))),this._setColumnMap(e)},_initCoreEvents:function(){this._eventHandles.coreAttrChanges=this.after({columnsChange:e.bind("_afterColumnsChange",this),recordTypeChange:e.bind("_afterRecordTypeChange",this),dataChange:e.bind("_afterDataChange",this)})},_initData:function(){var t=this.get("recordType"),n=new e.ModelList;return t&&(n.model=t),n},_initDataProperty:function(t){var n;this.data||(n=this.get("recordType"),t&&t.each&&t.toJSON?(this.data=t,n&&(this.data.model=n)):(this.data=new e.ModelList,n&&(this.data.model=n)),this.data.addTarget(this))},initializer:function(e){var t=e.data,n=e.columns,r;this._initDataProperty(t),n||(r=(e.recordType||e.data===this.data)&&this.get("recordType"),r?n=l(r.ATTRS):o(t)&&t.length&&(n=l(t[0])),n&&this.set("columns",n)),this._initColumns(),this._eventHandles={},this._initCoreEvents()},_setColumnMap:function(e){function n(e){var r,i,s,o;for(r=0,i=e.length;r` section of a table. Can be
+used as the default `footerView` for `Y.DataTable.Base` and `Y.DataTable`
+classes.
+
+@module datatable
+@submodule datatable-foot
+@since 3.11.0
+**/
+
+
+Y.namespace('DataTable').FooterView = Y.Base.create('tableFooter', Y.View, [], {
+ // -- Instance properties -------------------------------------------------
+
+ /**
+ HTML templates used to create the `` containing the table footers.
+
+ @property TFOOT_TEMPLATE
+ @type {HTML}
+ @default ''
+ @since 3.11.0
+ **/
+ TFOOT_TEMPLATE: '',
+
+ // -- Public methods ------------------------------------------------------
+
+ /**
+ Returns the generated CSS classname based on the input. If the `host`
+ attribute is configured, it will attempt to relay to its `getClassName`
+ or use its static `NAME` property as a string base.
+
+ If `host` is absent or has neither method nor `NAME`, a CSS classname
+ will be generated using this class's `NAME`.
+
+ @method getClassName
+ @param {String} token* Any number of token strings to assemble the
+ classname from.
+ @return {String}
+ @protected
+ @since 3.11.0
+ **/
+ getClassName: function () {
+ // TODO: add attribute with setter? to host to use property this.host
+ // for performance
+ var host = this.host,
+ NAME = (host && host.constructor.NAME) ||
+ this.constructor.NAME;
+
+ if (host && host.getClassName) {
+ return host.getClassName.apply(host, arguments);
+ } else {
+ return Y.ClassNameManager.getClassName
+ .apply(Y.ClassNameManager,
+ [NAME].concat(Y.Array(arguments, 0, true)));
+ }
+ },
+
+ /**
+ Creates the `` Node and inserts it after the `` Node.
+
+ @method render
+ @return {FooterView} The instance
+ @chainable
+ @since 3.11.0
+ **/
+ render: function () {
+ var tfoot = this.tfootNode ||
+ (this.tfootNode = this._createTFootNode());
+
+ if (this.host && this.host._theadNode) {
+ this.host._theadNode.insert(tfoot, 'after');
+ }
+
+ return this;
+ },
+
+ /**
+ Creates the `` node that will store the footer rows and cells.
+
+ @method _createTFootNode
+ @return {Node}
+ @protected
+ @since 3.11.0
+ **/
+ _createTFootNode: function () {
+ return Y.Node.create(Y.Lang.sub(this.TFOOT_TEMPLATE, {
+ className: this.getClassName('foot')
+ }));
+ },
+
+ /**
+ Initializes the instance. Reads the following configuration properties:
+
+ * `host` - The object to serve as source of truth for column info
+
+ @method initializer
+ @param {Object} config Configuration data
+ @protected
+ @since 3.11.0
+ **/
+ initializer: function (config) {
+ this.host = (config && config.host);
+ }
+
+
+
+});
+
+
+}, '3.12.0', {"requires": ["datatable-core", "view"]});
diff --git a/lib/yuilib/3.12.0/datatable-foot/datatable-foot-min.js b/lib/yuilib/3.12.0/datatable-foot/datatable-foot-min.js
new file mode 100755
index 00000000000..aa58f1235a9
--- /dev/null
+++ b/lib/yuilib/3.12.0/datatable-foot/datatable-foot-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("datatable-foot",function(e,t){e.namespace("DataTable").FooterView=e.Base.create("tableFooter",e.View,[],{TFOOT_TEMPLATE:'',getClassName:function(){var t=this.host,n=t&&t.constructor.NAME||this.constructor.NAME;return t&&t.getClassName?t.getClassName.apply(t,arguments):e.ClassNameManager.getClassName.apply(e.ClassNameManager,[n].concat(e.Array(arguments,0,!0)))},render:function(){var e=this.tfootNode||(this.tfootNode=this._createTFootNode());return this.host&&this.host._theadNode&&this.host._theadNode.insert(e,"after"),this},_createTFootNode:function(){return e.Node.create(e.Lang.sub(this.TFOOT_TEMPLATE,{className:this.getClassName("foot")}))},initializer:function(e){this.host=e&&e.host}})},"3.12.0",{requires:["datatable-core","view"]});
diff --git a/lib/yuilib/3.12.0/datatable-foot/datatable-foot.js b/lib/yuilib/3.12.0/datatable-foot/datatable-foot.js
new file mode 100755
index 00000000000..77a6a855451
--- /dev/null
+++ b/lib/yuilib/3.12.0/datatable-foot/datatable-foot.js
@@ -0,0 +1,119 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add('datatable-foot', function (Y, NAME) {
+
+/**
+View class responsible for rendering the `` section of a table. Can be
+used as the default `footerView` for `Y.DataTable.Base` and `Y.DataTable`
+classes.
+
+@module datatable
+@submodule datatable-foot
+@since 3.11.0
+**/
+
+
+Y.namespace('DataTable').FooterView = Y.Base.create('tableFooter', Y.View, [], {
+ // -- Instance properties -------------------------------------------------
+
+ /**
+ HTML templates used to create the `` containing the table footers.
+
+ @property TFOOT_TEMPLATE
+ @type {HTML}
+ @default ''
+ @since 3.11.0
+ **/
+ TFOOT_TEMPLATE: '',
+
+ // -- Public methods ------------------------------------------------------
+
+ /**
+ Returns the generated CSS classname based on the input. If the `host`
+ attribute is configured, it will attempt to relay to its `getClassName`
+ or use its static `NAME` property as a string base.
+
+ If `host` is absent or has neither method nor `NAME`, a CSS classname
+ will be generated using this class's `NAME`.
+
+ @method getClassName
+ @param {String} token* Any number of token strings to assemble the
+ classname from.
+ @return {String}
+ @protected
+ @since 3.11.0
+ **/
+ getClassName: function () {
+ // TODO: add attribute with setter? to host to use property this.host
+ // for performance
+ var host = this.host,
+ NAME = (host && host.constructor.NAME) ||
+ this.constructor.NAME;
+
+ if (host && host.getClassName) {
+ return host.getClassName.apply(host, arguments);
+ } else {
+ return Y.ClassNameManager.getClassName
+ .apply(Y.ClassNameManager,
+ [NAME].concat(Y.Array(arguments, 0, true)));
+ }
+ },
+
+ /**
+ Creates the `` Node and inserts it after the `` Node.
+
+ @method render
+ @return {FooterView} The instance
+ @chainable
+ @since 3.11.0
+ **/
+ render: function () {
+ var tfoot = this.tfootNode ||
+ (this.tfootNode = this._createTFootNode());
+
+ if (this.host && this.host._theadNode) {
+ this.host._theadNode.insert(tfoot, 'after');
+ }
+
+ return this;
+ },
+
+ /**
+ Creates the `` node that will store the footer rows and cells.
+
+ @method _createTFootNode
+ @return {Node}
+ @protected
+ @since 3.11.0
+ **/
+ _createTFootNode: function () {
+ return Y.Node.create(Y.Lang.sub(this.TFOOT_TEMPLATE, {
+ className: this.getClassName('foot')
+ }));
+ },
+
+ /**
+ Initializes the instance. Reads the following configuration properties:
+
+ * `host` - The object to serve as source of truth for column info
+
+ @method initializer
+ @param {Object} config Configuration data
+ @protected
+ @since 3.11.0
+ **/
+ initializer: function (config) {
+ this.host = (config && config.host);
+ }
+
+
+
+});
+
+
+}, '3.12.0', {"requires": ["datatable-core", "view"]});
diff --git a/lib/yuilib/3.9.1/build/datatable-formatters/datatable-formatters-debug.js b/lib/yuilib/3.12.0/datatable-formatters/datatable-formatters-debug.js
old mode 100644
new mode 100755
similarity index 86%
rename from lib/yuilib/3.9.1/build/datatable-formatters/datatable-formatters-debug.js
rename to lib/yuilib/3.12.0/datatable-formatters/datatable-formatters-debug.js
index caba56aaf85..e7fbbdda151
--- a/lib/yuilib/3.9.1/build/datatable-formatters/datatable-formatters-debug.js
+++ b/lib/yuilib/3.12.0/datatable-formatters/datatable-formatters-debug.js
@@ -1,11 +1,16 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('datatable-formatters', function (Y, NAME) {
/**
Adds predefined cell formatters to `Y.DataTable.BodyView`.
-@module datatable
-@submodule datatable-formatters
+@module datatable-formatters
@since 3.8.0
**/
var Lang = Y.Lang,
@@ -331,11 +336,56 @@ var Lang = Y.Lang,
}
return fn(value, format);
};
- }
+ },
+ /**
+ Returns a formatter function that returns texts from a lookup table
+ based on the stored value.
+ It looks for the translation to apply in the `lookupTable` property of the
+ column in either of these two formats:
+
+ {key: "status", formatter: "lookup", lookupTable: {
+ 0: "unknown",
+ 1: "requested",
+ 2: "approved",
+ 3: "delivered"
+ }},
+ {key: "otherStatus", formatter: "lookup", lookupTable: [
+ {value:0, text: "unknown"},
+ {value:1, text: "requested"},
+ {value:2, text: "approved"},
+ {value:3, text: "delivered"}
+ ]}
+
+ Applies the CSS className `yui3-datatable-lookup` to the cell.
+
+ @method lookup
+ @param col {Object} The column definition
+ @return {Function} A formatter function that returns the `text`
+ associated with `value`.
+ @static
+ */
+ lookup: function (col) {
+ var className = cName('lookup'),
+ lookup = col.lookupTable || {},
+ entries, i, len;
+
+ if (Lang.isArray(lookup)) {
+ entries = lookup;
+ lookup = {};
+
+ for (i = 0, len = entries.length; i < len; ++i) {
+ lookup[entries[i].value] = entries[i].text;
+ }
+ }
+ return function (o) {
+ o.className = className;
+ return lookup[o.value];
+ };
+ }
};
Y.mix(Y.DataTable.BodyView.Formatters, Formatters);
-}, '3.9.1', {"requires": ["datatable-body", "datatype-number-format", "datatype-date-format", "escape"]});
+}, '3.12.0', {"requires": ["datatable-body", "datatype-number-format", "datatype-date-format", "escape"]});
diff --git a/lib/yuilib/3.9.1/build/datatable-formatters/datatable-formatters-min.js b/lib/yuilib/3.12.0/datatable-formatters/datatable-formatters-min.js
old mode 100644
new mode 100755
similarity index 77%
rename from lib/yuilib/3.9.1/build/datatable-formatters/datatable-formatters-min.js
rename to lib/yuilib/3.12.0/datatable-formatters/datatable-formatters-min.js
index 681639c4c41..a17bc312a7d
--- a/lib/yuilib/3.9.1/build/datatable-formatters/datatable-formatters-min.js
+++ b/lib/yuilib/3.12.0/datatable-formatters/datatable-formatters-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("datatable-formatters",function(e,t){var n=e.Lang,r=n.isValue,i=e.Escape.html,s=e.ClassNameManager.getClassName,o=function(e){return s("datatable",e)},u=function(e,t){return r(e)?i(e.toString()):t||""},a={button:function(e){var t=o("button"),n="";return e.allowHTML=!0,function(e){return e.className=t,n}},"boolean":function(e){var t=e.booleanLabels||this.get("booleanLabels")||{"true":"true","false":"false"};return function(e){var n=e.value;return!n&&n!==!1?n:(n=n?"true":"false",e.className=o(n),t[n])}},currency:function(t){var n=o("currency"),r=t.currencyFormat||this.get("currencyFormat"),i=e.Number.format;return function(e){e.className=n;var t=parseFloat(e.value);return!t&&t!==0?e.value:i(t,r)}},_date:function(t){var n=o("date"),r=e.Date.format;return t={format:t},function(e){return e.className=n,r(e.value,t)}},date:function(e){return a._date(e.dateFormat||this.get("dateFormat"))},localDate:function(){return a._date("%x")},localTime:function(){return a._date("%X")},localDateTime:function(){return a._date("%c")},email:function(e){var t=o("email"),n=e.linkFrom,r=e.emptyCellValue,i=(this.getColumn(n)||{}).emptyCellValue;return e.allowHTML=!0,function(e){var s=u(e.value,r),o=n?u(e.data[n],i):s;return e.className=t,o?''+s+"":s}},link:function(e){var t=o("link"),n=e.linkFrom,r=e.emptyCellValue,i=(this.getColumn(n)||{}).emptyCellValue;return e.allowHTML=!0,function(e){var s=u(e.value,r),o=n?u(e.data[n],i):s;return e.className=t,o?''+s+"":s}},number:function(t){var n=o("number"),r=t.numberFormat||this.get("numberFormat"),i=e.Number.format;return function(e){e.className=n;var t=parseFloat(e.value);return!t&&t!==0?e.value:i(t,r)}}};e.mix(e.DataTable.BodyView.Formatters,a)},"3.9.1",{requires:["datatable-body","datatype-number-format","datatype-date-format","escape"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("datatable-formatters",function(e,t){var n=e.Lang,r=n.isValue,i=e.Escape.html,s=e.ClassNameManager.getClassName,o=function(e){return s("datatable",e)},u=function(e,t){return r(e)?i(e.toString()):t||""},a={button:function(e){var t=o("button"),n="";return e.allowHTML=!0,function(e){return e.className=t,n}},"boolean":function(e){var t=e.booleanLabels||this.get("booleanLabels")||{"true":"true","false":"false"};return function(e){var n=e.value;return!n&&n!==!1?n:(n=n?"true":"false",e.className=o(n),t[n])}},currency:function(t){var n=o("currency"),r=t.currencyFormat||this.get("currencyFormat"),i=e.Number.format;return function(e){e.className=n;var t=parseFloat(e.value);return!t&&t!==0?e.value:i(t,r)}},_date:function(t){var n=o("date"),r=e.Date.format;return t={format:t},function(e){return e.className=n,r(e.value,t)}},date:function(e){return a._date(e.dateFormat||this.get("dateFormat"))},localDate:function(){return a._date("%x")},localTime:function(){return a._date("%X")},localDateTime:function(){return a._date("%c")},email:function(e){var t=o("email"),n=e.linkFrom,r=e.emptyCellValue,i=(this.getColumn(n)||{}).emptyCellValue;return e.allowHTML=!0,function(e){var s=u(e.value,r),o=n?u(e.data[n],i):s;return e.className=t,o?''+s+"":s}},link:function(e){var t=o("link"),n=e.linkFrom,r=e.emptyCellValue,i=(this.getColumn(n)||{}).emptyCellValue;return e.allowHTML=!0,function(e){var s=u(e.value,r),o=n?u(e.data[n],i):s;return e.className=t,o?''+s+"":s}},number:function(t){var n=o("number"),r=t.numberFormat||this.get("numberFormat"),i=e.Number.format;return function(e){e.className=n;var t=parseFloat(e.value);return!t&&t!==0?e.value:i(t,r)}},lookup:function(e){var t=o("lookup"),r=e.lookupTable||{},i,s,u;if(n.isArray(r)){i=r,r={};for(s=0,u=i.length;s{content}',ROW_TEMPLATE:"{content} ",THEAD_TEMPLATE:'',getClassName:function(){var t=this.host,n=t&&t.constructor.NAME||this.constructor.NAME;return t&&t.getClassName?t.getClassName.apply(t,arguments):e.ClassNameManager.getClassName.apply(e.ClassNameManager,[n].concat(s(arguments,0,!0)))},render:function(){var t=this.get("container"),n=this.theadNode||(this.theadNode=this._createTHeadNode()),i=this.columns,s={_colspan:1,_rowspan:1,abbr:"",title:""},o,u,a,f,l,c,h,p;if(n&&i){c="";if(i.length)for(o=0,u=i.length;o=h){if(r.length>1){o=r[r.length-2],l=o[0][o[1]],l._colspan=0;for(c=0,h=u.length;c=0;--p)l=r[p][0][r[p][1]],a._headers.unshift(l.id);if(f&&f.length){r.push([f,-1]);break}a._rowspan=s-r.length+1}c>=h&&r.pop()}}for(c=0,h=n.length;c{content}',ROW_TEMPLATE:"{content} ",THEAD_TEMPLATE:'',getClassName:function(){var t=this.host,n=t&&t.constructor.NAME||this.constructor.NAME;return t&&t.getClassName?t.getClassName.apply(t,arguments):e.ClassNameManager.getClassName.apply(e.ClassNameManager,[n].concat(s(arguments,0,!0)))},render:function(){var t=this.get("container"),n=this.theadNode||(this.theadNode=this._createTHeadNode()),i=this.columns,s={_colspan:1,_rowspan:1,abbr:"",title:""},o,u,a,f,l,c,h,p;if(n&&i){c="";if(i.length)for(o=0,u=i.length;o=h){if(r.length>1){o=r[r.length-2],l=o[0][o[1]],l._colspan=0;for(c=0,h=u.length;c=0;--p)l=r[p][0][r[p][1]],a._headers.unshift(l.id);if(f&&f.length){r.push([f,-1]);break}a._rowspan=s-r.length+1}c>=h&&r.pop()}}for(c=0,h=n.length;c
',hideMessage:function(){return this.get("boundingBox").removeClass(this.getClassName("message","visible")),this},showMessage:function(e){var t=this.getString(e)||e;return this._messageNode||this._initMessageNode(),this.get("showMessages")&&(t?(this._messageNode.one("."+this.getClassName("message","content")).setHTML(t),this.get("boundingBox").addClass(this.getClassName("message","visible"))):this.hideMessage()),this},_afterMessageColumnsChange:function(){var e;this._messageNode&&(e=this._messageNode.one("."+this.getClassName("message","content")),e&&e.set("colSpan",this._displayColumns.length))},_afterMessageDataChange:function(){this._uiSetMessage()},_afterShowMessagesChange:function(e){e.newVal?this._uiSetMessage(e):this._messageNode&&(this.get("boundingBox").removeClass(this.getClassName("message","visible")),this._messageNode.remove().destroy(!0),this._messageNode=null)},_bindMessageUI:function(){this.after(["dataChange","*:add","*:remove","*:reset"],e.bind("_afterMessageDataChange",this)),this.after("columnsChange",e.bind("_afterMessageColumnsChange",this)),this.after("showMessagesChange",e.bind("_afterShowMessagesChange",this))},initializer:function(){this._initMessageStrings(),this.get("showMessages")&&this.after("renderBody",e.bind("_initMessageNode",this)),this.after(e.bind("_bindMessageUI",this),this,"bindUI"),this.after(e.bind("_syncMessageUI",this),this,"syncUI")},_initMessageNode:function(){this._messageNode||(this._messageNode=e.Node.create(e.Lang.sub(this.MESSAGE_TEMPLATE,{className:this.getClassName("message"),contentClass:this.getClassName("message","content"),colspan:this._displayColumns.length||1})),this._tableNode.insertBefore(this._messageNode,this._tbodyNode))},_initMessageStrings:function(){this.set("strings",e.mix(this.get("strings")||{},e.Intl.get("datatable-message")))},_syncMessageUI:function(){this._uiSetMessage()},_uiSetMessage:function(e){this.data.size()?this.hideMessage():this.showMessage(e&&e.message||"emptyMessage")}}),e.Lang.isFunction(e.DataTable)&&e.Base.mix(e.DataTable,[n])},"3.9.1",{requires:["datatable-base"],lang:["en","fr","es"],skinnable:!0});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("datatable-message",function(e,t){var n;e.namespace("DataTable").Message=n=function(){},n.ATTRS={showMessages:{value:!0,validator:e.Lang.isBoolean}},e.mix(n.prototype,{MESSAGE_TEMPLATE:'"+s.EditorSelection.CURSOR+"
"),d.insert(v,"after"),t.changedNode.remove(),t.changedEvent.halt(),m=new s.EditorSelection,m.selectNode(v,!0,!1)));if(e.UA.gecko&&n.get("defaultblock")!=="p"){d=t.changedNode;if(!d.test(c)&&!d.ancestor(c)){d.test(g)||(d=d.ancestor(g)),v=s.Node.create("<"+g+">"+g+">"),d.insert(v,"after"),m=new s.EditorSelection;if(m.anchorOffset){y=m.anchorNode.get("textContent"),p=s.one(s.config.doc.createTextNode(y.substr(0,m.anchorOffset))),b=s.one(s.config.doc.createTextNode(y.substr(m.anchorOffset))),E=m.anchorNode,E.setContent(""),S=E.cloneNode(),S.append(b),x=!1,N=E;while(!x)N=N.get(o),N&&!N.test(g)?(T=N.cloneNode(),T.set("innerHTML",""),T.append(S),w=N.get("childNodes"),U=!1,w.each(function(e){U&&T.append(e),e===E&&(U=!0)}),E=N,S=T):x=!0;b=S,m.anchorNode.append(p),b&&v.append(b)}v.get(l)&&(v=v.get(l)),v.prepend(s.EditorSelection.CURSOR),m.focusCursor(!0,!0),h=s.EditorSelection.getText(v),h!==""&&s.EditorSelection.cleanCursor(),t.changedEvent.preventDefault()}}break;case"keyup":e.UA.gecko&&s.config.doc&&s.config.doc.body&&s.config.doc.body.innerHTML.length<20&&(s.one(u)||this._fixFirstPara());break;case"backspace-up":case"backspace-down":case"delete-up":e.UA.ie||(L=s.all(u),O=s.one(i),L.item(0)&&(O=L.item(0)),A=O.one("br"),A&&(A.removeAttribute("id"),A.removeAttribute("class")),p=s.EditorSelection.getText(O),p=p.replace(/ /g,"").replace(/\n/g,""),_=O.all("img"),p.length===0&&!_.size()&&(O.test(a)||this._fixFirstPara(),M=null,t.changedNode&&t.changedNode.test(a)&&(M=t.changedNode),!M&&n._lastPara&&n._lastPara.inDoc()&&(M=n._lastPara),M&&!M.test(a)&&(M=M.ancestor(a)),M&&!M.previous()&&M.get(o)&&M.get(o).test(i)&&(t.changedEvent.frameEvent.halt(),t.preventDefault())),e.UA.webkit&&t.changedNode&&(t.preventDefault(),O=t.changedNode,O.test("li")&&!O.previous()&&!O.next()&&(h=O.get("innerHTML").replace(f,""),h===""&&O.get(o)&&(O.get(o).replace(s.Node.create(f)),t.changedEvent.frameEvent.halt(),s.EditorSelection.filterBlocks())))),e.UA.gecko&&(v=t.changedNode,D=s.config.doc.createTextNode(" "),v.appendChild(D),v.removeChild(D))}e.UA.gecko&&t.changedNode&&!t.changedNode.test(g)&&(M=t.changedNode.ancestor(g),M&&(this._lastPara=M))},initializer:function(){var t=this.get(r);if(t.editorBR){e.error("Can not plug EditorPara and EditorBR at the same time.");return}t.on(s,e.bind(this._onNodeChange,this))}},{NAME:"editorPara",NS:"editorPara",ATTRS:{host:{value:!1}}}),e.namespace("Plugin"),e.Plugin.EditorPara=n},"3.9.1",{requires:["editor-para-base"]}); +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + +YUI.add("editor-para",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r="host",i="body",s="nodeChange",o="parentNode",u=i+" > p",a="p",f=""+s.EditorSelection.CURSOR+"
"),d.insert(v,"after"),t.changedNode.remove(),t.changedEvent.halt(),m=new s.EditorSelection,m.selectNode(v,!0,!1)));if(e.UA.gecko&&n.get("defaultblock")!=="p"){d=t.changedNode;if(!d.test(c)&&!d.ancestor(c)){d.test(g)||(d=d.ancestor(g)),v=s.Node.create("<"+g+">"+g+">"),d.insert(v,"after"),m=new s.EditorSelection;if(m.anchorOffset){y=m.anchorNode.get("textContent"),p=s.one(s.config.doc.createTextNode(y.substr(0,m.anchorOffset))),b=s.one(s.config.doc.createTextNode(y.substr(m.anchorOffset))),E=m.anchorNode,E.setContent(""),S=E.cloneNode(),S.append(b),x=!1,N=E;while(!x)N=N.get(o),N&&!N.test(g)?(T=N.cloneNode(),T.set("innerHTML",""),T.append(S),w=N.get("childNodes"),U=!1,w.each(function(e){U&&T.append(e),e===E&&(U=!0)}),E=N,S=T):x=!0;b=S,m.anchorNode.append(p),b&&v.append(b)}v.get(l)&&(v=v.get(l)),v.prepend(s.EditorSelection.CURSOR),m.focusCursor(!0,!0),h=s.EditorSelection.getText(v),h!==""&&s.EditorSelection.cleanCursor(),t.changedEvent.preventDefault()}}break;case"keyup":e.UA.gecko&&s.config.doc&&s.config.doc.body&&s.config.doc.body.innerHTML.length<20&&(s.one(u)||this._fixFirstPara());break;case"backspace-up":case"backspace-down":case"delete-up":e.UA.ie||(L=s.all(u),O=s.one(i),L.item(0)&&(O=L.item(0)),A=O.one("br"),A&&(A.removeAttribute("id"),A.removeAttribute("class")),p=s.EditorSelection.getText(O),p=p.replace(/ /g,"").replace(/\n/g,""),_=O.all("img"),p.length===0&&!_.size()&&(O.test(a)||this._fixFirstPara(),M=null,t.changedNode&&t.changedNode.test(a)&&(M=t.changedNode),!M&&n._lastPara&&n._lastPara.inDoc()&&(M=n._lastPara),M&&!M.test(a)&&(M=M.ancestor(a)),M&&!M.previous()&&M.get(o)&&M.get(o).test(i)&&(t.changedEvent.frameEvent.halt(),t.preventDefault())),e.UA.webkit&&t.changedNode&&(t.preventDefault(),O=t.changedNode,O.test("li")&&!O.previous()&&!O.next()&&(h=O.get("innerHTML").replace(f,""),h===""&&O.get(o)&&(O.get(o).replace(s.Node.create(f)),t.changedEvent.frameEvent.halt(),s.EditorSelection.filterBlocks())))),e.UA.gecko&&(v=t.changedNode,D=s.config.doc.createTextNode(" "),v.appendChild(D),v.removeChild(D))}e.UA.gecko&&t.changedNode&&!t.changedNode.test(g)&&(M=t.changedNode.ancestor(g),M&&(this._lastPara=M))},initializer:function(){var t=this.get(r);if(t.editorBR){e.error("Can not plug EditorPara and EditorBR at the same time.");return}t.on(s,e.bind(this._onNodeChange,this))}},{NAME:"editorPara",NS:"editorPara",ATTRS:{host:{value:!1}}}),e.namespace("Plugin"),e.Plugin.EditorPara=n},"3.12.0",{requires:["editor-para-base"]}); diff --git a/lib/yuilib/3.9.1/build/editor-para/editor-para.js b/lib/yuilib/3.12.0/editor-para/editor-para.js old mode 100644 new mode 100755 similarity index 98% rename from lib/yuilib/3.9.1/build/editor-para/editor-para.js rename to lib/yuilib/3.12.0/editor-para/editor-para.js index b09f563a129..5fde6c7f03f --- a/lib/yuilib/3.9.1/build/editor-para/editor-para.js +++ b/lib/yuilib/3.12.0/editor-para/editor-para.js @@ -1,4 +1,10 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + YUI.add('editor-para', function (Y, NAME) { @@ -299,4 +305,4 @@ YUI.add('editor-para', function (Y, NAME) { -}, '3.9.1', {"requires": ["editor-para-base"]}); +}, '3.12.0', {"requires": ["editor-para-base"]}); diff --git a/lib/yuilib/3.9.1/build/editor-selection/editor-selection-debug.js b/lib/yuilib/3.12.0/editor-selection/editor-selection-debug.js old mode 100644 new mode 100755 similarity index 99% rename from lib/yuilib/3.9.1/build/editor-selection/editor-selection-debug.js rename to lib/yuilib/3.12.0/editor-selection/editor-selection-debug.js index 208dfc0223a..bf4784eb63a --- a/lib/yuilib/3.9.1/build/editor-selection/editor-selection-debug.js +++ b/lib/yuilib/3.12.0/editor-selection/editor-selection-debug.js @@ -1,4 +1,10 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + YUI.add('editor-selection', function (Y, NAME) { /** @@ -978,4 +984,4 @@ YUI.add('editor-selection', function (Y, NAME) { -}, '3.9.1', {"requires": ["node"]}); +}, '3.12.0', {"requires": ["node"]}); diff --git a/lib/yuilib/3.9.1/build/editor-selection/editor-selection-min.js b/lib/yuilib/3.12.0/editor-selection/editor-selection-min.js old mode 100644 new mode 100755 similarity index 97% rename from lib/yuilib/3.9.1/build/editor-selection/editor-selection-min.js rename to lib/yuilib/3.12.0/editor-selection/editor-selection-min.js index 6aabb1920df..e93fcbadb13 --- a/lib/yuilib/3.9.1/build/editor-selection/editor-selection-min.js +++ b/lib/yuilib/3.12.0/editor-selection/editor-selection-min.js @@ -1,3 +1,9 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + YUI.add("editor-selection",function(e,t){var n="textContent",r="innerHTML",i="fontFamily";e.UA.ie&&(n="nodeValue"),e.EditorSelection=function(t){var n,r,i,s,o,u,a,f=0,l,c;e.config.win.getSelection&&(!e.UA.ie||e.UA.ie<9)?n=e.config.win.getSelection():e.config.doc.selection&&(n=e.config.doc.selection.createRange()),this._selection=n;if(!n)return!1;if(n.pasteHTML){this.isCollapsed=n.compareEndPoints("StartToEnd",n)?!1:!0;if(this.isCollapsed){this.anchorNode=this.focusNode=e.one(n.parentElement()),t&&(i=e.config.doc.elementFromPoint(t.clientX,t.clientY)),o=n.duplicate();if(!i){r=n.parentElement(),s=r.childNodes;for(u=0;u[{type}:]{code}[,{code}]*Y.delegate("key", preventSubmit, "#forms", "enter", "input[type=text]");Y.one("doc").on("key", viNav, "j,k,l,;");Add a key listener. The listener will only be notified if the * keystroke detected meets the supplied specification. The * specification is a string that is defined as:
- * + * *[{type}:]{code}[,{code}]*Y.delegate("key", preventSubmit, "#forms", "enter", "input[type=text]");Y.one("doc").on("key", viNav, "j,k,l,;");"+e+"
":e+="0)if(o.isString&&r[n])s=!0;else if(o.isObject(n))for(i in r)if(r.hasOwnProperty(i)&&n[i]){s=!0;break}s&&t._redraw()},_x:0,_y:0,getXY:function(){var t=e.one(this._node),n;return t&&(n=t.getXY()),n},initializer:function(){var e=this.get("render"),t=this.get("visible")?"visible":"hidden";this._shapes={},this._contentBounds={left:0,top:0,right:0,bottom:0},this._gradients={},this._node=v.createElement("div"),this._node.style.position="absolute",this._node.style.left=this.get("x")+"px",this._node.style.top=this.get("y")+"px",this._node.style.visibility=t,this._contentNode=this._createGraphics(),this._contentNode.style.visibility=t,this._contentNode.setAttribute("id",this.get("id")),this._node.appendChild(this._contentNode),e&&this.render(e)},render:function(t){var n=e.one(t),r=this.get("width")||parseInt(n.getComputedStyle("width"),10),i=this.get("height")||parseInt(n.getComputedStyle("height"),10);return n=n||e.one(v.body),n.append(this._node),this.parentNode=n,this.set("width",r),this.set("height",i),this},destroy:function(){this.removeAllShapes(),this._contentNode&&(this._removeChildren(this._contentNode),this._contentNode.parentNode&&this._contentNode.parentNode.removeChild(this._contentNode),this._contentNode=null),this._node&&(this._removeChildren(this._node),e.one(this._node).remove(!0),this._node=null)},addShape:function(e){e.graphic=this,this.get("visible")||(e.visible=!1);var t=this._getShapeClass(e.type),n=new t(e);return this._appendShape(n),n},_appendShape:function(e){var t=e.node,n=this._frag||this._contentNode;this.get("autoDraw")?n.appendChild(t):this._getDocFrag().appendChild(t)},removeShape:function(e){return e instanceof f||o.isString(e)&&(e=this._shapes[e]),e&&e instanceof f&&(e._destroy(),delete this._shapes[e.get("id")]),this.get("autoDraw")&&this._redraw(),e},removeAllShapes:function(){var e=this._shapes,t;for(t in e)e.hasOwnProperty(t)&&e[t]._destroy();this._shapes={}},_removeChildren:function(e){if(e.hasChildNodes()){var t;while(e.firstChild)t=e.firstChild,this._removeChildren(t),e.removeChild(t)}},clear:function(){this.removeAllShapes()},_toggleVisible:function(e){var t,n=this._shapes,r=e?"visible":"hidden";if(n)for(t in n)n.hasOwnProperty(t)&&n[t].set("visible",e);this._contentNode&&(this._contentNode.style.visibility=r),this._node&&(this._node.style.visibility=r)},_getShapeClass:function(e){var t=this._shapeClass[e];return t?t:e},_shapeClass:{circle:e.SVGCircle,rect:e.SVGRect,path:e.SVGPath,ellipse:e.SVGEllipse,pieslice:e.SVGPieSlice},getShapeById:function(e){var t=this._shapes[e];return t},batch:function(e){var t=this.get("autoDraw");this.set("autoDraw",!1),e(),this.set("autoDraw",t)},_getDocFrag:function(){return this._frag||(this._frag=v.createDocumentFragment()),this._frag},_redraw:function(){var t=this.get("autoSize"),n=this.get("preserveAspectRatio"),r=this.get("resizeDown")?this._getUpdatedContentBounds():this._contentBounds,i=r.left,s=r.right,o=r.top,u=r.bottom,a=s-i,f=u-o,l,c,h,p,d;t?t==="sizeContentToGraphic"?(d=e.one(this._node),l=parseFloat(d.getComputedStyle("width")),c=parseFloat(d.getComputedStyle("height")),h=p=0,this._contentNode.setAttribute("preserveAspectRatio",n)):(l=a,c=f,h=i,p=o,this._state.width=a,this._state.height=f,this._node&&(this._node.style.width=a+"px"
+,this._node.style.height=f+"px")):(l=a,c=f,h=i,p=o),this._contentNode&&(this._contentNode.style.left=h+"px",this._contentNode.style.top=p+"px",this._contentNode.setAttribute("width",l),this._contentNode.setAttribute("height",c),this._contentNode.style.width=l+"px",this._contentNode.style.height=c+"px",this._contentNode.setAttribute("viewBox",""+i+" "+o+" "+a+" "+f+"")),this._frag&&(this._contentNode&&this._contentNode.appendChild(this._frag),this._frag=null)},addToRedrawQueue:function(e){var t,n;this._shapes[e.get("id")]=e,this.get("resizeDown")||(t=e.getBounds(),n=this._contentBounds,n.left=n.left 360&&(r=360),this._currentX=e,this._currentY=t,n*=-65535,r*=65536,n=Math.round(n),r=Math.round(r),this.moveTo(e,t),this._addToPath(" ae "+this._round(e)+", "+this._round(t)+", "+this._round(i)+" "+this._round(i)+", "+n+", "+r),this._trackSize(s,s),this},lineTo:function(){return this._lineTo.apply(this,[e.Array(arguments),!1]),this},relativeLineTo:function(){return this._lineTo.apply(this,[e.Array(arguments),!0]),this},_lineTo:function(e,t){var n=e[0],r,i,s,o,u=t?" r ":" l ",a=t?parseFloat(this._currentX):0,f=t?parseFloat(this._currentY):0;if(typeof n=="string"||typeof n=="number"){i=e.length-1;for(r=0;rthis._right&&(this._right=e),e Base class for creating shapes. Base class for creating shapes.
+ YUI().use('paginator-url', 'widget', function (Y){
+ var MyPaginator = Y.Base.create('my-paginator', Y.Widget, [Y.Paginator], {
+
+ renderUI: function () {
+ var numbers = '',
+ i, numberOfPages = this.get('totalPages');
+
+ for (i = 1; i <= numberOfPages; i++) {
+ // use paginator-url's formatUrl method
+ numbers += '<a href="' + this.formatUrl(i) + '">' + i + '</a>';
+ }
+
+ this.get('boundingBox').append(numbers);
+ },
+
+ bindUI: function () {
+ this.get('boundingBox').delegate('click', function (e) {
+ // let's not go to the page, just update internally
+ e.preventDefault();
+ this.set('page', parseInt(e.currentTarget.getContent(), 10));
+ }, 'a', this);
+
+ this.after('pageChange', function (e) {
+ // mark the link selected when it's the page being displayed
+ var bb = this.get('boundingBox'),
+ activeClass = 'selected';
+
+ bb.all('a').removeClass(activeClass).item(e.newVal).addClass(activeClass);
+ });
+ }
+
+ });
+
+ var myPg = new MyPaginator({
+ totalItems: 100,
+ pageUrl: '?pg={page}'
+ });
+
+ myPg.render();
+ });
+
+
+ @module paginator
+ @main paginator
+ @class Paginator
+ @constructor
+ @since 3.11.0
+ */
+
+Y.Paginator = Y.mix(
+ Y.Base.create('pagiantor', Y.Base, [Y.Paginator.Core]),
+ Y.Paginator
+);
+
+}, '3.12.0', {"requires": ["paginator-core"]});
diff --git a/lib/yuilib/3.12.0/paginator/paginator-min.js b/lib/yuilib/3.12.0/paginator/paginator-min.js
new file mode 100755
index 00000000000..8adb407d152
--- /dev/null
+++ b/lib/yuilib/3.12.0/paginator/paginator-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("paginator",function(e,t){e.Paginator=e.mix(e.Base.create("pagiantor",e.Base,[e.Paginator.Core]),e.Paginator)},"3.12.0",{requires:["paginator-core"]});
diff --git a/lib/yuilib/3.12.0/paginator/paginator.js b/lib/yuilib/3.12.0/paginator/paginator.js
new file mode 100755
index 00000000000..aebd6fe09a6
--- /dev/null
+++ b/lib/yuilib/3.12.0/paginator/paginator.js
@@ -0,0 +1,81 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add('paginator', function (Y, NAME) {
+
+/**
+ The Paginator utility allows you to display an item or a group of items
+ depending on the number of items you wish to display at one time.
+
+ Paginator's primary functionality is contained in `paginator-core` and is mixed
+ into `paginator` to allow `paginator` to have extra functionality added to it
+ while leaving the core functionality untouched. This allows `paginator-core` to
+ remain available for use later on or used in isolation if it is the only piece
+ you need.
+
+ Due to the vast number of interfaces a paginator could possibly consist of,
+ `Paginator` does not contain any ready to use UIs. However, `Paginator` is
+ ready to be used in any Based-based, module such as a Widget, by extending your
+ desired class and mixing in `Paginator`. This is displayed in the following
+ example:
+
+
+ YUI().use('paginator-url', 'widget', function (Y){
+ var MyPaginator = Y.Base.create('my-paginator', Y.Widget, [Y.Paginator], {
+
+ renderUI: function () {
+ var numbers = '',
+ i, numberOfPages = this.get('totalPages');
+
+ for (i = 1; i <= numberOfPages; i++) {
+ // use paginator-url's formatUrl method
+ numbers += '<a href="' + this.formatUrl(i) + '">' + i + '</a>';
+ }
+
+ this.get('boundingBox').append(numbers);
+ },
+
+ bindUI: function () {
+ this.get('boundingBox').delegate('click', function (e) {
+ // let's not go to the page, just update internally
+ e.preventDefault();
+ this.set('page', parseInt(e.currentTarget.getContent(), 10));
+ }, 'a', this);
+
+ this.after('pageChange', function (e) {
+ // mark the link selected when it's the page being displayed
+ var bb = this.get('boundingBox'),
+ activeClass = 'selected';
+
+ bb.all('a').removeClass(activeClass).item(e.newVal).addClass(activeClass);
+ });
+ }
+
+ });
+
+ var myPg = new MyPaginator({
+ totalItems: 100,
+ pageUrl: '?pg={page}'
+ });
+
+ myPg.render();
+ });
+
+
+ @module paginator
+ @main paginator
+ @class Paginator
+ @constructor
+ @since 3.11.0
+ */
+
+Y.Paginator = Y.mix(
+ Y.Base.create('pagiantor', Y.Base, [Y.Paginator.Core]),
+ Y.Paginator
+);
+
+}, '3.12.0', {"requires": ["paginator-core"]});
diff --git a/lib/yuilib/3.9.1/build/panel/assets/panel-core.css b/lib/yuilib/3.12.0/panel/assets/panel-core.css
old mode 100644
new mode 100755
similarity index 75%
rename from lib/yuilib/3.9.1/build/panel/assets/panel-core.css
rename to lib/yuilib/3.12.0/panel/assets/panel-core.css
index 284e1e6b633..108e8d35e03
--- a/lib/yuilib/3.9.1/build/panel/assets/panel-core.css
+++ b/lib/yuilib/3.12.0/panel/assets/panel-core.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-panel {
position: absolute;
}
diff --git a/lib/yuilib/3.9.1/build/panel/assets/skins/night/panel-skin.css b/lib/yuilib/3.12.0/panel/assets/skins/night/panel-skin.css
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/panel/assets/skins/night/panel-skin.css
rename to lib/yuilib/3.12.0/panel/assets/skins/night/panel-skin.css
index 92a46b48c16..2f571bb5a8f
--- a/lib/yuilib/3.9.1/build/panel/assets/skins/night/panel-skin.css
+++ b/lib/yuilib/3.12.0/panel/assets/skins/night/panel-skin.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-skin-night .yui3-panel {
color: #FFFFFF;
font-family: HelveticaNeue, arial, helvetica, clean, sans-serif;
diff --git a/lib/yuilib/3.12.0/panel/assets/skins/night/panel.css b/lib/yuilib/3.12.0/panel/assets/skins/night/panel.css
new file mode 100755
index 00000000000..f460b5b7cd3
--- /dev/null
+++ b/lib/yuilib/3.12.0/panel/assets/skins/night/panel.css
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+.yui3-panel{position:absolute}.yui3-panel-hidden{visibility:hidden}.yui3-widget-tmp-forcesize .yui3-panel-content{overflow:hidden!important}.yui3-panel .yui3-widget-hd{position:relative}.yui3-panel .yui3-widget-hd .yui3-widget-buttons{position:absolute;top:0;right:0}.yui3-panel .yui3-widget-ft .yui3-widget-buttons{display:inline-block;*display:inline;zoom:1}.yui3-skin-night .yui3-panel{color:#fff;font-family:HelveticaNeue,arial,helvetica,clean,sans-serif}.yui3-skin-night .yui3-panel-content{background:#6d6e6e;-webkit-box-shadow:0 0 20px #000;-moz-box-shadow:0 0 20px #000;box-shadow:0 0 20px #000;border:1px solid black;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.yui3-skin-night .yui3-panel .yui3-widget-hd{padding:11px 57px 11px 22px;min-height:17px;_height:17px;-webkit-border-top-left-radius:7px;-webkit-border-top-right-radius:7px;-moz-border-radius-topleft:7px;-moz-border-radius-topright:7px;border-top-left-radius:7px;border-top-right-radius:7px;font-weight:bold;color:white;background-color:#555658;background:-moz-linear-gradient(0% 100% 90deg,#343536 0,#555658 96%,#3e3f41 100%);background:-webkit-gradient(linear,left bottom,left top,from(#343536),color-stop(0.96,#555658),to(#3e3f41))}.yui3-skin-night .yui3-panel .yui3-widget-hd .yui3-widget-buttons{padding:11px}.yui3-skin-night .yui3-panel .yui3-widget-bd{padding:11px 22px 17px}.yui3-skin-night .yui3-panel .yui3-widget-ft{background-color:#575858;border-top:1px solid #494a4a;padding:6px 16px 8px;text-align:center;-webkit-border-bottom-right-radius:7px;-webkit-border-bottom-left-radius:7px;-moz-border-radius-bottomright:7px;-moz-border-radius-bottomleft:7px;border-bottom-right-radius:7px;border-bottom-left-radius:7px}.yui3-skin-night .yui3-panel .yui3-widget-ft .yui3-widget-buttons{bottom:0;position:relative;right:auto;width:100%;text-align:center;padding-bottom:0;margin-left:-5px;margin-right:-5px}.yui3-skin-night .yui3-panel .yui3-widget-ft .yui3-button{margin:5px}.yui3-skin-night .yui3-panel .yui3-widget-hd .yui3-button-close{background:transparent;filter:none;border:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;width:22px;height:17px;padding:0;overflow:hidden;vertical-align:top;*font-size:0;*line-height:0;*letter-spacing:-1000px;*color:#86a5ec;*background:url(sprite_icons.png) no-repeat center 3px}.yui3-skin-night .yui3-panel .yui3-widget-hd .yui3-button-close:hover{background-color:#333}.yui3-skin-night .yui3-panel .yui3-widget-hd .yui3-button-close:before{content:url(sprite_icons.png);display:inline-block;text-align:center;font-size:0;line-height:0;width:22px;margin:3px 0 0 1px}.yui3-skin-night .yui3-panel-hidden .yui3-widget-hd .yui3-button-close{display:none}#yui3-css-stamp.skin-night-panel{display:none}
diff --git a/lib/yuilib/3.12.0/panel/assets/skins/night/sprite_icons.png b/lib/yuilib/3.12.0/panel/assets/skins/night/sprite_icons.png
new file mode 100755
index 00000000000..34fd6cdc644
Binary files /dev/null and b/lib/yuilib/3.12.0/panel/assets/skins/night/sprite_icons.png differ
diff --git a/lib/yuilib/3.9.1/build/panel/assets/skins/sam/panel-skin.css b/lib/yuilib/3.12.0/panel/assets/skins/sam/panel-skin.css
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/panel/assets/skins/sam/panel-skin.css
rename to lib/yuilib/3.12.0/panel/assets/skins/sam/panel-skin.css
index a59f6c15a30..b8443a20dc2
--- a/lib/yuilib/3.9.1/build/panel/assets/skins/sam/panel-skin.css
+++ b/lib/yuilib/3.12.0/panel/assets/skins/sam/panel-skin.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-skin-sam .yui3-panel-content {
-webkit-box-shadow: 0 0 5px #333;
-moz-box-shadow: 0 0 5px #333;
diff --git a/lib/yuilib/3.9.1/build/assets/skins/sam/panel.css b/lib/yuilib/3.12.0/panel/assets/skins/sam/panel.css
old mode 100644
new mode 100755
similarity index 92%
rename from lib/yuilib/3.9.1/build/assets/skins/sam/panel.css
rename to lib/yuilib/3.12.0/panel/assets/skins/sam/panel.css
index 335861933c1..2d05f89bc8e
--- a/lib/yuilib/3.9.1/build/assets/skins/sam/panel.css
+++ b/lib/yuilib/3.12.0/panel/assets/skins/sam/panel.css
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-panel{position:absolute}.yui3-panel-hidden{visibility:hidden}.yui3-widget-tmp-forcesize .yui3-panel-content{overflow:hidden!important}.yui3-panel .yui3-widget-hd{position:relative}.yui3-panel .yui3-widget-hd .yui3-widget-buttons{position:absolute;top:0;right:0}.yui3-panel .yui3-widget-ft .yui3-widget-buttons{display:inline-block;*display:inline;zoom:1}.yui3-skin-sam .yui3-panel-content{-webkit-box-shadow:0 0 5px #333;-moz-box-shadow:0 0 5px #333;box-shadow:0 0 5px #333;border:1px solid black;background:white}.yui3-skin-sam .yui3-panel .yui3-widget-hd{padding:8px 28px 8px 8px;min-height:13px;_height:13px;color:white;background-color:#3961c5;background:-moz-linear-gradient(0% 100% 90deg,#2647a0 7%,#3d67ce 50%,#426fd9 100%);background:-webkit-gradient(linear,left bottom,left top,from(#2647a0),color-stop(0.07,#2647a0),color-stop(0.5,#3d67ce),to(#426fd9))}.yui3-skin-sam .yui3-panel .yui3-widget-hd .yui3-widget-buttons{padding:8px}.yui3-skin-sam .yui3-panel .yui3-widget-bd{padding:10px}.yui3-skin-sam .yui3-panel .yui3-widget-ft{background:#edf5ff;padding:8px;text-align:right}.yui3-skin-sam .yui3-panel .yui3-widget-ft .yui3-button{margin-left:8px}.yui3-skin-sam .yui3-panel .yui3-widget-hd .yui3-button-close{background:transparent;filter:none;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;width:13px;height:13px;padding:0;overflow:hidden;vertical-align:top;*font-size:0;*line-height:0;*letter-spacing:-1000px;*color:#86a5ec;*background:url(sprite_icons.png) no-repeat 1px 1px}.yui3-skin-sam .yui3-panel .yui3-widget-hd .yui3-button-close:before{content:url(sprite_icons.png);display:inline-block;text-align:center;font-size:0;line-height:0;width:13px;margin:1px 0 0 1px}.yui3-skin-sam .yui3-panel-hidden .yui3-widget-hd .yui3-button-close{display:none}#yui3-css-stamp.skin-sam-panel{display:none}
diff --git a/lib/yuilib/3.9.1/build/panel/assets/skins/sam/sprite_icons.png b/lib/yuilib/3.12.0/panel/assets/skins/sam/sprite_icons.png
old mode 100644
new mode 100755
similarity index 100%
rename from lib/yuilib/3.9.1/build/panel/assets/skins/sam/sprite_icons.png
rename to lib/yuilib/3.12.0/panel/assets/skins/sam/sprite_icons.png
diff --git a/lib/yuilib/3.9.1/build/panel/panel-debug.js b/lib/yuilib/3.12.0/panel/panel-debug.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/panel/panel-debug.js
rename to lib/yuilib/3.12.0/panel/panel-debug.js
index 8d735e3ea18..073edfad7fb
--- a/lib/yuilib/3.9.1/build/panel/panel-debug.js
+++ b/lib/yuilib/3.12.0/panel/panel-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('panel', function (Y, NAME) {
// TODO: Change this description!
@@ -97,7 +103,7 @@ Y.Panel = Y.Base.create('panel', Y.Widget, [
});
-}, '3.9.1', {
+}, '3.12.0', {
"requires": [
"widget",
"widget-autohide",
diff --git a/lib/yuilib/3.9.1/build/panel/panel-min.js b/lib/yuilib/3.12.0/panel/panel-min.js
old mode 100644
new mode 100755
similarity index 50%
rename from lib/yuilib/3.9.1/build/panel/panel-min.js
rename to lib/yuilib/3.12.0/panel/panel-min.js
index 122c5ccbe79..1a009119b90
--- a/lib/yuilib/3.9.1/build/panel/panel-min.js
+++ b/lib/yuilib/3.12.0/panel/panel-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("panel",function(e,t){var n=e.ClassNameManager.getClassName;e.Panel=e.Base.create("panel",e.Widget,[e.WidgetPosition,e.WidgetStdMod,e.WidgetAutohide,e.WidgetButtons,e.WidgetModality,e.WidgetPositionAlign,e.WidgetPositionConstrain,e.WidgetStack],{BUTTONS:{close:{label:"Close",action:"hide",section:"header",template:'',classNames:n("button","close")}}},{ATTRS:{buttons:{value:["close"]}}})},"3.9.1",{requires:["widget","widget-autohide","widget-buttons","widget-modality","widget-position","widget-position-align","widget-position-constrain","widget-stack","widget-stdmod"],skinnable:!0});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("panel",function(e,t){var n=e.ClassNameManager.getClassName;e.Panel=e.Base.create("panel",e.Widget,[e.WidgetPosition,e.WidgetStdMod,e.WidgetAutohide,e.WidgetButtons,e.WidgetModality,e.WidgetPositionAlign,e.WidgetPositionConstrain,e.WidgetStack],{BUTTONS:{close:{label:"Close",action:"hide",section:"header",template:'',classNames:n("button","close")}}},{ATTRS:{buttons:{value:["close"]}}})},"3.12.0",{requires:["widget","widget-autohide","widget-buttons","widget-modality","widget-position","widget-position-align","widget-position-constrain","widget-stack","widget-stdmod"],skinnable:!0});
diff --git a/lib/yuilib/3.9.1/build/panel/panel.js b/lib/yuilib/3.12.0/panel/panel.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/panel/panel.js
rename to lib/yuilib/3.12.0/panel/panel.js
index 8d735e3ea18..073edfad7fb
--- a/lib/yuilib/3.9.1/build/panel/panel.js
+++ b/lib/yuilib/3.12.0/panel/panel.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('panel', function (Y, NAME) {
// TODO: Change this description!
@@ -97,7 +103,7 @@ Y.Panel = Y.Base.create('panel', Y.Widget, [
});
-}, '3.9.1', {
+}, '3.12.0', {
"requires": [
"widget",
"widget-autohide",
diff --git a/lib/yuilib/3.9.1/build/parallel/parallel-debug.js b/lib/yuilib/3.12.0/parallel/parallel-debug.js
old mode 100644
new mode 100755
similarity index 93%
rename from lib/yuilib/3.9.1/build/parallel/parallel-debug.js
rename to lib/yuilib/3.12.0/parallel/parallel-debug.js
index 6213139d07c..a660da66dc2
--- a/lib/yuilib/3.9.1/build/parallel/parallel-debug.js
+++ b/lib/yuilib/3.12.0/parallel/parallel-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('parallel', function (Y, NAME) {
@@ -107,4 +113,4 @@ Y.Parallel.prototype = {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/parallel/parallel-min.js b/lib/yuilib/3.12.0/parallel/parallel-min.js
old mode 100644
new mode 100755
similarity index 76%
rename from lib/yuilib/3.9.1/build/parallel/parallel-min.js
rename to lib/yuilib/3.12.0/parallel/parallel-min.js
index 5b079232642..c690c5b30d9
--- a/lib/yuilib/3.9.1/build/parallel/parallel-min.js
+++ b/lib/yuilib/3.12.0/parallel/parallel-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("parallel",function(e,t){e.Parallel=function(t){this.config=t||{},this.results=[],this.context=this.config.context||e,this.total=0,this.finished=0},e.Parallel.prototype={results:null,total:null,finished:null,add:function(t){var n=this,r=n.total;return n.total+=1,function(){n.finished++,n.results[r]=t&&t.apply(n.context,arguments)||(arguments.length===1?arguments[0]:e.Array(arguments)),n.test()}},test:function(){var e=this;e.finished>=e.total&&e.callback&&e.callback.call(e.context,e.results,e.data)},done:function(e,t){this.callback=e,this.data=t,this.test()}}},"3.9.1",{requires:["yui-base"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("parallel",function(e,t){e.Parallel=function(t){this.config=t||{},this.results=[],this.context=this.config.context||e,this.total=0,this.finished=0},e.Parallel.prototype={results:null,total:null,finished:null,add:function(t){var n=this,r=n.total;return n.total+=1,function(){n.finished++,n.results[r]=t&&t.apply(n.context,arguments)||(arguments.length===1?arguments[0]:e.Array(arguments)),n.test()}},test:function(){var e=this;e.finished>=e.total&&e.callback&&e.callback.call(e.context,e.results,e.data)},done:function(e,t){this.callback=e,this.data=t,this.test()}}},"3.12.0",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/parallel/parallel.js b/lib/yuilib/3.12.0/parallel/parallel.js
old mode 100644
new mode 100755
similarity index 93%
rename from lib/yuilib/3.9.1/build/parallel/parallel.js
rename to lib/yuilib/3.12.0/parallel/parallel.js
index 36252a231b0..3682f78fd79
--- a/lib/yuilib/3.9.1/build/parallel/parallel.js
+++ b/lib/yuilib/3.12.0/parallel/parallel.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('parallel', function (Y, NAME) {
@@ -105,4 +111,4 @@ Y.Parallel.prototype = {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/pjax-base/pjax-base-debug.js b/lib/yuilib/3.12.0/pjax-base/pjax-base-debug.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/pjax-base/pjax-base-debug.js
rename to lib/yuilib/3.12.0/pjax-base/pjax-base-debug.js
index 7ed5292bb29..d2f55b54e1b
--- a/lib/yuilib/3.9.1/build/pjax-base/pjax-base-debug.js
+++ b/lib/yuilib/3.12.0/pjax-base/pjax-base-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('pjax-base', function (Y, NAME) {
/**
@@ -438,4 +444,4 @@ PjaxBase.ATTRS = {
Y.PjaxBase = PjaxBase;
-}, '3.9.1', {"requires": ["classnamemanager", "node-event-delegate", "router"]});
+}, '3.12.0', {"requires": ["classnamemanager", "node-event-delegate", "router"]});
diff --git a/lib/yuilib/3.9.1/build/pjax-base/pjax-base-min.js b/lib/yuilib/3.12.0/pjax-base/pjax-base-min.js
old mode 100644
new mode 100755
similarity index 89%
rename from lib/yuilib/3.9.1/build/pjax-base/pjax-base-min.js
rename to lib/yuilib/3.12.0/pjax-base/pjax-base-min.js
index 2b1c2472efd..68d6797e036
--- a/lib/yuilib/3.9.1/build/pjax-base/pjax-base-min.js
+++ b/lib/yuilib/3.12.0/pjax-base/pjax-base-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("pjax-base",function(e,t){function s(){}var n=e.config.win,r=e.ClassNameManager.getClassName("pjax"),i="navigate";s.prototype={_regexURL:/^((?:[^\/#?:]+:\/\/|\/\/)[^\/]*)?([^?#]*)(\?[^#]*)?(#.*)?$/,initializer:function(){this.publish(i,{defaultFn:this._defNavigateFn}),this.get("html5")&&this._pjaxBindUI()},destructor:function(){this._pjaxEvents&&this._pjaxEvents.detach()},navigate:function(t,n){return t=this._resolveURL(t),this._navigate(t,n)?!0:(this._hasSameOrigin(t)||e.error("Security error: The new URL must be of the same origin as the current URL."),!1)},_isLinkSameOrigin:function(t){var n=e.getLocation(),r=n.protocol,i=n.hostname,s=parseInt(n.port,10)||null,o;return t.get("protocol")!==r||t.get("hostname")!==i?!1:(o=parseInt(t.get("port"),10)||null,r==="http:"?(s||(s=80),o||(o=80)):r==="https:"&&(s||(s=443),o||(o=443)),o===s)},_navigate:function(t,r){t=this._upgradeURL(t);if(!this.hasRoute(t))return!1;r=e.merge(r,{url:t});var s=this._getURL(),o,u;u=t.replace(/(#.*)$/,function(e,t,n){return o=t,e.substring(n)});if(o&&u===s.replace(/#.*$/,"")){if(!this.get("navigateOnHash"))return!1;r.hash=o}return"replace"in r||(r.replace=t===s),this.get("html5")||r.force?this.fire(i,r):n&&(r.replace?n.location.replace(t):n.location=t),!0},_pjaxBindUI:function(){this._pjaxEvents||(this._pjaxEvents=e.one("body").delegate("click",this._onLinkClick,this.get("linkSelector"),this))},_defNavigateFn:function(e){this[e.replace?"replace":"save"](e.url),n&&this.get("scrollToTop")&&setTimeout(function(){n.scroll(0,0)},1)},_onLinkClick:function(e){var t,n,r;if(e.button!==1||e.ctrlKey||e.metaKey)return;t=e.currentTarget;if(t.get("tagName").toUpperCase()!=="A")return;if(!this._isLinkSameOrigin(t))return;n=t.get("href"),n&&(r=this._navigate(n,{originEvent:e}),r&&e.preventDefault())}},s.ATTRS={linkSelector:{value:"a."+r,writeOnce:"initOnly"},navigateOnHash:{value:!1},scrollToTop:{value:!0}},e.PjaxBase=s},"3.9.1",{requires:["classnamemanager","node-event-delegate","router"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("pjax-base",function(e,t){function s(){}var n=e.config.win,r=e.ClassNameManager.getClassName("pjax"),i="navigate";s.prototype={_regexURL:/^((?:[^\/#?:]+:\/\/|\/\/)[^\/]*)?([^?#]*)(\?[^#]*)?(#.*)?$/,initializer:function(){this.publish(i,{defaultFn:this._defNavigateFn}),this.get("html5")&&this._pjaxBindUI()},destructor:function(){this._pjaxEvents&&this._pjaxEvents.detach()},navigate:function(t,n){return t=this._resolveURL(t),this._navigate(t,n)?!0:(this._hasSameOrigin(t)||e.error("Security error: The new URL must be of the same origin as the current URL."),!1)},_isLinkSameOrigin:function(t){var n=e.getLocation(),r=n.protocol,i=n.hostname,s=parseInt(n.port,10)||null,o;return t.get("protocol")!==r||t.get("hostname")!==i?!1:(o=parseInt(t.get("port"),10)||null,r==="http:"?(s||(s=80),o||(o=80)):r==="https:"&&(s||(s=443),o||(o=443)),o===s)},_navigate:function(t,r){t=this._upgradeURL(t);if(!this.hasRoute(t))return!1;r=e.merge(r,{url:t});var s=this._getURL(),o,u;u=t.replace(/(#.*)$/,function(e,t,n){return o=t,e.substring(n)});if(o&&u===s.replace(/#.*$/,"")){if(!this.get("navigateOnHash"))return!1;r.hash=o}return"replace"in r||(r.replace=t===s),this.get("html5")||r.force?this.fire(i,r):n&&(r.replace?n.location.replace(t):n.location=t),!0},_pjaxBindUI:function(){this._pjaxEvents||(this._pjaxEvents=e.one("body").delegate("click",this._onLinkClick,this.get("linkSelector"),this))},_defNavigateFn:function(e){this[e.replace?"replace":"save"](e.url),n&&this.get("scrollToTop")&&setTimeout(function(){n.scroll(0,0)},1)},_onLinkClick:function(e){var t,n,r;if(e.button!==1||e.ctrlKey||e.metaKey)return;t=e.currentTarget;if(t.get("tagName").toUpperCase()!=="A")return;if(!this._isLinkSameOrigin(t))return;n=t.get("href"),n&&(r=this._navigate(n,{originEvent:e}),r&&e.preventDefault())}},s.ATTRS={linkSelector:{value:"a."+r,writeOnce:"initOnly"},navigateOnHash:{value:!1},scrollToTop:{value:!0}},e.PjaxBase=s},"3.12.0",{requires:["classnamemanager","node-event-delegate","router"]});
diff --git a/lib/yuilib/3.9.1/build/pjax-base/pjax-base.js b/lib/yuilib/3.12.0/pjax-base/pjax-base.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/pjax-base/pjax-base.js
rename to lib/yuilib/3.12.0/pjax-base/pjax-base.js
index 269e9f47086..cc39f8c4875
--- a/lib/yuilib/3.9.1/build/pjax-base/pjax-base.js
+++ b/lib/yuilib/3.12.0/pjax-base/pjax-base.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('pjax-base', function (Y, NAME) {
/**
@@ -437,4 +443,4 @@ PjaxBase.ATTRS = {
Y.PjaxBase = PjaxBase;
-}, '3.9.1', {"requires": ["classnamemanager", "node-event-delegate", "router"]});
+}, '3.12.0', {"requires": ["classnamemanager", "node-event-delegate", "router"]});
diff --git a/lib/yuilib/3.9.1/build/pjax-content/pjax-content-debug.js b/lib/yuilib/3.12.0/pjax-content/pjax-content-debug.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/pjax-content/pjax-content-debug.js
rename to lib/yuilib/3.12.0/pjax-content/pjax-content-debug.js
index a0d4c2a7081..ae9ee98a454
--- a/lib/yuilib/3.9.1/build/pjax-content/pjax-content-debug.js
+++ b/lib/yuilib/3.12.0/pjax-content/pjax-content-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('pjax-content', function (Y, NAME) {
/**
@@ -279,4 +285,4 @@ PjaxContent.ATTRS = {
Y.PjaxContent = PjaxContent;
-}, '3.9.1', {"requires": ["io-base", "node-base", "router"]});
+}, '3.12.0', {"requires": ["io-base", "node-base", "router"]});
diff --git a/lib/yuilib/3.9.1/build/pjax-content/pjax-content-min.js b/lib/yuilib/3.12.0/pjax-content/pjax-content-min.js
old mode 100644
new mode 100755
similarity index 79%
rename from lib/yuilib/3.9.1/build/pjax-content/pjax-content-min.js
rename to lib/yuilib/3.12.0/pjax-content/pjax-content-min.js
index 07b555e1785..279ae8e9943
--- a/lib/yuilib/3.9.1/build/pjax-content/pjax-content-min.js
+++ b/lib/yuilib/3.12.0/pjax-content/pjax-content-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("pjax-content",function(e,t){function n(){}n.prototype={getContent:function(t){var n={},r=this.get("contentSelector"),i=e.Node.create(t||""),s=this.get("titleSelector"),o;return r&&i?n.node=i.all(r).toFrag():n.node=i,s&&i&&(o=i.one(s),o&&(n.title=o.get("text"))),n},loadContent:function(t,n,r){var i=t.url;this._request&&this._request.abort(),this.get("addPjaxParam")&&(i=i.replace(/([^#]*)(#.*)?$/,function(e,t,n){return t+=(t.indexOf("?")>-1?"&":"?")+"pjax=1",t+(n||"")})),this._request=e.io(i,{arguments:{route:{req:t,res:n,next:r},url:i},context:this,headers:{"X-PJAX":"true"},timeout:this.get("timeout"),on:{complete:this._onPjaxIOComplete,end:this._onPjaxIOEnd}})},_onPjaxIOComplete:function(e,t,n){var r=this.getContent(t.responseText),i=n.route,s=i.req,o=i.res;s.ioURL=n.url,o.content=r,o.ioResponse=t,i.next()},_onPjaxIOEnd:function(){this._request=null}},n.ATTRS={addPjaxParam:{value:!0},contentSelector:{value:null},titleSelector:{value:"title"},timeout:{value:3e4}},e.PjaxContent=n},"3.9.1",{requires:["io-base","node-base","router"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("pjax-content",function(e,t){function n(){}n.prototype={getContent:function(t){var n={},r=this.get("contentSelector"),i=e.Node.create(t||""),s=this.get("titleSelector"),o;return r&&i?n.node=i.all(r).toFrag():n.node=i,s&&i&&(o=i.one(s),o&&(n.title=o.get("text"))),n},loadContent:function(t,n,r){var i=t.url;this._request&&this._request.abort(),this.get("addPjaxParam")&&(i=i.replace(/([^#]*)(#.*)?$/,function(e,t,n){return t+=(t.indexOf("?")>-1?"&":"?")+"pjax=1",t+(n||"")})),this._request=e.io(i,{arguments:{route:{req:t,res:n,next:r},url:i},context:this,headers:{"X-PJAX":"true"},timeout:this.get("timeout"),on:{complete:this._onPjaxIOComplete,end:this._onPjaxIOEnd}})},_onPjaxIOComplete:function(e,t,n){var r=this.getContent(t.responseText),i=n.route,s=i.req,o=i.res;s.ioURL=n.url,o.content=r,o.ioResponse=t,i.next()},_onPjaxIOEnd:function(){this._request=null}},n.ATTRS={addPjaxParam:{value:!0},contentSelector:{value:null},titleSelector:{value:"title"},timeout:{value:3e4}},e.PjaxContent=n},"3.12.0",{requires:["io-base","node-base","router"]});
diff --git a/lib/yuilib/3.9.1/build/pjax-content/pjax-content.js b/lib/yuilib/3.12.0/pjax-content/pjax-content.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/pjax-content/pjax-content.js
rename to lib/yuilib/3.12.0/pjax-content/pjax-content.js
index a0d4c2a7081..ae9ee98a454
--- a/lib/yuilib/3.9.1/build/pjax-content/pjax-content.js
+++ b/lib/yuilib/3.12.0/pjax-content/pjax-content.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('pjax-content', function (Y, NAME) {
/**
@@ -279,4 +285,4 @@ PjaxContent.ATTRS = {
Y.PjaxContent = PjaxContent;
-}, '3.9.1', {"requires": ["io-base", "node-base", "router"]});
+}, '3.12.0', {"requires": ["io-base", "node-base", "router"]});
diff --git a/lib/yuilib/3.9.1/build/pjax-plugin/pjax-plugin-debug.js b/lib/yuilib/3.12.0/pjax-plugin/pjax-plugin-debug.js
old mode 100644
new mode 100755
similarity index 73%
rename from lib/yuilib/3.9.1/build/pjax-plugin/pjax-plugin-debug.js
rename to lib/yuilib/3.12.0/pjax-plugin/pjax-plugin-debug.js
index 5de99ec60ba..373598f1262
--- a/lib/yuilib/3.9.1/build/pjax-plugin/pjax-plugin-debug.js
+++ b/lib/yuilib/3.12.0/pjax-plugin/pjax-plugin-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('pjax-plugin', function (Y, NAME) {
/**
@@ -27,4 +33,4 @@ Y.Plugin.Pjax = Y.Base.create('pjaxPlugin', Y.Pjax, [Y.Plugin.Base], {
});
-}, '3.9.1', {"requires": ["node-pluginhost", "pjax", "plugin"]});
+}, '3.12.0', {"requires": ["node-pluginhost", "pjax", "plugin"]});
diff --git a/lib/yuilib/3.12.0/pjax-plugin/pjax-plugin-min.js b/lib/yuilib/3.12.0/pjax-plugin/pjax-plugin-min.js
new file mode 100755
index 00000000000..caee59827a8
--- /dev/null
+++ b/lib/yuilib/3.12.0/pjax-plugin/pjax-plugin-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("pjax-plugin",function(e,t){e.Plugin.Pjax=e.Base.create("pjaxPlugin",e.Pjax,[e.Plugin.Base],{initializer:function(e){this.set("container",e.host)}},{NS:"pjax"})},"3.12.0",{requires:["node-pluginhost","pjax","plugin"]});
diff --git a/lib/yuilib/3.9.1/build/pjax-plugin/pjax-plugin.js b/lib/yuilib/3.12.0/pjax-plugin/pjax-plugin.js
old mode 100644
new mode 100755
similarity index 73%
rename from lib/yuilib/3.9.1/build/pjax-plugin/pjax-plugin.js
rename to lib/yuilib/3.12.0/pjax-plugin/pjax-plugin.js
index 5de99ec60ba..373598f1262
--- a/lib/yuilib/3.9.1/build/pjax-plugin/pjax-plugin.js
+++ b/lib/yuilib/3.12.0/pjax-plugin/pjax-plugin.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('pjax-plugin', function (Y, NAME) {
/**
@@ -27,4 +33,4 @@ Y.Plugin.Pjax = Y.Base.create('pjaxPlugin', Y.Pjax, [Y.Plugin.Base], {
});
-}, '3.9.1', {"requires": ["node-pluginhost", "pjax", "plugin"]});
+}, '3.12.0', {"requires": ["node-pluginhost", "pjax", "plugin"]});
diff --git a/lib/yuilib/3.9.1/build/pjax/pjax-debug.js b/lib/yuilib/3.12.0/pjax/pjax-debug.js
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/pjax/pjax-debug.js
rename to lib/yuilib/3.12.0/pjax/pjax-debug.js
index 089dc193ce3..563449f49c8
--- a/lib/yuilib/3.9.1/build/pjax/pjax-debug.js
+++ b/lib/yuilib/3.12.0/pjax/pjax-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('pjax', function (Y, NAME) {
/**
@@ -168,4 +174,4 @@ Y.Pjax = Y.Base.create('pjax', Y.Router, [Y.PjaxBase, Y.PjaxContent], {
});
-}, '3.9.1', {"requires": ["pjax-base", "pjax-content"]});
+}, '3.12.0', {"requires": ["pjax-base", "pjax-content"]});
diff --git a/lib/yuilib/3.9.1/build/pjax/pjax-min.js b/lib/yuilib/3.12.0/pjax/pjax-min.js
old mode 100644
new mode 100755
similarity index 72%
rename from lib/yuilib/3.9.1/build/pjax/pjax-min.js
rename to lib/yuilib/3.12.0/pjax/pjax-min.js
index ce148d8786a..fe493a7c7fb
--- a/lib/yuilib/3.9.1/build/pjax/pjax-min.js
+++ b/lib/yuilib/3.12.0/pjax/pjax-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("pjax",function(e,t){var n=["loadContent","_defaultRoute"],r="error",i="load";e.Pjax=e.Base.create("pjax",e.Router,[e.PjaxBase,e.PjaxContent],{initializer:function(){this.publish(r,{defaultFn:this._defCompleteFn}),this.publish(i,{defaultFn:this._defCompleteFn})},_defaultRoute:function(e,t,n){var s=t.ioResponse,o=s.status,u=o>=200&&o<300?i:r;this.fire(u,{content:t.content,responseText:s.responseText,status:o,url:e.ioURL}),n()},_defCompleteFn:function(t){var n=this.get("container"),r=t.content;n&&r.node&&n.setHTML(r.node),r.title&&e.config.doc&&(e.config.doc.title=r.title)}},{ATTRS:{container:{value:null,setter:e.one},routes:{value:[{path:"*",callbacks:n}]}},defaultRoute:n})},"3.9.1",{requires:["pjax-base","pjax-content"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("pjax",function(e,t){var n=["loadContent","_defaultRoute"],r="error",i="load";e.Pjax=e.Base.create("pjax",e.Router,[e.PjaxBase,e.PjaxContent],{initializer:function(){this.publish(r,{defaultFn:this._defCompleteFn}),this.publish(i,{defaultFn:this._defCompleteFn})},_defaultRoute:function(e,t,n){var s=t.ioResponse,o=s.status,u=o>=200&&o<300?i:r;this.fire(u,{content:t.content,responseText:s.responseText,status:o,url:e.ioURL}),n()},_defCompleteFn:function(t){var n=this.get("container"),r=t.content;n&&r.node&&n.setHTML(r.node),r.title&&e.config.doc&&(e.config.doc.title=r.title)}},{ATTRS:{container:{value:null,setter:e.one},routes:{value:[{path:"*",callbacks:n}]}},defaultRoute:n})},"3.12.0",{requires:["pjax-base","pjax-content"]});
diff --git a/lib/yuilib/3.9.1/build/pjax/pjax.js b/lib/yuilib/3.12.0/pjax/pjax.js
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/pjax/pjax.js
rename to lib/yuilib/3.12.0/pjax/pjax.js
index 089dc193ce3..563449f49c8
--- a/lib/yuilib/3.9.1/build/pjax/pjax.js
+++ b/lib/yuilib/3.12.0/pjax/pjax.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('pjax', function (Y, NAME) {
/**
@@ -168,4 +174,4 @@ Y.Pjax = Y.Base.create('pjax', Y.Router, [Y.PjaxBase, Y.PjaxContent], {
});
-}, '3.9.1', {"requires": ["pjax-base", "pjax-content"]});
+}, '3.12.0', {"requires": ["pjax-base", "pjax-content"]});
diff --git a/lib/yuilib/3.9.1/build/plugin/plugin-debug.js b/lib/yuilib/3.12.0/plugin/plugin-debug.js
old mode 100644
new mode 100755
similarity index 80%
rename from lib/yuilib/3.9.1/build/plugin/plugin-debug.js
rename to lib/yuilib/3.12.0/plugin/plugin-debug.js
index 895c1afa00d..7e5a8c9fd18
--- a/lib/yuilib/3.9.1/build/plugin/plugin-debug.js
+++ b/lib/yuilib/3.12.0/plugin/plugin-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('plugin', function (Y, NAME) {
/**
@@ -10,7 +16,7 @@ YUI.add('plugin', function (Y, NAME) {
/**
* The base class for all Plugin instances.
*
- * @class Plugin.Base
+ * @class Plugin.Base
* @extends Base
* @param {Object} config Configuration object with property name/value pairs.
*/
@@ -24,7 +30,7 @@ YUI.add('plugin', function (Y, NAME) {
/**
* Object defining the set of attributes supported by the Plugin.Base class
- *
+ *
* @property ATTRS
* @type Object
* @static
@@ -106,7 +112,7 @@ YUI.add('plugin', function (Y, NAME) {
},
/**
- * Listens for the "on" moment of events fired by the host,
+ * Listens for the "on" moment of events fired by the host,
* or injects code "before" a given method on the host.
*
* @method doBefore
@@ -129,7 +135,7 @@ YUI.add('plugin', function (Y, NAME) {
},
/**
- * Listens for the "after" moment of events fired by the host,
+ * Listens for the "after" moment of events fired by the host,
* or injects code "after" a given method on the host.
*
* @method doAfter
@@ -155,12 +161,12 @@ YUI.add('plugin', function (Y, NAME) {
* Listens for the "on" moment of events fired by the host object.
*
* Listeners attached through this method will be detached when the plugin is unplugged.
- *
+ *
* @method onHostEvent
* @param {String | Object} type The event type.
* @param {Function} fn The listener.
* @param {Object} context The execution context. Defaults to the plugin instance.
- * @return handle {EventHandle} The detach handle for the listener.
+ * @return handle {EventHandle} The detach handle for the listener.
*/
onHostEvent : function(type, fn, context) {
var handle = this.get("host").on(type, fn, context || this);
@@ -168,16 +174,34 @@ YUI.add('plugin', function (Y, NAME) {
return handle;
},
+ /**
+ * Listens for the "on" moment of events fired by the host object one time only.
+ * The listener is immediately detached when it is executed.
+ *
+ * Listeners attached through this method will be detached when the plugin is unplugged.
+ *
+ * @method onceHostEvent
+ * @param {String | Object} type The event type.
+ * @param {Function} fn The listener.
+ * @param {Object} context The execution context. Defaults to the plugin instance.
+ * @return handle {EventHandle} The detach handle for the listener.
+ */
+ onceHostEvent : function(type, fn, context) {
+ var handle = this.get("host").once(type, fn, context || this);
+ this._handles.push(handle);
+ return handle;
+ },
+
/**
* Listens for the "after" moment of events fired by the host object.
*
* Listeners attached through this method will be detached when the plugin is unplugged.
- *
+ *
* @method afterHostEvent
* @param {String | Object} type The event type.
* @param {Function} fn The listener.
* @param {Object} context The execution context. Defaults to the plugin instance.
- * @return handle {EventHandle} The detach handle for the listener.
+ * @return handle {EventHandle} The detach handle for the listener.
*/
afterHostEvent : function(type, fn, context) {
var handle = this.get("host").after(type, fn, context || this);
@@ -185,6 +209,24 @@ YUI.add('plugin', function (Y, NAME) {
return handle;
},
+ /**
+ * Listens for the "after" moment of events fired by the host object one time only.
+ * The listener is immediately detached when it is executed.
+ *
+ * Listeners attached through this method will be detached when the plugin is unplugged.
+ *
+ * @method onceAfterHostEvent
+ * @param {String | Object} type The event type.
+ * @param {Function} fn The listener.
+ * @param {Object} context The execution context. Defaults to the plugin instance.
+ * @return handle {EventHandle} The detach handle for the listener.
+ */
+ onceAfterHostEvent : function(type, fn, context) {
+ var handle = this.get("host").onceAfter(type, fn, context || this);
+ this._handles.push(handle);
+ return handle;
+ },
+
/**
* Injects a function to be executed before a given method on host object.
*
@@ -194,7 +236,7 @@ YUI.add('plugin', function (Y, NAME) {
* @param {String} method The name of the method to inject the function before.
* @param {Function} fn The function to inject.
* @param {Object} context The execution context. Defaults to the plugin instance.
- * @return handle {EventHandle} The detach handle for the injected function.
+ * @return handle {EventHandle} The detach handle for the injected function.
*/
beforeHostMethod : function(strMethod, fn, context) {
var handle = Y.Do.before(fn, this.get("host"), strMethod, context || this);
@@ -211,7 +253,7 @@ YUI.add('plugin', function (Y, NAME) {
* @param {String} method The name of the method to inject the function after.
* @param {Function} fn The function to inject.
* @param {Object} context The execution context. Defaults to the plugin instance.
- * @return handle {EventHandle} The detach handle for the injected function.
+ * @return handle {EventHandle} The detach handle for the injected function.
*/
afterHostMethod : function(strMethod, fn, context) {
var handle = Y.Do.after(fn, this.get("host"), strMethod, context || this);
@@ -227,4 +269,4 @@ YUI.add('plugin', function (Y, NAME) {
Y.namespace("Plugin").Base = Plugin;
-}, '3.9.1', {"requires": ["base-base"]});
+}, '3.12.0', {"requires": ["base-base"]});
diff --git a/lib/yuilib/3.12.0/plugin/plugin-min.js b/lib/yuilib/3.12.0/plugin/plugin-min.js
new file mode 100755
index 00000000000..f81c993b7ed
--- /dev/null
+++ b/lib/yuilib/3.12.0/plugin/plugin-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("plugin",function(e,t){function n(t){!this.hasImpl||!this.hasImpl(e.Plugin.Base)?n.superclass.constructor.apply(this,arguments):n.prototype.initializer.apply(this,arguments)}n.ATTRS={host:{writeOnce:!0}},n.NAME="plugin",n.NS="plugin",e.extend(n,e.Base,{_handles:null,initializer:function(e){this._handles=[]},destructor:function(){if(this._handles)for(var e=0,t=this._handles.length;eProvides Y.QueryString.parse method for converting Query Strings to an object. + * This is a simpler implementation than the full querystring-parse.
*Because some things may require basic query string escaping functionality, * this module provides the bare minimum functionality (decoding a hash of simple values), * without the additional support for arrays, objects, and so on.
@@ -47,4 +53,4 @@ QueryString.unescape = function (s) { }; -}, '3.9.1', {"requires": ["yui-base"]}); +}, '3.12.0', {"requires": ["yui-base"]}); diff --git a/lib/yuilib/3.9.1/build/querystring-parse-simple/querystring-parse-simple-min.js b/lib/yuilib/3.12.0/querystring-parse-simple/querystring-parse-simple-min.js old mode 100644 new mode 100755 similarity index 62% rename from lib/yuilib/3.9.1/build/querystring-parse-simple/querystring-parse-simple-min.js rename to lib/yuilib/3.12.0/querystring-parse-simple/querystring-parse-simple-min.js index 4fba4f7e15e..4235e0af409 --- a/lib/yuilib/3.9.1/build/querystring-parse-simple/querystring-parse-simple-min.js +++ b/lib/yuilib/3.12.0/querystring-parse-simple/querystring-parse-simple-min.js @@ -1,2 +1,8 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ -YUI.add("querystring-parse-simple",function(e,t){var n=e.namespace("QueryString");n.parse=function(e,t,r){t=t||"&",r=r||"=";for(var i={},s=0,o=e.split(t),u=o.length,a;s0&&(i[n.unescape(a.shift())]=n.unescape(a.join(r)));return i},n.unescape=function(e){return decodeURIComponent(e.replace(/\+/g," "))}},"3.9.1",{requires:["yui-base"]}); +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + +YUI.add("querystring-parse-simple",function(e,t){var n=e.namespace("QueryString");n.parse=function(e,t,r){t=t||"&",r=r||"=";for(var i={},s=0,o=e.split(t),u=o.length,a;s0&&(i[n.unescape(a.shift())]=n.unescape(a.join(r)));return i},n.unescape=function(e){return decodeURIComponent(e.replace(/\+/g," "))}},"3.12.0",{requires:["yui-base"]}); diff --git a/lib/yuilib/3.9.1/build/querystring-parse-simple/querystring-parse-simple.js b/lib/yuilib/3.12.0/querystring-parse-simple/querystring-parse-simple.js old mode 100644 new mode 100755 similarity index 80% rename from lib/yuilib/3.9.1/build/querystring-parse-simple/querystring-parse-simple.js rename to lib/yuilib/3.12.0/querystring-parse-simple/querystring-parse-simple.js index 5ce5dc31622..39f6774271e --- a/lib/yuilib/3.9.1/build/querystring-parse-simple/querystring-parse-simple.js +++ b/lib/yuilib/3.12.0/querystring-parse-simple/querystring-parse-simple.js @@ -1,4 +1,10 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + YUI.add('querystring-parse-simple', function (Y, NAME) { // @TODO this looks like we are requiring the user to extract the querystring @@ -8,8 +14,8 @@ YUI.add('querystring-parse-simple', function (Y, NAME) { /*global Y */ /** - *Provides Y.QueryString.stringify method for converting objects to Query Strings. - * This is a simpler implementation than the full querystring-stringify.
+ *Provides Y.QueryString.parse method for converting Query Strings to an object. + * This is a simpler implementation than the full querystring-parse.
*Because some things may require basic query string escaping functionality, * this module provides the bare minimum functionality (decoding a hash of simple values), * without the additional support for arrays, objects, and so on.
@@ -47,4 +53,4 @@ QueryString.unescape = function (s) { }; -}, '3.9.1', {"requires": ["yui-base"]}); +}, '3.12.0', {"requires": ["yui-base"]}); diff --git a/lib/yuilib/3.9.1/build/querystring-parse/querystring-parse-debug.js b/lib/yuilib/3.12.0/querystring-parse/querystring-parse-debug.js old mode 100644 new mode 100755 similarity index 96% rename from lib/yuilib/3.9.1/build/querystring-parse/querystring-parse-debug.js rename to lib/yuilib/3.12.0/querystring-parse/querystring-parse-debug.js index 2206b97d89f..370309902a2 --- a/lib/yuilib/3.9.1/build/querystring-parse/querystring-parse-debug.js +++ b/lib/yuilib/3.12.0/querystring-parse/querystring-parse-debug.js @@ -1,4 +1,10 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + YUI.add('querystring-parse', function (Y, NAME) { /** @@ -160,4 +166,4 @@ QueryString.unescape = function (s) { -}, '3.9.1', {"requires": ["yui-base", "array-extras"]}); +}, '3.12.0', {"requires": ["yui-base", "array-extras"]}); diff --git a/lib/yuilib/3.9.1/build/querystring-parse/querystring-parse-min.js b/lib/yuilib/3.12.0/querystring-parse/querystring-parse-min.js old mode 100644 new mode 100755 similarity index 76% rename from lib/yuilib/3.9.1/build/querystring-parse/querystring-parse-min.js rename to lib/yuilib/3.12.0/querystring-parse/querystring-parse-min.js index 0360522e6f3..33b4bf04de8 --- a/lib/yuilib/3.9.1/build/querystring-parse/querystring-parse-min.js +++ b/lib/yuilib/3.12.0/querystring-parse/querystring-parse-min.js @@ -1,2 +1,8 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ -YUI.add("querystring-parse",function(e,t){var n=e.namespace("QueryString"),r=function(t){return function r(i,s){var o,u,a,f,l;return arguments.length!==2?(i=i.split(t),r(n.unescape(i.shift()),n.unescape(i.join(t)))):(i=i.replace(/^\s+|\s+$/g,""),e.Lang.isString(s)&&(s=s.replace(/^\s+|\s+$/g,""),isNaN(s)||(u=+s,s===u.toString(10)&&(s=u))),o=/(.*)\[([^\]]*)\]$/.exec(i),o?(f=o[2],a=o[1],f?(l={},l[f]=s,r(a,l)):r(a,[s])):(l={},i&&(l[i]=s),l))}},i=function(t,n){return t?e.Lang.isArray(t)?t.concat(n):!e.Lang.isObject(t)||!e.Lang.isObject(n)?[t].concat(n):s(t,n):n},s=function(e,t){for(var n in t)n&&t.hasOwnProperty(n)&&(e[n]=i(e[n],t[n]));return e};n.parse=function(t,n,s){return e.Array.reduce(e.Array.map(t.split(n||"&"),r(s||"=")),{},i)},n.unescape=function(e){return decodeURIComponent(e.replace(/\+/g," "))}},"3.9.1",{requires:["yui-base","array-extras"]}); +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + +YUI.add("querystring-parse",function(e,t){var n=e.namespace("QueryString"),r=function(t){return function r(i,s){var o,u,a,f,l;return arguments.length!==2?(i=i.split(t),r(n.unescape(i.shift()),n.unescape(i.join(t)))):(i=i.replace(/^\s+|\s+$/g,""),e.Lang.isString(s)&&(s=s.replace(/^\s+|\s+$/g,""),isNaN(s)||(u=+s,s===u.toString(10)&&(s=u))),o=/(.*)\[([^\]]*)\]$/.exec(i),o?(f=o[2],a=o[1],f?(l={},l[f]=s,r(a,l)):r(a,[s])):(l={},i&&(l[i]=s),l))}},i=function(t,n){return t?e.Lang.isArray(t)?t.concat(n):!e.Lang.isObject(t)||!e.Lang.isObject(n)?[t].concat(n):s(t,n):n},s=function(e,t){for(var n in t)n&&t.hasOwnProperty(n)&&(e[n]=i(e[n],t[n]));return e};n.parse=function(t,n,s){return e.Array.reduce(e.Array.map(t.split(n||"&"),r(s||"=")),{},i)},n.unescape=function(e){return decodeURIComponent(e.replace(/\+/g," "))}},"3.12.0",{requires:["yui-base","array-extras"]}); diff --git a/lib/yuilib/3.9.1/build/querystring-parse/querystring-parse.js b/lib/yuilib/3.12.0/querystring-parse/querystring-parse.js old mode 100644 new mode 100755 similarity index 96% rename from lib/yuilib/3.9.1/build/querystring-parse/querystring-parse.js rename to lib/yuilib/3.12.0/querystring-parse/querystring-parse.js index 2206b97d89f..370309902a2 --- a/lib/yuilib/3.9.1/build/querystring-parse/querystring-parse.js +++ b/lib/yuilib/3.12.0/querystring-parse/querystring-parse.js @@ -1,4 +1,10 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + YUI.add('querystring-parse', function (Y, NAME) { /** @@ -160,4 +166,4 @@ QueryString.unescape = function (s) { -}, '3.9.1', {"requires": ["yui-base", "array-extras"]}); +}, '3.12.0', {"requires": ["yui-base", "array-extras"]}); diff --git a/lib/yuilib/3.9.1/build/querystring-stringify-simple/querystring-stringify-simple-debug.js b/lib/yuilib/3.12.0/querystring-stringify-simple/querystring-stringify-simple-debug.js old mode 100644 new mode 100755 similarity index 87% rename from lib/yuilib/3.9.1/build/querystring-stringify-simple/querystring-stringify-simple-debug.js rename to lib/yuilib/3.12.0/querystring-stringify-simple/querystring-stringify-simple-debug.js index be019751169..bdc803ed9ea --- a/lib/yuilib/3.9.1/build/querystring-stringify-simple/querystring-stringify-simple-debug.js +++ b/lib/yuilib/3.12.0/querystring-stringify-simple/querystring-stringify-simple-debug.js @@ -1,4 +1,10 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + YUI.add('querystring-stringify-simple', function (Y, NAME) { /*global Y */ @@ -42,4 +48,4 @@ QueryString.stringify = function (obj, c) { }; -}, '3.9.1', {"requires": ["yui-base"]}); +}, '3.12.0', {"requires": ["yui-base"]}); diff --git a/lib/yuilib/3.9.1/build/querystring-stringify-simple/querystring-stringify-simple-min.js b/lib/yuilib/3.12.0/querystring-stringify-simple/querystring-stringify-simple-min.js old mode 100644 new mode 100755 similarity index 60% rename from lib/yuilib/3.9.1/build/querystring-stringify-simple/querystring-stringify-simple-min.js rename to lib/yuilib/3.12.0/querystring-stringify-simple/querystring-stringify-simple-min.js index 3581c848b72..48ed26ee373 --- a/lib/yuilib/3.9.1/build/querystring-stringify-simple/querystring-stringify-simple-min.js +++ b/lib/yuilib/3.12.0/querystring-stringify-simple/querystring-stringify-simple-min.js @@ -1,2 +1,8 @@ -/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ -YUI.add("querystring-stringify-simple",function(e,t){var n=e.namespace("QueryString"),r=encodeURIComponent;n.stringify=function(t,n){var i=[],s=n&&n.arrayKey?!0:!1,o,u,a;for(o in t)if(t.hasOwnProperty(o))if(e.Lang.isArray(t[o]))for(u=0,a=t[o].length;u=0;--a)if(r[a]===e)throw new Error("QueryString.stringify. Cyclical reference");r.push(e),c=[],o=s?s+"[":"",u=s?"]":"";for(a in e)e.hasOwnProperty(a)&&(l=o+a+u,c.push(n.stringify(e[a],t,l)));return r.pop(),c=c.join(h),!c&&s?s+"=":c}},"3.9.1",{requires:["yui-base"]}); +/* +YUI 3.12.0 (build 8655935) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + +YUI.add("querystring-stringify",function(e,t){var n=e.namespace("QueryString"),r=[],i=e.Lang;n.escape=encodeURIComponent,n.stringify=function(e,t,s){var o,u,a,f,l,c,h=t&&t.sep?t.sep:"&",p=t&&t.eq?t.eq:"=",d=t&&t.arrayKey?t.arrayKey:!1;if(i.isNull(e)||i.isUndefined(e)||i.isFunction(e))return s?n.escape(s)+p:"";if(i.isBoolean(e)||Object.prototype.toString.call(e)==="[object Boolean]")e=+e;if(i.isNumber(e)||i.isString(e))return n.escape(s)+p+n.escape(e);if(i.isArray(e)){c=[],s=d?s+"[]":s,f=e.length;for(a=0;ap,w=h>d,E=h =0&&l[h]===t)return!0}else for(var h=l.length-a,p=l.length;h>=0;h-=s)if(h -1},checked:function(e){return e.checked===!0||e.selected===!0},enabled:function(e){return e.disabled!==undefined&&!e.disabled},disabled:function(e){return e.disabled}}),e.mix(e.Selector.operators,{"^=":"^{val}","$=":"{val}$","*=":"{val}"}),e.Selector.combinators["~"]={axis:"previousSibling"}},"3.9.1",{requires:["selector-native","selector-css2"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("selector-css3",function(e,t){e.Selector._reNth=/^(?:([\-]?\d*)(n){1}|(odd|even)$)*([\-+]?\d*)$/,e.Selector._getNth=function(t,n,r,i){e.Selector._reNth.test(n);var s=parseInt(RegExp.$1,10),o=RegExp.$2,u=RegExp.$3,a=parseInt(RegExp.$4,10)||0,f=[],l=e.DOM._children(t.parentNode,r),c;u?(s=2,c="+",o="n",a=u==="odd"?1:0):isNaN(s)&&(s=o?1:0);if(s===0)return i&&(a=l.length-a+1),l[a-1]===t?!0:!1;s<0&&(i=!!i,s=Math.abs(s));if(!i){for(var h=a-1,p=l.length;h =0&&l[h]===t)return!0}else for(var h=l.length-a,p=l.length;h>=0;h-=s)if(h -1},checked:function(e){return e.checked===!0||e.selected===!0},enabled:function(e){return e.disabled!==undefined&&!e.disabled},disabled:function(e){return e.disabled}}),e.mix(e.Selector.operators,{"^=":"^{val}","$=":"{val}$","*=":"{val}"}),e.Selector.combinators["~"]={axis:"previousSibling"}},"3.12.0",{requires:["selector-native","selector-css2"]});
diff --git a/lib/yuilib/3.9.1/build/selector-css3/selector-css3.js b/lib/yuilib/3.12.0/selector-css3/selector-css3.js
old mode 100644
new mode 100755
similarity index 95%
rename from lib/yuilib/3.9.1/build/selector-css3/selector-css3.js
rename to lib/yuilib/3.12.0/selector-css3/selector-css3.js
index 9c16acdcaa3..376180c195a
--- a/lib/yuilib/3.9.1/build/selector-css3/selector-css3.js
+++ b/lib/yuilib/3.12.0/selector-css3/selector-css3.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('selector-css3', function (Y, NAME) {
/**
@@ -150,4 +156,4 @@ Y.Selector.combinators['~'] = {
};
-}, '3.9.1', {"requires": ["selector-native", "selector-css2"]});
+}, '3.12.0', {"requires": ["selector-native", "selector-css2"]});
diff --git a/lib/yuilib/3.9.1/build/selector-native/selector-native-debug.js b/lib/yuilib/3.12.0/selector-native/selector-native-debug.js
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/selector-native/selector-native-debug.js
rename to lib/yuilib/3.12.0/selector-native/selector-native-debug.js
index 05a26dbaa3c..73ed2b58815
--- a/lib/yuilib/3.9.1/build/selector-native/selector-native-debug.js
+++ b/lib/yuilib/3.12.0/selector-native/selector-native-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('selector-native', function (Y, NAME) {
(function(Y) {
@@ -240,8 +246,11 @@ var Selector = {
},
_nativeQuery: function(selector, root, one) {
- if (Y.UA.webkit && selector.indexOf(':checked') > -1 &&
- (Y.Selector.pseudos && Y.Selector.pseudos.checked)) { // webkit (chrome, safari) fails to pick up "selected" with "checked"
+ if (
+ (Y.UA.webkit || Y.UA.opera) && // webkit (chrome, safari) and Opera
+ selector.indexOf(':checked') > -1 && // fail to pick up "selected" with ":checked"
+ (Y.Selector.pseudos && Y.Selector.pseudos.checked)
+ ) {
return Y.Selector.query(selector, root, one, true); // redo with skipNative true to try brute query
}
try {
@@ -373,4 +382,4 @@ Y.mix(Y.Selector, Selector, true);
})(Y);
-}, '3.9.1', {"requires": ["dom-base"]});
+}, '3.12.0', {"requires": ["dom-base"]});
diff --git a/lib/yuilib/3.9.1/build/selector-native/selector-native-min.js b/lib/yuilib/3.12.0/selector-native/selector-native-min.js
old mode 100644
new mode 100755
similarity index 62%
rename from lib/yuilib/3.9.1/build/selector-native/selector-native-min.js
rename to lib/yuilib/3.12.0/selector-native/selector-native-min.js
index bfc91420ed5..655a764f89d
--- a/lib/yuilib/3.9.1/build/selector-native/selector-native-min.js
+++ b/lib/yuilib/3.12.0/selector-native/selector-native-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("selector-native",function(e,t){(function(e){e.namespace("Selector");var t="compareDocumentPosition",n="ownerDocument",r={_types:{esc:{token:"\ue000",re:/\\[:\[\]\(\)#\.\'\>+~"]/gi},attr:{token:"\ue001",re:/(\[[^\]]*\])/g},pseudo:{token:"\ue002",re:/(\([^\)]*\))/g}},useNative:!0,_escapeId:function(e){return e&&(e=e.replace(/([:\[\]\(\)#\.'<>+~"])/g,"\\$1")),e},_compare:"sourceIndex"in e.config.doc.documentElement?function(e,t){var n=e.sourceIndex,r=t.sourceIndex;return n===r?0:n>r?1:-1}:e.config.doc.documentElement[t]?function(e,n){return e[t](n)&4?-1:1}:function(e,t){var r,i,s;return e&&t&&(r=e[n].createRange(),r.setStart(e,0),i=t[n].createRange(),i.setStart(t,0),s=r.compareBoundaryPoints(1,i)),s},_sort:function(t){return t&&(t=e.Array(t,0,!0),t.sort&&t.sort(r._compare)),t},_deDupe:function(e){var t=[],n,r;for(n=0;r=e[n++];)r._found||(t[t.length]=r,r._found=!0);for(n=0;r=t[n++];)r._found=null,r.removeAttribute("_found");return t},query:function(t,n,i,s){n=n||e.config.doc;var o=[],u=e.Selector.useNative&&e.config.doc.querySelector&&!s,a=[[t,n]],f,l,c,h=u?e.Selector._nativeQuery:e.Selector._bruteQuery;if(t&&h){!s&&(!u||n.tagName)&&(a=r._splitQueries(t,n));for(c=0;f=a[c++];)l=h(f[0],f[1],i),i||(l=e.Array(l,0,!0)),l&&(o=o.concat(l));a.length>1&&(o=r._sort(r._deDupe(o)))}return i?o[0]||null:o},_replaceSelector:function(t){var n=e.Selector._parse("esc",t),i,s;return t=e.Selector._replace("esc",t),s=e.Selector._parse("pseudo",t),t=r._replace("pseudo",t),i=e.Selector._parse("attr",t),t=e.Selector._replace("attr",t),{esc:n,attrs:i,pseudos:s,selector:t}},_restoreSelector:function(t){var n=t.selector;return n=e.Selector._restore("attr",n,t.attrs),n=e.Selector._restore("pseudo",n,t.pseudos),n=e.Selector._restore("esc",n,t.esc),n},_replaceCommas:function(t){var n=e.Selector._replaceSelector(t),t=n.selector;return t&&(t=t.replace(/,/g,"\ue007"),n.selector=t,t=e.Selector._restoreSelector(n)),t},_splitQueries:function(t,n){t.indexOf(",")>-1&&(t=e.Selector._replaceCommas(t));var r=t.split("\ue007"),i=[],s="",o,u,a;if(n){n.nodeType===1&&(o=e.Selector._escapeId(e.DOM.getId(n)),o||(o=e.guid(),e.DOM.setId(n,o)),s='[id="'+o+'"] ');for(u=0,a=r.length;u-1&&e.Selector.pseudos&&e.Selector.pseudos.checked)return e.Selector.query(t,n,r,!0);try{return n["querySelector"+(r?"":"All")](t)}catch(i){return e.Selector.query(t,n,r,!0)}},filter:function(t,n){var r=[],i,s;if(t&&n)for(i=0;s=t[i++];)e.Selector.test(s,n)&&(r[r.length]=s);return r},test:function(t,r,i){var s=!1,o=!1,u,a,f,l,c,h,p,d,v;if(t&&t.tagName)if(typeof r=="function")s=r.call(t,t);else{u=r.split(","),!i&&!e.DOM.inDoc(t)&&(a=t.parentNode,a?i=a:(c=t[n].createDocumentFragment(),c.appendChild(t),i=c,o=!0)),i=i||t[n],h=e.Selector._escapeId(e.DOM.getId(t)),h||(h=e.guid(),e.DOM.setId(t,h));for(p=0;v=u[p++];){v+='[id="'+h+'"]',l=e.Selector.query(v,i);for(d=0;f=l[d++];)if(f===t){s=!0;break}if(s)break}o&&c.removeChild(t)}return s},ancestor:function(t,n,r){return e.DOM.ancestor(t,function(t){return e.Selector.test(t,n)},r)},_parse:function(t,n){return n.match(e.Selector._types[t].re)},_replace:function(t,n){var r=e.Selector._types[t];return n.replace(r.re,r.token)},_restore:function(t,n,r){if(r){var i=e.Selector._types[t].token,s,o;for(s=0,o=r.length;s 2?e.Array(arguments,2,!0):null;return function(){var s=n.isString(t)?r[t]:t,o=i?i.concat(e.Array(arguments,0,!0)):arguments;return s.apply(r||s,o)}},e.rbind=function(t,r){var i=arguments.length>2?e.Array(arguments,2,!0):null;return function(){var s=n.isString(t)?r[t]:t,o=i?e.Array(arguments,0,!0).concat(i):arguments;return s.apply(r||s,o)}}},"@VERSION@",{requires:["yui-base"]}),YUI.add("features",function(e,t){var n={};e.mix(e.namespace("Features"),{tests:n,add:function(e,t,r){n[e]=n[e]||{},n[e][t]=r},all:function(t,r){var i=n[t],s=[];return i&&e.Object.each(i,function(n,i){s.push(i+":"+(e.Features.test(t,i,r)?1:0))}),s.length?s.join(";"):""},test:function(t,r,i){i=i||[];var s,o,u,a=n[t],f=a&&a[r];return!f||(s=f.result,e.Lang.isUndefined(s)&&(o=f.ua,o&&(s=e.UA[o]),u=f.test,u&&(!o||s)&&(s=u.apply(e,i)),f.result=s)),s}});var r=e.Features.add;r("load","0",{name:"app-transitions-native",test:function(e){var t=e.config.doc,n=t?t.documentElement:null;return n&&n.style?"MozTransition"in n.style||"WebkitTransition"in n.style||"transition"in n.style:!1},trigger:"app-transitions"}),r("load","1",{name:"autocomplete-list-keys",test:function(e){return!e.UA.ios&&!e.UA.android},trigger:"autocomplete-list"}),r("load","2",{name:"dd-gestures",trigger:"dd-drag",ua:"touchEnabled"}),r("load","3",{name:"dom-style-ie",test:function(e){var t=e.Features.test,n=e.Features.add,r=e.config.win,i=e.config.doc,s="documentElement",o=!1;return n("style","computedStyle",{test:function(){return r&&"getComputedStyle"in r}}),n("style","opacity",{test:function(){return i&&"opacity"in i[s].style}}),o=!t("style","opacity")&&!t("style","computedStyle"),o},trigger:"dom-style"}),r("load","4",{name:"editor-para-ie",trigger:"editor-para",ua:"ie",when:"instead"}),r("load","5",{name:"event-base-ie",test:function(e){var t=e.config.doc&&e.config.doc.implementation;return t&&!t.hasFeature("Events","2.0")},trigger:"node-base"}),r("load","6",{name:"graphics-canvas",test:function(e){var t=e.config.doc,n=e.config.defaultGraphicEngine&&e.config.defaultGraphicEngine=="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return(!i||n)&&r&&r.getContext&&r.getContext("2d")},trigger:"graphics"}),r("load","7",{name:"graphics-canvas-default",test:function(e){var t=e.config.doc,n=e.config.defaultGraphicEngine&&e.config.defaultGraphicEngine=="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return(!i||n)&&r&&r.getContext&&r.getContext("2d")},trigger:"graphics"}),r("load","8",{name:"graphics-svg",test:function(e){var t=e.config.doc,n=!e.config.defaultGraphicEngine||e.config.defaultGraphicEngine!="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return i&&(n||!r)},trigger:"graphics"}),r("load","9",{name:"graphics-svg-default",test:function(e){var t=e.config.doc,n=!e.config.defaultGraphicEngine||e.config.defaultGraphicEngine!="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return i&&(n||!r)},trigger:"graphics"}),r("load","10",{name:"graphics-vml",test:function(e){var t=e.config.doc,n=t&&t.createElement("canvas");return t&&!t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!n||!n.getContext||!n.getContext("2d"))},trigger:"graphics"}),r("load","11",{name:"graphics-vml-default",test:function(e){var t=e.config.doc,n=t&&t.createElement("canvas");return t&&!t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!n||!n.getContext||!n.getContext("2d"))},trigger:"graphics"}),r("load","12",{name:"history-hash-ie",test:function(e){var t=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange"in e.config.win)||!t||t<8)},trigger:"history-hash"}),r("load","13",{name:"io-nodejs",trigger:"io-base",ua:"nodejs"}),r("load","14",{name
+:"json-parse-shim",test:function(e){function i(e,t){return e==="ok"?!0:t}var t=e.config.global.JSON,n=Object.prototype.toString.call(t)==="[object JSON]"&&t,r=e.config.useNativeJSONParse!==!1&&!!n;if(r)try{r=n.parse('{"ok":false}',i).ok}catch(s){r=!1}return!r},trigger:"json-parse"}),r("load","15",{name:"json-stringify-shim",test:function(e){var t=e.config.global.JSON,n=Object.prototype.toString.call(t)==="[object JSON]"&&t,r=e.config.useNativeJSONStringify!==!1&&!!n;if(r)try{r="0"===n.stringify(0)}catch(i){r=!1}return!r},trigger:"json-stringify"}),r("load","16",{name:"scrollview-base-ie",trigger:"scrollview-base",ua:"ie"}),r("load","17",{name:"selector-css2",test:function(e){var t=e.config.doc,n=t&&!("querySelectorAll"in t);return n},trigger:"selector"}),r("load","18",{name:"transition-timer",test:function(e){var t=e.config.doc,n=t?t.documentElement:null,r=!0;return n&&n.style&&(r=!("MozTransition"in n.style||"WebkitTransition"in n.style||"transition"in n.style)),r},trigger:"transition"}),r("load","19",{name:"widget-base-ie",trigger:"widget-base",ua:"ie"}),r("load","20",{name:"yql-jsonp",test:function(e){return!e.UA.nodejs&&!e.UA.winjs},trigger:"yql",when:"after"}),r("load","21",{name:"yql-nodejs",trigger:"yql",ua:"nodejs",when:"after"}),r("load","22",{name:"yql-winjs",trigger:"yql",ua:"winjs",when:"after"})},"@VERSION@",{requires:["yui-base"]}),YUI.add("dom-core",function(e,t){var n="nodeType",r="ownerDocument",i="documentElement",s="defaultView",o="parentWindow",u="tagName",a="parentNode",f="previousSibling",l="nextSibling",c="contains",h="compareDocumentPosition",p=[],d=function(){var t=e.config.doc.createElement("div"),n=t.appendChild(e.config.doc.createTextNode("")),r=!1;try{r=t.contains(n)}catch(i){}return r}(),v={byId:function(e,t){return v.allById(e,t)[0]||null},getId:function(e){var t;return e.id&&!e.id.tagName&&!e.id.item?t=e.id:e.attributes&&e.attributes.id&&(t=e.attributes.id.value),t},setId:function(e,t){e.setAttribute?e.setAttribute("id",t):e.id=t},ancestor:function(e,t,n,r){var i=null;return n&&(i=!t||t(e)?e:null),i||v.elementByAxis(e,a,t,null,r)},ancestors:function(e,t,n,r){var i=e,s=[];while(i=v.ancestor(i,t,n,r)){n=!1;if(i){s.unshift(i);if(r&&r(i))return s}}return s},elementByAxis:function(e,t,n,r,i){while(e&&(e=e[t])){if((r||e[u])&&(!n||n(e)))return e;if(i&&i(e))return null}return null},contains:function(e,t){var r=!1;if(!t||!e||!t[n]||!e[n])r=!1;else if(e[c]&&(t[n]===1||d))r=e[c](t);else if(e[h]){if(e===t||!!(e[h](t)&16))r=!0}else r=v._bruteContains(e,t);return r},inDoc:function(e,t){var n=!1,s;return e&&e.nodeType&&(t||(t=e[r]),s=t[i],s&&s.contains&&e.tagName?n=s.contains(e):n=v.contains(s,e)),n},allById:function(t,n){n=n||e.config.doc;var r=[],i=[],s,o;if(n.querySelectorAll)i=n.querySelectorAll('[id="'+t+'"]');else if(n.all){r=n.all(t);if(r){r.nodeName&&(r.id===t?(i.push(r),r=p):r=[r]);if(r.length)for(s=0;o=r[s++];)(o.id===t||o.attributes&&o.attributes.id&&o.attributes.id.value===t)&&i.push(o)}}else i=[v._getDoc(n).getElementById(t)];return i},isWindow:function(e){return!!(e&&e.scrollTo&&e.document)},_removeChildNodes:function(e){while(e.firstChild)e.removeChild(e.firstChild)},siblings:function(e,t){var n=[],r=e;while(r=r[f])r[u]&&(!t||t(r))&&n.unshift(r);r=e;while(r=r[l])r[u]&&(!t||t(r))&&n.push(r);return n},_bruteContains:function(e,t){while(t){if(e===t)return!0;t=t.parentNode}return!1},_getRegExp:function(e,t){return t=t||"",v._regexCache=v._regexCache||{},v._regexCache[e+t]||(v._regexCache[e+t]=new RegExp(e,t)),v._regexCache[e+t]},_getDoc:function(t){var i=e.config.doc;return t&&(i=t[n]===9?t:t[r]||t.document||e.config.doc),i},_getWin:function(t){var n=v._getDoc(t);return n[s]||n[o]||e.config.win},_batch:function(e,t,n,r,i,s){t=typeof t=="string"?v[t]:t;var o,u=0,a,f;if(t&&e)while(a=e[u++])o=o=t.call(v,a,n,r,i,s),typeof o!="undefined"&&(f||(f=[]),f.push(o));return typeof f!="undefined"?f:e},generateID:function(t){var n=t.id;return n||(n=e.stamp(t),t.id=n),n}};e.DOM=v},"@VERSION@",{requires:["oop","features"]}),YUI.add("dom-base",function(e,t){var n=e.config.doc.documentElement,r=e.DOM,i="tagName",s="ownerDocument",o="",u=e.Features.add,a=e.Features.test;e.mix(r,{getText:n.textContent!==undefined?function(e){var t="";return e&&(t=e.textContent),t||""}:function(e){var t="";return e&&(t=e.innerText||e.nodeValue),t||""},setText:n.textContent!==undefined?function(e,t){e&&(e.textContent=t)}:function(e,t){"innerText"in e?e.innerText=t:"nodeValue"in e&&(e.nodeValue=t)},CUSTOM_ATTRIBUTES:n.hasAttribute?{htmlFor:"for",className:"class"}:{"for":"htmlFor","class":"className"},setAttribute:function(e,t,n,i){e&&t&&e.setAttribute&&(t=r.CUSTOM_ATTRIBUTES[t]||t,e.setAttribute(t,n,i))},getAttribute:function(e,t,n){n=n!==undefined?n:2;var i="";return e&&t&&e.getAttribute&&(t=r.CUSTOM_ATTRIBUTES[t]||t,i=e.getAttribute(t,n),i===null&&(i="")),i},VALUE_SETTERS:{},VALUE_GETTERS:{},getValue:function(e){var t="",n;return e&&e[i]&&(n=r.VALUE_GETTERS[e[i].toLowerCase()],n?t=n(e):t=e.value),t===o&&(t=o),typeof t=="string"?t:""},setValue:function(e,t){var n;e&&e[i]&&(n=r.VALUE_SETTERS[e[i].toLowerCase()],n?n(e,t):e.value=t)},creators:{}}),u("value-set","select",{test:function(){var t=e.config.doc.createElement("select");return t.innerHTML="",t.value="2",t.value&&t.value==="2"}}),a("value-set","select")||(r.VALUE_SETTERS.select=function(e,t){for(var n=0,i=e.getElementsByTagName("option"),s;s=i[n++];)if(r.getValue(s)===t){s.selected=!0;break}}),e.mix(r.VALUE_GETTERS,{button:function(e){return e.attributes&&e.attributes.value?e.attributes.value.value:""}}),e.mix(r.VALUE_SETTERS,{button:function(e,t){var n=e.attributes.value;n||(n=e[s].createAttribute("value"),e.setAttributeNode(n)),n.value=t}}),e.mix(r.VALUE_GETTERS,{option:function(e){var t=e.attributes;return t.value&&t.value.specified?e.value:e.text},select:function(e){var t=e.value,n=e.options;return n&&n.length&&(e.multiple||e.selectedIndex>-1&&(t=r.getValue(n[e.selectedIndex]))),t}});var f,l,c;e.mix(e.DOM
+,{hasClass:function(t,n){var r=e.DOM._getRegExp("(?:^|\\s+)"+n+"(?:\\s+|$)");return r.test(t.className)},addClass:function(t,n){e.DOM.hasClass(t,n)||(t.className=e.Lang.trim([t.className,n].join(" ")))},removeClass:function(t,n){n&&l(t,n)&&(t.className=e.Lang.trim(t.className.replace(e.DOM._getRegExp("(?:^|\\s+)"+n+"(?:\\s+|$)")," ")),l(t,n)&&c(t,n))},replaceClass:function(e,t,n){c(e,t),f(e,n)},toggleClass:function(e,t,n){var r=n!==undefined?n:!l(e,t);r?f(e,t):c(e,t)}}),l=e.DOM.hasClass,c=e.DOM.removeClass,f=e.DOM.addClass;var h=/<([a-z]+)/i,r=e.DOM,u=e.Features.add,a=e.Features.test,p={},d=function(t,n){var r=e.config.doc.createElement("div"),i=!0;r.innerHTML=t;if(!r.firstChild||r.firstChild.tagName!==n.toUpperCase())i=!1;return i},v=/(?:\/(?:thead|tfoot|tbody|caption|col|colgroup)>)+\s* =0&&l[h]===t)return!0}else for(var h=l.length-a,p=l.length;h>=0;h-=s)if(h -1},checked:function(e){return e.checked===!0||e.selected===!0},enabled:function(e){return e.disabled!==undefined&&!e.disabled},disabled:function(e){return e.disabled}}),e.mix(e.Selector.operators,{"^=":"^{val}","$=":"{val}$","*=":"{val}"}),e.Selector.combinators["~"]={axis:"previousSibling"}},"@VERSION@",{requires:["selector-native","selector-css2"]}),YUI.add("yui-log",function(e,t){var n=e,r="yui:log",i="undefined",s={debug:1,info:2,warn:4,error:8};n.log=function(e,t,o,u){var a,f,l,c,h,p,d=n,v=d.config,m=d.fire?d:YUI.Env.globalEvents;return v.debug&&(o=o||"",typeof o!="undefined"&&(f=v.logExclude,l=v.logInclude,!l||o in l?l&&o in l?a=!l[o]:f&&o in f&&(a=f[o]):a=1,d.config.logLevel=d.config.logLevel||"debug",p=s[d.config.logLevel.toLowerCase()],t in s&&s[t] ",u=function(e,t){var u,a,f=[],l=n.type(e);if(!n.isObject(e))return e+"";if(l=="date")return e;if(e.nodeType&&e.tagName)return e.tagName+"#"+e.id;if(e.document&&e.navigator)return"window";if(e.location&&e.body)return"document";if(l=="function")return i;t=n.isNumber(t)?t:3;if(l=="array"){f.push("[");for(u=0,a=e.length;u0?n.dump(e[u],t-1):r):f.push(e[u]),f.push(s);f.length>1&&f.pop(),f.push("]")}else if(l=="regexp")f.push(e.toString());else{f.push("{");for(u in e)if(e.hasOwnProperty(u))try{f.push(u+o),n.isObject(e[u])?f.push(t>0?n.dump(e[u],t-1):r):f.push(e[u]),f.push(s)}catch(c){f.push("Error: "+c.message)}f.length>1&&f.pop(),f.push("}")}return f.join("")};e.dump=u,n.dump=u},"@VERSION@",{requires:["yui-base"]}),YUI.add("transition-timer",function(e,t){var n=e.Transition;e.mix(n.prototype,{_start:function(){n.useNative?this._runNative():this._runTimer()},_runTimer:function(){var t=this;t._initAttrs(),n._running[e.stamp(t)]=t,t._startTime=new Date,n._startTimer()},_endTimer:function(){var t=this;delete n._running[e.stamp(t)],t._startTime=null},_runFrame:function(){var e=new Date-this._startTime;this._runAttrs(e)},_runAttrs:function(t){var r=this,i=r._node,s=r._config,o=e.stamp(i),u=n._nodeAttrs[o],a=n.behaviors,f=!1,l=!1,c,h,p,d,v,m,g,y,b;for(h in u)if((p=u[h])&&p.transition===r){g=p.duration,m=p.delay,v=(t-m)/1e3,y=t,c={type:"propertyEnd",propertyName:h,config:s,elapsedTime:v},d=b in a&&"set"in a[b]?a[b].set:n.DEFAULT_SETTER,f=y>=g,y>g&&(y=g);if(!m||t>=m)d(r,h,p.from,p.to,y-m,g-m,p.easing,p.unit),f&&(delete u[h],r._count--,s[h]&&s[h].on&&s[h].on.end&&s[h].on.end.call(e.one(i),c),!l&&r._count<=0&&(l=!0,r._end(v),r._endTimer()))}},_initAttrs:function(){var t=this,r=n.behaviors,i=e.stamp(t._node),s=n._nodeAttrs[i],o,u,a,f,l,c,h,p,d,v,m;for(c in s)(o=s[c])&&o.transition===t&&(u=o.duration*1e3,a=o.delay*1e3,f=o.easing,l=o.value,c in t._node.style||c in e.DOM.CUSTOM_STYLES?(v=c in r&&"get"in r[c]?r[c].get(t,c):n.DEFAULT_GETTER(t,c),p=n.RE_UNITS.exec(v),h=n.RE_UNITS.exec(l),v=p?p[1]:v,m=h?h[1]:l,d=h?h[2]:p?p[2]:"",!d&&n.RE_DEFAULT_UNIT.test(c)&&(d=n.DEFAULT_UNIT),typeof f=="string"&&(f.indexOf("cubic-bezier")>-1?f=f.substring(13,f.length-1).split(","):n.easings[f]&&(f=n.easings[f])),o.from=Number(v),o.to=Number(m),o.unit=d,o.easing=f,o.duration=u+a,o.delay=a):(delete s[c],t._count--))},destroy:function(){this.detachAll(),this._node=null}},!0),e.mix(e.Transition,{_runtimeAttrs:{},RE_DEFAULT_UNIT:/^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i,DEFAULT_UNIT:"px",intervalTime:20,behaviors:{left:{get:function(t,n){return e.DOM._getAttrOffset(t._node,n)}}},DEFAULT_SETTER:function(t,r,i,s,o,u,a,f){i=Number(i),s=Number(s);var l=t._node,c=n.cubicBezier(a,o/u);c=i+c[0]*(s-i);if(l){if(r in l.style||r in e.DOM.CUSTOM_STYLES)f=f||"",e.DOM.setStyle(l,r,c+f)}else t._end()},DEFAULT_GETTER:function(t,n){var r=t._node,i="";if(n in r.style||n in e.DOM.CUSTOM_STYLES)i=e.DOM.getComputedStyle(r,n);return i},_startTimer:function(){n._timer||(n._timer=setInterval(n._runFrame,n.intervalTime))},_stopTimer:function(){clearInterval(n._timer),n._timer=null},_runFrame:function(){var e=!0,t;for(t in n._running)n._running[t]._runFrame&&(e=!1,n
+._running[t]._runFrame());e&&n._stopTimer()},cubicBezier:function(e,t){var n=0,r=0,i=e[0],s=e[1],o=e[2],u=e[3],a=1,f=0,l=a-3*o+3*i-n,c=3*o-6*i+3*n,h=3*i-3*n,p=n,d=f-3*u+3*s-r,v=3*u-6*s+3*r,m=3*s-3*r,g=r,y=((l*t+c)*t+h)*t+p,b=((d*t+v)*t+m)*t+g;return[y,b]},easings:{ease:[.25,0,1,.25],linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},_running:{},_timer:null,RE_UNITS:/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/},!0),n.behaviors.top=n.behaviors.bottom=n.behaviors.right=n.behaviors.left,e.Transition=n},"@VERSION@",{requires:["transition"]}),YUI.add("yui",function(e,t){},"@VERSION@",{use:["yui","oop","dom","event-custom-base","event-base","pluginhost","node","event-delegate","io-base","json-parse","transition","selector-css3","dom-style-ie","querystring-stringify-simple"]});var Y=YUI().use("*");
diff --git a/lib/yuilib/3.9.1/build/simpleyui/simpleyui.js b/lib/yuilib/3.12.0/simpleyui/simpleyui.js
old mode 100644
new mode 100755
similarity index 93%
rename from lib/yuilib/3.9.1/build/simpleyui/simpleyui.js
rename to lib/yuilib/3.12.0/simpleyui/simpleyui.js
index d92d286ea37..4df14f54345
--- a/lib/yuilib/3.9.1/build/simpleyui/simpleyui.js
+++ b/lib/yuilib/3.12.0/simpleyui/simpleyui.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
/**
The YUI module contains the components required for building the YUI seed file.
This includes the script loading mechanism, a simple queue, and the core
@@ -157,7 +163,7 @@ available.
(function() {
var proto, prop,
- VERSION = '3.9.1',
+ VERSION = '3.12.0',
PERIOD = '.',
BASE = 'http://yui.yahooapis.com/',
/*
@@ -1501,6 +1507,7 @@ with any configuration info required for the module.
YUI._getLoadHook = null;
}
+ YUI.Env[VERSION] = {};
}());
@@ -1636,6 +1643,22 @@ supported native console. This function is executed with the YUI instance as its
@since 3.1.0
**/
+/**
+The minimum log level to log messages for. Log levels are defined
+incrementally. Messages greater than or equal to the level specified will
+be shown. All others will be discarded. The order of log levels in
+increasing priority is:
+
+ debug
+ info
+ warn
+ error
+
+@property {String} logLevel
+@default 'debug'
+@since 3.10.0
+**/
+
/**
Callback to execute when `Y.error()` is called. It receives the error message
and a JavaScript error object if one was provided.
@@ -1721,8 +1744,8 @@ relying on ES5 functionality, even when ES5 functionality is available.
/**
Delay the `use` callback until a specific event has passed (`load`, `domready`, `contentready` or `available`)
-@property delayUntil
-@type String|Object
+
+@property {Object|String} delayUntil
@since 3.6.0
@example
@@ -1746,8 +1769,6 @@ Or you can delay until a node is available (with `available` or `contentready`):
// available in the DOM.
});
-@property {Object|String} delayUntil
-@since 3.6.0
**/
YUI.add('yui-base', function (Y, NAME) {
@@ -1788,9 +1809,15 @@ TYPES = {
'[object Error]' : 'error'
},
-SUBREGEX = /\{\s*([^|}]+?)\s*(?:\|([^}]*))?\s*\}/g,
-TRIMREGEX = /^\s+|\s+$/g,
-NATIVE_FN_REGEX = /\{\s*\[(?:native code|function)\]\s*\}/i;
+SUBREGEX = /\{\s*([^|}]+?)\s*(?:\|([^}]*))?\s*\}/g,
+
+WHITESPACE = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF",
+WHITESPACE_CLASS = "[\x09-\x0D\x20\xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+",
+TRIM_LEFT_REGEX = new RegExp("^" + WHITESPACE_CLASS),
+TRIM_RIGHT_REGEX = new RegExp(WHITESPACE_CLASS + "$"),
+TRIMREGEX = new RegExp(TRIM_LEFT_REGEX.source + "|" + TRIM_RIGHT_REGEX.source, "g"),
+
+NATIVE_FN_REGEX = /\{\s*\[(?:native code|function)\]\s*\}/i;
// -- Protected Methods --------------------------------------------------------
@@ -2014,7 +2041,7 @@ L.sub = function(s, o) {
* @param s {string} the string to trim.
* @return {string} the trimmed string.
*/
-L.trim = STRING_PROTO.trim ? function(s) {
+L.trim = L._isNative(STRING_PROTO.trim) && !WHITESPACE.trim() ? function(s) {
return s && s.trim ? s.trim() : s;
} : function (s) {
try {
@@ -2031,10 +2058,10 @@ L.trim = STRING_PROTO.trim ? function(s) {
* @param s {string} the string to trim.
* @return {string} the trimmed string.
*/
-L.trimLeft = STRING_PROTO.trimLeft ? function (s) {
+L.trimLeft = L._isNative(STRING_PROTO.trimLeft) && !WHITESPACE.trimLeft() ? function (s) {
return s.trimLeft();
} : function (s) {
- return s.replace(/^\s+/, '');
+ return s.replace(TRIM_LEFT_REGEX, '');
};
/**
@@ -2044,10 +2071,10 @@ L.trimLeft = STRING_PROTO.trimLeft ? function (s) {
* @param s {string} the string to trim.
* @return {string} the trimmed string.
*/
-L.trimRight = STRING_PROTO.trimRight ? function (s) {
+L.trimRight = L._isNative(STRING_PROTO.trimRight) && !WHITESPACE.trimRight() ? function (s) {
return s.trimRight();
} : function (s) {
- return s.replace(/\s+$/, '');
+ return s.replace(TRIM_RIGHT_REGEX, '');
};
/**
@@ -2149,16 +2176,34 @@ Dedupes an array of strings, returning an array that's guaranteed to contain
only one copy of a given string.
This method differs from `Array.unique()` in that it's optimized for use only
-with strings, whereas `unique` may be used with other types (but is slower).
-Using `dedupe()` with non-string values may result in unexpected behavior.
+with arrays consisting entirely of strings or entirely of numbers, whereas
+`unique` may be used with other value types (but is slower).
+
+Using `dedupe()` with values other than strings or numbers, or with arrays
+containing a mix of strings and numbers, may result in unexpected behavior.
@method dedupe
-@param {String[]} array Array of strings to dedupe.
-@return {Array} Deduped copy of _array_.
+@param {String[]|Number[]} array Array of strings or numbers to dedupe.
+@return {Array} Copy of _array_ containing no duplicate values.
@static
@since 3.4.0
**/
-YArray.dedupe = function (array) {
+YArray.dedupe = Lang._isNative(Object.create) ? function (array) {
+ var hash = Object.create(null),
+ results = [],
+ i, item, len;
+
+ for (i = 0, len = array.length; i < len; ++i) {
+ item = array[i];
+
+ if (!hash[item]) {
+ hash[item] = 1;
+ results.push(item);
+ }
+ }
+
+ return results;
+} : function (array) {
var hash = {},
results = [],
i, item, len;
@@ -2800,7 +2845,7 @@ hasEnumBug = O._hasEnumBug = !{valueOf: 0}.propertyIsEnumerable('valueOf'),
/**
* `true` if this browser incorrectly considers the `prototype` property of
- * functions to be enumerable. Currently known to affect Opera 11.50.
+ * functions to be enumerable. Currently known to affect Opera 11.50 and Android 2.3.x.
*
* @property _hasProtoEnumBug
* @type Boolean
@@ -2844,7 +2889,9 @@ O.hasKey = owns;
* as the order in which they were defined.
*
* This method is an alias for the native ES5 `Object.keys()` method if
- * available.
+ * available and non-buggy. The Opera 11.50 and Android 2.3.x versions of
+ * `Object.keys()` have an inconsistency as they consider `prototype` to be
+ * enumerable, so a non-native shim is used to rectify the difference.
*
* @example
*
@@ -2856,7 +2903,7 @@ O.hasKey = owns;
* @return {String[]} Array of keys.
* @static
*/
-O.keys = Lang._isNative(Object.keys) ? Object.keys : function (obj) {
+O.keys = Lang._isNative(Object.keys) && !hasProtoEnumBug ? Object.keys : function (obj) {
if (!Lang.isObject(obj)) {
throw new TypeError('Object.keys called on a non-object');
}
@@ -3463,17 +3510,25 @@ YUI.Env.parseUA = function(subUA) {
}
}
- m = ua.match(/(Chrome|CrMo|CriOS)\/([^\s]*)/);
- if (m && m[1] && m[2]) {
- o.chrome = numberify(m[2]); // Chrome
- o.safari = 0; //Reset safari back to 0
- if (m[1] === 'CrMo') {
- o.mobile = 'chrome';
- }
+ m = ua.match(/OPR\/(\d+\.\d+)/);
+
+ if (m && m[1]) {
+ // Opera 15+ with Blink (pretends to be both Chrome and Safari)
+ o.opera = numberify(m[1]);
} else {
- m = ua.match(/AdobeAIR\/([^\s]*)/);
- if (m) {
- o.air = m[0]; // Adobe AIR 1.0 or better
+ m = ua.match(/(Chrome|CrMo|CriOS)\/([^\s]*)/);
+
+ if (m && m[1] && m[2]) {
+ o.chrome = numberify(m[2]); // Chrome
+ o.safari = 0; //Reset safari back to 0
+ if (m[1] === 'CrMo') {
+ o.mobile = 'chrome';
+ }
+ } else {
+ m = ua.match(/AdobeAIR\/([^\s]*)/);
+ if (m) {
+ o.air = m[0]; // Adobe AIR 1.0 or better
+ }
}
}
}
@@ -3503,16 +3558,21 @@ YUI.Env.parseUA = function(subUA) {
o.mobile = m[0]; // ex: Opera Mini/2.0.4509/1316
}
} else { // not opera or webkit
- m = ua.match(/MSIE\s([^;]*)/);
- if (m && m[1]) {
- o.ie = numberify(m[1]);
+ m = ua.match(/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/);
+
+ if (m && (m[1] || m[2])) {
+ o.ie = numberify(m[1] || m[2]);
} else { // not opera, webkit, or ie
m = ua.match(/Gecko\/([^\s]*)/);
+
if (m) {
o.gecko = 1; // Gecko detected, look for revision
m = ua.match(/rv:([^\s\)]*)/);
if (m && m[1]) {
o.gecko = numberify(m[1]);
+ if (/Mobile|Tablet/.test(ua)) {
+ o.mobile = "ffos";
+ }
}
}
}
@@ -3643,7 +3703,7 @@ YUI.Env.aliases = {
};
-}, '3.9.1', {"use": ["get", "features", "intl-base", "yui-log", "yui-later"]});
+}, '3.12.0', {"use": ["get", "features", "intl-base", "yui-log", "yui-later"]});
YUI.add('get', function (Y, NAME) {
/*jslint boss:true, expr:true, laxbreak: true */
@@ -4917,7 +4977,7 @@ Transaction.prototype = {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
YUI.add('features', function (Y, NAME) {
var feature_tests = {};
@@ -5325,7 +5385,7 @@ add('load', '22', {
"when": "after"
});
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
YUI.add('intl-base', function (Y, NAME) {
/**
@@ -5413,7 +5473,7 @@ Y.mix(Y.namespace('Intl'), {
});
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
YUI.add('yui-log', function (Y, NAME) {
/**
@@ -5429,9 +5489,9 @@ var INSTANCE = Y,
LOGEVENT = 'yui:log',
UNDEFINED = 'undefined',
LEVELS = { debug: 1,
- info: 1,
- warn: 1,
- error: 1 };
+ info: 2,
+ warn: 4,
+ error: 8 };
/**
* If the 'debug' config is true, a 'yui:log' event will be
@@ -5453,7 +5513,7 @@ var INSTANCE = Y,
* @return {YUI} YUI instance.
*/
INSTANCE.log = function(msg, cat, src, silent) {
- var bail, excl, incl, m, f,
+ var bail, excl, incl, m, f, minlevel,
Y = INSTANCE,
c = Y.config,
publisher = (Y.fire) ? Y : YUI.Env.globalEvents;
@@ -5472,6 +5532,15 @@ INSTANCE.log = function(msg, cat, src, silent) {
} else if (excl && (src in excl)) {
bail = excl[src];
}
+
+ // Determine the current minlevel as defined in configuration
+ Y.config.logLevel = Y.config.logLevel || 'debug';
+ minlevel = LEVELS[Y.config.logLevel.toLowerCase()];
+
+ if (cat in LEVELS && LEVELS[cat] < minlevel) {
+ // Skip this message if the we don't meet the defined minlevel
+ bail = 1;
+ }
}
if (!bail) {
if (c.useBrowserConsole) {
@@ -5524,7 +5593,7 @@ INSTANCE.message = function() {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
YUI.add('yui-later', function (Y, NAME) {
/**
@@ -5602,8 +5671,8 @@ Y.Lang.later = Y.later;
-}, '3.9.1', {"requires": ["yui-base"]});
-YUI.add('yui', function (Y, NAME) {}, '3.9.1', {"use": ["get", "features", "intl-base", "yui-log", "yui-later"]});
+}, '3.12.0', {"requires": ["yui-base"]});
+YUI.add('yui', function (Y, NAME) {}, '3.12.0', {"use": ["get", "features", "intl-base", "yui-log", "yui-later"]});
YUI.add('oop', function (Y, NAME) {
/**
@@ -5839,56 +5908,66 @@ Y.some = function(o, f, c, proto) {
};
/**
- * Deep object/array copy. Function clones are actually
- * wrappers around the original function.
- * Array-like objects are treated as arrays.
- * Primitives are returned untouched. Optionally, a
- * function can be provided to handle other data types,
- * filter keys, validate values, etc.
- *
- * NOTE: Cloning a non-trivial object is a reasonably heavy operation, due to
- * the need to recurrsively iterate down non-primitive properties. Clone
- * should be used only when a deep clone down to leaf level properties
- * is explicitly required.
- *
- * In many cases (for example, when trying to isolate objects used as
- * hashes for configuration properties), a shallow copy, using Y.merge is
- * normally sufficient. If more than one level of isolation is required,
- * Y.merge can be used selectively at each level which needs to be
- * isolated from the original without going all the way to leaf properties.
- *
- * @method clone
- * @param {object} o what to clone.
- * @param {boolean} safe if true, objects will not have prototype
- * items from the source. If false, they will. In this case, the
- * original is initially protected, but the clone is not completely
- * immune from changes to the source object prototype. Also, cloned
- * prototype items that are deleted from the clone will result
- * in the value of the source prototype being exposed. If operating
- * on a non-safe clone, items should be nulled out rather than deleted.
- * @param {function} f optional function to apply to each item in a
- * collection; it will be executed prior to applying the value to
- * the new object. Return false to prevent the copy.
- * @param {object} c optional execution context for f.
- * @param {object} owner Owner object passed when clone is iterating
- * an object. Used to set up context for cloned functions.
- * @param {object} cloned hash of previously cloned objects to avoid
- * multiple clones.
- * @return {Array|Object} the cloned object.
- */
+Deep object/array copy. Function clones are actually wrappers around the
+original function. Array-like objects are treated as arrays. Primitives are
+returned untouched. Optionally, a function can be provided to handle other data
+types, filter keys, validate values, etc.
+
+**Note:** Cloning a non-trivial object is a reasonably heavy operation, due to
+the need to recursively iterate down non-primitive properties. Clone should be
+used only when a deep clone down to leaf level properties is explicitly
+required. This method will also
+
+In many cases (for example, when trying to isolate objects used as hashes for
+configuration properties), a shallow copy, using `Y.merge()` is normally
+sufficient. If more than one level of isolation is required, `Y.merge()` can be
+used selectively at each level which needs to be isolated from the original
+without going all the way to leaf properties.
+
+@method clone
+@param {object} o what to clone.
+@param {boolean} safe if true, objects will not have prototype items from the
+ source. If false, they will. In this case, the original is initially
+ protected, but the clone is not completely immune from changes to the source
+ object prototype. Also, cloned prototype items that are deleted from the
+ clone will result in the value of the source prototype being exposed. If
+ operating on a non-safe clone, items should be nulled out rather than
+ deleted.
+@param {function} f optional function to apply to each item in a collection; it
+ will be executed prior to applying the value to the new object.
+ Return false to prevent the copy.
+@param {object} c optional execution context for f.
+@param {object} owner Owner object passed when clone is iterating an object.
+ Used to set up context for cloned functions.
+@param {object} cloned hash of previously cloned objects to avoid multiple
+ clones.
+@return {Array|Object} the cloned object.
+**/
Y.clone = function(o, safe, f, c, owner, cloned) {
+ var o2, marked, stamp;
+
+ // Does not attempt to clone:
+ //
+ // * Non-typeof-object values, "primitive" values don't need cloning.
+ //
+ // * YUI instances, cloning complex object like YUI instances is not
+ // advised, this is like cloning the world.
+ //
+ // * DOM nodes (#2528250), common host objects like DOM nodes cannot be
+ // "subclassed" in Firefox and old versions of IE. Trying to use
+ // `Object.create()` or `Y.extend()` on a DOM node will throw an error in
+ // these browsers.
+ //
+ // Instad, the passed-in `o` will be return as-is when it matches one of the
+ // above criteria.
+ if (!L.isObject(o) ||
+ Y.instanceOf(o, YUI) ||
+ (o.addEventListener || o.attachEvent)) {
- if (!L.isObject(o)) {
return o;
}
- // @todo cloning YUI instances doesn't currently work
- if (Y.instanceOf(o, YUI)) {
- return o;
- }
-
- var o2, marked = cloned || {}, stamp,
- yeach = Y.each;
+ marked = cloned || {};
switch (L.type(o)) {
case 'date':
@@ -5919,23 +5998,20 @@ Y.clone = function(o, safe, f, c, owner, cloned) {
marked[stamp] = o;
}
- // #2528250 don't try to clone element properties
- if (!o.addEventListener && !o.attachEvent) {
- yeach(o, function(v, k) {
-if ((k || k === 0) && (!f || (f.call(c || this, v, k, this, o) !== false))) {
- if (k !== CLONE_MARKER) {
- if (k == 'prototype') {
- // skip the prototype
- // } else if (o[k] === o) {
- // this[k] = this;
- } else {
- this[k] =
- Y.clone(v, safe, f, c, owner || o, marked);
- }
+ Y.each(o, function(v, k) {
+ if ((k || k === 0) && (!f || (f.call(c || this, v, k, this, o) !== false))) {
+ if (k !== CLONE_MARKER) {
+ if (k == 'prototype') {
+ // skip the prototype
+ // } else if (o[k] === o) {
+ // this[k] = this;
+ } else {
+ this[k] =
+ Y.clone(v, safe, f, c, owner || o, marked);
}
}
- }, o2);
- }
+ }
+ }, o2);
if (!cloned) {
Y.Object.each(marked, function(v, k) {
@@ -5953,7 +6029,6 @@ if ((k || k === 0) && (!f || (f.call(c || this, v, k, this, o) !== false))) {
return o2;
};
-
/**
* Returns a function that will execute the supplied function in the
* supplied object's context, optionally adding any additional
@@ -6004,7 +6079,7 @@ Y.rbind = function(f, c) {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
YUI.add('features', function (Y, NAME) {
var feature_tests = {};
@@ -6412,7 +6487,7 @@ add('load', '22', {
"when": "after"
});
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
YUI.add('dom-core', function (Y, NAME) {
var NODE_TYPE = 'nodeType',
@@ -6801,7 +6876,7 @@ Y_DOM = {
Y.DOM = Y_DOM;
-}, '3.9.1', {"requires": ["oop", "features"]});
+}, '3.12.0', {"requires": ["oop", "features"]});
YUI.add('dom-base', function (Y, NAME) {
/**
@@ -7485,7 +7560,499 @@ Y.mix(Y.DOM, {
});
-}, '3.9.1', {"requires": ["dom-core"]});
+}, '3.12.0', {"requires": ["dom-core"]});
+YUI.add('color-base', function (Y, NAME) {
+
+/**
+Color provides static methods for color conversion.
+
+ Y.Color.toRGB('f00'); // rgb(255, 0, 0)
+
+ Y.Color.toHex('rgb(255, 255, 0)'); // #ffff00
+
+@module color
+@submodule color-base
+@class Color
+@since 3.8.0
+**/
+
+var REGEX_HEX = /^#?([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})(\ufffe)?/,
+ REGEX_HEX3 = /^#?([\da-fA-F]{1})([\da-fA-F]{1})([\da-fA-F]{1})(\ufffe)?/,
+ REGEX_RGB = /rgba?\(([\d]{1,3}), ?([\d]{1,3}), ?([\d]{1,3}),? ?([.\d]*)?\)/,
+ TYPES = { 'HEX': 'hex', 'RGB': 'rgb', 'RGBA': 'rgba' },
+ CONVERTS = { 'hex': 'toHex', 'rgb': 'toRGB', 'rgba': 'toRGBA' };
+
+
+Y.Color = {
+ /**
+ @static
+ @property KEYWORDS
+ @type Object
+ @since 3.8.0
+ **/
+ KEYWORDS: {
+ 'black': '000', 'silver': 'c0c0c0', 'gray': '808080', 'white': 'fff',
+ 'maroon': '800000', 'red': 'f00', 'purple': '800080', 'fuchsia': 'f0f',
+ 'green': '008000', 'lime': '0f0', 'olive': '808000', 'yellow': 'ff0',
+ 'navy': '000080', 'blue': '00f', 'teal': '008080', 'aqua': '0ff'
+ },
+
+ /**
+ NOTE: `(\ufffe)?` is added to the Regular Expression to carve out a
+ place for the alpha channel that is returned from toArray
+ without compromising any usage of the Regular Expression
+
+ @static
+ @property REGEX_HEX
+ @type RegExp
+ @default /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})(\ufffe)?/
+ @since 3.8.0
+ **/
+ REGEX_HEX: REGEX_HEX,
+
+ /**
+ NOTE: `(\ufffe)?` is added to the Regular Expression to carve out a
+ place for the alpha channel that is returned from toArray
+ without compromising any usage of the Regular Expression
+
+ @static
+ @property REGEX_HEX3
+ @type RegExp
+ @default /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})(\ufffe)?/
+ @since 3.8.0
+ **/
+ REGEX_HEX3: REGEX_HEX3,
+
+ /**
+ @static
+ @property REGEX_RGB
+ @type RegExp
+ @default /rgba?\(([0-9]{1,3}), ?([0-9]{1,3}), ?([0-9]{1,3}),? ?([.0-9]{1,3})?\)/
+ @since 3.8.0
+ **/
+ REGEX_RGB: REGEX_RGB,
+
+ re_RGB: REGEX_RGB,
+
+ re_hex: REGEX_HEX,
+
+ re_hex3: REGEX_HEX3,
+
+ /**
+ @static
+ @property STR_HEX
+ @type String
+ @default #{*}{*}{*}
+ @since 3.8.0
+ **/
+ STR_HEX: '#{*}{*}{*}',
+
+ /**
+ @static
+ @property STR_RGB
+ @type String
+ @default rgb({*}, {*}, {*})
+ @since 3.8.0
+ **/
+ STR_RGB: 'rgb({*}, {*}, {*})',
+
+ /**
+ @static
+ @property STR_RGBA
+ @type String
+ @default rgba({*}, {*}, {*}, {*})
+ @since 3.8.0
+ **/
+ STR_RGBA: 'rgba({*}, {*}, {*}, {*})',
+
+ /**
+ @static
+ @property TYPES
+ @type Object
+ @default {'rgb':'rgb', 'rgba':'rgba'}
+ @since 3.8.0
+ **/
+ TYPES: TYPES,
+
+ /**
+ @static
+ @property CONVERTS
+ @type Object
+ @default {}
+ @since 3.8.0
+ **/
+ CONVERTS: CONVERTS,
+
+ /**
+ Converts the provided string to the provided type.
+ You can use the `Y.Color.TYPES` to get a valid `to` type.
+ If the color cannot be converted, the original color will be returned.
+
+ @public
+ @method convert
+ @param {String} str
+ @param {String} to
+ @return {String}
+ @since 3.8.0
+ **/
+ convert: function (str, to) {
+ var convert = Y.Color.CONVERTS[to.toLowerCase()],
+ clr = str;
+
+ if (convert && Y.Color[convert]) {
+ clr = Y.Color[convert](str);
+ }
+
+ return clr;
+ },
+
+ /**
+ Converts provided color value to a hex value string
+
+ @public
+ @method toHex
+ @param {String} str Hex or RGB value string
+ @return {String} returns array of values or CSS string if options.css is true
+ @since 3.8.0
+ **/
+ toHex: function (str) {
+ var clr = Y.Color._convertTo(str, 'hex'),
+ isTransparent = clr.toLowerCase() === 'transparent';
+
+ if (clr.charAt(0) !== '#' && !isTransparent) {
+ clr = '#' + clr;
+ }
+
+ return isTransparent ? clr.toLowerCase() : clr.toUpperCase();
+ },
+
+ /**
+ Converts provided color value to an RGB value string
+ @public
+ @method toRGB
+ @param {String} str Hex or RGB value string
+ @return {String}
+ @since 3.8.0
+ **/
+ toRGB: function (str) {
+ var clr = Y.Color._convertTo(str, 'rgb');
+ return clr.toLowerCase();
+ },
+
+ /**
+ Converts provided color value to an RGB value string
+ @public
+ @method toRGBA
+ @param {String} str Hex or RGB value string
+ @return {String}
+ @since 3.8.0
+ **/
+ toRGBA: function (str) {
+ var clr = Y.Color._convertTo(str, 'rgba' );
+ return clr.toLowerCase();
+ },
+
+ /**
+ Converts the provided color string to an array of values where the
+ last value is the alpha value. Will return an empty array if
+ the provided string is not able to be parsed.
+
+ NOTE: `(\ufffe)?` is added to `HEX` and `HEX3` Regular Expressions to
+ carve out a place for the alpha channel that is returned from
+ toArray without compromising any usage of the Regular Expression
+
+ Y.Color.toArray('fff'); // ['ff', 'ff', 'ff', 1]
+ Y.Color.toArray('rgb(0, 0, 0)'); // ['0', '0', '0', 1]
+ Y.Color.toArray('rgba(0, 0, 0, 0)'); // ['0', '0', '0', 1]
+
+
+
+ @public
+ @method toArray
+ @param {String} str
+ @return {Array}
+ @since 3.8.0
+ **/
+ toArray: function(str) {
+ // parse with regex and return "matches" array
+ var type = Y.Color.findType(str).toUpperCase(),
+ regex,
+ arr,
+ length,
+ lastItem;
+
+ if (type === 'HEX' && str.length < 5) {
+ type = 'HEX3';
+ }
+
+ if (type.charAt(type.length - 1) === 'A') {
+ type = type.slice(0, -1);
+ }
+
+ regex = Y.Color['REGEX_' + type];
+
+ if (regex) {
+ arr = regex.exec(str) || [];
+ length = arr.length;
+
+ if (length) {
+
+ arr.shift();
+ length--;
+
+ if (type === 'HEX3') {
+ arr[0] += arr[0];
+ arr[1] += arr[1];
+ arr[2] += arr[2];
+ }
+
+ lastItem = arr[length - 1];
+ if (!lastItem) {
+ arr[length - 1] = 1;
+ }
+ }
+ }
+
+ return arr;
+
+ },
+
+ /**
+ Converts the array of values to a string based on the provided template.
+ @public
+ @method fromArray
+ @param {Array} arr
+ @param {String} template
+ @return {String}
+ @since 3.8.0
+ **/
+ fromArray: function(arr, template) {
+ arr = arr.concat();
+
+ if (typeof template === 'undefined') {
+ return arr.join(', ');
+ }
+
+ var replace = '{*}';
+
+ template = Y.Color['STR_' + template.toUpperCase()];
+
+ if (arr.length === 3 && template.match(/\{\*\}/g).length === 4) {
+ arr.push(1);
+ }
+
+ while ( template.indexOf(replace) >= 0 && arr.length > 0) {
+ template = template.replace(replace, arr.shift());
+ }
+
+ return template;
+ },
+
+ /**
+ Finds the value type based on the str value provided.
+ @public
+ @method findType
+ @param {String} str
+ @return {String}
+ @since 3.8.0
+ **/
+ findType: function (str) {
+ if (Y.Color.KEYWORDS[str]) {
+ return 'keyword';
+ }
+
+ var index = str.indexOf('('),
+ key;
+
+ if (index > 0) {
+ key = str.substr(0, index);
+ }
+
+ if (key && Y.Color.TYPES[key.toUpperCase()]) {
+ return Y.Color.TYPES[key.toUpperCase()];
+ }
+
+ return 'hex';
+
+ }, // return 'keyword', 'hex', 'rgb'
+
+ /**
+ Retrives the alpha channel from the provided string. If no alpha
+ channel is present, `1` will be returned.
+ @protected
+ @method _getAlpha
+ @param {String} clr
+ @return {Number}
+ @since 3.8.0
+ **/
+ _getAlpha: function (clr) {
+ var alpha,
+ arr = Y.Color.toArray(clr);
+
+ if (arr.length > 3) {
+ alpha = arr.pop();
+ }
+
+ return +alpha || 1;
+ },
+
+ /**
+ Returns the hex value string if found in the KEYWORDS object
+ @protected
+ @method _keywordToHex
+ @param {String} clr
+ @return {String}
+ @since 3.8.0
+ **/
+ _keywordToHex: function (clr) {
+ var keyword = Y.Color.KEYWORDS[clr];
+
+ if (keyword) {
+ return keyword;
+ }
+ },
+
+ /**
+ Converts the provided color string to the value type provided as `to`
+ @protected
+ @method _convertTo
+ @param {String} clr
+ @param {String} to
+ @return {String}
+ @since 3.8.0
+ **/
+ _convertTo: function(clr, to) {
+
+ if (clr === 'transparent') {
+ return clr;
+ }
+
+ var from = Y.Color.findType(clr),
+ originalTo = to,
+ needsAlpha,
+ alpha,
+ method,
+ ucTo;
+
+ if (from === 'keyword') {
+ clr = Y.Color._keywordToHex(clr);
+ from = 'hex';
+ }
+
+ if (from === 'hex' && clr.length < 5) {
+ if (clr.charAt(0) === '#') {
+ clr = clr.substr(1);
+ }
+
+ clr = '#' + clr.charAt(0) + clr.charAt(0) +
+ clr.charAt(1) + clr.charAt(1) +
+ clr.charAt(2) + clr.charAt(2);
+ }
+
+ if (from === to) {
+ return clr;
+ }
+
+ if (from.charAt(from.length - 1) === 'a') {
+ from = from.slice(0, -1);
+ }
+
+ needsAlpha = (to.charAt(to.length - 1) === 'a');
+ if (needsAlpha) {
+ to = to.slice(0, -1);
+ alpha = Y.Color._getAlpha(clr);
+ }
+
+ ucTo = to.charAt(0).toUpperCase() + to.substr(1).toLowerCase();
+ method = Y.Color['_' + from + 'To' + ucTo ];
+
+ // check to see if need conversion to rgb first
+ // check to see if there is a direct conversion method
+ // convertions are: hex <-> rgb <-> hsl
+ if (!method) {
+ if (from !== 'rgb' && to !== 'rgb') {
+ clr = Y.Color['_' + from + 'ToRgb'](clr);
+ from = 'rgb';
+ method = Y.Color['_' + from + 'To' + ucTo ];
+ }
+ }
+
+ if (method) {
+ clr = ((method)(clr, needsAlpha));
+ }
+
+ // process clr from arrays to strings after conversions if alpha is needed
+ if (needsAlpha) {
+ if (!Y.Lang.isArray(clr)) {
+ clr = Y.Color.toArray(clr);
+ }
+ clr.push(alpha);
+ clr = Y.Color.fromArray(clr, originalTo.toUpperCase());
+ }
+
+ return clr;
+ },
+
+ /**
+ Processes the hex string into r, g, b values. Will return values as
+ an array, or as an rgb string.
+ @protected
+ @method _hexToRgb
+ @param {String} str
+ @param {Boolean} [toArray]
+ @return {String|Array}
+ @since 3.8.0
+ **/
+ _hexToRgb: function (str, toArray) {
+ var r, g, b;
+
+ /*jshint bitwise:false*/
+ if (str.charAt(0) === '#') {
+ str = str.substr(1);
+ }
+
+ str = parseInt(str, 16);
+
+ r = str >> 16;
+ g = str >> 8 & 0xFF;
+ b = str & 0xFF;
+
+ if (toArray) {
+ return [r, g, b];
+ }
+
+ return 'rgb(' + r + ', ' + g + ', ' + b + ')';
+ },
+
+ /**
+ Processes the rgb string into r, g, b values. Will return values as
+ an array, or as a hex string.
+ @protected
+ @method _rgbToHex
+ @param {String} str
+ @param {Boolean} [toArray]
+ @return {String|Array}
+ @since 3.8.0
+ **/
+ _rgbToHex: function (str) {
+ /*jshint bitwise:false*/
+ var rgb = Y.Color.toArray(str),
+ hex = rgb[2] | (rgb[1] << 8) | (rgb[0] << 16);
+
+ hex = (+hex).toString(16);
+
+ while (hex.length < 6) {
+ hex = '0' + hex;
+ }
+
+ return '#' + hex;
+ }
+
+};
+
+
+
+}, '3.12.0', {"requires": ["yui-base"]});
YUI.add('dom-style', function (Y, NAME) {
(function(Y) {
@@ -7749,83 +8316,9 @@ Y_DOM.CUSTOM_STYLES.transformOrigin = {
})(Y);
-(function(Y) {
-var PARSE_INT = parseInt,
- RE = RegExp;
-
-Y.Color = {
- KEYWORDS: {
- black: '000',
- silver: 'c0c0c0',
- gray: '808080',
- white: 'fff',
- maroon: '800000',
- red: 'f00',
- purple: '800080',
- fuchsia: 'f0f',
- green: '008000',
- lime: '0f0',
- olive: '808000',
- yellow: 'ff0',
- navy: '000080',
- blue: '00f',
- teal: '008080',
- aqua: '0ff'
- },
-
- re_RGB: /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,
- re_hex: /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,
- re_hex3: /([0-9A-F])/gi,
-
- toRGB: function(val) {
- if (!Y.Color.re_RGB.test(val)) {
- val = Y.Color.toHex(val);
- }
-
- if(Y.Color.re_hex.exec(val)) {
- val = 'rgb(' + [
- PARSE_INT(RE.$1, 16),
- PARSE_INT(RE.$2, 16),
- PARSE_INT(RE.$3, 16)
- ].join(', ') + ')';
- }
- return val;
- },
-
- toHex: function(val) {
- val = Y.Color.KEYWORDS[val] || val;
- if (Y.Color.re_RGB.exec(val)) {
- val = [
- Number(RE.$1).toString(16),
- Number(RE.$2).toString(16),
- Number(RE.$3).toString(16)
- ];
-
- for (var i = 0; i < val.length; i++) {
- if (val[i].length < 2) {
- val[i] = '0' + val[i];
- }
- }
-
- val = val.join('');
- }
-
- if (val.length < 6) {
- val = val.replace(Y.Color.re_hex3, '$1$1');
- }
-
- if (val !== 'transparent' && val.indexOf('#') < 0) {
- val = '#' + val;
- }
-
- return val.toUpperCase();
- }
-};
-})(Y);
-
-}, '3.9.1', {"requires": ["dom-base"]});
+}, '3.12.0', {"requires": ["dom-base", "color-base"]});
YUI.add('dom-style-ie', function (Y, NAME) {
(function(Y) {
@@ -8128,7 +8621,7 @@ if (!testFeature('style', 'computedStyle')) {
})(Y);
-}, '3.9.1', {"requires": ["dom-style"]});
+}, '3.12.0', {"requires": ["dom-style"]});
YUI.add('dom-screen', function (Y, NAME) {
(function(Y) {
@@ -8733,7 +9226,7 @@ Y.mix(DOM, {
})(Y);
-}, '3.9.1', {"requires": ["dom-base", "dom-style"]});
+}, '3.12.0', {"requires": ["dom-base", "dom-style"]});
YUI.add('selector-native', function (Y, NAME) {
(function(Y) {
@@ -8974,8 +9467,11 @@ var Selector = {
},
_nativeQuery: function(selector, root, one) {
- if (Y.UA.webkit && selector.indexOf(':checked') > -1 &&
- (Y.Selector.pseudos && Y.Selector.pseudos.checked)) { // webkit (chrome, safari) fails to pick up "selected" with "checked"
+ if (
+ (Y.UA.webkit || Y.UA.opera) && // webkit (chrome, safari) and Opera
+ selector.indexOf(':checked') > -1 && // fail to pick up "selected" with ":checked"
+ (Y.Selector.pseudos && Y.Selector.pseudos.checked)
+ ) {
return Y.Selector.query(selector, root, one, true); // redo with skipNative true to try brute query
}
try {
@@ -9103,12 +9599,12 @@ Y.mix(Y.Selector, Selector, true);
})(Y);
-}, '3.9.1', {"requires": ["dom-base"]});
+}, '3.12.0', {"requires": ["dom-base"]});
YUI.add('selector', function (Y, NAME) {
-}, '3.9.1', {"requires": ["selector-native"]});
+}, '3.12.0', {"requires": ["selector-native"]});
YUI.add('event-custom-base', function (Y, NAME) {
/**
@@ -9146,12 +9642,12 @@ DO = {
* Cache of objects touched by the utility
* @property objs
* @static
- * @deprecated Since 3.6.0. The `_yuiaop` property on the AOP'd object
- * replaces the role of this property, but is considered to be private, and
+ * @deprecated Since 3.6.0. The `_yuiaop` property on the AOP'd object
+ * replaces the role of this property, but is considered to be private, and
* is only mentioned to provide a migration path.
- *
- * If you have a use case which warrants migration to the _yuiaop property,
- * please file a ticket to let us know what it's used for and we can see if
+ *
+ * If you have a use case which warrants migration to the _yuiaop property,
+ * please file a ticket to let us know what it's used for and we can see if
* we need to expose hooks for that functionality more formally.
*/
objs: null,
@@ -9285,9 +9781,6 @@ DO = {
if (handle.detach) {
handle.detach();
}
- },
-
- _unload: function(e, me) {
}
};
@@ -9413,10 +9906,10 @@ DO.Method.prototype.exec = function () {
if (af.hasOwnProperty(i)) {
newRet = af[i].apply(this.obj, args);
// Stop processing if a Halt object is returned
- if (newRet && newRet.constructor == DO.Halt) {
+ if (newRet && newRet.constructor === DO.Halt) {
return newRet.retVal;
// Check for a new return value
- } else if (newRet && newRet.constructor == DO.AlterReturn) {
+ } else if (newRet && newRet.constructor === DO.AlterReturn) {
ret = newRet.newRetVal;
// Update the static retval state
DO.currentRetVal = ret;
@@ -9501,9 +9994,6 @@ DO.Error = DO.Halt;
//////////////////////////////////////////////////////////////////////////
-// Y["Event"] && Y.Event.addListener(window, "unload", Y.Do._unload, Y.Do);
-
-
/**
* Custom event engine, DOM event listener abstraction layer, synthetic DOM
* events.
@@ -9541,7 +10031,7 @@ var YArray = Y.Array,
CONFIGS_HASH = YArray.hash(CONFIGS),
- nativeSlice = Array.prototype.slice,
+ nativeSlice = Array.prototype.slice,
YUI3_SIGNATURE = 9,
YUI_LOG = 'yui:log',
@@ -9550,7 +10040,7 @@ var YArray = Y.Array,
var p;
for (p in s) {
- if (CONFIGS_HASH[p] && (ov || !(p in r))) {
+ if (CONFIGS_HASH[p] && (ov || !(p in r))) {
r[p] = s[p];
}
}
@@ -9564,258 +10054,69 @@ var YArray = Y.Array,
*
* @param {String} type The type of event, which is passed to the callback
* when the event fires.
- * @param {object} o configuration object.
+ * @param {object} defaults configuration object.
* @class CustomEvent
* @constructor
*/
-Y.CustomEvent = function(type, o) {
+
+ /**
+ * The type of event, returned to subscribers when the event fires
+ * @property type
+ * @type string
+ */
+
+/**
+ * By default all custom events are logged in the debug build, set silent
+ * to true to disable debug outpu for this event.
+ * @property silent
+ * @type boolean
+ */
+
+Y.CustomEvent = function(type, defaults) {
this._kds = Y.CustomEvent.keepDeprecatedSubs;
- o = o || {};
+ this.id = Y.guid();
- this.id = Y.stamp(this);
-
- /**
- * The type of event, returned to subscribers when the event fires
- * @property type
- * @type string
- */
this.type = type;
+ this.silent = this.logSystem = (type === YUI_LOG);
- /**
- * The context the the event will fire from by default. Defaults to the YUI
- * instance.
- * @property context
- * @type object
- */
- this.context = Y;
-
- /**
- * Monitor when an event is attached or detached.
- *
- * @property monitored
- * @type boolean
- */
- // this.monitored = false;
-
- this.logSystem = (type == YUI_LOG);
-
- /**
- * If 0, this event does not broadcast. If 1, the YUI instance is notified
- * every time this event fires. If 2, the YUI instance and the YUI global
- * (if event is enabled on the global) are notified every time this event
- * fires.
- * @property broadcast
- * @type int
- */
- // this.broadcast = 0;
-
- /**
- * By default all custom events are logged in the debug build, set silent
- * to true to disable debug outpu for this event.
- * @property silent
- * @type boolean
- */
- this.silent = this.logSystem;
-
- /**
- * Specifies whether this event should be queued when the host is actively
- * processing an event. This will effect exectution order of the callbacks
- * for the various events.
- * @property queuable
- * @type boolean
- * @default false
- */
- // this.queuable = false;
-
- /**
- * The subscribers to this event
- * @property subscribers
- * @type Subscriber {}
- * @deprecated
- */
if (this._kds) {
+ /**
+ * The subscribers to this event
+ * @property subscribers
+ * @type Subscriber {}
+ * @deprecated
+ */
+
+ /**
+ * 'After' subscribers
+ * @property afters
+ * @type Subscriber {}
+ * @deprecated
+ */
this.subscribers = {};
- }
-
- /**
- * The subscribers to this event
- * @property _subscribers
- * @type Subscriber []
- * @private
- */
- this._subscribers = [];
-
- /**
- * 'After' subscribers
- * @property afters
- * @type Subscriber {}
- */
- if (this._kds) {
this.afters = {};
}
- /**
- * 'After' subscribers
- * @property _afters
- * @type Subscriber []
- * @private
- */
- this._afters = [];
-
- /**
- * This event has fired if true
- *
- * @property fired
- * @type boolean
- * @default false;
- */
- // this.fired = false;
-
- /**
- * An array containing the arguments the custom event
- * was last fired with.
- * @property firedWith
- * @type Array
- */
- // this.firedWith;
-
- /**
- * This event should only fire one time if true, and if
- * it has fired, any new subscribers should be notified
- * immediately.
- *
- * @property fireOnce
- * @type boolean
- * @default false;
- */
- // this.fireOnce = false;
-
- /**
- * fireOnce listeners will fire syncronously unless async
- * is set to true
- * @property async
- * @type boolean
- * @default false
- */
- //this.async = false;
-
- /**
- * Flag for stopPropagation that is modified during fire()
- * 1 means to stop propagation to bubble targets. 2 means
- * to also stop additional subscribers on this target.
- * @property stopped
- * @type int
- */
- // this.stopped = 0;
-
- /**
- * Flag for preventDefault that is modified during fire().
- * if it is not 0, the default behavior for this event
- * @property prevented
- * @type int
- */
- // this.prevented = 0;
-
- /**
- * Specifies the host for this custom event. This is used
- * to enable event bubbling
- * @property host
- * @type EventTarget
- */
- // this.host = null;
-
- /**
- * The default function to execute after event listeners
- * have fire, but only if the default action was not
- * prevented.
- * @property defaultFn
- * @type Function
- */
- // this.defaultFn = null;
-
- /**
- * The function to execute if a subscriber calls
- * stopPropagation or stopImmediatePropagation
- * @property stoppedFn
- * @type Function
- */
- // this.stoppedFn = null;
-
- /**
- * The function to execute if a subscriber calls
- * preventDefault
- * @property preventedFn
- * @type Function
- */
- // this.preventedFn = null;
-
- /**
- * Specifies whether or not this event's default function
- * can be cancelled by a subscriber by executing preventDefault()
- * on the event facade
- * @property preventable
- * @type boolean
- * @default true
- */
- this.preventable = true;
-
- /**
- * Specifies whether or not a subscriber can stop the event propagation
- * via stopPropagation(), stopImmediatePropagation(), or halt()
- *
- * Events can only bubble if emitFacade is true.
- *
- * @property bubbles
- * @type boolean
- * @default true
- */
- this.bubbles = true;
-
- /**
- * Supports multiple options for listener signatures in order to
- * port YUI 2 apps.
- * @property signature
- * @type int
- * @default 9
- */
- this.signature = YUI3_SIGNATURE;
-
- // this.subCount = 0;
- // this.afterCount = 0;
-
- // this.hasSubscribers = false;
- // this.hasAfters = false;
-
- /**
- * If set to true, the custom event will deliver an EventFacade object
- * that is similar to a DOM event object.
- * @property emitFacade
- * @type boolean
- * @default false
- */
- // this.emitFacade = false;
-
- this.applyConfig(o, true);
-
- // this.log("Creating " + this.type);
-
+ if (defaults) {
+ mixConfigs(this, defaults, true);
+ }
};
/**
* Static flag to enable population of the `subscribers`
* and `afters` properties held on a `CustomEvent` instance.
- *
- * These properties were changed to private properties (`_subscribers` and `_afters`), and
- * converted from objects to arrays for performance reasons.
*
- * Setting this property to true will populate the deprecated `subscribers` and `afters`
+ * These properties were changed to private properties (`_subscribers` and `_afters`), and
+ * converted from objects to arrays for performance reasons.
+ *
+ * Setting this property to true will populate the deprecated `subscribers` and `afters`
* properties for people who may be using them (which is expected to be rare). There will
* be a performance hit, compared to the new array based implementation.
*
* If you are using these deprecated properties for a use case which the public API
- * does not support, please file an enhancement request, and we can provide an alternate
+ * does not support, please file an enhancement request, and we can provide an alternate
* public implementation which doesn't have the performance cost required to maintiain the
* properties as objects.
*
@@ -9834,6 +10135,169 @@ Y.CustomEvent.prototype = {
constructor: Y.CustomEvent,
+ /**
+ * Monitor when an event is attached or detached.
+ *
+ * @property monitored
+ * @type boolean
+ */
+
+ /**
+ * If 0, this event does not broadcast. If 1, the YUI instance is notified
+ * every time this event fires. If 2, the YUI instance and the YUI global
+ * (if event is enabled on the global) are notified every time this event
+ * fires.
+ * @property broadcast
+ * @type int
+ */
+
+ /**
+ * Specifies whether this event should be queued when the host is actively
+ * processing an event. This will effect exectution order of the callbacks
+ * for the various events.
+ * @property queuable
+ * @type boolean
+ * @default false
+ */
+
+ /**
+ * This event has fired if true
+ *
+ * @property fired
+ * @type boolean
+ * @default false;
+ */
+
+ /**
+ * An array containing the arguments the custom event
+ * was last fired with.
+ * @property firedWith
+ * @type Array
+ */
+
+ /**
+ * This event should only fire one time if true, and if
+ * it has fired, any new subscribers should be notified
+ * immediately.
+ *
+ * @property fireOnce
+ * @type boolean
+ * @default false;
+ */
+
+ /**
+ * fireOnce listeners will fire syncronously unless async
+ * is set to true
+ * @property async
+ * @type boolean
+ * @default false
+ */
+
+ /**
+ * Flag for stopPropagation that is modified during fire()
+ * 1 means to stop propagation to bubble targets. 2 means
+ * to also stop additional subscribers on this target.
+ * @property stopped
+ * @type int
+ */
+
+ /**
+ * Flag for preventDefault that is modified during fire().
+ * if it is not 0, the default behavior for this event
+ * @property prevented
+ * @type int
+ */
+
+ /**
+ * Specifies the host for this custom event. This is used
+ * to enable event bubbling
+ * @property host
+ * @type EventTarget
+ */
+
+ /**
+ * The default function to execute after event listeners
+ * have fire, but only if the default action was not
+ * prevented.
+ * @property defaultFn
+ * @type Function
+ */
+
+ /**
+ * The function to execute if a subscriber calls
+ * stopPropagation or stopImmediatePropagation
+ * @property stoppedFn
+ * @type Function
+ */
+
+ /**
+ * The function to execute if a subscriber calls
+ * preventDefault
+ * @property preventedFn
+ * @type Function
+ */
+
+ /**
+ * The subscribers to this event
+ * @property _subscribers
+ * @type Subscriber []
+ * @private
+ */
+
+ /**
+ * 'After' subscribers
+ * @property _afters
+ * @type Subscriber []
+ * @private
+ */
+
+ /**
+ * If set to true, the custom event will deliver an EventFacade object
+ * that is similar to a DOM event object.
+ * @property emitFacade
+ * @type boolean
+ * @default false
+ */
+
+ /**
+ * Supports multiple options for listener signatures in order to
+ * port YUI 2 apps.
+ * @property signature
+ * @type int
+ * @default 9
+ */
+ signature : YUI3_SIGNATURE,
+
+ /**
+ * The context the the event will fire from by default. Defaults to the YUI
+ * instance.
+ * @property context
+ * @type object
+ */
+ context : Y,
+
+ /**
+ * Specifies whether or not this event's default function
+ * can be cancelled by a subscriber by executing preventDefault()
+ * on the event facade
+ * @property preventable
+ * @type boolean
+ * @default true
+ */
+ preventable : true,
+
+ /**
+ * Specifies whether or not a subscriber can stop the event propagation
+ * via stopPropagation(), stopImmediatePropagation(), or halt()
+ *
+ * Events can only bubble if emitFacade is true.
+ *
+ * @property bubbles
+ * @type boolean
+ * @default true
+ */
+ bubbles : true,
+
/**
* Returns the number of subscribers for this event as the sum of the on()
* subscribers and after() subscribers.
@@ -9842,15 +10306,35 @@ Y.CustomEvent.prototype = {
* @return Number
*/
hasSubs: function(when) {
- var s = this._subscribers.length, a = this._afters.length, sib = this.sibling;
+ var s = 0,
+ a = 0,
+ subs = this._subscribers,
+ afters = this._afters,
+ sib = this.sibling;
+
+ if (subs) {
+ s = subs.length;
+ }
+
+ if (afters) {
+ a = afters.length;
+ }
if (sib) {
- s += sib._subscribers.length;
- a += sib._afters.length;
+ subs = sib._subscribers;
+ afters = sib._afters;
+
+ if (subs) {
+ s += subs.length;
+ }
+
+ if (afters) {
+ a += afters.length;
+ }
}
if (when) {
- return (when == 'after') ? a : s;
+ return (when === 'after') ? a : s;
}
return (s + a);
@@ -9878,12 +10362,47 @@ Y.CustomEvent.prototype = {
* @return {Array} first item is the on subscribers, second the after.
*/
getSubs: function() {
- var s = this._subscribers, a = this._afters, sib = this.sibling;
- s = (sib) ? s.concat(sib._subscribers) : s.concat();
- a = (sib) ? a.concat(sib._afters) : a.concat();
+ var sibling = this.sibling,
+ subs = this._subscribers,
+ afters = this._afters,
+ siblingSubs,
+ siblingAfters;
- return [s, a];
+ if (sibling) {
+ siblingSubs = sibling._subscribers;
+ siblingAfters = sibling._afters;
+ }
+
+ if (siblingSubs) {
+ if (subs) {
+ subs = subs.concat(siblingSubs);
+ } else {
+ subs = siblingSubs.concat();
+ }
+ } else {
+ if (subs) {
+ subs = subs.concat();
+ } else {
+ subs = [];
+ }
+ }
+
+ if (siblingAfters) {
+ if (afters) {
+ afters = afters.concat(siblingAfters);
+ } else {
+ afters = siblingAfters.concat();
+ }
+ } else {
+ if (afters) {
+ afters = afters.concat();
+ } else {
+ afters = [];
+ }
+ }
+
+ return [subs, afters];
},
/**
@@ -9899,7 +10418,7 @@ Y.CustomEvent.prototype = {
/**
* Create the Subscription for subscribing function, context, and bound
- * arguments. If this is a fireOnce event, the subscriber is immediately
+ * arguments. If this is a fireOnce event, the subscriber is immediately
* notified.
*
* @method _on
@@ -9914,24 +10433,41 @@ Y.CustomEvent.prototype = {
if (!fn) { this.log('Invalid callback for CE: ' + this.type); }
- var s = new Y.Subscriber(fn, context, args, when);
+ var s = new Y.Subscriber(fn, context, args, when),
+ firedWith;
if (this.fireOnce && this.fired) {
+
+ firedWith = this.firedWith;
+
+ // It's a little ugly for this to know about facades,
+ // but given the current breakup, not much choice without
+ // moving a whole lot of stuff around.
+ if (this.emitFacade && this._addFacadeToArgs) {
+ this._addFacadeToArgs(firedWith);
+ }
+
if (this.async) {
- setTimeout(Y.bind(this._notify, this, s, this.firedWith), 0);
+ setTimeout(Y.bind(this._notify, this, s, firedWith), 0);
} else {
- this._notify(s, this.firedWith);
+ this._notify(s, firedWith);
}
}
- if (when == AFTER) {
+ if (when === AFTER) {
+ if (!this._afters) {
+ this._afters = [];
+ }
this._afters.push(s);
} else {
+ if (!this._subscribers) {
+ this._subscribers = [];
+ }
this._subscribers.push(s);
}
if (this._kds) {
- if (when == AFTER) {
+ if (when === AFTER) {
this.afters[s.id] = s;
} else {
this.subscribers[s.id] = s;
@@ -9952,7 +10488,7 @@ Y.CustomEvent.prototype = {
var a = (arguments.length > 2) ? nativeSlice.call(arguments, 2) : null;
return this._on(fn, context, a, true);
},
-
+
/**
* Listen for this event
* @method on
@@ -10002,25 +10538,29 @@ Y.CustomEvent.prototype = {
if (fn && fn.detach) {
return fn.detach();
}
-
+
var i, s,
found = 0,
subs = this._subscribers,
afters = this._afters;
- for (i = subs.length; i >= 0; i--) {
- s = subs[i];
- if (s && (!fn || fn === s.fn)) {
- this._delete(s, subs, i);
- found++;
+ if (subs) {
+ for (i = subs.length; i >= 0; i--) {
+ s = subs[i];
+ if (s && (!fn || fn === s.fn)) {
+ this._delete(s, subs, i);
+ found++;
+ }
}
}
- for (i = afters.length; i >= 0; i--) {
- s = afters[i];
- if (s && (!fn || fn === s.fn)) {
- this._delete(s, afters, i);
- found++;
+ if (afters) {
+ for (i = afters.length; i >= 0; i--) {
+ s = afters[i];
+ if (s && (!fn || fn === s.fn)) {
+ this._delete(s, afters, i);
+ found++;
+ }
}
}
@@ -10090,13 +10630,34 @@ Y.CustomEvent.prototype = {
*
*/
fire: function() {
+
+ // push is the fastest way to go from arguments to arrays
+ // for most browsers currently
+ // http://jsperf.com/push-vs-concat-vs-slice/2
+
+ var args = [];
+ args.push.apply(args, arguments);
+
+ return this._fire(args);
+ },
+
+ /**
+ * Private internal implementation for `fire`, which is can be used directly by
+ * `EventTarget` and other event module classes which have already converted from
+ * an `arguments` list to an array, to avoid the repeated overhead.
+ *
+ * @method _fire
+ * @private
+ * @param {Array} args The array of arguments passed to be passed to handlers.
+ * @return {boolean} false if one of the subscribers returned false, true otherwise.
+ */
+ _fire: function(args) {
+
if (this.fireOnce && this.fired) {
this.log('fireOnce event: ' + this.type + ' already fired');
return true;
} else {
- var args = nativeSlice.call(arguments, 0);
-
// this doesn't happen if the event isn't published
// this.host._monitor('fire', this.type, args);
@@ -10130,7 +10691,9 @@ Y.CustomEvent.prototype = {
this._procSubs(subs[0], args);
this._procSubs(subs[1], args);
}
- this._broadcast(args);
+ if (this.broadcast) {
+ this._broadcast(args);
+ }
return this.stopped ? false : true;
},
@@ -10162,7 +10725,7 @@ Y.CustomEvent.prototype = {
if (false === this._notify(s, args, ef)) {
this.stopped = 2;
}
- if (this.stopped == 2) {
+ if (this.stopped === 2) {
return false;
}
}
@@ -10189,7 +10752,7 @@ Y.CustomEvent.prototype = {
Y.fire.apply(Y, a);
}
- if (this.broadcast == 2) {
+ if (this.broadcast === 2) {
Y.Global.fire.apply(Y.Global, a);
}
}
@@ -10228,12 +10791,15 @@ Y.CustomEvent.prototype = {
var when = s._when;
if (!subs) {
- subs = (when === AFTER) ? this._afters : this._subscribers;
- i = YArray.indexOf(subs, s, 0);
+ subs = (when === AFTER) ? this._afters : this._subscribers;
}
- if (s && subs[i] === s) {
- subs.splice(i, 1);
+ if (subs) {
+ i = YArray.indexOf(subs, s, 0);
+
+ if (s && subs[i] === s) {
+ subs.splice(i, 1);
+ }
}
if (this._kds) {
@@ -10287,7 +10853,7 @@ Y.Subscriber = function(fn, context, args, when) {
* @property id
* @type String
*/
- this.id = Y.stamp(this);
+ this.id = Y.guid();
/**
* Additional arguments to propagate to the subscriber
@@ -10391,12 +10957,12 @@ Y.Subscriber.prototype = {
*/
contains: function(fn, context) {
if (context) {
- return ((this.fn == fn) && this.context == context);
+ return ((this.fn === fn) && this.context === context);
} else {
- return (this.fn == fn);
+ return (this.fn === fn);
}
},
-
+
valueOf : function() {
return this.id;
}
@@ -10514,14 +11080,14 @@ var L = Y.Lang,
* @method _getType
* @private
*/
- _getType = Y.cached(function(type, pre) {
+ _getType = function(type, pre) {
- if (!pre || (typeof type !== "string") || type.indexOf(PREFIX_DELIMITER) > -1) {
+ if (!pre || !type || type.indexOf(PREFIX_DELIMITER) > -1) {
return type;
}
return pre + PREFIX_DELIMITER + type;
- }),
+ },
/**
* Returns an array with the detach key (if provided),
@@ -10550,7 +11116,7 @@ var L = Y.Lang,
if (i > -1) {
detachcategory = t.substr(0, (i));
t = t.substr(i+1);
- if (t == '*') {
+ if (t === '*') {
t = null;
}
}
@@ -10561,39 +11127,38 @@ var L = Y.Lang,
ET = function(opts) {
+ var etState = this._yuievt,
+ etConfig;
- var o = (L.isObject(opts)) ? opts : {};
+ if (!etState) {
+ etState = this._yuievt = {
+ events: {}, // PERF: Not much point instantiating lazily. We're bound to have events
+ targets: null, // PERF: Instantiate lazily, if user actually adds target,
+ config: {
+ host: this,
+ context: this
+ },
+ chain: Y.config.chain
+ };
+ }
- this._yuievt = this._yuievt || {
+ etConfig = etState.config;
- id: Y.guid(),
+ if (opts) {
+ mixConfigs(etConfig, opts, true);
- events: {},
-
- targets: {},
-
- config: o,
-
- chain: ('chain' in o) ? o.chain : Y.config.chain,
-
- bubbling: false,
-
- defaults: {
- context: o.context || this,
- host: this,
- emitFacade: o.emitFacade,
- fireOnce: o.fireOnce,
- queuable: o.queuable,
- monitored: o.monitored,
- broadcast: o.broadcast,
- defaultTargetOnly: o.defaultTargetOnly,
- bubbles: ('bubbles' in o) ? o.bubbles : true
+ if (opts.chain !== undefined) {
+ etState.chain = opts.chain;
}
- };
+
+ if (opts.prefix) {
+ etConfig.prefix = opts.prefix;
+ }
+ }
};
-
ET.prototype = {
+
constructor: ET,
/**
@@ -10789,6 +11354,11 @@ ET.prototype = {
if (!handle) {
ce = yuievt.events[type] || this.publish(type);
handle = ce._on(fn, context, (arguments.length > 3) ? nativeSlice.call(arguments, 3) : null, (after) ? 'after' : true);
+
+ // TODO: More robust regex, accounting for category
+ if (type.indexOf("*:") !== -1) {
+ this._hasSiblings = true;
+ }
}
if (detachcategory) {
@@ -10827,8 +11397,11 @@ ET.prototype = {
* @return {EventTarget} the host
*/
detach: function(type, fn, context) {
- var evts = this._yuievt.events, i,
- Node = Y.Node, isNode = Node && (Y.instanceOf(this, Node));
+
+ var evts = this._yuievt.events,
+ i,
+ Node = Y.Node,
+ isNode = Node && (Y.instanceOf(this, Node));
// detachAll disabled on the Y instance.
if (!type && (this !== Y)) {
@@ -11019,53 +11592,102 @@ ET.prototype = {
*
*/
publish: function(type, opts) {
- var events, ce, ret, defaults,
- edata = this._yuievt,
- pre = edata.config.prefix;
- if (L.isObject(type)) {
+ var ret,
+ etState = this._yuievt,
+ etConfig = etState.config,
+ pre = etConfig.prefix;
+
+ if (typeof type === "string") {
+ if (pre) {
+ type = _getType(type, pre);
+ }
+ ret = this._publish(type, etConfig, opts);
+ } else {
ret = {};
+
Y.each(type, function(v, k) {
- ret[k] = this.publish(k, v || opts);
+ if (pre) {
+ k = _getType(k, pre);
+ }
+ ret[k] = this._publish(k, etConfig, v || opts);
}, this);
- return ret;
}
- type = (pre) ? _getType(type, pre) : type;
+ return ret;
+ },
- events = edata.events;
- ce = events[type];
+ /**
+ * Returns the fully qualified type, given a short type string.
+ * That is, returns "foo:bar" when given "bar" if "foo" is the configured prefix.
+ *
+ * NOTE: This method, unlike _getType, does no checking of the value passed in, and
+ * is designed to be used with the low level _publish() method, for critical path
+ * implementations which need to fast-track publish for performance reasons.
+ *
+ * @method _getFullType
+ * @private
+ * @param {String} type The short type to prefix
+ * @return {String} The prefixed type, if a prefix is set, otherwise the type passed in
+ */
+ _getFullType : function(type) {
- this._monitor('publish', type, {
- args: arguments
- });
+ var pre = this._yuievt.config.prefix;
- if (ce) {
- // ce.log("publish applying new config to published event: '"+type+"' exists", 'info', 'event');
- if (opts) {
- ce.applyConfig(opts, true);
- }
+ if (pre) {
+ return pre + PREFIX_DELIMITER + type;
} else {
- // TODO: Lazy publish goes here.
- defaults = edata.defaults;
+ return type;
+ }
+ },
- // apply defaults
- ce = new Y.CustomEvent(type, defaults);
- if (opts) {
- ce.applyConfig(opts, true);
- }
+ /**
+ * The low level event publish implementation. It expects all the massaging to have been done
+ * outside of this method. e.g. the `type` to `fullType` conversion. It's designed to be a fast
+ * path publish, which can be used by critical code paths to improve performance.
+ *
+ * @method _publish
+ * @private
+ * @param {String} fullType The prefixed type of the event to publish.
+ * @param {Object} etOpts The EventTarget specific configuration to mix into the published event.
+ * @param {Object} ceOpts The publish specific configuration to mix into the published event.
+ * @return {CustomEvent} The published event. If called without `etOpts` or `ceOpts`, this will
+ * be the default `CustomEvent` instance, and can be configured independently.
+ */
+ _publish : function(fullType, etOpts, ceOpts) {
- events[type] = ce;
+ var ce,
+ etState = this._yuievt,
+ etConfig = etState.config,
+ host = etConfig.host,
+ context = etConfig.context,
+ events = etState.events;
+
+ ce = events[fullType];
+
+ // PERF: Hate to pull the check out of monitor, but trying to keep critical path tight.
+ if ((etConfig.monitored && !ce) || (ce && ce.monitored)) {
+ this._monitor('publish', fullType, {
+ args: arguments
+ });
}
- // make sure we turn the broadcast flag off if this
- // event was published as a result of bubbling
- // if (opts instanceof Y.CustomEvent) {
- // events[type].broadcast = false;
- // }
+ if (!ce) {
+ // Publish event
+ ce = events[fullType] = new Y.CustomEvent(fullType, etOpts);
- return events[type];
+ if (!etOpts) {
+ ce.host = host;
+ ce.context = context;
+ }
+ }
+
+ if (ceOpts) {
+ mixConfigs(ce, ceOpts, true);
+ }
+
+ return ce;
},
/**
@@ -11105,23 +11727,23 @@ ET.prototype = {
}
},
- /**
+ /**
* Fire a custom event by name. The callback functions will be executed
* from the context specified when the event was created, and with the
* following parameters.
*
- * If the custom event object hasn't been created, then the event hasn't
- * been published and it has no subscribers. For performance sake, we
- * immediate exit in this case. This means the event won't bubble, so
- * if the intention is that a bubble target be notified, the event must
- * be published on this object first.
- *
* The first argument is the event type, and any additional arguments are
* passed to the listeners as parameters. If the first of these is an
* object literal, and the event is configured to emit an event facade,
* that object is mixed into the event facade and the facade is provided
* in place of the original object.
*
+ * If the custom event object hasn't been created, then the event hasn't
+ * been published and it has no subscribers. For performance sake, we
+ * immediate exit in this case. This means the event won't bubble, so
+ * if the intention is that a bubble target be notified, the event must
+ * be published on this object first.
+ *
* @method fire
* @param type {String|Object} The type of the event, or an object that contains
* a 'type' property.
@@ -11130,30 +11752,63 @@ ET.prototype = {
* configured to emit an event facade, the event facade will replace that
* parameter after the properties the object literal contains are copied to
* the event facade.
- * @return {EventTarget} the event host
+ * @return {Boolean} True if the whole lifecycle of the event went through,
+ * false if at any point the event propagation was halted.
*/
fire: function(type) {
- var typeIncluded = L.isString(type),
- t = (typeIncluded) ? type : (type && type.type),
+ var typeIncluded = (typeof type === "string"),
+ argCount = arguments.length,
+ t = type,
yuievt = this._yuievt,
- pre = yuievt.config.prefix,
- ce, ret,
+ etConfig = yuievt.config,
+ pre = etConfig.prefix,
+ ret,
+ ce,
ce2,
- args = (typeIncluded) ? nativeSlice.call(arguments, 1) : arguments;
+ args;
- t = (pre) ? _getType(t, pre) : t;
+ if (typeIncluded && argCount <= 3) {
- ce = this.getEvent(t, true);
- ce2 = this.getSibling(t, ce);
+ // PERF: Try to avoid slice/iteration for the common signatures
- if (ce2 && !ce) {
- ce = this.publish(t);
+ // Most common
+ if (argCount === 2) {
+ args = [arguments[1]]; // fire("foo", {})
+ } else if (argCount === 3) {
+ args = [arguments[1], arguments[2]]; // fire("foo", {}, opts)
+ } else {
+ args = []; // fire("foo")
+ }
+
+ } else {
+ args = nativeSlice.call(arguments, ((typeIncluded) ? 1 : 0));
}
- this._monitor('fire', (ce || t), {
- args: args
- });
+ if (!typeIncluded) {
+ t = (type && type.type);
+ }
+
+ if (pre) {
+ t = _getType(t, pre);
+ }
+
+ ce = yuievt.events[t];
+
+ if (this._hasSiblings) {
+ ce2 = this.getSibling(t, ce);
+
+ if (ce2 && !ce) {
+ ce = this.publish(t);
+ }
+ }
+
+ // PERF: trying to avoid function call, since this is a critical path
+ if ((etConfig.monitored && (!ce || ce.monitored)) || (ce && ce.monitored)) {
+ this._monitor('fire', (ce || t), {
+ args: args
+ });
+ }
// this event has not been published or subscribed to
if (!ce) {
@@ -11164,8 +11819,12 @@ ET.prototype = {
// otherwise there is nothing to be done
ret = true;
} else {
- ce.sibling = ce2;
- ret = ce.fire.apply(ce, args);
+
+ if (ce2) {
+ ce.sibling = ce2;
+ }
+
+ ret = ce._fire(args);
}
return (yuievt.chain) ? this : ret;
@@ -11173,17 +11832,15 @@ ET.prototype = {
getSibling: function(type, ce) {
var ce2;
+
// delegate to *:type events if there are subscribers
if (type.indexOf(PREFIX_DELIMITER) > -1) {
type = _wildType(type);
- // console.log(type);
ce2 = this.getEvent(type, true);
if (ce2) {
- // console.log("GOT ONE: " + type);
ce2.applyConfig(ce);
ce2.bubbles = false;
ce2.broadcast = 0;
- // ret = ce2.fire.apply(ce2, a);
}
}
@@ -11200,6 +11857,7 @@ ET.prototype = {
*/
getEvent: function(type, prefixed) {
var pre, e;
+
if (!prefixed) {
pre = this._yuievt.config.prefix;
type = (pre) ? _getType(type, pre) : type;
@@ -11298,7 +11956,9 @@ Y.Global = YUI.Env.globalEvents;
treating that method as an event
-For custom event subscriptions, pass the custom event name as the first argument and callback as the second. The `this` object in the callback will be `Y` unless an override is passed as the third argument.
+For custom event subscriptions, pass the custom event name as the first argument
+and callback as the second. The `this` object in the callback will be `Y` unless
+an override is passed as the third argument.
Y.on('io:complete', function () {
Y.MyApp.updateStatus('Transaction complete');
@@ -11324,7 +11984,7 @@ selector or other identifier.
`defaultFn` can prevent the default behavior with `e.preventDefault()` from the
event object passed as the first parameter to the subscription callback.
-To subscribe to the execution of an object method, pass arguments corresponding to the call signature for
+To subscribe to the execution of an object method, pass arguments corresponding to the call signature for
`Y.Do.before(...)`.
NOTE: The formal parameter list below is for events, not for function
@@ -11409,7 +12069,7 @@ for that signature.
**/
-}, '3.9.1', {"requires": ["oop"]});
+}, '3.12.0', {"requires": ["oop"]});
YUI.add('event-custom-complex', function (Y, NAME) {
@@ -11422,10 +12082,11 @@ YUI.add('event-custom-complex', function (Y, NAME) {
var FACADE,
FACADE_KEYS,
+ YObject = Y.Object,
key,
EMPTY = {},
CEProto = Y.CustomEvent.prototype,
- ETProto = Y.EventTarget.prototype,
+ ETProto = Y.EventTarget.prototype,
mixFacadeProps = function(facade, payload) {
var p;
@@ -11447,7 +12108,9 @@ var FACADE,
Y.EventFacade = function(e, currentTarget) {
- e = e || EMPTY;
+ if (!e) {
+ e = EMPTY;
+ }
this._event = e;
@@ -11546,151 +12209,209 @@ Y.mix(Y.EventFacade.prototype, {
CEProto.fireComplex = function(args) {
- var es, ef, q, queue, ce, ret, events, subs, postponed,
- self = this, host = self.host || self, next, oldbubble;
+ var es,
+ ef,
+ q,
+ queue,
+ ce,
+ ret = true,
+ events,
+ subs,
+ ons,
+ afters,
+ afterQueue,
+ postponed,
+ prevented,
+ preventedFn,
+ defaultFn,
+ self = this,
+ host = self.host || self,
+ next,
+ oldbubble,
+ stack = self.stack,
+ yuievt = host._yuievt,
+ hasPotentialSubscribers;
+
+ if (stack) {
- if (self.stack) {
// queue this event if the current item in the queue bubbles
- if (self.queuable && self.type != self.stack.next.type) {
+ if (self.queuable && self.type !== stack.next.type) {
self.log('queue ' + self.type);
- self.stack.queue.push([self, args]);
+
+ if (!stack.queue) {
+ stack.queue = [];
+ }
+ stack.queue.push([self, args]);
+
return true;
}
}
- es = self.stack || {
- // id of the first event in the stack
- id: self.id,
- next: self,
- silent: self.silent,
- stopped: 0,
- prevented: 0,
- bubbling: null,
- type: self.type,
- // defaultFnQueue: new Y.Queue(),
- afterQueue: new Y.Queue(),
- defaultTargetOnly: self.defaultTargetOnly,
- queue: []
- };
-
- subs = self.getSubs();
-
- self.stopped = (self.type !== es.type) ? 0 : es.stopped;
- self.prevented = (self.type !== es.type) ? 0 : es.prevented;
+ hasPotentialSubscribers = self.hasSubs() || yuievt.hasTargets || self.broadcast;
self.target = self.target || host;
-
- if (self.stoppedFn) {
- events = new Y.EventTarget({
- fireOnce: true,
- context: host
- });
-
- self.events = events;
-
- events.on('stopped', self.stoppedFn);
- }
-
self.currentTarget = host;
- self.details = args.slice(); // original arguments in the details
+ self.details = args.concat();
- // self.log("Firing " + self + ", " + "args: " + args);
- self.log("Firing " + self.type);
+ if (hasPotentialSubscribers) {
- self._facade = null; // kill facade to eliminate stale properties
+ es = stack || {
- ef = self._getFacade(args);
+ id: self.id, // id of the first event in the stack
+ next: self,
+ silent: self.silent,
+ stopped: 0,
+ prevented: 0,
+ bubbling: null,
+ type: self.type,
+ // defaultFnQueue: new Y.Queue(),
+ defaultTargetOnly: self.defaultTargetOnly
- if (Y.Lang.isObject(args[0])) {
- args[0] = ef;
- } else {
- args.unshift(ef);
- }
+ };
- if (subs[0]) {
- self._procSubs(subs[0], args, ef);
- }
+ subs = self.getSubs();
+ ons = subs[0];
+ afters = subs[1];
- // bubble if this is hosted in an event target and propagation has not been stopped
- if (self.bubbles && host.bubble && !self.stopped) {
+ self.stopped = (self.type !== es.type) ? 0 : es.stopped;
+ self.prevented = (self.type !== es.type) ? 0 : es.prevented;
- oldbubble = es.bubbling;
-
- es.bubbling = self.type;
-
- if (es.type != self.type) {
- es.stopped = 0;
- es.prevented = 0;
+ if (self.stoppedFn) {
+ // PERF TODO: Can we replace with callback, like preventedFn. Look into history
+ events = new Y.EventTarget({
+ fireOnce: true,
+ context: host
+ });
+ self.events = events;
+ events.on('stopped', self.stoppedFn);
}
- ret = host.bubble(self, args, null, es);
+ // self.log("Firing " + self + ", " + "args: " + args);
+ self.log("Firing " + self.type);
- self.stopped = Math.max(self.stopped, es.stopped);
- self.prevented = Math.max(self.prevented, es.prevented);
+ self._facade = null; // kill facade to eliminate stale properties
- es.bubbling = oldbubble;
- }
+ ef = self._createFacade(args);
- if (self.prevented) {
- if (self.preventedFn) {
- self.preventedFn.apply(host, args);
+ if (ons) {
+ self._procSubs(ons, args, ef);
}
- } else if (self.defaultFn &&
- ((!self.defaultTargetOnly && !es.defaultTargetOnly) ||
- host === ef.target)) {
- self.defaultFn.apply(host, args);
- }
- // broadcast listeners are fired as discreet events on the
- // YUI instance and potentially the YUI global.
- self._broadcast(args);
+ // bubble if this is hosted in an event target and propagation has not been stopped
+ if (self.bubbles && host.bubble && !self.stopped) {
+ oldbubble = es.bubbling;
- // Queue the after
- if (subs[1] && !self.prevented && self.stopped < 2) {
- if (es.id === self.id || self.type != host._yuievt.bubbling) {
- self._procSubs(subs[1], args, ef);
- while ((next = es.afterQueue.last())) {
- next();
+ es.bubbling = self.type;
+
+ if (es.type !== self.type) {
+ es.stopped = 0;
+ es.prevented = 0;
+ }
+
+ ret = host.bubble(self, args, null, es);
+
+ self.stopped = Math.max(self.stopped, es.stopped);
+ self.prevented = Math.max(self.prevented, es.prevented);
+
+ es.bubbling = oldbubble;
+ }
+
+ prevented = self.prevented;
+
+ if (prevented) {
+ preventedFn = self.preventedFn;
+ if (preventedFn) {
+ preventedFn.apply(host, args);
}
} else {
- postponed = subs[1];
- if (es.execDefaultCnt) {
- postponed = Y.merge(postponed);
- Y.each(postponed, function(s) {
- s.postponed = true;
+ defaultFn = self.defaultFn;
+
+ if (defaultFn && ((!self.defaultTargetOnly && !es.defaultTargetOnly) || host === ef.target)) {
+ defaultFn.apply(host, args);
+ }
+ }
+
+ // broadcast listeners are fired as discreet events on the
+ // YUI instance and potentially the YUI global.
+ if (self.broadcast) {
+ self._broadcast(args);
+ }
+
+ if (afters && !self.prevented && self.stopped < 2) {
+
+ // Queue the after
+ afterQueue = es.afterQueue;
+
+ if (es.id === self.id || self.type !== yuievt.bubbling) {
+
+ self._procSubs(afters, args, ef);
+
+ if (afterQueue) {
+ while ((next = afterQueue.last())) {
+ next();
+ }
+ }
+ } else {
+ postponed = afters;
+
+ if (es.execDefaultCnt) {
+ postponed = Y.merge(postponed);
+
+ Y.each(postponed, function(s) {
+ s.postponed = true;
+ });
+ }
+
+ if (!afterQueue) {
+ es.afterQueue = new Y.Queue();
+ }
+
+ es.afterQueue.add(function() {
+ self._procSubs(postponed, args, ef);
});
}
- es.afterQueue.add(function() {
- self._procSubs(postponed, args, ef);
- });
- }
- }
-
- self.target = null;
-
- if (es.id === self.id) {
- queue = es.queue;
-
- while (queue.length) {
- q = queue.pop();
- ce = q[0];
- // set up stack to allow the next item to be processed
- es.next = ce;
- ce.fire.apply(ce, q[1]);
}
- self.stack = null;
- }
+ self.target = null;
- ret = !(self.stopped);
+ if (es.id === self.id) {
- if (self.type != host._yuievt.bubbling) {
- es.stopped = 0;
- es.prevented = 0;
- self.stopped = 0;
- self.prevented = 0;
+ queue = es.queue;
+
+ if (queue) {
+ while (queue.length) {
+ q = queue.pop();
+ ce = q[0];
+ // set up stack to allow the next item to be processed
+ es.next = ce;
+ ce._fire(q[1]);
+ }
+ }
+
+ self.stack = null;
+ }
+
+ ret = !(self.stopped);
+
+ if (self.type !== yuievt.bubbling) {
+ es.stopped = 0;
+ es.prevented = 0;
+ self.stopped = 0;
+ self.prevented = 0;
+ }
+
+ } else {
+ defaultFn = self.defaultFn;
+
+ if(defaultFn) {
+ ef = self._createFacade(args);
+
+ if ((!self.defaultTargetOnly) || (host === ef.target)) {
+ defaultFn.apply(host, args);
+ }
+ }
}
// Kill the cached facade to free up memory.
@@ -11700,31 +12421,62 @@ CEProto.fireComplex = function(args) {
return ret;
};
-CEProto._getFacade = function() {
+/**
+ * @method _hasPotentialSubscribers
+ * @for CustomEvent
+ * @private
+ * @return {boolean} Whether the event has potential subscribers or not
+ */
+CEProto._hasPotentialSubscribers = function() {
+ return this.hasSubs() || this.host._yuievt.hasTargets || this.broadcast;
+};
- var ef = this._facade, o,
- args = this.details;
+/**
+ * Internal utility method to create a new facade instance and
+ * insert it into the fire argument list, accounting for any payload
+ * merging which needs to happen.
+ *
+ * This used to be called `_getFacade`, but the name seemed inappropriate
+ * when it was used without a need for the return value.
+ *
+ * @method _createFacade
+ * @private
+ * @param fireArgs {Array} The arguments passed to "fire", which need to be
+ * shifted (and potentially merged) when the facade is added.
+ * @return {EventFacade} The event facade created.
+ */
+
+// TODO: Remove (private) _getFacade alias, once synthetic.js is updated.
+CEProto._createFacade = CEProto._getFacade = function(fireArgs) {
+
+ var userArgs = this.details,
+ firstArg = userArgs && userArgs[0],
+ firstArgIsObj = (firstArg && (typeof firstArg === "object")),
+ ef = this._facade;
if (!ef) {
ef = new Y.EventFacade(this, this.currentTarget);
}
- // if the first argument is an object literal, apply the
- // properties to the event facade
- o = args && args[0];
-
- if (Y.Lang.isObject(o, true)) {
-
+ if (firstArgIsObj) {
// protect the event facade properties
- mixFacadeProps(ef, o);
+ mixFacadeProps(ef, firstArg);
- // Allow the event type to be faked
- // http://yuilibrary.com/projects/yui3/ticket/2528376
- ef.type = o.type || ef.type;
+ // Allow the event type to be faked http://yuilibrary.com/projects/yui3/ticket/2528376
+ if (firstArg.type) {
+ ef.type = firstArg.type;
+ }
+
+ if (fireArgs) {
+ fireArgs[0] = ef;
+ }
+ } else {
+ if (fireArgs) {
+ fireArgs.unshift(ef);
+ }
}
// update the details field with the arguments
- // ef.type = this.type;
ef.details = this.details;
// use the original target when the event bubbled to this target
@@ -11739,6 +12491,23 @@ CEProto._getFacade = function() {
return this._facade;
};
+/**
+ * Utility method to manipulate the args array passed in, to add the event facade,
+ * if it's not already the first arg.
+ *
+ * @method _addFacadeToArgs
+ * @private
+ * @param {Array} The arguments to manipulate
+ */
+CEProto._addFacadeToArgs = function(args) {
+ var e = args[0];
+
+ // Trying not to use instanceof, just to avoid potential cross Y edge case issues.
+ if (!(e && e.halt && e.stopImmediatePropagation && e.stopPropagation && e._event)) {
+ this._createFacade(args);
+ }
+};
+
/**
* Stop propagation to bubble targets
* @for CustomEvent
@@ -11812,8 +12581,14 @@ CEProto.halt = function(immediate) {
* @for EventTarget
*/
ETProto.addTarget = function(o) {
- this._yuievt.targets[Y.stamp(o)] = o;
- this._yuievt.hasTargets = true;
+ var etState = this._yuievt;
+
+ if (!etState.targets) {
+ etState.targets = {};
+ }
+
+ etState.targets[Y.stamp(o)] = o;
+ etState.hasTargets = true;
};
/**
@@ -11822,7 +12597,8 @@ ETProto.addTarget = function(o) {
* @return EventTarget[]
*/
ETProto.getTargets = function() {
- return Y.Object.values(this._yuievt.targets);
+ var targets = this._yuievt.targets;
+ return targets ? YObject.values(targets) : [];
};
/**
@@ -11832,7 +12608,15 @@ ETProto.getTargets = function() {
* @for EventTarget
*/
ETProto.removeTarget = function(o) {
- delete this._yuievt.targets[Y.stamp(o)];
+ var targets = this._yuievt.targets;
+
+ if (targets) {
+ delete targets[Y.stamp(o, true)];
+
+ if (YObject.size(targets) === 0) {
+ this._yuievt.hasTargets = false;
+ }
+ }
};
/**
@@ -11844,8 +12628,14 @@ ETProto.removeTarget = function(o) {
*/
ETProto.bubble = function(evt, args, target, es) {
- var targs = this._yuievt.targets, ret = true,
- t, type = evt && evt.type, ce, i, bc, ce2,
+ var targs = this._yuievt.targets,
+ ret = true,
+ t,
+ ce,
+ i,
+ bc,
+ ce2,
+ type = evt && evt.type,
originalTarget = target || (evt && evt.target) || this,
oldbubble;
@@ -11853,9 +12643,14 @@ ETProto.bubble = function(evt, args, target, es) {
for (i in targs) {
if (targs.hasOwnProperty(i)) {
+
t = targs[i];
- ce = t.getEvent(type, true);
- ce2 = t.getSibling(type, ce);
+
+ ce = t._yuievt.events[type];
+
+ if (t._hasSiblings) {
+ ce2 = t.getSibling(type, ce);
+ }
if (ce2 && !ce) {
ce = t.publish(type);
@@ -11872,10 +12667,11 @@ ETProto.bubble = function(evt, args, target, es) {
}
} else {
- ce.sibling = ce2;
+ if (ce2) {
+ ce.sibling = ce2;
+ }
- // set the original target to that the target payload on the
- // facade is correct.
+ // set the original target to that the target payload on the facade is correct.
ce.target = originalTarget;
ce.originalTarget = originalTarget;
ce.currentTarget = t;
@@ -11888,7 +12684,13 @@ ETProto.bubble = function(evt, args, target, es) {
ce.stack = es;
+ // TODO: See what's getting in the way of changing this to use
+ // the more performant ce._fire(args || evt.details || []).
+
+ // Something in Widget Parent/Child tests is not happy if we
+ // change it - maybe evt.details related?
ret = ret && ce.fire.apply(ce, args || evt.details || []);
+
ce.broadcast = bc;
ce.originalTarget = null;
@@ -11906,6 +12708,25 @@ ETProto.bubble = function(evt, args, target, es) {
return ret;
};
+/**
+ * @method _hasPotentialSubscribers
+ * @for EventTarget
+ * @private
+ * @param {String} fullType The fully prefixed type name
+ * @return {boolean} Whether the event has potential subscribers or not
+ */
+ETProto._hasPotentialSubscribers = function(fullType) {
+
+ var etState = this._yuievt,
+ e = etState.events[fullType];
+
+ if (e) {
+ return e.hasSubs() || etState.hasTargets || e.broadcast;
+ } else {
+ return false;
+ }
+};
+
FACADE = new Y.EventFacade();
FACADE_KEYS = {};
@@ -11914,7 +12735,8 @@ for (key in FACADE) {
FACADE_KEYS[key] = true;
}
-}, '3.9.1', {"requires": ["event-custom-base"]});
+
+}, '3.12.0', {"requires": ["event-custom-base"]});
YUI.add('node-core', function (Y, NAME) {
/**
@@ -12124,7 +12946,7 @@ Y_Node.addMethod = function(name, fn, context) {
}
args.unshift(node._node);
- ret = fn.apply(node, args);
+ ret = fn.apply(context || node, args);
if (ret) { // scrub truthy
ret = Y_Node.scrubVal(ret, node);
@@ -12552,10 +13374,15 @@ Y.mix(Y_Node.prototype, {
* @return {NodeList} A NodeList instance for the matching HTMLCollection/Array.
*/
all: function(selector) {
- var nodelist = Y.all(Y.Selector.query(selector, this._node));
- nodelist._query = selector;
- nodelist._queryRoot = this._node;
- return nodelist;
+ var nodelist;
+
+ if (this._node) {
+ nodelist = Y.all(Y.Selector.query(selector, this._node));
+ nodelist._query = selector;
+ nodelist._queryRoot = this._node;
+ }
+
+ return nodelist || Y.all([]);
},
// TODO: allow fn test
@@ -13214,7 +14041,7 @@ var Y_NodeList = Y.NodeList,
/** Removes the last from the NodeList and returns it.
* @for NodeList
* @method pop
- * @return {Node} The last item in the NodeList.
+ * @return {Node | null} The last item in the NodeList, or null if the list is empty.
*/
'pop': 0,
/** Adds the given Node(s) to the end of the NodeList.
@@ -13226,7 +14053,7 @@ var Y_NodeList = Y.NodeList,
/** Removes the first item from the NodeList and returns it.
* @for NodeList
* @method shift
- * @return {Node} The first item in the NodeList.
+ * @return {Node | null} The first item in the NodeList, or null if the NodeList is empty.
*/
'shift': 0,
/** Returns a new NodeList comprising the Nodes in the given range.
@@ -13512,7 +14339,7 @@ Y.NodeList.importMethod(Y.Node.prototype, [
]);
-}, '3.9.1', {"requires": ["dom-core", "selector"]});
+}, '3.12.0', {"requires": ["dom-core", "selector"]});
YUI.add('node-base', function (Y, NAME) {
/**
@@ -13776,8 +14603,17 @@ Y.mix(Y_Node.prototype, {
* @deprecated Use getHTML
* @return {String} The current content
*/
- getContent: function(content) {
- return this.get('innerHTML');
+ getContent: function() {
+ var node = this;
+
+ if (node._node.nodeType === 11) { // 11 === Node.DOCUMENT_FRAGMENT_NODE
+ // "this", when it is a document fragment, must be cloned because
+ // the nodes contained in the fragment actually disappear once
+ // the fragment is appended anywhere
+ node = node.create(" {{tagline}} {{tagline}}
- * Currently used to apply class identifiers to the bounding box
+ * Currently used to apply class identifiers to the bounding box
* and to classify events fired by the widget.
*
* The instance based version of this method can be used to generate standard prefixed classnames,
@@ -330,7 +336,7 @@ Widget.getClassName = function() {
_getWidgetClassName = Widget.getClassName;
/**
- * Returns the widget instance whose bounding box contains, or is, the given node.
+ * Returns the widget instance whose bounding box contains, or is, the given node.
*
* In the case of nested widgets, the nearest bounding box ancestor is used to
* return the widget instance.
@@ -359,10 +365,10 @@ Widget.getByNode = function(node) {
Y.extend(Widget, Y.Base, {
/**
- * Returns a class name prefixed with the the value of the
+ * Returns a class name prefixed with the the value of the
*
* This method should only be invoked once for an initialized
@@ -527,11 +531,11 @@ Y.extend(Widget, Y.Base, {
*
* @method render
* @chainable
- * @final
- * @param parentNode {Object | String} Optional. The Node under which the
- * Widget is to be rendered. This can be a Node instance or a CSS selector string.
+ * @final
+ * @param parentNode {Object | String} Optional. The Node under which the
+ * Widget is to be rendered. This can be a Node instance or a CSS selector string.
*
- * If the selector string returns more than one Node, the first node will be used
+ * If the selector string returns more than one Node, the first node will be used
* as the parentNode. NOTE: This argument is required if both the boundingBox and contentBox
* are not currently in the document. If it's not provided, the Widget will be rendered
* to the body of the current document in this case.
@@ -542,10 +546,10 @@ Y.extend(Widget, Y.Base, {
if (!this.get(DESTROYED) && !this.get(RENDERED)) {
/**
- * Lifecycle event for the render phase, fired prior to rendering the UI
+ * Lifecycle event for the render phase, fired prior to rendering the UI
* for the widget (prior to invoking the widget's renderer method).
*
- * Subscribers to the "on" moment of this event, will be notified
+ * Subscribers to the "on" moment of this event, will be notified
* before the widget is rendered.
*
@@ -579,7 +583,7 @@ Y.extend(Widget, Y.Base, {
*/
_defRenderFn : function(e) {
this._parentNode = e.parentNode;
-
+
this.renderer();
this._set(RENDERED, TRUE);
@@ -588,8 +592,8 @@ Y.extend(Widget, Y.Base, {
/**
* Creates DOM (or manipulates DOM for progressive enhancement)
- * This method is invoked by render() and is not chained
- * automatically for the class hierarchy (unlike initializer, destructor)
+ * This method is invoked by render() and is not chained
+ * automatically for the class hierarchy (unlike initializer, destructor)
* so it should be chained manually for subclasses if required.
*
* @method renderer
@@ -611,21 +615,21 @@ Y.extend(Widget, Y.Base, {
/**
* Configures/Sets up listeners to bind Widget State to UI/DOM
- *
- * This method is not called by framework and is not chained
+ *
+ * This method is not called by framework and is not chained
* automatically for the class hierarchy.
- *
+ *
* @method bindUI
* @protected
*/
bindUI: EMPTY_FN,
/**
- * Adds nodes to the DOM
- *
- * This method is not called by framework and is not chained
+ * Adds nodes to the DOM
+ *
+ * This method is not called by framework and is not chained
* automatically for the class hierarchy.
- *
+ *
* @method renderUI
* @protected
*/
@@ -633,7 +637,7 @@ Y.extend(Widget, Y.Base, {
/**
* Refreshes the rendered UI, based on Widget State
- *
+ *
* This method is not called by framework and is not chained
* automatically for the class hierarchy.
*
@@ -663,7 +667,7 @@ Y.extend(Widget, Y.Base, {
/**
* @method focus
- * @description Causes the Widget to receive the focus by setting the "focused"
+ * @description Causes the Widget to receive the focus by setting the "focused"
* attribute to "true".
* @chainable
*/
@@ -673,7 +677,7 @@ Y.extend(Widget, Y.Base, {
/**
* @method blur
- * @description Causes the Widget to lose focus by setting the "focused" attribute
+ * @description Causes the Widget to lose focus by setting the "focused" attribute
* to "false"
* @chainable
*/
@@ -705,14 +709,14 @@ Y.extend(Widget, Y.Base, {
* @param {boolean} expand
*/
_uiSizeCB : function(expand) {
- this.get(CONTENT_BOX).toggleClass(_getWidgetClassName(CONTENT, "expanded"), expand);
+ this.get(CONTENT_BOX).toggleClass(_getWidgetClassName(CONTENT, "expanded"), expand);
},
/**
* Helper method to collect the boundingBox and contentBox and append to the provided parentNode, if not
- * already a child. The owner document of the boundingBox, or the owner document of the contentBox will be used
+ * already a child. The owner document of the boundingBox, or the owner document of the contentBox will be used
* as the document into which the Widget is rendered if a parentNode is node is not provided. If both the boundingBox and
- * the contentBox are not currently in the document, and no parentNode is provided, the widget will be rendered
+ * the contentBox are not currently in the document, and no parentNode is provided, the widget will be rendered
* to the current document's body.
*
* @method _renderBox
@@ -779,7 +783,7 @@ Y.extend(Widget, Y.Base, {
},
/**
- * Returns the default value for the contentBox attribute.
+ * Returns the default value for the contentBox attribute.
*
* For the Widget class, this will be the srcNode if provided, otherwise null (resulting in
* a new contentBox node instance being created)
@@ -861,7 +865,7 @@ Y.extend(Widget, Y.Base, {
},
/**
- * Removes class names representative of the widget's loading state from
+ * Removes class names representative of the widget's loading state from
* the boundingBox.
*
* @method _removeLoadingClassNames
@@ -902,7 +906,7 @@ Y.extend(Widget, Y.Base, {
/**
* Sets up DOM listeners, on elements rendered by the widget.
- *
+ *
* @method _bindDOM
* @protected
*/
@@ -922,8 +926,8 @@ Y.extend(Widget, Y.Base, {
focusHandle.listeners.count++;
// Fix for Webkit:
- // Document doesn't receive focus in Webkit when the user mouses
- // down on it, so the "focused" attribute won't get set to the
+ // Document doesn't receive focus in Webkit when the user mouses
+ // down on it, so the "focused" attribute won't get set to the
// correct value. Keeping this instance based for now, potential better performance.
// Otherwise we'll end up looking up widgets from the DOM on every mousedown.
if (WEBKIT){
@@ -934,7 +938,7 @@ Y.extend(Widget, Y.Base, {
/**
* @method _unbindDOM
* @protected
- */
+ */
_unbindDOM : function(boundingBox) {
var focusHandle = Widget._hDocFocus,
@@ -1007,7 +1011,7 @@ Y.extend(Widget, Y.Base, {
/**
* Sets the visible state for the UI
- *
+ *
* @method _uiSetVisible
* @protected
* @param {boolean} val
@@ -1033,8 +1037,8 @@ Y.extend(Widget, Y.Base, {
* @method _uiSetFocused
* @protected
* @param {boolean} val
- * @param {string} src String representing the source that triggered an update to
- * the UI.
+ * @param {string} src String representing the source that triggered an update to
+ * the UI.
*/
_uiSetFocused: function(val, src) {
var boundingBox = this.get(BOUNDING_BOX);
@@ -1042,7 +1046,7 @@ Y.extend(Widget, Y.Base, {
if (src !== UI) {
if (val) {
- boundingBox.focus();
+ boundingBox.focus();
} else {
boundingBox.blur();
}
@@ -1068,7 +1072,7 @@ Y.extend(Widget, Y.Base, {
/**
* @method _onDocMouseDown
- * @description "mousedown" event handler for the owner document of the
+ * @description "mousedown" event handler for the owner document of the
* widget's bounding box.
* @protected
* @param {EventFacade} evt The event facade for the DOM focus event
@@ -1081,7 +1085,7 @@ Y.extend(Widget, Y.Base, {
/**
* DOM focus event handler, used to sync the state of the Widget with the DOM
- *
+ *
* @method _onDocFocus
* @protected
* @param {EventFacade} evt The event facade for the DOM focus event
@@ -1118,25 +1122,25 @@ Y.extend(Widget, Y.Base, {
/**
* Default unit to use for dimension values
- *
+ *
* @property DEF_UNIT
* @type String
*/
DEF_UNIT : "px",
- /**
+ /**
* Default node to render the bounding box to. If not set,
* will default to the current document body.
- *
+ *
* @property DEF_PARENT_NODE
* @type String | Node
- */
+ */
DEF_PARENT_NODE : null,
/**
* Property defining the markup template for content box. If your Widget doesn't
* need the dual boundingBox/contentBox structure, set CONTENT_TEMPLATE to null,
- * and contentBox and boundingBox will both point to the same Node.
+ * and contentBox and boundingBox will both point to the same Node.
*
* @property CONTENT_TEMPLATE
* @type String
@@ -1170,14 +1174,14 @@ Y.extend(Widget, Y.Base, {
/**
* Binds after listeners for the list of attributes provided
- *
+ *
* @method _bindAttrUI
* @private
* @param {Array} attrs
*/
_bindAttrUI : function(attrs) {
- var i,
- l = attrs.length;
+ var i,
+ l = attrs.length;
for (i = 0; i < l; i++) {
this.after(attrs[i] + CHANGE, this._setAttrUI);
@@ -1185,7 +1189,7 @@ Y.extend(Widget, Y.Base, {
},
/**
- * Invokes the _uiSet=ATTR NAME> method for the list of attributes provided
+ * Invokes the _uiSet=ATTR NAME> method for the list of attributes provided
*
* @method _syncAttrUI
* @private
@@ -1212,7 +1216,7 @@ Y.extend(Widget, Y.Base, {
/**
* The default setter for the strings attribute. Merges partial sets
- * into the full string set, to allow users to partial sets of strings
+ * into the full string set, to allow users to partial sets of strings
*
* @method _strSetter
* @protected
@@ -1226,7 +1230,7 @@ Y.extend(Widget, Y.Base, {
/**
* Helper method to get a specific string value
*
- * @deprecated Used by deprecated WidgetLocale implementations.
+ * @deprecated Used by deprecated WidgetLocale implementations.
* @method getString
* @param {String} key
* @return {String} The string
@@ -1263,7 +1267,7 @@ Y.extend(Widget, Y.Base, {
Y.Widget = Widget;
-}, '3.9.1', {
+}, '3.12.0', {
"requires": [
"attribute",
"base-base",
diff --git a/lib/yuilib/3.12.0/widget-base/widget-base-min.js b/lib/yuilib/3.12.0/widget-base/widget-base-min.js
new file mode 100755
index 00000000000..140ee66abc3
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-base/widget-base-min.js
@@ -0,0 +1,9 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("widget-base",function(e,t){function R(e){var t=this,n,r,i=t.constructor;t._strs={},t._cssPrefix=i.CSS_PREFIX||s(i.NAME.toLowerCase()),e=e||{},R.superclass.constructor.call(t,e),r=t.get(T),r&&(r!==P&&(n=r),t.render(n))}var n=e.Lang,r=e.Node,i=e.ClassNameManager,s=i.getClassName,o,u=e.cached(function(e){return e.substring(0,1).toUpperCase()+e.substring(1)}),a="content",f="visible",l="hidden",c="disabled",h="focused",p="width",d="height",v="boundingBox",m="contentBox",g="parentNode",y="ownerDocument",b="auto",w="srcNode",E="body",S="tabIndex",x="id",T="render",N="rendered",C="destroyed",k="strings",L="
- * Currently used to apply class identifiers to the bounding box
+ * Currently used to apply class identifiers to the bounding box
* and to classify events fired by the widget.
*
* The instance based version of this method can be used to generate standard prefixed classnames,
@@ -329,7 +335,7 @@ Widget.getClassName = function() {
_getWidgetClassName = Widget.getClassName;
/**
- * Returns the widget instance whose bounding box contains, or is, the given node.
+ * Returns the widget instance whose bounding box contains, or is, the given node.
*
* In the case of nested widgets, the nearest bounding box ancestor is used to
* return the widget instance.
@@ -358,10 +364,10 @@ Widget.getByNode = function(node) {
Y.extend(Widget, Y.Base, {
/**
- * Returns a class name prefixed with the the value of the
+ * Returns a class name prefixed with the the value of the
*
* This method should only be invoked once for an initialized
@@ -524,11 +528,11 @@ Y.extend(Widget, Y.Base, {
*
* @method render
* @chainable
- * @final
- * @param parentNode {Object | String} Optional. The Node under which the
- * Widget is to be rendered. This can be a Node instance or a CSS selector string.
+ * @final
+ * @param parentNode {Object | String} Optional. The Node under which the
+ * Widget is to be rendered. This can be a Node instance or a CSS selector string.
*
- * If the selector string returns more than one Node, the first node will be used
+ * If the selector string returns more than one Node, the first node will be used
* as the parentNode. NOTE: This argument is required if both the boundingBox and contentBox
* are not currently in the document. If it's not provided, the Widget will be rendered
* to the body of the current document in this case.
@@ -538,10 +542,10 @@ Y.extend(Widget, Y.Base, {
if (!this.get(DESTROYED) && !this.get(RENDERED)) {
/**
- * Lifecycle event for the render phase, fired prior to rendering the UI
+ * Lifecycle event for the render phase, fired prior to rendering the UI
* for the widget (prior to invoking the widget's renderer method).
*
- * Subscribers to the "on" moment of this event, will be notified
+ * Subscribers to the "on" moment of this event, will be notified
* before the widget is rendered.
*
@@ -575,7 +579,7 @@ Y.extend(Widget, Y.Base, {
*/
_defRenderFn : function(e) {
this._parentNode = e.parentNode;
-
+
this.renderer();
this._set(RENDERED, TRUE);
@@ -584,8 +588,8 @@ Y.extend(Widget, Y.Base, {
/**
* Creates DOM (or manipulates DOM for progressive enhancement)
- * This method is invoked by render() and is not chained
- * automatically for the class hierarchy (unlike initializer, destructor)
+ * This method is invoked by render() and is not chained
+ * automatically for the class hierarchy (unlike initializer, destructor)
* so it should be chained manually for subclasses if required.
*
* @method renderer
@@ -607,21 +611,21 @@ Y.extend(Widget, Y.Base, {
/**
* Configures/Sets up listeners to bind Widget State to UI/DOM
- *
- * This method is not called by framework and is not chained
+ *
+ * This method is not called by framework and is not chained
* automatically for the class hierarchy.
- *
+ *
* @method bindUI
* @protected
*/
bindUI: EMPTY_FN,
/**
- * Adds nodes to the DOM
- *
- * This method is not called by framework and is not chained
+ * Adds nodes to the DOM
+ *
+ * This method is not called by framework and is not chained
* automatically for the class hierarchy.
- *
+ *
* @method renderUI
* @protected
*/
@@ -629,7 +633,7 @@ Y.extend(Widget, Y.Base, {
/**
* Refreshes the rendered UI, based on Widget State
- *
+ *
* This method is not called by framework and is not chained
* automatically for the class hierarchy.
*
@@ -659,7 +663,7 @@ Y.extend(Widget, Y.Base, {
/**
* @method focus
- * @description Causes the Widget to receive the focus by setting the "focused"
+ * @description Causes the Widget to receive the focus by setting the "focused"
* attribute to "true".
* @chainable
*/
@@ -669,7 +673,7 @@ Y.extend(Widget, Y.Base, {
/**
* @method blur
- * @description Causes the Widget to lose focus by setting the "focused" attribute
+ * @description Causes the Widget to lose focus by setting the "focused" attribute
* to "false"
* @chainable
*/
@@ -701,14 +705,14 @@ Y.extend(Widget, Y.Base, {
* @param {boolean} expand
*/
_uiSizeCB : function(expand) {
- this.get(CONTENT_BOX).toggleClass(_getWidgetClassName(CONTENT, "expanded"), expand);
+ this.get(CONTENT_BOX).toggleClass(_getWidgetClassName(CONTENT, "expanded"), expand);
},
/**
* Helper method to collect the boundingBox and contentBox and append to the provided parentNode, if not
- * already a child. The owner document of the boundingBox, or the owner document of the contentBox will be used
+ * already a child. The owner document of the boundingBox, or the owner document of the contentBox will be used
* as the document into which the Widget is rendered if a parentNode is node is not provided. If both the boundingBox and
- * the contentBox are not currently in the document, and no parentNode is provided, the widget will be rendered
+ * the contentBox are not currently in the document, and no parentNode is provided, the widget will be rendered
* to the current document's body.
*
* @method _renderBox
@@ -775,7 +779,7 @@ Y.extend(Widget, Y.Base, {
},
/**
- * Returns the default value for the contentBox attribute.
+ * Returns the default value for the contentBox attribute.
*
* For the Widget class, this will be the srcNode if provided, otherwise null (resulting in
* a new contentBox node instance being created)
@@ -857,7 +861,7 @@ Y.extend(Widget, Y.Base, {
},
/**
- * Removes class names representative of the widget's loading state from
+ * Removes class names representative of the widget's loading state from
* the boundingBox.
*
* @method _removeLoadingClassNames
@@ -898,7 +902,7 @@ Y.extend(Widget, Y.Base, {
/**
* Sets up DOM listeners, on elements rendered by the widget.
- *
+ *
* @method _bindDOM
* @protected
*/
@@ -918,8 +922,8 @@ Y.extend(Widget, Y.Base, {
focusHandle.listeners.count++;
// Fix for Webkit:
- // Document doesn't receive focus in Webkit when the user mouses
- // down on it, so the "focused" attribute won't get set to the
+ // Document doesn't receive focus in Webkit when the user mouses
+ // down on it, so the "focused" attribute won't get set to the
// correct value. Keeping this instance based for now, potential better performance.
// Otherwise we'll end up looking up widgets from the DOM on every mousedown.
if (WEBKIT){
@@ -930,7 +934,7 @@ Y.extend(Widget, Y.Base, {
/**
* @method _unbindDOM
* @protected
- */
+ */
_unbindDOM : function(boundingBox) {
var focusHandle = Widget._hDocFocus,
@@ -1003,7 +1007,7 @@ Y.extend(Widget, Y.Base, {
/**
* Sets the visible state for the UI
- *
+ *
* @method _uiSetVisible
* @protected
* @param {boolean} val
@@ -1029,8 +1033,8 @@ Y.extend(Widget, Y.Base, {
* @method _uiSetFocused
* @protected
* @param {boolean} val
- * @param {string} src String representing the source that triggered an update to
- * the UI.
+ * @param {string} src String representing the source that triggered an update to
+ * the UI.
*/
_uiSetFocused: function(val, src) {
var boundingBox = this.get(BOUNDING_BOX);
@@ -1038,7 +1042,7 @@ Y.extend(Widget, Y.Base, {
if (src !== UI) {
if (val) {
- boundingBox.focus();
+ boundingBox.focus();
} else {
boundingBox.blur();
}
@@ -1064,7 +1068,7 @@ Y.extend(Widget, Y.Base, {
/**
* @method _onDocMouseDown
- * @description "mousedown" event handler for the owner document of the
+ * @description "mousedown" event handler for the owner document of the
* widget's bounding box.
* @protected
* @param {EventFacade} evt The event facade for the DOM focus event
@@ -1077,7 +1081,7 @@ Y.extend(Widget, Y.Base, {
/**
* DOM focus event handler, used to sync the state of the Widget with the DOM
- *
+ *
* @method _onDocFocus
* @protected
* @param {EventFacade} evt The event facade for the DOM focus event
@@ -1114,25 +1118,25 @@ Y.extend(Widget, Y.Base, {
/**
* Default unit to use for dimension values
- *
+ *
* @property DEF_UNIT
* @type String
*/
DEF_UNIT : "px",
- /**
+ /**
* Default node to render the bounding box to. If not set,
* will default to the current document body.
- *
+ *
* @property DEF_PARENT_NODE
* @type String | Node
- */
+ */
DEF_PARENT_NODE : null,
/**
* Property defining the markup template for content box. If your Widget doesn't
* need the dual boundingBox/contentBox structure, set CONTENT_TEMPLATE to null,
- * and contentBox and boundingBox will both point to the same Node.
+ * and contentBox and boundingBox will both point to the same Node.
*
* @property CONTENT_TEMPLATE
* @type String
@@ -1166,14 +1170,14 @@ Y.extend(Widget, Y.Base, {
/**
* Binds after listeners for the list of attributes provided
- *
+ *
* @method _bindAttrUI
* @private
* @param {Array} attrs
*/
_bindAttrUI : function(attrs) {
- var i,
- l = attrs.length;
+ var i,
+ l = attrs.length;
for (i = 0; i < l; i++) {
this.after(attrs[i] + CHANGE, this._setAttrUI);
@@ -1181,7 +1185,7 @@ Y.extend(Widget, Y.Base, {
},
/**
- * Invokes the _uiSet=ATTR NAME> method for the list of attributes provided
+ * Invokes the _uiSet=ATTR NAME> method for the list of attributes provided
*
* @method _syncAttrUI
* @private
@@ -1208,7 +1212,7 @@ Y.extend(Widget, Y.Base, {
/**
* The default setter for the strings attribute. Merges partial sets
- * into the full string set, to allow users to partial sets of strings
+ * into the full string set, to allow users to partial sets of strings
*
* @method _strSetter
* @protected
@@ -1222,7 +1226,7 @@ Y.extend(Widget, Y.Base, {
/**
* Helper method to get a specific string value
*
- * @deprecated Used by deprecated WidgetLocale implementations.
+ * @deprecated Used by deprecated WidgetLocale implementations.
* @method getString
* @param {String} key
* @return {String} The string
@@ -1259,7 +1263,7 @@ Y.extend(Widget, Y.Base, {
Y.Widget = Widget;
-}, '3.9.1', {
+}, '3.12.0', {
"requires": [
"attribute",
"base-base",
diff --git a/lib/yuilib/3.9.1/build/widget-buttons/widget-buttons-debug.js b/lib/yuilib/3.12.0/widget-buttons/widget-buttons-debug.js
old mode 100644
new mode 100755
similarity index 99%
rename from lib/yuilib/3.9.1/build/widget-buttons/widget-buttons-debug.js
rename to lib/yuilib/3.12.0/widget-buttons/widget-buttons-debug.js
index ef42ad995f1..dc214c4eacb
--- a/lib/yuilib/3.9.1/build/widget-buttons/widget-buttons-debug.js
+++ b/lib/yuilib/3.12.0/widget-buttons/widget-buttons-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-buttons', function (Y, NAME) {
/**
@@ -45,11 +51,6 @@ from those which already exist in its DOM.
@since 3.4.0
**/
function WidgetButtons() {
- // Require `Y.WidgetStdMod`.
- if (!this._stdModNode) {
- Y.error('WidgetStdMod must be added to a Widget before WidgetButtons.');
- }
-
// Has to be setup before the `initializer()`.
this._buttonsHandles = {};
}
@@ -257,6 +258,11 @@ WidgetButtons.prototype = {
// -- Lifecycle Methods ----------------------------------------------------
initializer: function () {
+ // Require `Y.WidgetStdMod`.
+ if (!this._stdModNode) {
+ Y.error('WidgetStdMod must be added to a Widget before WidgetButtons.');
+ }
+
// Creates button mappings and sets the `defaultButton`.
this._mapButtons(this.get('buttons'));
this._updateDefaultButton();
@@ -1292,4 +1298,4 @@ WidgetButtons.prototype = {
Y.WidgetButtons = WidgetButtons;
-}, '3.9.1', {"requires": ["button-plugin", "cssbutton", "widget-stdmod"]});
+}, '3.12.0', {"requires": ["button-plugin", "cssbutton", "widget-stdmod"]});
diff --git a/lib/yuilib/3.9.1/build/widget-buttons/widget-buttons-min.js b/lib/yuilib/3.12.0/widget-buttons/widget-buttons-min.js
old mode 100644
new mode 100755
similarity index 85%
rename from lib/yuilib/3.9.1/build/widget-buttons/widget-buttons-min.js
rename to lib/yuilib/3.12.0/widget-buttons/widget-buttons-min.js
index 4174593cf6a..bbc491493aa
--- a/lib/yuilib/3.9.1/build/widget-buttons/widget-buttons-min.js
+++ b/lib/yuilib/3.12.0/widget-buttons/widget-buttons-min.js
@@ -1,3 +1,9 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("widget-buttons",function(e,t){function p(e){return!!e.getDOMNode}function d(){this._stdModNode||e.error("WidgetStdMod must be added to a Widget before WidgetButtons."),this._buttonsHandles={}}var n=e.Array,r=e.Lang,i=e.Object,s=e.Plugin.Button,o=e.Widget,u=e.WidgetStdMod,a=e.ClassNameManager.getClassName,f=r.isArray,l=r.isNumber,c=r.isString,h=r.isValue;d.ATTRS={buttons:{getter:"_getButtons",setter:"_setButtons",value:{}},defaultButton:{readOnly:!0,value:null}},d.CLASS_NAMES={button:a("button"),buttons:o.getClassName("buttons"),primary:a("button","primary")},d.HTML_PARSER={buttons:function(e){return this._parseButtons(e)}},d.NON_BUTTON_NODE_CFG=["action","classNames","context","events","isDefault","section"],d.prototype={BUTTONS:{},BUTTONS_TEMPLATE:"",DEFAULT_BUTTONS_SECTION:u.FOOTER,initializer:function(){this._mapButtons(this.get("buttons")),this._updateDefaultButton(),this.after({buttonsChange:e.bind("_afterButtonsChange",this),defaultButtonChange:e.bind("_afterDefaultButtonChange",this)}),e.after(this._bindUIButtons,this,"bindUI"),e.after(this._syncUIButtons,this,"syncUI")},destructor:function(){i.each(this._buttonsHandles,function(e){e.detach()}),delete this._buttonsHandles,delete this._buttonsMap,delete this._defaultButton},addButton:function(e,t,r){var i=this.get("buttons"),s,o;return p(e)||(e=this._mergeButtonConfig(e),t||(t=e.section)),t||(t=this.DEFAULT_BUTTONS_SECTION),s=i[t]||(i[t]=[]),l(r)||(r=s.length),s.splice(r,0,e),o=n.indexOf(s,e),this.set("buttons",i,{button:e,section:t,index:o,src:"add"}),this},getButton:function(e,t){if(!h(e))return;var n=this._buttonsMap,r;return t||(t=this.DEFAULT_BUTTONS_SECTION),l(e)?(r=this.get("buttons"),r[t]&&r[t][e]):arguments.length>1?n[t+":"+e]:n[e]},removeButton:function(e,t){if(!h(e))return this;var r=this.get("buttons"),s;return l(e)?(t||(t=this.DEFAULT_BUTTONS_SECTION),s=e,e=r[t][s]):(c(e)&&(e=this.getButton.apply(this,arguments)),i.some(r,function(r,i){s=n.indexOf(r,e);if(s>-1)return t=i,!0})),e&&s>-1&&(r[t].splice(s,1),this.set("buttons",r,{button:e,section:t,index:s,src:"remove"})),this},_bindUIButtons:function(){var t=e.bind("_afterContentChangeButtons",this);this.after({visibleChange:e.bind("_afterVisibleChangeButtons",this),headerContentChange:t,bodyContentChange:t,footerContentChange:t})},_createButton:function(t){var r,i,o,u,a,f,l,h;if(p(t))return e.one(t.getDOMNode()).plug(s);r=e.merge({context:this,events:"click",label:t.value},t),i=e.merge(r),o=d.NON_BUTTON_NODE_CFG;for(u=0,a=o.length;u-1?(u.splice(l,1),l!==a&&(s.insertBefore(f,a+1),o=!0)):(s.appendChild(f),o=!0);u.each(function(e){this._uiRemoveButton(e,n,{preserveContent:!0}),o=!0},this);if(i===0){s.remove(),this._updateContentButtons(n);return}o&&this.setStdModContent(n,s,"after")},this)},_uiSetDefaultButton:function(e,t){var n=d.CLASS_NAMES.primary;e&&e.addClass(n),t&&t.removeClass(n)},_uiSetVisibleButtons:function(e){if(!e)return;var t=this.get("defaultButton");t&&t.focus()},_unMapButton:function(e,t){var n=this._buttonsMap,r=this._getButtonName(e),i;r&&(n[r]===e&&delete
-n[r],i=t+":"+r,n[i]===e&&delete n[i]),this._defaultButton===e&&(this._defaultButton=null)},_updateDefaultButton:function(){var e=this._defaultButton;this.get("defaultButton")!==e&&this._set("defaultButton",e)},_updateContentButtons:function(e){var t=this.getStdModNode(e).get("childNodes");this.set(e+"Content",t.isEmpty()?null:t,{src:"buttons"})},_afterButtonsChange:function(e){var t=e.newVal,n=e.section,r=e.index,i=e.src,s;if(i==="add"){s=t[n][r],this._mapButton(s,n),this._updateDefaultButton(),this._uiInsertButton(s,n,r);return}if(i==="remove"){s=e.button,this._unMapButton(s,n),this._updateDefaultButton(),this._uiRemoveButton(s,n);return}this._mapButtons(t),this._updateDefaultButton(),this._uiSetButtons(t)},_afterContentChangeButtons:function(e){var t=e.src,n=e.stdModPosition,r=!n||n===u.REPLACE;r&&t!=="buttons"&&t!==o.UI_SRC&&this._uiSetButtons(this.get("buttons"))},_afterDefaultButtonChange:function(e){this._uiSetDefaultButton(e.newVal,e.prevVal)},_afterVisibleChangeButtons:function(e){this._uiSetVisibleButtons(e.newVal)}},e.WidgetButtons=d},"3.9.1",{requires:["button-plugin","cssbutton","widget-stdmod"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("widget-buttons",function(e,t){function p(e){return!!e.getDOMNode}function d(){this._buttonsHandles={}}var n=e.Array,r=e.Lang,i=e.Object,s=e.Plugin.Button,o=e.Widget,u=e.WidgetStdMod,a=e.ClassNameManager.getClassName,f=r.isArray,l=r.isNumber,c=r.isString,h=r.isValue;d.ATTRS={buttons:{getter:"_getButtons",setter:"_setButtons",value:{}},defaultButton:{readOnly:!0,value:null}},d.CLASS_NAMES={button:a("button"),buttons:o.getClassName("buttons"),primary:a("button","primary")},d.HTML_PARSER={buttons:function(e){return this._parseButtons(e)}},d.NON_BUTTON_NODE_CFG=["action","classNames","context","events","isDefault","section"],d.prototype={BUTTONS:{},BUTTONS_TEMPLATE:"",DEFAULT_BUTTONS_SECTION:u.FOOTER,initializer:function(){this._stdModNode||e.error("WidgetStdMod must be added to a Widget before WidgetButtons."),this._mapButtons(this.get("buttons")),this._updateDefaultButton(),this.after({buttonsChange:e.bind("_afterButtonsChange",this),defaultButtonChange:e.bind("_afterDefaultButtonChange",this)}),e.after(this._bindUIButtons,this,"bindUI"),e.after(this._syncUIButtons,this,"syncUI")},destructor:function(){i.each(this._buttonsHandles,function(e){e.detach()}),delete this._buttonsHandles,delete this._buttonsMap,delete this._defaultButton},addButton:function(e,t,r){var i=this.get("buttons"),s,o;return p(e)||(e=this._mergeButtonConfig(e),t||(t=e.section)),t||(t=this.DEFAULT_BUTTONS_SECTION),s=i[t]||(i[t]=[]),l(r)||(r=s.length),s.splice(r,0,e),o=n.indexOf(s,e),this.set("buttons",i,{button:e,section:t,index:o,src:"add"}),this},getButton:function(e,t){if(!h(e))return;var n=this._buttonsMap,r;return t||(t=this.DEFAULT_BUTTONS_SECTION),l(e)?(r=this.get("buttons"),r[t]&&r[t][e]):arguments.length>1?n[t+":"+e]:n[e]},removeButton:function(e,t){if(!h(e))return this;var r=this.get("buttons"),s;return l(e)?(t||(t=this.DEFAULT_BUTTONS_SECTION),s=e,e=r[t][s]):(c(e)&&(e=this.getButton.apply(this,arguments)),i.some(r,function(r,i){s=n.indexOf(r,e);if(s>-1)return t=i,!0})),e&&s>-1&&(r[t].splice(s,1),this.set("buttons",r,{button:e,section:t,index:s,src:"remove"})),this},_bindUIButtons:function(){var t=e.bind("_afterContentChangeButtons",this);this.after({visibleChange:e.bind("_afterVisibleChangeButtons",this),headerContentChange:t,bodyContentChange:t,footerContentChange:t})},_createButton:function(t){var r,i,o,u,a,f,l,h;if(p(t))return e.one(t.getDOMNode()).plug(s);r=e.merge({context:this,events:"click",label:t.value},t),i=e.merge(r),o=d.NON_BUTTON_NODE_CFG;for(u=0,a=o.length;u-1?(u.splice(l,1),l!==a&&(s.insertBefore(f,a+1),o=!0)):(s.appendChild(f),o=!0);u.each(function(e){this._uiRemoveButton(e,n,{preserveContent:!0}),o=!0},this);if(i===0){s.remove(),this._updateContentButtons(n);return}o&&this.setStdModContent(n,s,"after")},this)},_uiSetDefaultButton:function(e,t){var n=d.CLASS_NAMES.primary;e&&e.addClass(n),t&&t.removeClass(n)},_uiSetVisibleButtons:function(e){if(!e)return;var t=this.get("defaultButton");t&&t.focus()},_unMapButton:function(e,t){var n=this._buttonsMap,r=this._getButtonName(e),i;r&&(n[r]===e&&delete
+n[r],i=t+":"+r,n[i]===e&&delete n[i]),this._defaultButton===e&&(this._defaultButton=null)},_updateDefaultButton:function(){var e=this._defaultButton;this.get("defaultButton")!==e&&this._set("defaultButton",e)},_updateContentButtons:function(e){var t=this.getStdModNode(e).get("childNodes");this.set(e+"Content",t.isEmpty()?null:t,{src:"buttons"})},_afterButtonsChange:function(e){var t=e.newVal,n=e.section,r=e.index,i=e.src,s;if(i==="add"){s=t[n][r],this._mapButton(s,n),this._updateDefaultButton(),this._uiInsertButton(s,n,r);return}if(i==="remove"){s=e.button,this._unMapButton(s,n),this._updateDefaultButton(),this._uiRemoveButton(s,n);return}this._mapButtons(t),this._updateDefaultButton(),this._uiSetButtons(t)},_afterContentChangeButtons:function(e){var t=e.src,n=e.stdModPosition,r=!n||n===u.REPLACE;r&&t!=="buttons"&&t!==o.UI_SRC&&this._uiSetButtons(this.get("buttons"))},_afterDefaultButtonChange:function(e){this._uiSetDefaultButton(e.newVal,e.prevVal)},_afterVisibleChangeButtons:function(e){this._uiSetVisibleButtons(e.newVal)}},e.WidgetButtons=d},"3.12.0",{requires:["button-plugin","cssbutton","widget-stdmod"]});
diff --git a/lib/yuilib/3.9.1/build/widget-buttons/widget-buttons.js b/lib/yuilib/3.12.0/widget-buttons/widget-buttons.js
old mode 100644
new mode 100755
similarity index 99%
rename from lib/yuilib/3.9.1/build/widget-buttons/widget-buttons.js
rename to lib/yuilib/3.12.0/widget-buttons/widget-buttons.js
index ef42ad995f1..dc214c4eacb
--- a/lib/yuilib/3.9.1/build/widget-buttons/widget-buttons.js
+++ b/lib/yuilib/3.12.0/widget-buttons/widget-buttons.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-buttons', function (Y, NAME) {
/**
@@ -45,11 +51,6 @@ from those which already exist in its DOM.
@since 3.4.0
**/
function WidgetButtons() {
- // Require `Y.WidgetStdMod`.
- if (!this._stdModNode) {
- Y.error('WidgetStdMod must be added to a Widget before WidgetButtons.');
- }
-
// Has to be setup before the `initializer()`.
this._buttonsHandles = {};
}
@@ -257,6 +258,11 @@ WidgetButtons.prototype = {
// -- Lifecycle Methods ----------------------------------------------------
initializer: function () {
+ // Require `Y.WidgetStdMod`.
+ if (!this._stdModNode) {
+ Y.error('WidgetStdMod must be added to a Widget before WidgetButtons.');
+ }
+
// Creates button mappings and sets the `defaultButton`.
this._mapButtons(this.get('buttons'));
this._updateDefaultButton();
@@ -1292,4 +1298,4 @@ WidgetButtons.prototype = {
Y.WidgetButtons = WidgetButtons;
-}, '3.9.1', {"requires": ["button-plugin", "cssbutton", "widget-stdmod"]});
+}, '3.12.0', {"requires": ["button-plugin", "cssbutton", "widget-stdmod"]});
diff --git a/lib/yuilib/3.9.1/build/widget-child/widget-child-debug.js b/lib/yuilib/3.12.0/widget-child/widget-child-debug.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/widget-child/widget-child-debug.js
rename to lib/yuilib/3.12.0/widget-child/widget-child-debug.js
index da8d047ae9b..c94aaf76e1a
--- a/lib/yuilib/3.9.1/build/widget-child/widget-child-debug.js
+++ b/lib/yuilib/3.12.0/widget-child/widget-child-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-child', function (Y, NAME) {
/**
@@ -374,4 +380,4 @@ Child.prototype = {
Y.WidgetChild = Child;
-}, '3.9.1', {"requires": ["base-build", "widget"]});
+}, '3.12.0', {"requires": ["base-build", "widget"]});
diff --git a/lib/yuilib/3.9.1/build/widget-child/widget-child-min.js b/lib/yuilib/3.12.0/widget-child/widget-child-min.js
old mode 100644
new mode 100755
similarity index 87%
rename from lib/yuilib/3.9.1/build/widget-child/widget-child-min.js
rename to lib/yuilib/3.12.0/widget-child/widget-child-min.js
index 8bc8e459e22..d6f090be703
--- a/lib/yuilib/3.9.1/build/widget-child/widget-child-min.js
+++ b/lib/yuilib/3.12.0/widget-child/widget-child-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("widget-child",function(e,t){function r(){e.after(this._syncUIChild,this,"syncUI"),e.after(this._bindUIChild,this,"bindUI")}var n=e.Lang;r.ATTRS={selected:{value:0,validator:n.isNumber},index:{readOnly:!0,getter:function(){var e=this.get("parent"),t=-1;return e&&(t=e.indexOf(this)),t}},parent:{readOnly:!0},depth:{readOnly:!0,getter:function(){var e=this.get("parent"),t=this.get("root"),n=-1;while(e){n+=1;if(e==t)break;e=e.get("parent")}return n}},root:{readOnly:!0,getter:function(){var t=function(n){var r=n.get("parent"),i=n.ROOT_TYPE,s=r;return i&&(s=r&&e.instanceOf(r,i)),s?t(r):n};return t(this)}}},r.prototype={ROOT_TYPE:null,_getUIEventNode:function(){var e=this.get("root"),t;return e&&(t=e.get("boundingBox")),t},next:function(e){var t=this.get("parent"),n;return t&&(n=t.item(this.get("index")+1)),!n&&e&&(n=t.item(0)),n},previous:function(e){var t=this.get("parent"),n=this.get("index"),r;return t&&n>0&&(r=t.item([n-1])),!r&&e&&(r=t.item(t.size()-1)),r},remove:function(t){var r,i;return n.isNumber(t)?i=e.WidgetParent.prototype.remove.apply(this,arguments):(r=this.get("parent"),r&&(i=r.remove(this.get("index")))),i},isRoot:function(){return this==this.get("root")},ancestor:function(e){var t=this.get("root"),n;if(this.get("depth")>e){n=this.get("parent");while(n!=t&&n.get("depth")>e)n=n.get("parent")}return n},_uiSetChildSelected:function(e){var t=this.get("boundingBox"),n=this.getClassName("selected");e===0?t.removeClass(n):t.addClass(n)},_afterChildSelectedChange:function(e){this._uiSetChildSelected(e.newVal)},_syncUIChild:function(){this._uiSetChildSelected(this.get("selected"))},_bindUIChild:function(){this.after("selectedChange",this._afterChildSelectedChange)}},e.WidgetChild=r},"3.9.1",{requires:["base-build","widget"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("widget-child",function(e,t){function r(){e.after(this._syncUIChild,this,"syncUI"),e.after(this._bindUIChild,this,"bindUI")}var n=e.Lang;r.ATTRS={selected:{value:0,validator:n.isNumber},index:{readOnly:!0,getter:function(){var e=this.get("parent"),t=-1;return e&&(t=e.indexOf(this)),t}},parent:{readOnly:!0},depth:{readOnly:!0,getter:function(){var e=this.get("parent"),t=this.get("root"),n=-1;while(e){n+=1;if(e==t)break;e=e.get("parent")}return n}},root:{readOnly:!0,getter:function(){var t=function(n){var r=n.get("parent"),i=n.ROOT_TYPE,s=r;return i&&(s=r&&e.instanceOf(r,i)),s?t(r):n};return t(this)}}},r.prototype={ROOT_TYPE:null,_getUIEventNode:function(){var e=this.get("root"),t;return e&&(t=e.get("boundingBox")),t},next:function(e){var t=this.get("parent"),n;return t&&(n=t.item(this.get("index")+1)),!n&&e&&(n=t.item(0)),n},previous:function(e){var t=this.get("parent"),n=this.get("index"),r;return t&&n>0&&(r=t.item([n-1])),!r&&e&&(r=t.item(t.size()-1)),r},remove:function(t){var r,i;return n.isNumber(t)?i=e.WidgetParent.prototype.remove.apply(this,arguments):(r=this.get("parent"),r&&(i=r.remove(this.get("index")))),i},isRoot:function(){return this==this.get("root")},ancestor:function(e){var t=this.get("root"),n;if(this.get("depth")>e){n=this.get("parent");while(n!=t&&n.get("depth")>e)n=n.get("parent")}return n},_uiSetChildSelected:function(e){var t=this.get("boundingBox"),n=this.getClassName("selected");e===0?t.removeClass(n):t.addClass(n)},_afterChildSelectedChange:function(e){this._uiSetChildSelected(e.newVal)},_syncUIChild:function(){this._uiSetChildSelected(this.get("selected"))},_bindUIChild:function(){this.after("selectedChange",this._afterChildSelectedChange)}},e.WidgetChild=r},"3.12.0",{requires:["base-build","widget"]});
diff --git a/lib/yuilib/3.9.1/build/widget-child/widget-child.js b/lib/yuilib/3.12.0/widget-child/widget-child.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/widget-child/widget-child.js
rename to lib/yuilib/3.12.0/widget-child/widget-child.js
index da8d047ae9b..c94aaf76e1a
--- a/lib/yuilib/3.9.1/build/widget-child/widget-child.js
+++ b/lib/yuilib/3.12.0/widget-child/widget-child.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-child', function (Y, NAME) {
/**
@@ -374,4 +380,4 @@ Child.prototype = {
Y.WidgetChild = Child;
-}, '3.9.1', {"requires": ["base-build", "widget"]});
+}, '3.12.0', {"requires": ["base-build", "widget"]});
diff --git a/lib/yuilib/3.9.1/build/widget-htmlparser/widget-htmlparser-debug.js b/lib/yuilib/3.12.0/widget-htmlparser/widget-htmlparser-debug.js
old mode 100644
new mode 100755
similarity index 73%
rename from lib/yuilib/3.9.1/build/widget-htmlparser/widget-htmlparser-debug.js
rename to lib/yuilib/3.12.0/widget-htmlparser/widget-htmlparser-debug.js
index 05bb1d0a3d3..cb4e34513a7
--- a/lib/yuilib/3.9.1/build/widget-htmlparser/widget-htmlparser-debug.js
+++ b/lib/yuilib/3.12.0/widget-htmlparser/widget-htmlparser-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-htmlparser', function (Y, NAME) {
/**
@@ -21,20 +27,20 @@ var Widget = Y.Widget,
* markup contained in the widget's content box. e.g.:
*
* Defines the static fields which need to be aggregated,
- * when this class is used as the main class passed to
+ * when this class is used as the main class passed to
* the Base.build method.
*
* Defines the static fields which need to be aggregated,
- * when this class is used as the main class passed to
+ * when this class is used as the main class passed to
* the Base.build method.
*
- * If no values of the key are defined for a particular locale the value for the
+ * If no values of the key are defined for a particular locale the value for the
* default locale (in initial locale set for the class) is returned.
*
- * If no values if defined for the key, for the given locale, the value for the
+ * If no values if defined for the key, for the given locale, the value for the
* default locale (in initial locale set for the class) is returned.
*
- * If no values if defined for the key, for the given locale, the value for the
+ * If no values if defined for the key, for the given locale, the value for the
* default locale (in initial locale set for the class) is returned.
*
* This method is invoked after bindUI is invoked for the Widget class
@@ -290,10 +298,10 @@ PositionConstrain.prototype = {
/**
* Updates the UI if enabling constraints, and sets up the xyChange event listeners
* to constrain whenever the widget is moved. Disabling constraints removes the listeners.
- *
+ *
* @method enable or disable constraints listeners
* @private
- * @param {boolean} enable Enable or disable constraints
+ * @param {boolean} enable Enable or disable constraints
*/
_enableConstraints : function(enable) {
if (enable) {
@@ -301,7 +309,7 @@ PositionConstrain.prototype = {
this._cxyHandle = this._cxyHandle || this.on(CONSTRAIN_XYCHANGE, this._constrainOnXYChange);
} else if (this._cxyHandle) {
this._cxyHandle.detach();
- this._cxyHandle = null;
+ this._cxyHandle = null;
}
},
@@ -320,9 +328,9 @@ PositionConstrain.prototype = {
},
/**
- * Utility method to normalize region retrieval from a node instance,
- * or the viewport, if no node is provided.
- *
+ * Utility method to normalize region retrieval from a node instance,
+ * or the viewport, if no node is provided.
+ *
* @method _getRegion
* @private
* @param {Node} node Optional.
@@ -344,4 +352,4 @@ PositionConstrain.prototype = {
Y.WidgetPositionConstrain = PositionConstrain;
-}, '3.9.1', {"requires": ["widget-position"]});
+}, '3.12.0', {"requires": ["widget-position"]});
diff --git a/lib/yuilib/3.12.0/widget-position-constrain/widget-position-constrain-min.js b/lib/yuilib/3.12.0/widget-position-constrain/widget-position-constrain-min.js
new file mode 100755
index 00000000000..05d9c610059
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-position-constrain/widget-position-constrain-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("widget-position-constrain",function(e,t){function m(e){}var n="constrain",r="constrain|xyChange",i="constrainChange",s="preventOverlap",o="align",u="",a="bindUI",f="xy",l="x",c="y",h=e.Node,p="viewportRegion",d="region",v;m.ATTRS={constrain:{value:null,setter:"_setConstrain"},preventOverlap:{value:!1}},v=m._PREVENT_OVERLAP={x:{tltr:1,blbr:1,brbl:1,trtl:1},y:{trbr:1,tlbl:1,bltl:1,brtr:1}},m.prototype={initializer:function(){this._posNode||e.error("WidgetPosition needs to be added to the Widget, before WidgetPositionConstrain is added"),e.after(this._bindUIPosConstrained,this,a)},getConstrainedXY:function(e,t){t=t||this.get(n);var r=this._getRegion(t===!0?null:t),i=this._posNode.get(d);return[this._constrain(e[0],l,i,r),this._constrain(e[1],c,i,r)]},constrain:function(e,t){var r,i,s=t||this.get(n);s&&(r=e||this.get(f),i=this.getConstrainedXY(r,s),(i[0]!==r[0]||i[1]!==r[1])&&this.set(f,i,{constrained:!0}))},_setConstrain:function(e){return e===!0?e:h.one(e)},_constrain:function(e,t,n,r){if(r){this.get(s)&&(e=this._preventOverlap(e,t,n,r));var i=t==l,o=i?r.width:r.height,u=i?n.width:n.height,a=i?r.left:r.top,f=i?r.right-u:r.bottom-u;if(ef)u
* This method is invoked after bindUI is invoked for the Widget class
@@ -290,10 +298,10 @@ PositionConstrain.prototype = {
/**
* Updates the UI if enabling constraints, and sets up the xyChange event listeners
* to constrain whenever the widget is moved. Disabling constraints removes the listeners.
- *
+ *
* @method enable or disable constraints listeners
* @private
- * @param {boolean} enable Enable or disable constraints
+ * @param {boolean} enable Enable or disable constraints
*/
_enableConstraints : function(enable) {
if (enable) {
@@ -301,7 +309,7 @@ PositionConstrain.prototype = {
this._cxyHandle = this._cxyHandle || this.on(CONSTRAIN_XYCHANGE, this._constrainOnXYChange);
} else if (this._cxyHandle) {
this._cxyHandle.detach();
- this._cxyHandle = null;
+ this._cxyHandle = null;
}
},
@@ -320,9 +328,9 @@ PositionConstrain.prototype = {
},
/**
- * Utility method to normalize region retrieval from a node instance,
- * or the viewport, if no node is provided.
- *
+ * Utility method to normalize region retrieval from a node instance,
+ * or the viewport, if no node is provided.
+ *
* @method _getRegion
* @private
* @param {Node} node Optional.
@@ -344,4 +352,4 @@ PositionConstrain.prototype = {
Y.WidgetPositionConstrain = PositionConstrain;
-}, '3.9.1', {"requires": ["widget-position"]});
+}, '3.12.0', {"requires": ["widget-position"]});
diff --git a/lib/yuilib/3.9.1/build/widget-position/widget-position-debug.js b/lib/yuilib/3.12.0/widget-position/widget-position-debug.js
old mode 100644
new mode 100755
similarity index 90%
rename from lib/yuilib/3.9.1/build/widget-position/widget-position-debug.js
rename to lib/yuilib/3.12.0/widget-position/widget-position-debug.js
index ec3c7fadbd4..ac69a8416f6
--- a/lib/yuilib/3.9.1/build/widget-position/widget-position-debug.js
+++ b/lib/yuilib/3.12.0/widget-position/widget-position-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-position', function (Y, NAME) {
/**
@@ -25,23 +31,17 @@ YUI.add('widget-position', function (Y, NAME) {
XYChange = "xyChange";
/**
- * Widget extension, which can be used to add positioning support to the base Widget class,
+ * Widget extension, which can be used to add positioning support to the base Widget class,
* through the Base.build method.
*
* @class WidgetPosition
* @param {Object} config User configuration object
*/
function Position(config) {
- this._posNode = this.get(BOUNDING_BOX);
-
- // WIDGET METHOD OVERLAP
- Y.after(this._renderUIPosition, this, RENDERUI);
- Y.after(this._syncUIPosition, this, SYNCUI);
- Y.after(this._bindUIPosition, this, BINDUI);
}
/**
- * Static property used to define the default attribute
+ * Static property used to define the default attribute
* configuration introduced by WidgetPosition.
*
* @property ATTRS
@@ -55,7 +55,7 @@ YUI.add('widget-position', function (Y, NAME) {
* @type number
* @default 0
*
- * @description Page X co-ordinate for the widget. This attribute acts as a facade for the
+ * @description Page X co-ordinate for the widget. This attribute acts as a facade for the
* xy attribute. Changes in position can be monitored by listening for xyChange events.
*/
x: {
@@ -73,7 +73,7 @@ YUI.add('widget-position', function (Y, NAME) {
* @type number
* @default 0
*
- * @description Page Y co-ordinate for the widget. This attribute acts as a facade for the
+ * @description Page Y co-ordinate for the widget. This attribute acts as a facade for the
* xy attribute. Changes in position can be monitored by listening for xyChange events.
*/
y: {
@@ -113,6 +113,15 @@ YUI.add('widget-position', function (Y, NAME) {
Position.prototype = {
+ initializer : function() {
+ this._posNode = this.get(BOUNDING_BOX);
+
+ // WIDGET METHOD OVERLAP
+ Y.after(this._renderUIPosition, this, RENDERUI);
+ Y.after(this._syncUIPosition, this, SYNCUI);
+ Y.after(this._bindUIPosition, this, BINDUI);
+ },
+
/**
* Creates/Initializes the DOM to support xy page positioning.
*
@@ -144,7 +153,7 @@ YUI.add('widget-position', function (Y, NAME) {
},
/**
- * Binds event listeners responsible for updating the UI state in response to
+ * Binds event listeners responsible for updating the UI state in response to
* Widget position related state changes.
*
* This method in invoked after bindUI is invoked for the Widget class
@@ -175,7 +184,7 @@ YUI.add('widget-position', function (Y, NAME) {
},
/**
- * Synchronizes the Panel's "xy", "x", and "y" properties with the
+ * Synchronizes the Panel's "xy", "x", and "y" properties with the
* Widget's position in the DOM.
*
* @method syncXY
@@ -221,11 +230,11 @@ YUI.add('widget-position', function (Y, NAME) {
},
/**
- * Default getter for the X attribute. The value is retrieved from
+ * Default getter for the X attribute. The value is retrieved from
* the XY attribute, which is the sole store for the XY state.
*
* @method _getX
- * @protected
+ * @protected
* @return {Number} The X page co-ordinate value
*/
_getX : function() {
@@ -233,11 +242,11 @@ YUI.add('widget-position', function (Y, NAME) {
},
/**
- * Default getter for the Y attribute. The value is retrieved from
+ * Default getter for the Y attribute. The value is retrieved from
* the XY attribute, which is the sole store for the XY state.
*
* @method _getY
- * @protected
+ * @protected
* @return {Number} The Y page co-ordinate value
*/
_getY : function() {
@@ -247,7 +256,7 @@ YUI.add('widget-position', function (Y, NAME) {
/**
* Default attribute change listener for the xy attribute, responsible
* for updating the UI, in response to attribute changes.
- *
+ *
* @method _afterXYChange
* @protected
* @param {EventFacade} e The event facade for the attribute change
@@ -260,7 +269,7 @@ YUI.add('widget-position', function (Y, NAME) {
/**
* Updates the UI to reflect the XY page co-ordinates passed in.
- *
+ *
* @method _uiSetXY
* @protected
* @param {String} val The XY page co-ordinates value to be reflected in the UI
@@ -273,4 +282,4 @@ YUI.add('widget-position', function (Y, NAME) {
Y.WidgetPosition = Position;
-}, '3.9.1', {"requires": ["base-build", "node-screen", "widget"]});
+}, '3.12.0', {"requires": ["base-build", "node-screen", "widget"]});
diff --git a/lib/yuilib/3.12.0/widget-position/widget-position-min.js b/lib/yuilib/3.12.0/widget-position/widget-position-min.js
new file mode 100755
index 00000000000..0ea9aee3eb2
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-position/widget-position-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("widget-position",function(e,t){function d(e){}var n=e.Lang,r=e.Widget,i="xy",s="position",o="positioned",u="boundingBox",a="relative",f="renderUI",l="bindUI",c="syncUI",h=r.UI_SRC,p="xyChange";d.ATTRS={x:{setter:function(e){this._setX(e)},getter:function(){return this._getX()},lazyAdd:!1},y:{setter:function(e){this._setY(e)},getter:function(){return this._getY()},lazyAdd:!1},xy:{value:[0,0],validator:function(e){return this._validateXY(e)}}},d.POSITIONED_CLASS_NAME=r.getClassName(o),d.prototype={initializer:function(){this._posNode=this.get(u),e.after(this._renderUIPosition,this,f),e.after(this._syncUIPosition,this,c),e.after(this._bindUIPosition,this,l)},_renderUIPosition:function(){this._posNode.addClass(d.POSITIONED_CLASS_NAME)},_syncUIPosition:function(){var e=this._posNode;e.getStyle(s)===a&&this.syncXY(),this._uiSetXY(this.get(i))},_bindUIPosition:function(){this.after(p,this._afterXYChange)},move:function(){var e=arguments,t=n.isArray(e[0])?e[0]:[e[0],e[1]];this.set(i,t)},syncXY:function(){this.set(i,this._posNode.getXY(),{src:h})},_validateXY:function(e){return n.isArray(e)&&n.isNumber(e[0])&&n.isNumber(e[1])},_setX:function(e){this.set(i,[e,this.get(i)[1]])},_setY:function(e){this.set(i,[this.get(i)[0],e])},_getX:function(){return this.get(i)[0]},_getY:function(){return this.get(i)[1]},_afterXYChange:function(e){e.src!=h&&this._uiSetXY(e.newVal)},_uiSetXY:function(e){this._posNode.setXY(e)}},e.WidgetPosition=d},"3.12.0",{requires:["base-build","node-screen","widget"]});
diff --git a/lib/yuilib/3.9.1/build/widget-position/widget-position.js b/lib/yuilib/3.12.0/widget-position/widget-position.js
old mode 100644
new mode 100755
similarity index 90%
rename from lib/yuilib/3.9.1/build/widget-position/widget-position.js
rename to lib/yuilib/3.12.0/widget-position/widget-position.js
index ec3c7fadbd4..ac69a8416f6
--- a/lib/yuilib/3.9.1/build/widget-position/widget-position.js
+++ b/lib/yuilib/3.12.0/widget-position/widget-position.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-position', function (Y, NAME) {
/**
@@ -25,23 +31,17 @@ YUI.add('widget-position', function (Y, NAME) {
XYChange = "xyChange";
/**
- * Widget extension, which can be used to add positioning support to the base Widget class,
+ * Widget extension, which can be used to add positioning support to the base Widget class,
* through the Base.build method.
*
* @class WidgetPosition
* @param {Object} config User configuration object
*/
function Position(config) {
- this._posNode = this.get(BOUNDING_BOX);
-
- // WIDGET METHOD OVERLAP
- Y.after(this._renderUIPosition, this, RENDERUI);
- Y.after(this._syncUIPosition, this, SYNCUI);
- Y.after(this._bindUIPosition, this, BINDUI);
}
/**
- * Static property used to define the default attribute
+ * Static property used to define the default attribute
* configuration introduced by WidgetPosition.
*
* @property ATTRS
@@ -55,7 +55,7 @@ YUI.add('widget-position', function (Y, NAME) {
* @type number
* @default 0
*
- * @description Page X co-ordinate for the widget. This attribute acts as a facade for the
+ * @description Page X co-ordinate for the widget. This attribute acts as a facade for the
* xy attribute. Changes in position can be monitored by listening for xyChange events.
*/
x: {
@@ -73,7 +73,7 @@ YUI.add('widget-position', function (Y, NAME) {
* @type number
* @default 0
*
- * @description Page Y co-ordinate for the widget. This attribute acts as a facade for the
+ * @description Page Y co-ordinate for the widget. This attribute acts as a facade for the
* xy attribute. Changes in position can be monitored by listening for xyChange events.
*/
y: {
@@ -113,6 +113,15 @@ YUI.add('widget-position', function (Y, NAME) {
Position.prototype = {
+ initializer : function() {
+ this._posNode = this.get(BOUNDING_BOX);
+
+ // WIDGET METHOD OVERLAP
+ Y.after(this._renderUIPosition, this, RENDERUI);
+ Y.after(this._syncUIPosition, this, SYNCUI);
+ Y.after(this._bindUIPosition, this, BINDUI);
+ },
+
/**
* Creates/Initializes the DOM to support xy page positioning.
*
@@ -144,7 +153,7 @@ YUI.add('widget-position', function (Y, NAME) {
},
/**
- * Binds event listeners responsible for updating the UI state in response to
+ * Binds event listeners responsible for updating the UI state in response to
* Widget position related state changes.
*
* This method in invoked after bindUI is invoked for the Widget class
@@ -175,7 +184,7 @@ YUI.add('widget-position', function (Y, NAME) {
},
/**
- * Synchronizes the Panel's "xy", "x", and "y" properties with the
+ * Synchronizes the Panel's "xy", "x", and "y" properties with the
* Widget's position in the DOM.
*
* @method syncXY
@@ -221,11 +230,11 @@ YUI.add('widget-position', function (Y, NAME) {
},
/**
- * Default getter for the X attribute. The value is retrieved from
+ * Default getter for the X attribute. The value is retrieved from
* the XY attribute, which is the sole store for the XY state.
*
* @method _getX
- * @protected
+ * @protected
* @return {Number} The X page co-ordinate value
*/
_getX : function() {
@@ -233,11 +242,11 @@ YUI.add('widget-position', function (Y, NAME) {
},
/**
- * Default getter for the Y attribute. The value is retrieved from
+ * Default getter for the Y attribute. The value is retrieved from
* the XY attribute, which is the sole store for the XY state.
*
* @method _getY
- * @protected
+ * @protected
* @return {Number} The Y page co-ordinate value
*/
_getY : function() {
@@ -247,7 +256,7 @@ YUI.add('widget-position', function (Y, NAME) {
/**
* Default attribute change listener for the xy attribute, responsible
* for updating the UI, in response to attribute changes.
- *
+ *
* @method _afterXYChange
* @protected
* @param {EventFacade} e The event facade for the attribute change
@@ -260,7 +269,7 @@ YUI.add('widget-position', function (Y, NAME) {
/**
* Updates the UI to reflect the XY page co-ordinates passed in.
- *
+ *
* @method _uiSetXY
* @protected
* @param {String} val The XY page co-ordinates value to be reflected in the UI
@@ -273,4 +282,4 @@ YUI.add('widget-position', function (Y, NAME) {
Y.WidgetPosition = Position;
-}, '3.9.1', {"requires": ["base-build", "node-screen", "widget"]});
+}, '3.12.0', {"requires": ["base-build", "node-screen", "widget"]});
diff --git a/lib/yuilib/3.12.0/widget-skin/widget-skin-debug.js b/lib/yuilib/3.12.0/widget-skin/widget-skin-debug.js
new file mode 100755
index 00000000000..29731b7bd45
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-skin/widget-skin-debug.js
@@ -0,0 +1,66 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add('widget-skin', function (Y, NAME) {
+
+/**
+ * Provides skin related utlility methods.
+ *
+ * @module widget
+ * @submodule widget-skin
+ */
+var BOUNDING_BOX = "boundingBox",
+ CONTENT_BOX = "contentBox",
+ SKIN = "skin",
+ _getClassName = Y.ClassNameManager.getClassName;
+
+/**
+ * Returns the name of the skin that's currently applied to the widget.
+ *
+ * Searches up the Widget's ancestor axis for, by default, a class
+ * yui3-skin-(name), and returns the (name) portion. Otherwise, returns null.
+ *
+ * This is only really useful after the widget's DOM structure is in the
+ * document, either by render or by progressive enhancement.
+ *
+ * @method getSkinName
+ * @for Widget
+ * @param {String} [skinPrefix] The prefix which the implementation uses for the skin
+ * ("yui3-skin-" is the default).
+ *
+ * NOTE: skinPrefix will be used as part of a regular expression:
+ *
+ * new RegExp('\\b' + skinPrefix + '(\\S+)')
+ *
+ * Although an unlikely use case, literal characters which may result in an invalid
+ * regular expression should be escaped.
+ *
+ * @return {String} The name of the skin, or null, if a matching skin class is not found.
+ */
+
+Y.Widget.prototype.getSkinName = function (skinPrefix) {
+
+ var root = this.get( CONTENT_BOX ) || this.get( BOUNDING_BOX ),
+ match,
+ search;
+
+ skinPrefix = skinPrefix || _getClassName(SKIN, "");
+
+ search = new RegExp( '\\b' + skinPrefix + '(\\S+)' );
+
+ if ( root ) {
+ root.ancestor( function ( node ) {
+ match = node.get( 'className' ).match( search );
+ return match;
+ } );
+ }
+
+ return ( match ) ? match[1] : null;
+};
+
+
+}, '3.12.0', {"requires": ["widget-base"]});
diff --git a/lib/yuilib/3.12.0/widget-skin/widget-skin-min.js b/lib/yuilib/3.12.0/widget-skin/widget-skin-min.js
new file mode 100755
index 00000000000..579ac6bf556
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-skin/widget-skin-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("widget-skin",function(e,t){var n="boundingBox",r="contentBox",i="skin",s=e.ClassNameManager.getClassName;e.Widget.prototype.getSkinName=function(e){var t=this.get(r)||this.get(n),o,u;return e=e||s(i,""),u=new RegExp("\\b"+e+"(\\S+)"),t&&t.ancestor(function(e){return o=e.get("className").match(u),o}),o?o[1]:null}},"3.12.0",{requires:["widget-base"]});
diff --git a/lib/yuilib/3.12.0/widget-skin/widget-skin.js b/lib/yuilib/3.12.0/widget-skin/widget-skin.js
new file mode 100755
index 00000000000..29731b7bd45
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-skin/widget-skin.js
@@ -0,0 +1,66 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add('widget-skin', function (Y, NAME) {
+
+/**
+ * Provides skin related utlility methods.
+ *
+ * @module widget
+ * @submodule widget-skin
+ */
+var BOUNDING_BOX = "boundingBox",
+ CONTENT_BOX = "contentBox",
+ SKIN = "skin",
+ _getClassName = Y.ClassNameManager.getClassName;
+
+/**
+ * Returns the name of the skin that's currently applied to the widget.
+ *
+ * Searches up the Widget's ancestor axis for, by default, a class
+ * yui3-skin-(name), and returns the (name) portion. Otherwise, returns null.
+ *
+ * This is only really useful after the widget's DOM structure is in the
+ * document, either by render or by progressive enhancement.
+ *
+ * @method getSkinName
+ * @for Widget
+ * @param {String} [skinPrefix] The prefix which the implementation uses for the skin
+ * ("yui3-skin-" is the default).
+ *
+ * NOTE: skinPrefix will be used as part of a regular expression:
+ *
+ * new RegExp('\\b' + skinPrefix + '(\\S+)')
+ *
+ * Although an unlikely use case, literal characters which may result in an invalid
+ * regular expression should be escaped.
+ *
+ * @return {String} The name of the skin, or null, if a matching skin class is not found.
+ */
+
+Y.Widget.prototype.getSkinName = function (skinPrefix) {
+
+ var root = this.get( CONTENT_BOX ) || this.get( BOUNDING_BOX ),
+ match,
+ search;
+
+ skinPrefix = skinPrefix || _getClassName(SKIN, "");
+
+ search = new RegExp( '\\b' + skinPrefix + '(\\S+)' );
+
+ if ( root ) {
+ root.ancestor( function ( node ) {
+ match = node.get( 'className' ).match( search );
+ return match;
+ } );
+ }
+
+ return ( match ) ? match[1] : null;
+};
+
+
+}, '3.12.0', {"requires": ["widget-base"]});
diff --git a/lib/yuilib/3.12.0/widget-stack/assets/skins/night/widget-stack-skin.css b/lib/yuilib/3.12.0/widget-stack/assets/skins/night/widget-stack-skin.css
new file mode 100755
index 00000000000..ab09cf0948f
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-stack/assets/skins/night/widget-stack-skin.css
@@ -0,0 +1,7 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
diff --git a/lib/yuilib/3.12.0/widget-stack/assets/skins/night/widget-stack.css b/lib/yuilib/3.12.0/widget-stack/assets/skins/night/widget-stack.css
new file mode 100755
index 00000000000..b9dc9c38a85
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-stack/assets/skins/night/widget-stack.css
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+.yui3-widget-stacked .yui3-widget-shim{opacity:0;filter:alpha(opacity=0);position:absolute;border:0;top:0;left:0;padding:0;margin:0;z-index:-1;width:100%;height:100%;_width:0;_height:0}#yui3-css-stamp.skin-night-widget-stack{display:none}
diff --git a/lib/yuilib/3.12.0/widget-stack/assets/skins/sam/widget-stack-skin.css b/lib/yuilib/3.12.0/widget-stack/assets/skins/sam/widget-stack-skin.css
new file mode 100755
index 00000000000..ab09cf0948f
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-stack/assets/skins/sam/widget-stack-skin.css
@@ -0,0 +1,7 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
diff --git a/lib/yuilib/3.9.1/build/widget-stack/assets/skins/sam/widget-stack.css b/lib/yuilib/3.12.0/widget-stack/assets/skins/sam/widget-stack.css
old mode 100644
new mode 100755
similarity index 62%
rename from lib/yuilib/3.9.1/build/widget-stack/assets/skins/sam/widget-stack.css
rename to lib/yuilib/3.12.0/widget-stack/assets/skins/sam/widget-stack.css
index 3979827de9c..79d0260fc9d
--- a/lib/yuilib/3.9.1/build/widget-stack/assets/skins/sam/widget-stack.css
+++ b/lib/yuilib/3.12.0/widget-stack/assets/skins/sam/widget-stack.css
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-widget-stacked .yui3-widget-shim{opacity:0;filter:alpha(opacity=0);position:absolute;border:0;top:0;left:0;padding:0;margin:0;z-index:-1;width:100%;height:100%;_width:0;_height:0}#yui3-css-stamp.skin-sam-widget-stack{display:none}
diff --git a/lib/yuilib/3.9.1/build/widget-stack/assets/widget-stack-core.css b/lib/yuilib/3.12.0/widget-stack/assets/widget-stack-core.css
old mode 100644
new mode 100755
similarity index 72%
rename from lib/yuilib/3.9.1/build/widget-stack/assets/widget-stack-core.css
rename to lib/yuilib/3.12.0/widget-stack/assets/widget-stack-core.css
index 8e7ec53fe9f..8ff3beb4faf
--- a/lib/yuilib/3.9.1/build/widget-stack/assets/widget-stack-core.css
+++ b/lib/yuilib/3.12.0/widget-stack/assets/widget-stack-core.css
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
.yui3-widget-stacked .yui3-widget-shim {
opacity:0;
filter:alpha(opacity=0);
diff --git a/lib/yuilib/3.9.1/build/widget-stack/widget-stack-debug.js b/lib/yuilib/3.12.0/widget-stack/widget-stack-debug.js
old mode 100644
new mode 100755
similarity index 95%
rename from lib/yuilib/3.9.1/build/widget-stack/widget-stack-debug.js
rename to lib/yuilib/3.12.0/widget-stack/widget-stack-debug.js
index e7120c03de9..e05934029f1
--- a/lib/yuilib/3.9.1/build/widget-stack/widget-stack-debug.js
+++ b/lib/yuilib/3.12.0/widget-stack/widget-stack-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-stack', function (Y, NAME) {
/**
@@ -54,15 +60,7 @@ YUI.add('widget-stack', function (Y, NAME) {
* @class WidgetStack
* @param {Object} User configuration object
*/
- function Stack(config) {
- this._stackNode = this.get(BOUNDING_BOX);
- this._stackHandles = {};
-
- // WIDGET METHOD OVERLAP
- Y.after(this._renderUIStack, this, RENDER_UI);
- Y.after(this._syncUIStack, this, SYNC_UI);
- Y.after(this._bindUIStack, this, BIND_UI);
- }
+ function Stack(config) {}
// Static Properties
/**
@@ -143,6 +141,16 @@ YUI.add('widget-stack', function (Y, NAME) {
Stack.prototype = {
+ initializer : function() {
+ this._stackNode = this.get(BOUNDING_BOX);
+ this._stackHandles = {};
+
+ // WIDGET METHOD OVERLAP
+ Y.after(this._renderUIStack, this, RENDER_UI);
+ Y.after(this._syncUIStack, this, SYNC_UI);
+ Y.after(this._bindUIStack, this, BIND_UI);
+ },
+
/**
* Synchronizes the UI to match the Widgets stack state. This method in
* invoked after syncUI is invoked for the Widget class using YUI's aop infrastructure.
@@ -436,4 +444,4 @@ YUI.add('widget-stack', function (Y, NAME) {
Y.WidgetStack = Stack;
-}, '3.9.1', {"requires": ["base-build", "widget"], "skinnable": true});
+}, '3.12.0', {"requires": ["base-build", "widget"], "skinnable": true});
diff --git a/lib/yuilib/3.12.0/widget-stack/widget-stack-min.js b/lib/yuilib/3.12.0/widget-stack/widget-stack-min.js
new file mode 100755
index 00000000000..14a700b7525
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-stack/widget-stack-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("widget-stack",function(e,t){function O(e){}var n=e.Lang,r=e.UA,i=e.Node,s=e.Widget,o="zIndex",u="shim",a="visible",f="boundingBox",l="renderUI",c="bindUI",h="syncUI",p="offsetWidth",d="offsetHeight",v="parentNode",m="firstChild",g="ownerDocument",y="width",b="height",w="px",E="shimdeferred",S="shimresize",x="visibleChange",T="widthChange",N="heightChange",C="shimChange",k="zIndexChange",L="contentUpdate",A="stacked";O.ATTRS={shim:{value:r.ie==6},zIndex:{value:0,setter:"_setZIndex"}},O.HTML_PARSER={zIndex:function(e){return this._parseZIndex(e)}},O.SHIM_CLASS_NAME=s.getClassName(u),O.STACKED_CLASS_NAME=s.getClassName(A),O.SHIM_TEMPLATE='',O.prototype={initializer:function(){this._stackNode=this.get(f),this._stackHandles={},e.after(this._renderUIStack,this,l),e.after(this._syncUIStack,this,h),e.after(this._bindUIStack,this,c)},_syncUIStack:function(){this._uiSetShim(this.get(u)),this._uiSetZIndex(this.get(o))},_bindUIStack:function(){this.after(C,this._afterShimChange),this.after(k,this._afterZIndexChange)},_renderUIStack:function(){this._stackNode.addClass(O.STACKED_CLASS_NAME)},_parseZIndex:function(e){var t;return!e.inDoc()||e.getStyle("position")==="static"?t="auto":t=e.getComputedStyle("zIndex"),t==="auto"?null:t},_setZIndex:function(e){return n.isString(e)&&(e=parseInt(e,10)),n.isNumber(e)||(e=0),e},_afterShimChange:function(e){this._uiSetShim(e.newVal)},_afterZIndexChange:function(e){this._uiSetZIndex(e.newVal)},_uiSetZIndex:function(e){this._stackNode.setStyle(o,e)},_uiSetShim:function(e){e?(this.get(a)?this._renderShim():this._renderShimDeferred(),r.ie==6&&this._addShimResizeHandlers()):this._destroyShim()},_renderShimDeferred:function(){this._stackHandles[E]=this._stackHandles[E]||[];var e=this._stackHandles[E],t=function(e){e.newVal&&this._renderShim()};e.push(this.on(x,t))},_addShimResizeHandlers:function(){this._stackHandles[S]=this._stackHandles[S]||[];var e=this.sizeShim,t=this._stackHandles[S];t.push(this.after(x,e)),t.push(this.after(T,e)),t.push(this.after(N,e)),t.push(this.after(L,e))},_detachStackHandles:function(e){var t=this._stackHandles[e],n;if(t&&t.length>0)while(n=t.pop())n.detach()},_renderShim:function(){var e=this._shimNode,t=this._stackNode;e||(e=this._shimNode=this._getShimTemplate(),t.insertBefore(e,t.get(m)),this._detachStackHandles(E),this.sizeShim())},_destroyShim:function(){this._shimNode&&(this._shimNode.get(v).removeChild(this._shimNode),this._shimNode=null,this._detachStackHandles(E),this._detachStackHandles(S))},sizeShim:function(){var e=this._shimNode,t=this._stackNode;e&&r.ie===6&&this.get(a)&&(e.setStyle(y,t.get(p)+w),e.setStyle(b,t.get(d)+w))},_getShimTemplate:function(){return i.create(O.SHIM_TEMPLATE,this._stackNode.get(g))}},e.WidgetStack=O},"3.12.0",{requires:["base-build","widget"],skinnable:!0});
diff --git a/lib/yuilib/3.9.1/build/widget-stack/widget-stack.js b/lib/yuilib/3.12.0/widget-stack/widget-stack.js
old mode 100644
new mode 100755
similarity index 95%
rename from lib/yuilib/3.9.1/build/widget-stack/widget-stack.js
rename to lib/yuilib/3.12.0/widget-stack/widget-stack.js
index e7120c03de9..e05934029f1
--- a/lib/yuilib/3.9.1/build/widget-stack/widget-stack.js
+++ b/lib/yuilib/3.12.0/widget-stack/widget-stack.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-stack', function (Y, NAME) {
/**
@@ -54,15 +60,7 @@ YUI.add('widget-stack', function (Y, NAME) {
* @class WidgetStack
* @param {Object} User configuration object
*/
- function Stack(config) {
- this._stackNode = this.get(BOUNDING_BOX);
- this._stackHandles = {};
-
- // WIDGET METHOD OVERLAP
- Y.after(this._renderUIStack, this, RENDER_UI);
- Y.after(this._syncUIStack, this, SYNC_UI);
- Y.after(this._bindUIStack, this, BIND_UI);
- }
+ function Stack(config) {}
// Static Properties
/**
@@ -143,6 +141,16 @@ YUI.add('widget-stack', function (Y, NAME) {
Stack.prototype = {
+ initializer : function() {
+ this._stackNode = this.get(BOUNDING_BOX);
+ this._stackHandles = {};
+
+ // WIDGET METHOD OVERLAP
+ Y.after(this._renderUIStack, this, RENDER_UI);
+ Y.after(this._syncUIStack, this, SYNC_UI);
+ Y.after(this._bindUIStack, this, BIND_UI);
+ },
+
/**
* Synchronizes the UI to match the Widgets stack state. This method in
* invoked after syncUI is invoked for the Widget class using YUI's aop infrastructure.
@@ -436,4 +444,4 @@ YUI.add('widget-stack', function (Y, NAME) {
Y.WidgetStack = Stack;
-}, '3.9.1', {"requires": ["base-build", "widget"], "skinnable": true});
+}, '3.12.0', {"requires": ["base-build", "widget"], "skinnable": true});
diff --git a/lib/yuilib/3.9.1/build/widget-stdmod/widget-stdmod-debug.js b/lib/yuilib/3.12.0/widget-stdmod/widget-stdmod-debug.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/widget-stdmod/widget-stdmod-debug.js
rename to lib/yuilib/3.12.0/widget-stdmod/widget-stdmod-debug.js
index bd606b247e8..730e49ccbaa
--- a/lib/yuilib/3.9.1/build/widget-stdmod/widget-stdmod-debug.js
+++ b/lib/yuilib/3.12.0/widget-stdmod/widget-stdmod-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-stdmod', function (Y, NAME) {
/**
@@ -60,14 +66,7 @@ YUI.add('widget-stdmod', function (Y, NAME) {
* @class WidgetStdMod
* @param {Object} The user configuration object
*/
- function StdMod(config) {
-
- this._stdModNode = this.get(CONTENT_BOX);
-
- Y.before(this._renderUIStdMod, this, RENDERUI);
- Y.before(this._bindUIStdMod, this, BINDUI);
- Y.before(this._syncUIStdMod, this, SYNCUI);
- }
+ function StdMod(config) {}
/**
* Constant used to refer the the standard module header, in methods which expect a section specifier
@@ -257,6 +256,14 @@ YUI.add('widget-stdmod', function (Y, NAME) {
StdMod.prototype = {
+ initializer : function() {
+ this._stdModNode = this.get(CONTENT_BOX);
+
+ Y.before(this._renderUIStdMod, this, RENDERUI);
+ Y.before(this._bindUIStdMod, this, BINDUI);
+ Y.before(this._syncUIStdMod, this, SYNCUI);
+ },
+
/**
* Synchronizes the UI to match the Widgets standard module state.
*
@@ -434,7 +441,7 @@ YUI.add('widget-stdmod', function (Y, NAME) {
if (this.get(FILL_HEIGHT)) {
var height = this.get(HEIGHT);
if (height != EMPTY && height != AUTO) {
- this.fillHeight(this._currFillNode);
+ this.fillHeight(this.getStdModNode(this.get(FILL_HEIGHT)));
}
}
},
@@ -777,4 +784,4 @@ YUI.add('widget-stdmod', function (Y, NAME) {
Y.WidgetStdMod = StdMod;
-}, '3.9.1', {"requires": ["base-build", "widget"]});
+}, '3.12.0', {"requires": ["base-build", "widget"]});
diff --git a/lib/yuilib/3.12.0/widget-stdmod/widget-stdmod-min.js b/lib/yuilib/3.12.0/widget-stdmod/widget-stdmod-min.js
new file mode 100755
index 00000000000..53433787b3e
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-stdmod/widget-stdmod-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("widget-stdmod",function(e,t){function H(e){}var n=e.Lang,r=e.Node,i=e.UA,s=e.Widget,o="",u="hd",a="bd",f="ft",l="header",c="body",h="footer",p="fillHeight",d="stdmod",v="Node",m="Content",g="firstChild",y="childNodes",b="ownerDocument",w="contentBox",E="height",S="offsetHeight",x="auto",T="headerContentChange",N="bodyContentChange",C="footerContentChange",k="fillHeightChange",L="heightChange",A="contentUpdate",O="renderUI",M="bindUI",_="syncUI",D="_applyParsedConfig",P=e.Widget.UI_SRC;H.HEADER=l,H.BODY=c,H.FOOTER=h,H.AFTER="after",H.BEFORE="before",H.REPLACE="replace";var B=H.HEADER,j=H.BODY,F=H.FOOTER,I=B+m,q=F+m,R=j+m;H.ATTRS={headerContent:{value:null},footerContent:{value:null},bodyContent:{value:null},fillHeight:{value:H.BODY,validator:function(e){return this._validateFillHeight(e)}}},H.HTML_PARSER={headerContent:function(e){return this._parseStdModHTML(B)},bodyContent:function(e){return this._parseStdModHTML(j)},footerContent:function(e){return this._parseStdModHTML(F)}},H.SECTION_CLASS_NAMES={header:s.getClassName(u),body:s.getClassName(a),footer:s.getClassName(f)},H.TEMPLATES={header:'
@@ -434,7 +441,7 @@ YUI.add('widget-stdmod', function (Y, NAME) {
if (this.get(FILL_HEIGHT)) {
var height = this.get(HEIGHT);
if (height != EMPTY && height != AUTO) {
- this.fillHeight(this._currFillNode);
+ this.fillHeight(this.getStdModNode(this.get(FILL_HEIGHT)));
}
}
},
@@ -777,4 +784,4 @@ YUI.add('widget-stdmod', function (Y, NAME) {
Y.WidgetStdMod = StdMod;
-}, '3.9.1', {"requires": ["base-build", "widget"]});
+}, '3.12.0', {"requires": ["base-build", "widget"]});
diff --git a/lib/yuilib/3.9.1/build/widget-uievents/widget-uievents-debug.js b/lib/yuilib/3.12.0/widget-uievents/widget-uievents-debug.js
old mode 100644
new mode 100755
similarity index 89%
rename from lib/yuilib/3.9.1/build/widget-uievents/widget-uievents-debug.js
rename to lib/yuilib/3.12.0/widget-uievents/widget-uievents-debug.js
index b13d221cfc9..42892290157
--- a/lib/yuilib/3.9.1/build/widget-uievents/widget-uievents-debug.js
+++ b/lib/yuilib/3.12.0/widget-uievents/widget-uievents-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-uievents', function (Y, NAME) {
/**
@@ -38,7 +44,7 @@ Y.mix(Widget.prototype, {
// event listener.
delete info.instances[widgetGuid];
- // There are no more Widget instances using this delegated
+ // There are no more Widget instances using this delegated
// event listener, so detach it.
if (Y.Object.isEmpty(info.instances)) {
@@ -53,7 +59,7 @@ Y.mix(Widget.prototype, {
},
/**
- * Map of DOM events that should be fired as Custom Events by the
+ * Map of DOM events that should be fired as Custom Events by the
* Widget instance.
*
* @property UI_EVENTS
@@ -74,12 +80,12 @@ Y.mix(Widget.prototype, {
},
/**
- * Binds a delegated DOM event listener of the specified type to the
+ * Binds a delegated DOM event listener of the specified type to the
* Widget's outtermost DOM element to facilitate the firing of a Custom
- * Event of the same type for the Widget instance.
+ * Event of the same type for the Widget instance.
*
* @method _createUIEvent
- * @for Widget
+ * @for Widget
* @param type {String} String representing the name of the event
* @private
*/
@@ -120,27 +126,27 @@ Y.mix(Widget.prototype, {
/**
* This method is used to determine if we should fire
* the UI Event or not. The default implementation makes sure
- * that for nested delegates (nested unrelated widgets), we don't
+ * that for nested delegates (nested unrelated widgets), we don't
* fire the UI event listener more than once at each level.
*
- * For example, without the additional filter, if you have nested
- * widgets, each widget will have a delegate listener. If you
- * click on the inner widget, the inner delegate listener's
- * filter will match once, but the outer will match twice
- * (based on delegate's design) - once for the inner widget,
+ * For example, without the additional filter, if you have nested
+ * widgets, each widget will have a delegate listener. If you
+ * click on the inner widget, the inner delegate listener's
+ * filter will match once, but the outer will match twice
+ * (based on delegate's design) - once for the inner widget,
* and once for the outer. For example, without the additional filter, if you have nested
- * widgets, each widget will have a delegate listener. If you
- * click on the inner widget, the inner delegate listener's
- * filter will match once, but the outer will match twice
- * (based on delegate's design) - once for the inner widget,
+ * For example, without the additional filter, if you have nested
+ * widgets, each widget will have a delegate listener. If you
+ * click on the inner widget, the inner delegate listener's
+ * filter will match once, but the outer will match twice
+ * (based on delegate's design) - once for the inner widget,
* and once for the outer. -1&&(n="3.5.0"),e={applyConfig:function(e){e=e||u;var t,n,r=this.config,i=r.modules,s=r.groups,o=r.aliases,a=this.Env._loader;for(n in e)e.hasOwnProperty(n)&&(t=e[n],i&&n=="modules"?E(i,t):o&&n=="aliases"?E(o,t):s&&n=="groups"?E(s,t):n=="win"?(r[n]=t&&t.contentWindow||t,r.doc=r[n]?r[n].document:null):n!="_yuid"&&(r[n]=t));a&&a._config(e)},_config:function(e){this.applyConfig(e)},_init:function(){var e,t,r=this,s=YUI.Env,u=r.Env,a;r.version=n;if(!u){r.Env={core:["intl-base"],loaderExtras:["loader-rollup","loader-yui3"],mods:{},versions:{},base:i,cdn:i+n+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(e,t){var n=e.match(t),r,i;return n&&(r=RegExp.leftContext||e.slice(0,e.indexOf(n[0])),i=n[3],n[1]&&(r+="?"+n[1]),r={filter:i,path:r}),r},getBase:s&&s.getBase||function(t){var n=h&&h.getElementsByTagName("script")||[],i=u.cdn,s,o,a,f;for(o=0,a=n.length;o',YUI.Env.cssStampEl=t.firstChild,h.body?h.body.appendChild(YUI.Env.cssStampEl):p.insertBefore(YUI.Env.cssStampEl,p.firstChild)):h&&h.getElementById(o)&&!YUI.Env.cssStampEl&&(YUI.Env.cssStampEl=h.getElementById(o)),r.config.lang=r.config.lang||"en-US",r.config.base=YUI.config.base||r.Env.getBase(r.Env._BASE_RE);if(!e||!"mindebug".indexOf(e))e="min";e=e?"-"+e:e,r.config.loaderPath=YUI.config.loaderPath||"loader/loader"+e+".js"},_setup:function(){var e,t=this,n=[],r=YUI.Env.mods,i=t.config.core||[].concat(YUI.Env.core);for(e=0;e Y.UA -1,n.comboSep="&",n.maxURLLength=i,n.ignoreRegistered=t.ignoreRegistered,n.root=e.Env.meta.root,n.timeout=0,n.forceMap={},n.allowRollup=!1,n.filters={},n.required={},n.patterns={},n.moduleInfo={},n.groups=e.merge(e.Env.meta.groups),n.skin=e.merge(e.Env.meta.skin),n.conditions={},n.config=t,n._internal=!0,n._populateCache(),n.loaded=o[c],n.async=!0,n._inspectPage(),n._internal=!1,n._config(t),n.forceMap=n.force?e.Array.hash(n.force):{},n.testresults=null,e.config.tests&&(n.testresults=e.config.tests),n.sorted=[],n.dirty=!0,n.inserted={},n.skipped={},n.tested={},n.ignoreRegistered&&n._resetModules()},e.Loader.prototype={_populateCache:function(){var t=this,n=g.modules,r=s._renderedMods,i;if(r&&!t.ignoreRegistered){for(i in r)r.hasOwnProperty(i)&&(t.moduleInfo[i]=e.merge(r[i]));r=s._conditions;for(i in r)r.hasOwnProperty(i)&&(t.conditions[i]=e.merge(r[i]))}else for(i in n)n.hasOwnProperty(i)&&t.addModule(n[i],i)},_resetModules:function(){var e=this,t,n,r,i,s;for(t in e.moduleInfo)if(e.moduleInfo.hasOwnProperty(t)){r=e.moduleInfo[t],i=r.name,s=YUI.Env.mods[i]?YUI.Env.mods[i].details:null,s&&(e.moduleInfo[i]._reset=!0,e.moduleInfo[i].requires=s.requires||[],e.moduleInfo[i].optional=s.optional||[],e.moduleInfo[i].supersedes=s.supercedes||[]);if(r.defaults)for(n in r.defaults)r.defaults.hasOwnProperty(n)&&r[n]&&(r[n]=r.defaults[n]);delete r.langCache,delete r.skinCache,r.skinnable&&e._addSkin(e.skin.defaultSkin,r.name)}},REGEX_CSS:/\.css(?:[?;].*)?$/i,FILTER_DEFS:{RAW:{searchExp:"-min\\.js",replaceStr:".js"},DEBUG:{searchExp:"-min\\.js",replaceStr:"-debug.js"},COVERAGE:{searchExp:"-min\\.js",replaceStr:"-coverage.js"}},_inspectPage:function(){var e=this,t,n,r,i,s;for(s in e.moduleInfo)e.moduleInfo.hasOwnProperty(s)&&(t=e.moduleInfo[s],t.type&&t.type===u&&e.isCSSLoaded(t.name)&&(e.loaded[s]=!0));for(s in w)w.hasOwnProperty(s)&&(t=w[s],t.details&&(n=e.moduleInfo[t.name],r=t.details.requires,i=n&&n.requires,n?!n._inspected&&r&&i.length!==r.length&&delete n.expanded:n=e.addModule(t.details,s),n._inspected=!0))},_requires:function(e,t){var n,r,i,s,o=this.moduleInfo,a=o[e],f=o[t];if(!a||!f)return!1;r=a.expanded_map,i=a.after_map;if(i&&t in i)return!0;i=f.after_map;if(i&&e in i)return!1;s=o[t]&&o[t].supersedes;if(s)for(n=0;n -1,n.comboSep="&",n.maxURLLength=i,n.ignoreRegistered=t.ignoreRegistered,n.root=e.Env.meta.root,n.timeout=0,n.forceMap={},n.allowRollup=!1,n.filters={},n.required={},n.patterns={},n.moduleInfo={},n.groups=e.merge(e.Env.meta.groups),n.skin=e.merge(e.Env.meta.skin),n.conditions={},n.config=t,n._internal=!0,n._populateCache(),n.loaded=o[c],n.async=!0,n._inspectPage(),n._internal=!1,n._config(t),n.forceMap=n.force?e.Array.hash(n.force):{},n.testresults=null,e.config.tests&&(n.testresults=e.config.tests),n.sorted=[],n.dirty=!0,n.inserted={},n.skipped={},n.tested={},n.ignoreRegistered&&n._resetModules()},e.Loader.prototype={_populateCache:function(){var t=this,n=g.modules,r=s._renderedMods,i;if(r&&!t.ignoreRegistered){for(i in r)r.hasOwnProperty(i)&&(t.moduleInfo[i]=e.merge(r[i]));r=s._conditions;for(i in r)r.hasOwnProperty(i)&&(t.conditions[i]=e.merge(r[i]))}else for(i in n)n.hasOwnProperty(i)&&t.addModule(n[i],i)},_resetModules:function(){var e=this,t,n,r,i,s;for(t in e.moduleInfo)if(e.moduleInfo.hasOwnProperty(t)){r=e.moduleInfo[t],i=r.name,s=YUI.Env.mods[i]?YUI.Env.mods[i].details:null,s&&(e.moduleInfo[i]._reset=!0,e.moduleInfo[i].requires=s.requires||[],e.moduleInfo[i].optional=s.optional||[],e.moduleInfo[i].supersedes=s.supercedes||[]);if(r.defaults)for(n in r.defaults)r.defaults.hasOwnProperty(n)&&r[n]&&(r[n]=r.defaults[n]);delete r.langCache,delete r.skinCache,r.skinnable&&e._addSkin(e.skin.defaultSkin,r.name)}},REGEX_CSS:/\.css(?:[?;].*)?$/i,FILTER_DEFS:{RAW:{searchExp:"-min\\.js",replaceStr:".js"},DEBUG:{searchExp:"-min\\.js",replaceStr:"-debug.js"},COVERAGE:{searchExp:"-min\\.js",replaceStr:"-coverage.js"}},_inspectPage:function(){var e=this,t,n,r,i,s;for(s in e.moduleInfo)e.moduleInfo.hasOwnProperty(s)&&(t=e.moduleInfo[s],t.type&&t.type===u&&e.isCSSLoaded(t.name)&&(e.loaded[s]=!0));for(s in w)w.hasOwnProperty(s)&&(t=w[s],t.details&&(n=e.moduleInfo[t.name],r=t.details.requires,i=n&&n.requires,n?!n._inspected&&r&&i.length!==r.length&&delete n.expanded:n=e.addModule(t.details,s),n._inspected=!0))},_requires:function(e,t){var n,r,i,s,o=this.moduleInfo,a=o[e],f=o[t];if(!a||!f)return!1;r=a.expanded_map,i=a.after_map;if(i&&t in i)return!0;i=f.after_map;if(i&&e in i)return!1;s=o[t]&&o[t].supersedes;if(s)for(n=0;ns?e.lineTo(p+Math.cos(h)*s,d+Math.sin(h)*s):l>0&&e.lineTo(p+Math.cos(h)*l,d+Math.sin(h)*l),e.moveTo(r,i)},_getLineDefaults:function(){return{alpha:1,weight:6,lineType:"solid",dashLength:10,gapSpace:10,connectDiscontinuousPoints:!0,discontinuousType:"solid",discontinuousDashLength:10,discontinuousGapSpace:10}}},e.augment(r,e.Attribute),e.Lines=r},"3.9.1");
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("series-line-util",function(e,t){function r(){}var n=e.Lang;r.prototype={_lineDefaults:null,_getGraphic:function(){var e=this.get("graphic")||this.get("graph").get("graphic");return this._lineGraphic||(this._lineGraphic=e.addShape({type:"path"})),this._lineGraphic.clear(),this._lineGraphic},_toggleVisible:function(e){this._lineGraphic&&this._lineGraphic.set("visible",e)},drawLines:function(){if(this.get("xcoords").length<1)return;var e=n.isNumber,t,r,i=this.get("direction"),s,o,u,a=!0,f,l,c,h,p,d=this.get("styles").line,v=d.lineType,m=d.color||this._getDefaultColor(this.get("graphOrder"),"line"),g=d.alpha,y=d.dashLength,b=d.gapSpace,w=d.connectDiscontinuousPoints,E=d.discontinuousType,S=d.discontinuousDashLength,x=d.discontinuousGapSpace,T=this._getGraphic();this._stacked?(t=this.get("stackedXCoords"),r=this.get("stackedYCoords")):(t=this.get("xcoords"),r=this.get("ycoords")),s=i==="vertical"?r.length:t.length,T.set("stroke",{weight:d.weight,color:m,opacity:g});for(p=0;ps?e.lineTo(p+Math.cos(h)*s,d+Math.sin(h)*s):l>0&&e.lineTo(p+Math.cos(h)*l,d+Math.sin(h)*l),e.moveTo(r,i)},_getLineDefaults:function(){return{alpha:1,weight:6,lineType:"solid",dashLength:10,gapSpace:10,connectDiscontinuousPoints:!0,discontinuousType:"solid",discontinuousDashLength:10,discontinuousGapSpace:10}}},e.augment(r,e.Attribute),e.Lines=r},"3.12.0");
diff --git a/lib/yuilib/3.9.1/build/series-line-util/series-line-util.js b/lib/yuilib/3.12.0/series-line-util/series-line-util.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/series-line-util/series-line-util.js
rename to lib/yuilib/3.12.0/series-line-util/series-line-util.js
index 9e7be79343f..3eacf4004cc
--- a/lib/yuilib/3.9.1/build/series-line-util/series-line-util.js
+++ b/lib/yuilib/3.12.0/series-line-util/series-line-util.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('series-line-util', function (Y, NAME) {
/**
@@ -285,4 +291,4 @@ Y.augment(Lines, Y.Attribute);
Y.Lines = Lines;
-}, '3.9.1');
+}, '3.12.0');
diff --git a/lib/yuilib/3.9.1/build/series-line/series-line-debug.js b/lib/yuilib/3.12.0/series-line/series-line-debug.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/series-line/series-line-debug.js
rename to lib/yuilib/3.12.0/series-line/series-line-debug.js
index 9479d2472f6..0cf3b4ccec0
--- a/lib/yuilib/3.9.1/build/series-line/series-line-debug.js
+++ b/lib/yuilib/3.12.0/series-line/series-line-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('series-line', function (Y, NAME) {
/**
@@ -111,4 +117,4 @@ Y.LineSeries = Y.Base.create("lineSeries", Y.CartesianSeries, [Y.Lines], {
-}, '3.9.1', {"requires": ["series-cartesian", "series-line-util"]});
+}, '3.12.0', {"requires": ["series-cartesian", "series-line-util"]});
diff --git a/lib/yuilib/3.9.1/build/series-line/series-line-min.js b/lib/yuilib/3.12.0/series-line/series-line-min.js
old mode 100644
new mode 100755
similarity index 61%
rename from lib/yuilib/3.9.1/build/series-line/series-line-min.js
rename to lib/yuilib/3.12.0/series-line/series-line-min.js
index f0c826d3f3f..c7c01bc2d32
--- a/lib/yuilib/3.9.1/build/series-line/series-line-min.js
+++ b/lib/yuilib/3.12.0/series-line/series-line-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("series-line",function(e,t){e.LineSeries=e.Base.create("lineSeries",e.CartesianSeries,[e.Lines],{drawSeries:function(){this.drawLines()},_setStyles:function(t){return t.line||(t={line:t}),e.LineSeries.superclass._setStyles.apply(this,[t])},_getDefaultStyles:function(){var t=this._mergeStyles({line:this._getLineDefaults()},e.LineSeries.superclass._getDefaultStyles());return t}},{ATTRS:{type:{value:"line"}}})},"3.9.1",{requires:["series-cartesian","series-line-util"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("series-line",function(e,t){e.LineSeries=e.Base.create("lineSeries",e.CartesianSeries,[e.Lines],{drawSeries:function(){this.drawLines()},_setStyles:function(t){return t.line||(t={line:t}),e.LineSeries.superclass._setStyles.apply(this,[t])},_getDefaultStyles:function(){var t=this._mergeStyles({line:this._getLineDefaults()},e.LineSeries.superclass._getDefaultStyles());return t}},{ATTRS:{type:{value:"line"}}})},"3.12.0",{requires:["series-cartesian","series-line-util"]});
diff --git a/lib/yuilib/3.9.1/build/series-line/series-line.js b/lib/yuilib/3.12.0/series-line/series-line.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/series-line/series-line.js
rename to lib/yuilib/3.12.0/series-line/series-line.js
index 9479d2472f6..0cf3b4ccec0
--- a/lib/yuilib/3.9.1/build/series-line/series-line.js
+++ b/lib/yuilib/3.12.0/series-line/series-line.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('series-line', function (Y, NAME) {
/**
@@ -111,4 +117,4 @@ Y.LineSeries = Y.Base.create("lineSeries", Y.CartesianSeries, [Y.Lines], {
-}, '3.9.1', {"requires": ["series-cartesian", "series-line-util"]});
+}, '3.12.0', {"requires": ["series-cartesian", "series-line-util"]});
diff --git a/lib/yuilib/3.9.1/build/series-marker-stacked/series-marker-stacked-debug.js b/lib/yuilib/3.12.0/series-marker-stacked/series-marker-stacked-debug.js
old mode 100644
new mode 100755
similarity index 85%
rename from lib/yuilib/3.9.1/build/series-marker-stacked/series-marker-stacked-debug.js
rename to lib/yuilib/3.12.0/series-marker-stacked/series-marker-stacked-debug.js
index 24cef7be069..15bfde6bb03
--- a/lib/yuilib/3.9.1/build/series-marker-stacked/series-marker-stacked-debug.js
+++ b/lib/yuilib/3.12.0/series-marker-stacked/series-marker-stacked-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('series-marker-stacked', function (Y, NAME) {
/**
@@ -48,4 +54,4 @@ Y.StackedMarkerSeries = Y.Base.create("stackedMarkerSeries", Y.MarkerSeries, [Y.
-}, '3.9.1', {"requires": ["series-stacked", "series-marker"]});
+}, '3.12.0', {"requires": ["series-stacked", "series-marker"]});
diff --git a/lib/yuilib/3.9.1/build/series-marker-stacked/series-marker-stacked-min.js b/lib/yuilib/3.12.0/series-marker-stacked/series-marker-stacked-min.js
old mode 100644
new mode 100755
similarity index 51%
rename from lib/yuilib/3.9.1/build/series-marker-stacked/series-marker-stacked-min.js
rename to lib/yuilib/3.12.0/series-marker-stacked/series-marker-stacked-min.js
index 35060a3c5f8..62c76073912
--- a/lib/yuilib/3.9.1/build/series-marker-stacked/series-marker-stacked-min.js
+++ b/lib/yuilib/3.12.0/series-marker-stacked/series-marker-stacked-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("series-marker-stacked",function(e,t){e.StackedMarkerSeries=e.Base.create("stackedMarkerSeries",e.MarkerSeries,[e.StackingUtil],{setAreaData:function(){e.StackedMarkerSeries.superclass.setAreaData.apply(this),this._stackCoordinates.apply(this)}},{ATTRS:{type:{value:"stackedMarker"}}})},"3.9.1",{requires:["series-stacked","series-marker"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("series-marker-stacked",function(e,t){e.StackedMarkerSeries=e.Base.create("stackedMarkerSeries",e.MarkerSeries,[e.StackingUtil],{setAreaData:function(){e.StackedMarkerSeries.superclass.setAreaData.apply(this),this._stackCoordinates.apply(this)}},{ATTRS:{type:{value:"stackedMarker"}}})},"3.12.0",{requires:["series-stacked","series-marker"]});
diff --git a/lib/yuilib/3.9.1/build/series-marker-stacked/series-marker-stacked.js b/lib/yuilib/3.12.0/series-marker-stacked/series-marker-stacked.js
old mode 100644
new mode 100755
similarity index 85%
rename from lib/yuilib/3.9.1/build/series-marker-stacked/series-marker-stacked.js
rename to lib/yuilib/3.12.0/series-marker-stacked/series-marker-stacked.js
index 24cef7be069..15bfde6bb03
--- a/lib/yuilib/3.9.1/build/series-marker-stacked/series-marker-stacked.js
+++ b/lib/yuilib/3.12.0/series-marker-stacked/series-marker-stacked.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('series-marker-stacked', function (Y, NAME) {
/**
@@ -48,4 +54,4 @@ Y.StackedMarkerSeries = Y.Base.create("stackedMarkerSeries", Y.MarkerSeries, [Y.
-}, '3.9.1', {"requires": ["series-stacked", "series-marker"]});
+}, '3.12.0', {"requires": ["series-stacked", "series-marker"]});
diff --git a/lib/yuilib/3.9.1/build/series-marker/series-marker-debug.js b/lib/yuilib/3.12.0/series-marker/series-marker-debug.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/series-marker/series-marker-debug.js
rename to lib/yuilib/3.12.0/series-marker/series-marker-debug.js
index 59f9a1fbcd7..fbae2500687
--- a/lib/yuilib/3.9.1/build/series-marker/series-marker-debug.js
+++ b/lib/yuilib/3.12.0/series-marker/series-marker-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('series-marker', function (Y, NAME) {
/**
@@ -87,4 +93,4 @@ Y.MarkerSeries = Y.Base.create("markerSeries", Y.CartesianSeries, [Y.Plots], {
-}, '3.9.1', {"requires": ["series-cartesian", "series-plot-util"]});
+}, '3.12.0', {"requires": ["series-cartesian", "series-plot-util"]});
diff --git a/lib/yuilib/3.12.0/series-marker/series-marker-min.js b/lib/yuilib/3.12.0/series-marker/series-marker-min.js
new file mode 100755
index 00000000000..50ec979de03
--- /dev/null
+++ b/lib/yuilib/3.12.0/series-marker/series-marker-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("series-marker",function(e,t){e.MarkerSeries=e.Base.create("markerSeries",e.CartesianSeries,[e.Plots],{_setStyles:function(t){return t.marker||(t={marker:t}),t=this._parseMarkerStyles(t),e.MarkerSeries.superclass._mergeStyles.apply(this,[t,this._getDefaultStyles()])}},{ATTRS:{type:{value:"marker"}}})},"3.12.0",{requires:["series-cartesian","series-plot-util"]});
diff --git a/lib/yuilib/3.9.1/build/series-marker/series-marker.js b/lib/yuilib/3.12.0/series-marker/series-marker.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/series-marker/series-marker.js
rename to lib/yuilib/3.12.0/series-marker/series-marker.js
index 59f9a1fbcd7..fbae2500687
--- a/lib/yuilib/3.9.1/build/series-marker/series-marker.js
+++ b/lib/yuilib/3.12.0/series-marker/series-marker.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('series-marker', function (Y, NAME) {
/**
@@ -87,4 +93,4 @@ Y.MarkerSeries = Y.Base.create("markerSeries", Y.CartesianSeries, [Y.Plots], {
-}, '3.9.1', {"requires": ["series-cartesian", "series-plot-util"]});
+}, '3.12.0', {"requires": ["series-cartesian", "series-plot-util"]});
diff --git a/lib/yuilib/3.9.1/build/series-ohlc/series-ohlc-debug.js b/lib/yuilib/3.12.0/series-ohlc/series-ohlc-debug.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/series-ohlc/series-ohlc-debug.js
rename to lib/yuilib/3.12.0/series-ohlc/series-ohlc-debug.js
index 58ba80854ac..f22a5025ad0
--- a/lib/yuilib/3.9.1/build/series-ohlc/series-ohlc-debug.js
+++ b/lib/yuilib/3.12.0/series-ohlc/series-ohlc-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('series-ohlc', function (Y, NAME) {
/**
@@ -232,4 +238,4 @@ Y.extend(OHLCSeries, Y.RangeSeries, {
Y.OHLCSeries = OHLCSeries;
-}, '3.9.1', {"requires": ["series-range"]});
+}, '3.12.0', {"requires": ["series-range"]});
diff --git a/lib/yuilib/3.9.1/build/series-ohlc/series-ohlc-min.js b/lib/yuilib/3.12.0/series-ohlc/series-ohlc-min.js
old mode 100644
new mode 100755
similarity index 82%
rename from lib/yuilib/3.9.1/build/series-ohlc/series-ohlc-min.js
rename to lib/yuilib/3.12.0/series-ohlc/series-ohlc-min.js
index 58a90640bb7..e1b87dfcec2
--- a/lib/yuilib/3.9.1/build/series-ohlc/series-ohlc-min.js
+++ b/lib/yuilib/3.12.0/series-ohlc/series-ohlc-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("series-ohlc",function(e,t){function n(){n.superclass.constructor.apply(this,arguments)}n.NAME="ohlcSeries",n.ATTRS={type:{value:"ohlc"},graphic:{lazyAdd:!1,setter:function(e){return this.get("rendered")||this.set("rendered",!0),this.set("upmarker",e.addShape({type:"path"})),this.set("downmarker",e.addShape({type:"path"})),e}},upmarker:{},downmarker:{}},e.extend(n,e.RangeSeries,{_drawMarkers:function(e,t,n,r,s,o,u,a,f){var l=this.get("upmarker"),c=this.get("downmarker"),h,p,d,v,m,g,y=f.padding.left,b,w;l.set(f.upmarker),c.set(f.downmarker),l.clear(),c.clear();for(i=0;i0&&p0&&p=0){for(i=0;u!==w&&i=10?(o.onerror=function(){setTimeout(c,0)},o.onload=function(){setTimeout(h,0)}):(o.onerror=c,o.onload=h),!n.cssFail&&!s&&(f=setTimeout(c,t.timeout||3e3))),this.nodes.push(o),r.parentNode.insertBefore(o,r)},_next:function(){if(this._pending)return;this._queue.length?this._insert(this._queue.shift()):this._reqsWaiting||this._finish()},_poll:function(t){var n=this,r=n._pendingCSS,i=e.UA.webkit,s,o,u,a,f,l;if(t){r||(r=n._pendingCSS=[]),r.push(t);if(n._pollTimer)return}n._pollTimer=null;for(s=0;s"}catch(n){return!1}return t.firstChild&&t.firstChild.nodeName==="TBODY"}}),u("innerhtml-div","tr",{test:function(){return d("","tr")}}),u("innerhtml-div","script",{test:function(){return d("","script")}}),a("innerhtml","table")||(p.tbody=function(t,n){var i=r.create(m+t+g,n),s=e.DOM._children(i,"tbody")[0];return i.children.length>1&&s&&!v.test(t)&&s.parentNode.removeChild(s),i}),a("innerhtml-div","script")||(p.script=function(e,t){var n=t.createElement("div");return n.innerHTML="-"+e,n.removeChild(n.firstChild),n},p.link=p.style=p.script),a("innerhtml-div","tr")||(e.mix(p,{option:function(e,t){return r.create('",t)},tr:function(e,t){return r.create(""+e+"",t)},td:function(e,t){return r.create(" "+e+" ",t)},col:function(e,t){return r.create("-1?e:t+d+e},w=e.cached(function(e,t){var n=e,r,i,s;return p.isString(n)?(s=n.indexOf(m),s>-1&&(i=!0,n=n.substr(m.length)),s=n.indexOf(v),s>-1&&(r=n.substr(0,s),n=n.substr(s+1),n==="*"&&(n=null)),[r,t?b(n,t):n,i,n]):n}),E=function(t){var n=this._yuievt,r;n||(n=this._yuievt={events:{},targets:null,config:{host:this,context:this},chain:e.config.chain}),r=n.config,t&&(h(r,t,!0),t.chain!==undefined&&(n.chain=t.chain),t.prefix&&(r.prefix=t.prefix))};E.prototype={constructor:E,once:function(){var e=this.on.apply(this,arguments);return e.batch(function(e){e.sub&&(e.sub.once=!0)}),e},onceAfter:function(){var e=this.after.apply(this,arguments);return e.batch(function(e){e.sub&&(e.sub.once=!0)}),e},parseType:function(e,t){return w(e,t||this._yuievt.config.prefix)},on:function(t,n,r){var i=this._yuievt,s=w(t,i.config.prefix),o,u,a,l,c,h,d,v=e.Env.evt.handles,g,y,b,E=e.Node,S,x,T;this._monitor("attach",s[1],{args:arguments,category:s[0],after:s[2]});if(p.isObject(t))return p.isFunction(t)?e.Do.before.apply(e.Do,arguments):(o=n,u=r,a=f.call(arguments,0),l=[],p.isArray(t)&&(T=!0),g=t._after,delete t._after,e.each(t,function(e,t){p.isObject(e)&&(o=e.fn||(p.isFunction(e)?e:o),
+u=e.context||u);var n=g?m:"";a[0]=n+(T?e:t),a[1]=o,a[2]=u,l.push(this.on.apply(this,a))},this),i.chain?this:new e.EventHandle(l));h=s[0],g=s[2],b=s[3];if(E&&e.instanceOf(this,E)&&b in E.DOM_EVENTS)return a=f.call(arguments,0),a.splice(2,0,E.getDOMNode(this)),e.on.apply(e,a);t=s[1];if(e.instanceOf(this,YUI)){y=e.Env.evt.plugins[t],a=f.call(arguments,0),a[0]=b,E&&(S=a[2],e.instanceOf(S,e.NodeList)?S=e.NodeList.getDOMNodes(S):e.instanceOf(S,E)&&(S=E.getDOMNode(S)),x=b in E.DOM_EVENTS,x&&(a[2]=S));if(y)d=y.on.apply(e,a);else if(!t||x)d=e.Event._attach(a)}return d||(c=i.events[t]||this.publish(t),d=c._on(n,r,arguments.length>3?f.call(arguments,3):null,g?"after":!0),t.indexOf("*:")!==-1&&(this._hasSiblings=!0)),h&&(v[h]=v[h]||{},v[h][t]=v[h][t]||[],v[h][t].push(d)),i.chain?this:d},subscribe:function(){return this.on.apply(this,arguments)},detach:function(t,n,r){var i=this._yuievt.events,s,o=e.Node,u=o&&e.instanceOf(this,o);if(!t&&this!==e){for(s in i)i.hasOwnProperty(s)&&i[s].detach(n,r);return u&&e.Event.purgeElement(o.getDOMNode(this)),this}var a=w(t,this._yuievt.config.prefix),l=p.isArray(a)?a[0]:null,c=a?a[3]:null,h,d=e.Env.evt.handles,v,m,g,y,b=function(e,t,n){var r=e[t],i,s;if(r)for(s=r.length-1;s>=0;--s)i=r[s].evt,(i.host===n||i.el===n)&&r[s].detach()};if(l){m=d[l],t=a[1],v=u?e.Node.getDOMNode(this):this;if(m){if(t)b(m,t,v);else for(s in m)m.hasOwnProperty(s)&&b(m,s,v);return this}}else{if(p.isObject(t)&&t.detach)return t.detach(),this;if(u&&(!c||c in o.DOM_EVENTS))return g=f.call(arguments,0),g[2]=o.getDOMNode(this),e.detach.apply(e,g),this}h=e.Env.evt.plugins[c];if(e.instanceOf(this,YUI)){g=f.call(arguments,0);if(h&&h.detach)return h.detach.apply(e,g),this;if(!t||!h&&o&&t in o.DOM_EVENTS)return g[0]=t,e.Event.detach.apply(e.Event,g),this}return y=i[a[1]],y&&y.detach(n,r),this},unsubscribe:function(){return this.detach.apply(this,arguments)},detachAll:function(e){return this.detach(e)},unsubscribeAll:function(){return this.detachAll.apply(this,arguments)},publish:function(t,n){var r,i=this._yuievt,s=i.config,o=s.prefix;return typeof t=="string"?(o&&(t=b(t,o)),r=this._publish(t,s,n)):(r={},e.each(t,function(e,t){o&&(t=b(t,o)),r[t]=this._publish(t,s,e||n)},this)),r},_getFullType:function(e){var t=this._yuievt.config.prefix;return t?t+d+e:e},_publish:function(t,n,r){var i,s=this._yuievt,o=s.config,u=o.host,a=o.context,f=s.events;return i=f[t],(o.monitored&&!i||i&&i.monitored)&&this._monitor("publish",t,{args:arguments}),i||(i=f[t]=new e.CustomEvent(t,n),n||(i.host=u,i.context=a)),r&&h(i,r,!0),i},_monitor:function(e,t,n){var r,i,s;if(t){typeof t=="string"?(s=t,i=this.getEvent(t,!0)):(i=t,s=t.type);if(this._yuievt.config.monitored&&(!i||i.monitored)||i&&i.monitored)r=s+"_"+e,n.monitored=e,this.fire.call(this,r,n)}},fire:function(e){var t=typeof e=="string",n=arguments.length,r=e,i=this._yuievt,s=i.config,o=s.prefix,u,a,l,c;t&&n<=3?n===2?c=[arguments[1]]:n===3?c=[arguments[1],arguments[2]]:c=[]:c=f.call(arguments,t?1:0),t||(r=e&&e.type),o&&(r=b(r,o)),a=i.events[r],this._hasSiblings&&(l=this.getSibling(r,a),l&&!a&&(a=this.publish(r))),(s.monitored&&(!a||a.monitored)||a&&a.monitored)&&this._monitor("fire",a||r,{args:c});if(!a){if(i.hasTargets)return this.bubble({type:r},c,this);u=!0}else l&&(a.sibling=l),u=a._fire(c);return i.chain?this:u},getSibling:function(e,t){var n;return e.indexOf(d)>-1&&(e=y(e),n=this.getEvent(e,!0),n&&(n.applyConfig(t),n.bubbles=!1,n.broadcast=0)),n},getEvent:function(e,t){var n,r;return t||(n=this._yuievt.config.prefix,e=n?b(e,n):e),r=this._yuievt.events,r[e]||null},after:function(t,n){var r=f.call(arguments,0);switch(p.type(t)){case"function":return e.Do.after.apply(e.Do,arguments);case"array":case"object":r[0]._after=!0;break;default:r[0]=m+t}return this.on.apply(this,r)},before:function(){return this.on.apply(this,arguments)}},e.EventTarget=E,e.mix(e,E.prototype),E.call(e,{bubbles:!1}),YUI.Env.globalEvents=YUI.Env.globalEvents||new E,e.Global=YUI.Env.globalEvents},"@VERSION@",{requires:["oop"]}),YUI.add("event-custom-complex",function(e,t){var n,r,i=e.Object,s,o={},u=e.CustomEvent.prototype,a=e.EventTarget.prototype,f=function(e,t){var n;for(n in t)r.hasOwnProperty(n)||(e[n]=t[n])};e.EventFacade=function(e,t){e||(e=o),this._event=e,this.details=e.details,this.type=e.type,this._type=e.type,this.target=e.target,this.currentTarget=t,this.relatedTarget=e.relatedTarget},e.mix(e.EventFacade.prototype,{stopPropagation:function(){this._event.stopPropagation(),this.stopped=1},stopImmediatePropagation:function(){this._event.stopImmediatePropagation(),this.stopped=2},preventDefault:function(){this._event.preventDefault(),this.prevented=1},halt:function(e){this._event.halt(e),this.prevented=1,this.stopped=e?2:1}}),u.fireComplex=function(t){var n,r,i,s,o,u=!0,a,f,l,c,h,p,d,v,m,g=this,y=g.host||g,b,w,E=g.stack,S=y._yuievt,x;if(E&&g.queuable&&g.type!==E.next.type)return g.log("queue "+g.type),E.queue||(E.queue=[]),E.queue.push([g,t]),!0;x=g.hasSubs()||S.hasTargets||g.broadcast,g.target=g.target||y,g.currentTarget=y,g.details=t.concat();if(x){n=E||{id:g.id,next:g,silent:g.silent,stopped:0,prevented:0,bubbling:null,type:g.type,defaultTargetOnly:g.defaultTargetOnly},f=g.getSubs(),l=f[0],c=f[1],g.stopped=g.type!==n.type?0:n.stopped,g.prevented=g.type!==n.type?0:n.prevented,g.stoppedFn&&(a=new e.EventTarget({fireOnce:!0,context:y}),g.events=a,a.on("stopped",g.stoppedFn)),g.log("Firing "+g.type),g._facade=null,r=g._createFacade(t),l&&g._procSubs(l,t,r),g.bubbles&&y.bubble&&!g.stopped&&(w=n.bubbling,n.bubbling=g.type,n.type!==g.type&&(n.stopped=0,n.prevented=0),u=y.bubble(g,t,null,n),g.stopped=Math.max(g.stopped,n.stopped),g.prevented=Math.max(g.prevented,n.prevented),n.bubbling=w),d=g.prevented,d?(v=g.preventedFn,v&&v.apply(y,t)):(m=g.defaultFn,m&&(!g.defaultTargetOnly&&!n.defaultTargetOnly||y===r.target)&&m.apply(y,t)),g.broadcast&&g._broadcast(t);if(c&&!g.prevented&&g.stopped<2){h=n.afterQueue;if(n.id===g.id||g.type!==S.bubbling){g._procSubs(c,t,r);if(h)while(b=h.last())b()}else p=c,n
+.execDefaultCnt&&(p=e.merge(p),e.each(p,function(e){e.postponed=!0})),h||(n.afterQueue=new e.Queue),n.afterQueue.add(function(){g._procSubs(p,t,r)})}g.target=null;if(n.id===g.id){s=n.queue;if(s)while(s.length)i=s.pop(),o=i[0],n.next=o,o._fire(i[1]);g.stack=null}u=!g.stopped,g.type!==S.bubbling&&(n.stopped=0,n.prevented=0,g.stopped=0,g.prevented=0)}else m=g.defaultFn,m&&(r=g._createFacade(t),(!g.defaultTargetOnly||y===r.target)&&m.apply(y,t));return g._facade=null,u},u._hasPotentialSubscribers=function(){return this.hasSubs()||this.host._yuievt.hasTargets||this.broadcast},u._createFacade=u._getFacade=function(t){var n=this.details,r=n&&n[0],i=r&&typeof r=="object",s=this._facade;return s||(s=new e.EventFacade(this,this.currentTarget)),i?(f(s,r),r.type&&(s.type=r.type),t&&(t[0]=s)):t&&t.unshift(s),s.details=this.details,s.target=this.originalTarget||this.target,s.currentTarget=this.currentTarget,s.stopped=0,s.prevented=0,this._facade=s,this._facade},u._addFacadeToArgs=function(e){var t=e[0];t&&t.halt&&t.stopImmediatePropagation&&t.stopPropagation&&t._event||this._createFacade(e)},u.stopPropagation=function(){this.stopped=1,this.stack&&(this.stack.stopped=1),this.events&&this.events.fire("stopped",this)},u.stopImmediatePropagation=function(){this.stopped=2,this.stack&&(this.stack.stopped=2),this.events&&this.events.fire("stopped",this)},u.preventDefault=function(){this.preventable&&(this.prevented=1,this.stack&&(this.stack.prevented=1))},u.halt=function(e){e?this.stopImmediatePropagation():this.stopPropagation(),this.preventDefault()},a.addTarget=function(t){var n=this._yuievt;n.targets||(n.targets={}),n.targets[e.stamp(t)]=t,n.hasTargets=!0},a.getTargets=function(){var e=this._yuievt.targets;return e?i.values(e):[]},a.removeTarget=function(t){var n=this._yuievt.targets;n&&(delete n[e.stamp(t,!0)],i.size(n)===0&&(this._yuievt.hasTargets=!1))},a.bubble=function(e,t,n,r){var i=this._yuievt.targets,s=!0,o,u,a,f,l,c=e&&e.type,h=n||e&&e.target||this,p;if(!e||!e.stopped&&i)for(a in i)if(i.hasOwnProperty(a)){o=i[a],u=o._yuievt.events[c],o._hasSiblings&&(l=o.getSibling(c,u)),l&&!u&&(u=o.publish(c)),p=o._yuievt.bubbling,o._yuievt.bubbling=c;if(!u)o._yuievt.hasTargets&&o.bubble(e,t,h,r);else{l&&(u.sibling=l),u.target=h,u.originalTarget=h,u.currentTarget=o,f=u.broadcast,u.broadcast=!1,u.emitFacade=!0,u.stack=r,s=s&&u.fire.apply(u,t||e.details||[]),u.broadcast=f,u.originalTarget=null;if(u.stopped)break}o._yuievt.bubbling=p}return s},a._hasPotentialSubscribers=function(e){var t=this._yuievt,n=t.events[e];return n?n.hasSubs()||t.hasTargets||n.broadcast:!1},n=new e.EventFacade,r={};for(s in n)r[s]=!0},"@VERSION@",{requires:["event-custom-base"]}),YUI.add("node-core",function(e,t){var n=".",r="nodeName",i="nodeType",s="ownerDocument",o="tagName",u="_yuid",a={},f=Array.prototype.slice,l=e.DOM,c=function(t){if(!this.getDOMNode)return new c(t);if(typeof t=="string"){t=c._fromString(t);if(!t)return null}var n=t.nodeType!==9?t.uniqueID:t[u];n&&c._instances[n]&&c._instances[n]._node!==t&&(t[u]=null),n=n||e.stamp(t),n||(n=e.guid()),this[u]=n,this._node=t,this._stateProxy=t,this._initPlugins&&this._initPlugins()},h=function(t){var n=null;return t&&(n=typeof t=="string"?function(n){return e.Selector.test(n,t)}:function(n){return t(e.one(n))}),n};c.ATTRS={},c.DOM_EVENTS={},c._fromString=function(t){return t&&(t.indexOf("doc")===0?t=e.config.doc:t.indexOf("win")===0?t=e.config.win:t=e.Selector.query(t,null,!0)),t||null},c.NAME="node",c.re_aria=/^(?:role$|aria-)/,c.SHOW_TRANSITION="fadeIn",c.HIDE_TRANSITION="fadeOut",c._instances={},c.getDOMNode=function(e){return e?e.nodeType?e:e._node||null:null},c.scrubVal=function(t,n){if(t){if(typeof t=="object"||typeof t=="function")if(i in t||l.isWindow(t))t=e.one(t);else if(t.item&&!t._nodes||t[0]&&t[0][i])t=e.all(t)}else typeof t=="undefined"?t=n:t===null&&(t=null);return t},c.addMethod=function(e,t,n){e&&t&&typeof t=="function"&&(c.prototype[e]=function(){var e=f.call(arguments),r=this,i;return e[0]&&e[0]._node&&(e[0]=e[0]._node),e[1]&&e[1]._node&&(e[1]=e[1]._node),e.unshift(r._node),i=t.apply(n||r,e),i&&(i=c.scrubVal(i,r)),typeof i!="undefined"||(i=r),i})},c.importMethod=function(t,n,r){typeof n=="string"?(r=r||n,c.addMethod(r,t[n],t)):e.Array.each(n,function(e){c.importMethod(t,e)})},c.one=function(t){var n=null,r,i;if(t){if(typeof t=="string"){t=c._fromString(t);if(!t)return null}else if(t.getDOMNode)return t;if(t.nodeType||e.DOM.isWindow(t)){i=t.uniqueID&&t.nodeType!==9?t.uniqueID:t._yuid,n=c._instances[i],r=n?n._node:null;if(!n||r&&t!==r)n=new c(t),t.nodeType!=11&&(c._instances[n[u]]=n)}}return n},c.DEFAULT_SETTER=function(t,r){var i=this._stateProxy,s;return t.indexOf(n)>-1?(s=t,t=t.split(n),e.Object.setValue(i,t,r)):typeof i[t]!="undefined"&&(i[t]=r),r},c.DEFAULT_GETTER=function(t){var r=this._stateProxy,i;return t.indexOf&&t.indexOf(n)>-1?i=e.Object.getValue(r,t.split(n)):typeof r[t]!="undefined"&&(i=r[t]),i},e.mix(c.prototype,{DATA_PREFIX:"data-",toString:function(){var e=this[u]+": not bound to a node",t=this._node,n,i,s;return t&&(n=t.attributes,i=n&&n.id?t.getAttribute("id"):null,s=n&&n.className?t.getAttribute("className"):null,e=t[r],i&&(e+="#"+i),s&&(e+="."+s.replace(" ",".")),e+=" "+this[u]),e},get:function(e){var t;return this._getAttr?t=this._getAttr(e):t=this._get(e),t?t=c.scrubVal(t,this):t===null&&(t=null),t},_get:function(e){var t=c.ATTRS[e],n;return t&&t.getter?n=t.getter.call(this):c.re_aria.test(e)?n=this._node.getAttribute(e,2):n=c.DEFAULT_GETTER.apply(this,arguments),n},set:function(e,t){var n=c.ATTRS[e];return this._setAttr?this._setAttr.apply(this,arguments):n&&n.setter?n.setter.call(this,t,e):c.re_aria.test(e)?this._node.setAttribute(e,t):c.DEFAULT_SETTER.apply(this,arguments),this},setAttrs:function(t){return this._setAttrs?this._setAttrs(t):e.Object.each(t,function(e,t){this.set(t,e)},this),this},getAttrs:function(t){var n={};return this._getAttrs?this._getAttrs(t):e.Array.each(t,function(e,t){n[e]=this.get(e)},this),n},compareTo:function(e){var t=
+this._node;return e&&e._node&&(e=e._node),t===e},inDoc:function(e){var t=this._node;e=e?e._node||e:t[s];if(e.documentElement)return l.contains(e.documentElement,t)},getById:function(t){var n=this._node,r=l.byId(t,n[s]);return r&&l.contains(n,r)?r=e.one(r):r=null,r},ancestor:function(t,n,r){return arguments.length===2&&(typeof n=="string"||typeof n=="function")&&(r=n),e.one(l.ancestor(this._node,h(t),n,h(r)))},ancestors:function(t,n,r){return arguments.length===2&&(typeof n=="string"||typeof n=="function")&&(r=n),e.all(l.ancestors(this._node,h(t),n,h(r)))},previous:function(t,n){return e.one(l.elementByAxis(this._node,"previousSibling",h(t),n))},next:function(t,n){return e.one(l.elementByAxis(this._node,"nextSibling",h(t),n))},siblings:function(t){return e.all(l.siblings(this._node,h(t)))},one:function(t){return e.one(e.Selector.query(t,this._node,!0))},all:function(t){var n;return this._node&&(n=e.all(e.Selector.query(t,this._node)),n._query=t,n._queryRoot=this._node),n||e.all([])},test:function(t){return e.Selector.test(this._node,t)},remove:function(e){var t=this._node;return t&&t.parentNode&&t.parentNode.removeChild(t),e&&this.destroy(),this},replace:function(e){var t=this._node;return typeof e=="string"&&(e=c.create(e)),t.parentNode.replaceChild(c.getDOMNode(e),t),this},replaceChild:function(t,n){return typeof t=="string"&&(t=l.create(t)),e.one(this._node.replaceChild(c.getDOMNode(t),c.getDOMNode(n)))},destroy:function(t){var n=e.config.doc.uniqueID?"uniqueID":"_yuid",r;this.purge(),this.unplug&&this.unplug(),this.clearData(),t&&e.NodeList.each(this.all("*"),function(t){r=c._instances[t[n]],r?r.destroy():e.Event.purgeElement(t)}),this._node=null,this._stateProxy=null,delete c._instances[this._yuid]},invoke:function(e,t,n,r,i,s){var o=this._node,u;return t&&t._node&&(t=t._node),n&&n._node&&(n=n._node),u=o[e](t,n,r,i,s),c.scrubVal(u,this)},swap:e.config.doc.documentElement.swapNode?function(e){this._node.swapNode(c.getDOMNode(e))}:function(e){e=c.getDOMNode(e);var t=this._node,n=e.parentNode,r=e.nextSibling;return r===t?n.insertBefore(t,e):e===t.nextSibling?n.insertBefore(e,t):(t.parentNode.replaceChild(e,t),l.addHTML(n,t,r)),this},hasMethod:function(e){var t=this._node;return!(!(t&&e in t&&typeof t[e]!="unknown")||typeof t[e]!="function"&&String(t[e]).indexOf("function")!==1)},isFragment:function(){return this.get("nodeType")===11},empty:function(){return this.get("childNodes").remove().destroy(!0),this},getDOMNode:function(){return this._node}},!0),e.Node=c,e.one=c.one;var p=function(t){var n=[];t&&(typeof t=="string"?(this._query=t,t=e.Selector.query(t)):t.nodeType||l.isWindow(t)?t=[t]:t._node?t=[t._node]:t[0]&&t[0]._node?(e.Array.each(t,function(e){e._node&&n.push(e._node)}),t=n):t=e.Array(t,0,!0)),this._nodes=t||[]};p.NAME="NodeList",p.getDOMNodes=function(e){return e&&e._nodes?e._nodes:e},p.each=function(t,n,r){var i=t._nodes;i&&i.length&&e.Array.each(i,n,r||t)},p.addMethod=function(t,n,r){t&&n&&(p.prototype[t]=function(){var t=[],i=arguments;return e.Array.each(this._nodes,function(s){var o=s.uniqueID&&s.nodeType!==9?"uniqueID":"_yuid",u=e.Node._instances[s[o]],a,f;u||(u=p._getTempNode(s)),a=r||u,f=n.apply(a,i),f!==undefined&&f!==u&&(t[t.length]=f)}),t.length?t:this})},p.importMethod=function(t,n,r){typeof n=="string"?(r=r||n,p.addMethod(n,t[n])):e.Array.each(n,function(e){p.importMethod(t,e)})},p._getTempNode=function(t){var n=p._tempNode;return n||(n=e.Node.create(""),p._tempNode=n),n._node=t,n._stateProxy=t,n},e.mix(p.prototype,{_invoke:function(e,t,n){var r=n?[]:this;return this.each(function(i){var s=i[e].apply(i,t);n&&r.push(s)}),r},item:function(t){return e.one((this._nodes||[])[t])},each:function(t,n){var r=this;return e.Array.each(this._nodes,function(i,s){return i=e.one(i),t.call(n||i,i,s,r)}),r},batch:function(t,n){var r=this;return e.Array.each(this._nodes,function(i,s){var o=e.Node._instances[i[u]];return o||(o=p._getTempNode(i)),t.call(n||o,o,s,r)}),r},some:function(t,n){var r=this;return e.Array.some(this._nodes,function(i,s){return i=e.one(i),n=n||i,t.call(n,i,s,r)})},toFrag:function(){return e.one(e.DOM._nl2frag(this._nodes))},indexOf:function(t){return e.Array.indexOf(this._nodes,e.Node.getDOMNode(t))},filter:function(t){return e.all(e.Selector.filter(this._nodes,t))},modulus:function(t,n){n=n||0;var r=[];return p.each(this,function(e,i){i%t===n&&r.push(e)}),e.all(r)},odd:function(){return this.modulus(2,1)},even:function(){return this.modulus(2)},destructor:function(){},refresh:function(){var t,n=this._nodes,r=this._query,i=this._queryRoot;return r&&(i||n&&n[0]&&n[0].ownerDocument&&(i=n[0].ownerDocument),this._nodes=e.Selector.query(r,i)),this},size:function(){return this._nodes.length},isEmpty:function(){return this._nodes.length<1},toString:function(){var e="",t=this[u]+": not bound to any nodes",n=this._nodes,i;return n&&n[0]&&(i=n[0],e+=i[r],i.id&&(e+="#"+i.id),i.className&&(e+="."+i.className.replace(" ",".")),n.length>1&&(e+="...["+n.length+" items]")),e||t},getDOMNodes:function(){return this._nodes}},!0),p.importMethod(e.Node.prototype,["destroy","empty","remove","set"]),p.prototype.get=function(t){var n=[],r=this._nodes,i=!1,s=p._getTempNode,o,u;return r[0]&&(o=e.Node._instances[r[0]._yuid]||s(r[0]),u=o._get(t),u&&u.nodeType&&(i=!0)),e.Array.each(r,function(r){o=e.Node._instances[r._yuid],o||(o=s(r)),u=o._get(t),i||(u=e.Node.scrubVal(u,o)),n.push(u)}),i?e.all(n):n},e.NodeList=p,e.all=function(e){return new p(e)},e.Node.all=e.all;var d=e.NodeList,v=Array.prototype,m={concat:1,pop:0,push:0,shift:0,slice:1,splice:1,unshift:0};e.Object.each(m,function(t,n){d.prototype[n]=function(){var r=[],i=0,s,o;while(typeof (s=arguments[i++])!="undefined")r.push(s._node||s._nodes||s);return o=v[n].apply(this._nodes,r),t?o=e.all(o):o=e.Node.scrubVal(o),o}}),e.Array.each(["removeChild","hasChildNodes","cloneNode","hasAttribute","scrollIntoView","getElementsByTagName","focus","blur","submit","reset","select","createCaption"],function(t){e.Node.prototype[t]=function(
+e,n,r){var i=this.invoke(t,e,n,r);return i}}),e.Node.prototype.removeAttribute=function(e){var t=this._node;return t&&t.removeAttribute(e,0),this},e.Node.importMethod(e.DOM,["contains","setAttribute","getAttribute","wrap","unwrap","generateID"]),e.NodeList.importMethod(e.Node.prototype,["getAttribute","setAttribute","removeAttribute","unwrap","wrap","generateID"])},"@VERSION@",{requires:["dom-core","selector"]}),YUI.add("node-base",function(e,t){var n=["hasClass","addClass","removeClass","replaceClass","toggleClass"];e.Node.importMethod(e.DOM,n),e.NodeList.importMethod(e.Node.prototype,n);var r=e.Node,i=e.DOM;r.create=function(t,n){return n&&n._node&&(n=n._node),e.one(i.create(t,n))},e.mix(r.prototype,{create:r.create,insert:function(e,t){return this._insert(e,t),this},_insert:function(e,t){var n=this._node,r=null;return typeof t=="number"?t=this._node.childNodes[t]:t&&t._node&&(t=t._node),e&&typeof e!="string"&&(e=e._node||e._nodes||e),r=i.addHTML(n,e,t),r},prepend:function(e){return this.insert(e,0)},append:function(e){return this.insert(e,null)},appendChild:function(e){return r.scrubVal(this._insert(e))},insertBefore:function(t,n){return e.Node.scrubVal(this._insert(t,n))},appendTo:function(t){return e.one(t).append(this),this},setContent:function(e){return this._insert(e,"replace"),this},getContent:function(){var e=this;return e._node.nodeType===11&&(e=e.create("").append(e.cloneNode(!0))),e.get("innerHTML")}}),e.Node.prototype.setHTML=e.Node.prototype.setContent,e.Node.prototype.getHTML=e.Node.prototype.getContent,e.NodeList.importMethod(e.Node.prototype,["append","insert","appendChild","insertBefore","prepend","setContent","getContent","setHTML","getHTML"]);var r=e.Node,i=e.DOM;r.ATTRS={text:{getter:function(){return i.getText(this._node)},setter:function(e){return i.setText(this._node,e),e}},"for":{getter:function(){return i.getAttribute(this._node,"for")},setter:function(e){return i.setAttribute(this._node,"for",e),e}},options:{getter:function(){return this._node.getElementsByTagName("option")}},children:{getter:function(){var t=this._node,n=t.children,r,i,s;if(!n){r=t.childNodes,n=[];for(i=0,s=r.length;i1?this._data[e]=t:this._data=e,this},clearData:function(e){return"_data"in this&&(typeof e!="undefined"?delete this._data[e]:delete this._data),this}}),e.mix(e.NodeList.prototype,{getData:function(e){var t=arguments.length?[e]:[];return this._invoke("getData",t,!0)},setData:function(e,t){var n=arguments.length>1?[e,t]:[e];return this._invoke("setData",n)},clearData:function(e){var t=arguments.length?[e]:[];return this._invoke("clearData",[e])}})},"@VERSION@",{requires:["event-base","node-core","dom-base","dom-style"]}),function(){var e=YUI.Env;e._ready||(e._ready=function(){e.DOMReady=!0,e.remove(YUI.config.doc,"DOMContentLoaded",e._ready)},e.add(YUI.config.doc,"DOMContentLoaded",e._ready))}(),YUI.add("event-base",function(e,t){e.publish("domready",{fireOnce:!0,async:!0}),YUI.Env.DOMReady?e.fire("domready"):e.Do.before(function(){e.fire("domready")},YUI.Env,"_ready");var n=e.UA,r={},i={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9,63272:46,63273:36,63275:35},s=function(t){if(!t)return t;try{t&&3==t.nodeType&&(t=t.parentNode)}catch(n){return null}return e.one(t)},o=function(e,t,n){this._event=e,this._currentTarget=t,this._wrapper=n||r,this.init()};e.extend(o,Object,{init:function(){var e=this._event,t=this._wrapper.overrides,r=e.pageX,o=e.pageY,u,a=this._currentTarget;this.altKey=e.altKey,this.ctrlKey=e.ctrlKey,this.metaKey=e.metaKey,this.shiftKey=e.shiftKey,this.type=t&&t.type||e.type,this.clientX=e.clientX,this.clientY=e.clientY,this.pageX=r,this.pageY=o,u=e.keyCode||e.charCode,n.webkit&&u in i&&(u=i[u]),this.keyCode=u,this.charCode=u,this.which=e.which||e.charCode||u,this.button=this.which,this.target=s(e.target),this.currentTarget=s(a),this.relatedTarget=s(e.relatedTarget);if(e.type=="mousewheel"||e.type=="DOMMouseScroll")this.wheelDelta=e.detail?e.detail*-1:Math.round(e.wheelDelta/80)||(e.wheelDelta<0?-1:1);this._touch&&this._touch(e,a,this._wrapper)},stopPropagation:function(){this._event.stopPropagation(),this._wrapper.stopped=1,this.stopped=1},stopImmediatePropagation:function(){var e=this._event;e.stopImmediatePropagation?e.stopImmediatePropagation():this.stopPropagation(),this._wrapper.stopped=2,this.stopped=2},preventDefault:function(e){var t=this._event;t.preventDefault(),t.returnValue=e||!1,this._wrapper.prevented=1,this.prevented=1},halt:function(e){e?this.stopImmediatePropagation():this.stopPropagation(),this.preventDefault()}}),o.resolve=s,e.DOM2EventFacade=o,e.DOMEventFacade=o,function(){e.Env.evt.dom_wrappers={},e.Env.evt.dom_map={};var t=e.Env.evt,n=e.config,r=n.win,i=YUI.Env.add,s=YUI.Env.remove,o=function(){YUI.Env.windowLoaded=!0,e.Event._load(),s(r,"load",o)},u=function(){e.Event._unload()},a="domready",f="~yui|2|compat~",l=function(t){try{return t&&typeof t!="string"&&e.Lang.isNumber(t.length)&&!t.tagName&&!e.DOM.isWindow(t)}catch(n){return!1}},c=e.CustomEvent.prototype._delete,h=function(t){var n=c.apply(this,arguments);return this.hasSubs()||e.Event._clean(this),n},p=function(){var n=!1,o=0,c=[],d=t.dom_wrappers,v=null,m=t.dom_map;return{POLL_RETRYS:1e3,POLL_INTERVAL:40,lastError:null,_interval:null,_dri:null,DOMReady:!1,startInterval:function(){p._interval||(p._interval=setInterval(p._poll,p.POLL_INTERVAL))},onAvailable:function(t,n,r,i,s,u){var a=e.Array(t),f,l;for(f=0;f'},{NAME:"sliderBase",ATTRS:{axis:{value:"x",writeOnce:!0,setter:"_setAxis",lazyAdd:!1},length:{value:"150px",setter:"_setLength"},thumbUrl:{value:null,validator:e.Lang.isString}}})},"3.9.1",{requires:["widget","dd-constrain","event-key"],skinnable:!0});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("slider-base",function(e,t){function r(){r.superclass.constructor.apply(this,arguments)}var n=e.Attribute.INVALID_VALUE;e.SliderBase=e.extend(r,e.Widget,{initializer:function(){this.axis=this.get("axis"),this._key={dim:this.axis==="y"?"height":"width",minEdge:this.axis==="y"?"top":"left",maxEdge:this.axis==="y"?"bottom":"right",xyIndex:this.axis==="y"?1:0},this.publish("thumbMove",{defaultFn:this._defThumbMoveFn,queuable:!0})},renderUI:function(){var e=this.get("contentBox");this.rail=this.renderRail(),this._uiSetRailLength(this.get("length")),this.thumb=this.renderThumb(),this.rail.appendChild(this.thumb),e.appendChild(this.rail),e.addClass(this.getClassName(this.axis))},renderRail:function(){var t=this.getClassName("rail","cap",this._key.minEdge),n=this.getClassName("rail","cap",this._key.maxEdge);return e.Node.create(e.Lang.sub(this.RAIL_TEMPLATE,{railClass:this.getClassName("rail"),railMinCapClass:t,railMaxCapClass:n}))},_uiSetRailLength:function(e){this.rail.setStyle(this._key.dim,e)},renderThumb:function(){this._initThumbUrl();var t=this.get("thumbUrl");return e.Node.create(e.Lang.sub(this.THUMB_TEMPLATE,{thumbClass:this.getClassName("thumb"),thumbShadowClass:this.getClassName("thumb","shadow"),thumbImageClass:this.getClassName("thumb","image"),thumbShadowUrl:t,thumbImageUrl:t,thumbAriaLabelId:this.getClassName("label",e.guid())}))},_onThumbClick:function(e){this.thumb.focus()},bindUI:function(){var t=this.get("boundingBox"),n=e.UA.opera?"press:":"down:",r=n+"38,40,33,34,35,36",i=n+"37,39",s=n+"37+meta,39+meta";t.on("key",this._onDirectionKey,r,this),t.on("key",this._onLeftRightKey,i,this),t.on("key",this._onLeftRightKeyMeta,s,this),this.thumb.on("click",this._onThumbClick,this),this._bindThumbDD(),this._bindValueLogic(),this.after("disabledChange",this._afterDisabledChange),this.after("lengthChange",this._afterLengthChange)},_incrMinor:function(){this.set("value",this.get("value")+this.get("minorStep"))},_decrMinor:function(){this.set("value",this.get("value")-this.get("minorStep"))},_incrMajor:function(){this.set("value",this.get("value")+this.get("majorStep"))},_decrMajor:function(){this.set("value",this.get("value")-this.get("majorStep"))},_setToMin:function(e){this.set("value",this.get("min"))},_setToMax:function(e){this.set("value",this.get("max"))},_onDirectionKey:function(e){e.preventDefault();if(this.get("disabled")===!1)switch(e.charCode){case 38:this._incrMinor();break;case 40:this._decrMinor();break;case 36:this._setToMin();break;case 35:this._setToMax();break;case 33:this._incrMajor();break;case 34:this._decrMajor()}},_onLeftRightKey:function(e){e.preventDefault();if(this.get("disabled")===!1)switch(e.charCode){case 37:this._decrMinor();break;case 39:this._incrMinor()}},_onLeftRightKeyMeta:function(e){e.preventDefault();if(this.get("disabled")===!1)switch(e.charCode){case 37:this._setToMin();break;case 39:this._setToMax()}},_bindThumbDD:function(){var t={constrain:this.rail};t["stick"+this.axis.toUpperCase()]=!0,this._dd=new e.DD.Drag({node:this.thumb,bubble:!1,on:{"drag:start":e.bind(this._onDragStart,this)},after:{"drag:drag":e.bind(this._afterDrag,this),"drag:end":e.bind(this._afterDragEnd,this)}}),this._dd.plug(e.Plugin.DDConstrained,t)},_bindValueLogic:function(){},_uiMoveThumb:function(e,t){this.thumb&&(this.thumb.setStyle(this._key.minEdge,e+"px"),t||(t={}),t.offset=e,this.fire("thumbMove",t))},_onDragStart:function(e){this.fire("slideStart",{ddEvent:e,originEvent:e})},_afterDrag:function(e){var t=e.info.xy[this._key.xyIndex],n=e.target.con._regionCache[this._key.minEdge];this.fire("thumbMove",{offset:t-n,ddEvent:e,originEvent:e})},_afterDragEnd:function(e){this.fire("slideEnd",{ddEvent:e,originEvent:e})},_afterDisabledChange:function(e){this._dd.set("lock",e.newVal)},_afterLengthChange:function(e){this.get("rendered")&&(this._uiSetRailLength(e.newVal),this.syncUI())},syncUI:function(){this._dd.con.resetCache(),this._syncThumbPosition(),this.thumb.set("aria-valuemin",this.get("min")),this.thumb.set("aria-valuemax",this.get("max")),this._dd.set("lock",this.get("disabled"))},_syncThumbPosition:function(){},_setAxis:function(e){return e=(e+"").toLowerCase(),e==="x"||e==="y"?e:n},_setLength:function(e){e=(e+"").toLowerCase();var t=parseFloat(e,10),r=e.replace(/[\d\.\-]/g,"")||this.DEF_UNIT;return t>0?t+r:n},_initThumbUrl:function(){if(!this.get("thumbUrl")){var t=this.getSkinName()||"sam",n=e.config.base;n.indexOf("http://yui.yahooapis.com/combo")===0&&(n="http://yui.yahooapis.com/"+e.version+"/build/"),this.set("thumbUrl",n+"slider-base/assets/skins/"+t+"/thumb-"+this.axis+".png")}},BOUNDING_TEMPLATE:"",CONTENT_TEMPLATE:"",RAIL_TEMPLATE:'',THUMB_TEMPLATE:'
'},{NAME:"sliderBase",ATTRS:{axis:{value:"x",writeOnce:!0,setter:"_setAxis",lazyAdd:!1},length:{value:"150px",setter:"_setLength"},thumbUrl:{value:null,validator:e.Lang.isString}}})},"3.12.0",{requires:["widget","dd-constrain","event-key"],skinnable:!0});
diff --git a/lib/yuilib/3.9.1/build/slider-base/slider-base.js b/lib/yuilib/3.12.0/slider-base/slider-base.js
old mode 100644
new mode 100755
similarity index 99%
rename from lib/yuilib/3.9.1/build/slider-base/slider-base.js
rename to lib/yuilib/3.12.0/slider-base/slider-base.js
index e60f1f8fdc8..de489f313c8
--- a/lib/yuilib/3.9.1/build/slider-base/slider-base.js
+++ b/lib/yuilib/3.12.0/slider-base/slider-base.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('slider-base', function (Y, NAME) {
/**
@@ -758,4 +764,4 @@ Y.SliderBase = Y.extend( SliderBase, Y.Widget, {
});
-}, '3.9.1', {"requires": ["widget", "dd-constrain", "event-key"], "skinnable": true});
+}, '3.12.0', {"requires": ["widget", "dd-constrain", "event-key"], "skinnable": true});
diff --git a/lib/yuilib/3.9.1/build/slider-value-range/slider-value-range-debug.js b/lib/yuilib/3.12.0/slider-value-range/slider-value-range-debug.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/slider-value-range/slider-value-range-debug.js
rename to lib/yuilib/3.12.0/slider-value-range/slider-value-range-debug.js
index e5caa8142d8..984eb044287
--- a/lib/yuilib/3.9.1/build/slider-value-range/slider-value-range-debug.js
+++ b/lib/yuilib/3.12.0/slider-value-range/slider-value-range-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('slider-value-range', function (Y, NAME) {
/**
@@ -417,4 +423,4 @@ Y.SliderValueRange = Y.mix( SliderValueRange, {
}, true );
-}, '3.9.1', {"requires": ["slider-base"]});
+}, '3.12.0', {"requires": ["slider-base"]});
diff --git a/lib/yuilib/3.9.1/build/slider-value-range/slider-value-range-min.js b/lib/yuilib/3.12.0/slider-value-range/slider-value-range-min.js
old mode 100644
new mode 100755
similarity index 89%
rename from lib/yuilib/3.9.1/build/slider-value-range/slider-value-range-min.js
rename to lib/yuilib/3.12.0/slider-value-range/slider-value-range-min.js
index e3a54a31384..d63e0d1d475
--- a/lib/yuilib/3.9.1/build/slider-value-range/slider-value-range-min.js
+++ b/lib/yuilib/3.12.0/slider-value-range/slider-value-range-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("slider-value-range",function(e,t){function o(){this._initSliderValueRange()}var n="min",r="max",i="value",s=Math.round;e.SliderValueRange=e.mix(o,{prototype:{_factor:1,_initSliderValueRange:function(){},_bindValueLogic:function(){this.after({minChange:this._afterMinChange,maxChange:this._afterMaxChange,valueChange:this._afterValueChange})},_syncThumbPosition:function(){this._calculateFactor(),this._setPosition(this.get(i))},_calculateFactor:function(){var e=this.get("length"),t=this.thumb.getStyle(this._key.dim),i=this.get(n),s=this.get(r);e=parseFloat(e)||150,t=parseFloat(t)||15,this._factor=(s-i)/(e-t)},_defThumbMoveFn:function(e){e.source!=="set"&&this.set(i,this._offsetToValue(e.offset))},_offsetToValue:function(e){var t=s(e*this._factor)+this.get(n);return s(this._nearestValue(t))},_valueToOffset:function(e){var t=s((e-this.get(n))/this._factor);return t},getValue:function(){return this.get(i)},setValue:function(e){return this.set(i,e)},_afterMinChange:function(e){this._verifyValue(),this._syncThumbPosition()},_afterMaxChange:function(e){this._verifyValue(),this._syncThumbPosition()},_verifyValue:function(){var e=this.get(i),t=this._nearestValue(e);e!==t&&this.set(i,t)},_afterValueChange:function(e){var t=e.newVal;this._setPosition(t,{source:"set"})},_setPosition:function(e,t){this._uiMoveThumb(this._valueToOffset(e),t),this.thumb.set("aria-valuenow",e),this.thumb.set("aria-valuetext",e)},_validateNewMin:function(t){return e.Lang.isNumber(t)},_validateNewMax:function(t){return e.Lang.isNumber(t)},_setNewValue:function(e){return s(this._nearestValue(e))},_nearestValue:function(e){var t=this.get(n),i=this.get(r),s;return s=i>t?i:t,t=i>t?t:i,i=s,e
',
- PANEL_TEMPLATE: '',
-
ATTRS: {
defaultChildType: {
value: 'Tab'
@@ -150,7 +161,7 @@ var _queries = Y.TabviewBase._queries,
setter: function(node) {
node = Y.one(node);
if (node) {
- node.addClass(_classNames.tabviewList);
+ node.addClass(Y.TabviewBase._classNames.tabviewList);
}
return node;
},
@@ -162,7 +173,7 @@ var _queries = Y.TabviewBase._queries,
setter: function(node) {
node = Y.one(node);
if (node) {
- node.addClass(_classNames.tabviewPanel);
+ node.addClass(Y.TabviewBase._classNames.tabviewPanel);
}
return node;
},
@@ -177,15 +188,24 @@ var _queries = Y.TabviewBase._queries,
},
HTML_PARSER: {
- listNode: _queries.tabviewList,
- panelNode: _queries.tabviewPanel
- }
+ listNode: function(srcNode) {
+ return srcNode.one(Y.TabviewBase._queries.tabviewList);
+ },
+ panelNode: function(srcNode) {
+ return srcNode.one(Y.TabviewBase._queries.tabviewPanel);
+ }
+ },
+
+ // Static for legacy support.
+ LIST_TEMPLATE: '
',
+ PANEL_TEMPLATE: ''
});
-Y.TabView = TabView;
-var Lang = Y.Lang,
- _classNames = Y.TabviewBase._classNames;
+// Map to static values by default.
+TabView.prototype.LIST_TEMPLATE = TabView.LIST_TEMPLATE;
+TabView.prototype.PANEL_TEMPLATE = TabView.PANEL_TEMPLATE;
+Y.TabView = TabView;
/**
* Provides Tab instances for use with TabView
* @param config {Object} Object literal specifying tabview configuration properties.
@@ -196,12 +216,12 @@ var Lang = Y.Lang,
* @uses WidgetChild
*/
Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
- BOUNDING_TEMPLATE: '',
- CONTENT_TEMPLATE: '',
- PANEL_TEMPLATE: '',
+ BOUNDING_TEMPLATE: '',
+ CONTENT_TEMPLATE: '',
+ PANEL_TEMPLATE: '',
_uiSetSelectedPanel: function(selected) {
- this.get('panelNode').toggleClass(_classNames.selectedPanel, selected);
+ this.get('panelNode').toggleClass(Y.TabviewBase._classNames.selectedPanel, selected);
},
_afterTabSelectedChange: function(event) {
@@ -220,7 +240,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
var anchor = this.get('contentBox'),
id = anchor.get('id'),
panel = this.get('panelNode');
-
+
if (!id) {
id = Y.guid();
anchor.set('id', id);
@@ -228,8 +248,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
// Apply the ARIA roles, states and properties to each tab
anchor.set('role', 'tab');
anchor.get('parentNode').set('role', 'presentation');
-
-
+
// Apply the ARIA roles, states and properties to each panel
panel.setAttrs({
role: 'tabpanel',
@@ -238,6 +257,10 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
},
syncUI: function() {
+ var _classNames = Y.TabviewBase._classNames;
+
+ this.get('boundingBox').addClass(_classNames.tab);
+ this.get('contentBox').addClass(_classNames.tabLabel);
this.set('label', this.get('label'));
this.set('content', this.get('content'));
this._uiSetSelectedPanel(this.get('selected'));
@@ -271,7 +294,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
panel.appendChild(this.get('panelNode'));
}
},
-
+
_remove: function() {
this.get('boundingBox').remove();
this.get('panelNode').remove();
@@ -285,7 +308,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
e.target.set('selected', 1);
}
},
-
+
initializer: function() {
this.publish(this.get('triggerEvent'), {
defaultFn: this._onActivate
@@ -318,7 +341,8 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
// find panel by ID mapping from label href
_defPanelNodeValueFn: function() {
- var href = this.get('contentBox').get('href') || '',
+ var _classNames = Y.TabviewBase._classNames,
+ href = this.get('contentBox').get('href') || '',
parent = this.get('parent'),
hashIndex = href.indexOf('#'),
panel;
@@ -340,6 +364,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
if (!panel) { // create if none found
panel = Y.Node.create(this.PANEL_TEMPLATE);
+ panel.addClass(_classNames.tabPanel);
}
return panel;
}
@@ -380,13 +405,13 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
setter: function(node) {
node = Y.one(node);
if (node) {
- node.addClass(_classNames.tabPanel);
+ node.addClass(Y.TabviewBase._classNames.tabPanel);
}
return node;
},
valueFn: '_defPanelNodeValueFn'
},
-
+
tabIndex: {
value: null,
validator: '_validTabIndex'
@@ -396,7 +421,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
HTML_PARSER: {
selected: function() {
- var ret = (this.get('boundingBox').hasClass(_classNames.selectedTab)) ?
+ var ret = (this.get('boundingBox').hasClass(Y.TabviewBase._classNames.selectedTab)) ?
1 : 0;
return ret;
}
@@ -405,7 +430,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
});
-}, '3.9.1', {
+}, '3.12.0', {
"requires": [
"widget",
"widget-parent",
diff --git a/lib/yuilib/3.12.0/tabview/tabview-min.js b/lib/yuilib/3.12.0/tabview/tabview-min.js
new file mode 100755
index 00000000000..97bee44c1d5
--- /dev/null
+++ b/lib/yuilib/3.12.0/tabview/tabview-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("tabview",function(e,t){var n=".",r=e.Base.create("tabView",e.Widget,[e.WidgetParent],{_afterChildAdded:function(){this.get("contentBox").focusManager.refresh()},_defListNodeValueFn:function(){var t=e.Node.create(this.LIST_TEMPLATE);return t.addClass(e.TabviewBase._classNames.tabviewList),t},_defPanelNodeValueFn:function(){var t=e.Node.create(this.PANEL_TEMPLATE);return t.addClass(e.TabviewBase._classNames.tabviewPanel),t},_afterChildRemoved:function(e){var t=e.index,n=this.get("selection");n||(n=this.item(t-1)||this.item(0),n&&n.set("selected",1)),this.get("contentBox").focusManager.refresh()},_initAria:function(t){var n=t.one(e.TabviewBase._queries.tabviewList);n&&n.setAttrs({role:"tablist"})},bindUI:function(){this.get("contentBox").plug(e.Plugin.NodeFocusManager,{descendants:n+e.TabviewBase._classNames.tabLabel,keys:{next:"down:39",previous:"down:37"},circular:!0}),this.after("render",this._setDefSelection),this.after("addChild",this._afterChildAdded),this.after("removeChild",this._afterChildRemoved)},renderUI:function(){var e=this.get("contentBox");this._renderListBox(e),this._renderPanelBox(e),this._childrenContainer=this.get("listNode"),this._renderTabs(e),this._initAria(e)},_setDefSelection:function(){var e=this.get("selection")||this.item(0);this.some(function(t){if(t.get("selected"))return e=t,!0}),e&&(this.set("selection",e),e.set("selected",1))},_renderListBox:function(e){var t=this.get("listNode");t.inDoc()||e.append(t)},_renderPanelBox:function(e){var t=this.get("panelNode");t.inDoc()||e.append(t)},_renderTabs:function(t){var r=e.TabviewBase._classNames,i=e.TabviewBase._queries,s=t.all(i.tab),o=this.get("panelNode"),u=o?this.get("panelNode").get("children"):null,a=this;s&&(s.addClass(r.tab),t.all(i.tabLabel).addClass(r.tabLabel),t.all(i.tabPanel).addClass(r.tabPanel),s.each(function(e,t){var i=u?u.item(t):null;a.add({boundingBox:e,contentBox:e.one(n+r.tabLabel),panelNode:i})}))}},{ATTRS:{defaultChildType:{value:"Tab"},listNode:{setter:function(t){return t=e.one(t),t&&t.addClass(e.TabviewBase._classNames.tabviewList),t},valueFn:"_defListNodeValueFn"},panelNode:{setter:function(t){return t=e.one(t),t&&t.addClass(e.TabviewBase._classNames.tabviewPanel),t},valueFn:"_defPanelNodeValueFn"},tabIndex:{value:null}},HTML_PARSER:{listNode:function(t){return t.one(e.TabviewBase._queries.tabviewList)},panelNode:function(t){return t.one(e.TabviewBase._queries.tabviewPanel)}},LIST_TEMPLATE:"
",PANEL_TEMPLATE:""});r.prototype.LIST_TEMPLATE=r.LIST_TEMPLATE,r.prototype.PANEL_TEMPLATE=r.PANEL_TEMPLATE,e.TabView=r,e.Tab=e.Base.create("tab",e.Widget,[e.WidgetChild],{BOUNDING_TEMPLATE:"",CONTENT_TEMPLATE:"",PANEL_TEMPLATE:"",_uiSetSelectedPanel:function(t){this.get("panelNode").toggleClass(e.TabviewBase._classNames.selectedPanel,t)},_afterTabSelectedChange:function(e){this._uiSetSelectedPanel(e.newVal)},_afterParentChange:function(e){e.newVal?this._add():this._remove()},_initAria:function(){var t=this.get("contentBox"),n=t.get("id"),r=this.get("panelNode");n||(n=e.guid(),t.set("id",n)),t.set("role","tab"),t.get("parentNode").set("role","presentation"),r.setAttrs({role:"tabpanel","aria-labelledby":n})},syncUI:function(){var t=e.TabviewBase._classNames;this.get("boundingBox").addClass(t.tab),this.get("contentBox").addClass(t.tabLabel),this.set("label",this.get("label")),this.set("content",this.get("content")),this._uiSetSelectedPanel(this.get("selected"))},bindUI:function(){this.after("selectedChange",this._afterTabSelectedChange),this.after("parentChange",this._afterParentChange)},renderUI:function(){this._renderPanel(),this._initAria()},_renderPanel:function(){this.get("parent").get("panelNode").appendChild(this.get("panelNode"))},_add:function(){var e=this.get("parent").get("contentBox"),t=e.get("listNode"),n=e.get("panelNode");t&&t.appendChild(this.get("boundingBox")),n&&n.appendChild(this.get("panelNode"))},_remove:function(){this.get("boundingBox").remove(),this.get("panelNode").remove()},_onActivate:function(e){e.target===this&&(e.domEvent.preventDefault(),e.target.set("selected",1))},initializer:function(){this.publish(this.get("triggerEvent"),{defaultFn:this._onActivate})},_defLabelGetter:function(){return this.get("contentBox").getHTML()},_defLabelSetter:function(e){var t=this.get("contentBox");return t.getHTML()!==e&&t.setHTML(e),e},_defContentSetter:function(e){var t=this.get("panelNode");return t.getHTML()!==e&&t.setHTML(e),e},_defContentGetter:function(){return this.get("panelNode").getHTML()},_defPanelNodeValueFn:function(){var t=e.TabviewBase._classNames,n=this.get("contentBox").get("href")||"",r=this.get("parent"),i=n.indexOf("#"),s;return n=n.substr(i),n.charAt(0)==="#"&&(s=e.one(n),s&&s.addClass(t.tabPanel)),!s&&r&&(s=r.get("panelNode").get("children").item(this.get("index"))),s||(s=e.Node.create(this.PANEL_TEMPLATE),s.addClass(t.tabPanel)),s}},{ATTRS:{triggerEvent:{value:"click"},label:{setter:"_defLabelSetter",getter:"_defLabelGetter"},content:{setter:"_defContentSetter",getter:"_defContentGetter"},panelNode:{setter:function(t){return t=e.one(t),t&&t.addClass(e.TabviewBase._classNames.tabPanel),t},valueFn:"_defPanelNodeValueFn"},tabIndex:{value:null,validator:"_validTabIndex"}},HTML_PARSER:{selected:function(){var t=this.get("boundingBox").hasClass(e.TabviewBase._classNames.selectedTab)?1:0;return t}}})},"3.12.0",{requires:["widget","widget-parent","widget-child","tabview-base","node-pluginhost","node-focusmanager"],skinnable:!0});
diff --git a/lib/yuilib/3.9.1/build/tabview/tabview.js b/lib/yuilib/3.12.0/tabview/tabview.js
old mode 100644
new mode 100755
similarity index 81%
rename from lib/yuilib/3.9.1/build/tabview/tabview.js
rename to lib/yuilib/3.12.0/tabview/tabview.js
index 014857921d9..3e5ccc67849
--- a/lib/yuilib/3.9.1/build/tabview/tabview.js
+++ b/lib/yuilib/3.12.0/tabview/tabview.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('tabview', function (Y, NAME) {
/**
@@ -7,9 +13,7 @@ YUI.add('tabview', function (Y, NAME) {
* @module tabview
*/
-var _queries = Y.TabviewBase._queries,
- _classNames = Y.TabviewBase._classNames,
- DOT = '.',
+var DOT = '.',
/**
* Provides a tabbed widget interface
@@ -21,16 +25,25 @@ var _queries = Y.TabviewBase._queries,
* @uses WidgetParent
*/
TabView = Y.Base.create('tabView', Y.Widget, [Y.WidgetParent], {
+
_afterChildAdded: function() {
this.get('contentBox').focusManager.refresh();
},
_defListNodeValueFn: function() {
- return Y.Node.create(TabView.LIST_TEMPLATE);
+ var node = Y.Node.create(this.LIST_TEMPLATE);
+
+ node.addClass(Y.TabviewBase._classNames.tabviewList);
+
+ return node;
},
_defPanelNodeValueFn: function() {
- return Y.Node.create(TabView.PANEL_TEMPLATE);
+ var node = Y.Node.create(this.PANEL_TEMPLATE);
+
+ node.addClass(Y.TabviewBase._classNames.tabviewPanel);
+
+ return node;
},
_afterChildRemoved: function(e) { // update the selected tab when removed
@@ -47,9 +60,8 @@ var _queries = Y.TabviewBase._queries,
this.get('contentBox').focusManager.refresh();
},
- _initAria: function() {
- var contentBox = this.get('contentBox'),
- tablist = contentBox.one(_queries.tabviewList);
+ _initAria: function(contentBox) {
+ var tablist = contentBox.one(Y.TabviewBase._queries.tabviewList);
if (tablist) {
tablist.setAttrs({
@@ -65,7 +77,7 @@ var _queries = Y.TabviewBase._queries,
// among each of the tabs.
this.get('contentBox').plug(Y.Plugin.NodeFocusManager, {
- descendants: DOT + _classNames.tabLabel,
+ descendants: DOT + Y.TabviewBase._classNames.tabLabel,
keys: { next: 'down:39', // Right arrow
previous: 'down:37' }, // Left arrow
circular: true
@@ -75,13 +87,14 @@ var _queries = Y.TabviewBase._queries,
this.after('addChild', this._afterChildAdded);
this.after('removeChild', this._afterChildRemoved);
},
-
+
renderUI: function() {
var contentBox = this.get('contentBox');
this._renderListBox(contentBox);
this._renderPanelBox(contentBox);
this._childrenContainer = this.get('listNode');
this._renderTabs(contentBox);
+ this._initAria(contentBox);
},
_setDefSelection: function() {
@@ -116,7 +129,9 @@ var _queries = Y.TabviewBase._queries,
},
_renderTabs: function(contentBox) {
- var tabs = contentBox.all(_queries.tab),
+ var _classNames = Y.TabviewBase._classNames,
+ _queries = Y.TabviewBase._queries,
+ tabs = contentBox.all(_queries.tab),
panelNode = this.get('panelNode'),
panels = (panelNode) ? this.get('panelNode').get('children') : null,
tabview = this;
@@ -137,10 +152,6 @@ var _queries = Y.TabviewBase._queries,
}
}
}, {
-
- LIST_TEMPLATE: '
',
- PANEL_TEMPLATE: '',
-
ATTRS: {
defaultChildType: {
value: 'Tab'
@@ -150,7 +161,7 @@ var _queries = Y.TabviewBase._queries,
setter: function(node) {
node = Y.one(node);
if (node) {
- node.addClass(_classNames.tabviewList);
+ node.addClass(Y.TabviewBase._classNames.tabviewList);
}
return node;
},
@@ -162,7 +173,7 @@ var _queries = Y.TabviewBase._queries,
setter: function(node) {
node = Y.one(node);
if (node) {
- node.addClass(_classNames.tabviewPanel);
+ node.addClass(Y.TabviewBase._classNames.tabviewPanel);
}
return node;
},
@@ -177,15 +188,24 @@ var _queries = Y.TabviewBase._queries,
},
HTML_PARSER: {
- listNode: _queries.tabviewList,
- panelNode: _queries.tabviewPanel
- }
+ listNode: function(srcNode) {
+ return srcNode.one(Y.TabviewBase._queries.tabviewList);
+ },
+ panelNode: function(srcNode) {
+ return srcNode.one(Y.TabviewBase._queries.tabviewPanel);
+ }
+ },
+
+ // Static for legacy support.
+ LIST_TEMPLATE: '
',
+ PANEL_TEMPLATE: ''
});
-Y.TabView = TabView;
-var Lang = Y.Lang,
- _classNames = Y.TabviewBase._classNames;
+// Map to static values by default.
+TabView.prototype.LIST_TEMPLATE = TabView.LIST_TEMPLATE;
+TabView.prototype.PANEL_TEMPLATE = TabView.PANEL_TEMPLATE;
+Y.TabView = TabView;
/**
* Provides Tab instances for use with TabView
* @param config {Object} Object literal specifying tabview configuration properties.
@@ -196,12 +216,12 @@ var Lang = Y.Lang,
* @uses WidgetChild
*/
Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
- BOUNDING_TEMPLATE: '',
- CONTENT_TEMPLATE: '',
- PANEL_TEMPLATE: '',
+ BOUNDING_TEMPLATE: '',
+ CONTENT_TEMPLATE: '',
+ PANEL_TEMPLATE: '',
_uiSetSelectedPanel: function(selected) {
- this.get('panelNode').toggleClass(_classNames.selectedPanel, selected);
+ this.get('panelNode').toggleClass(Y.TabviewBase._classNames.selectedPanel, selected);
},
_afterTabSelectedChange: function(event) {
@@ -220,7 +240,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
var anchor = this.get('contentBox'),
id = anchor.get('id'),
panel = this.get('panelNode');
-
+
if (!id) {
id = Y.guid();
anchor.set('id', id);
@@ -228,8 +248,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
// Apply the ARIA roles, states and properties to each tab
anchor.set('role', 'tab');
anchor.get('parentNode').set('role', 'presentation');
-
-
+
// Apply the ARIA roles, states and properties to each panel
panel.setAttrs({
role: 'tabpanel',
@@ -238,6 +257,10 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
},
syncUI: function() {
+ var _classNames = Y.TabviewBase._classNames;
+
+ this.get('boundingBox').addClass(_classNames.tab);
+ this.get('contentBox').addClass(_classNames.tabLabel);
this.set('label', this.get('label'));
this.set('content', this.get('content'));
this._uiSetSelectedPanel(this.get('selected'));
@@ -271,7 +294,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
panel.appendChild(this.get('panelNode'));
}
},
-
+
_remove: function() {
this.get('boundingBox').remove();
this.get('panelNode').remove();
@@ -285,7 +308,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
e.target.set('selected', 1);
}
},
-
+
initializer: function() {
this.publish(this.get('triggerEvent'), {
defaultFn: this._onActivate
@@ -318,7 +341,8 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
// find panel by ID mapping from label href
_defPanelNodeValueFn: function() {
- var href = this.get('contentBox').get('href') || '',
+ var _classNames = Y.TabviewBase._classNames,
+ href = this.get('contentBox').get('href') || '',
parent = this.get('parent'),
hashIndex = href.indexOf('#'),
panel;
@@ -340,6 +364,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
if (!panel) { // create if none found
panel = Y.Node.create(this.PANEL_TEMPLATE);
+ panel.addClass(_classNames.tabPanel);
}
return panel;
}
@@ -380,13 +405,13 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
setter: function(node) {
node = Y.one(node);
if (node) {
- node.addClass(_classNames.tabPanel);
+ node.addClass(Y.TabviewBase._classNames.tabPanel);
}
return node;
},
valueFn: '_defPanelNodeValueFn'
},
-
+
tabIndex: {
value: null,
validator: '_validTabIndex'
@@ -396,7 +421,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
HTML_PARSER: {
selected: function() {
- var ret = (this.get('boundingBox').hasClass(_classNames.selectedTab)) ?
+ var ret = (this.get('boundingBox').hasClass(Y.TabviewBase._classNames.selectedTab)) ?
1 : 0;
return ret;
}
@@ -405,7 +430,7 @@ Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
});
-}, '3.9.1', {
+}, '3.12.0', {
"requires": [
"widget",
"widget-parent",
diff --git a/lib/yuilib/3.9.1/build/template-base/template-base-debug.js b/lib/yuilib/3.12.0/template-base/template-base-debug.js
old mode 100644
new mode 100755
similarity index 55%
rename from lib/yuilib/3.9.1/build/template-base/template-base-debug.js
rename to lib/yuilib/3.12.0/template-base/template-base-debug.js
index 7fdbe42214a..b6eb8970865
--- a/lib/yuilib/3.9.1/build/template-base/template-base-debug.js
+++ b/lib/yuilib/3.12.0/template-base/template-base-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('template-base', function (Y, NAME) {
/**
@@ -74,6 +80,119 @@ function Template(engine, defaults) {
}
}
+/**
+Registry that maps template names to revived template functions.
+
+@property _registry
+@type Object
+@static
+@protected
+@since 3.12.0
+**/
+Template._registry = {};
+
+/**
+Registers a pre-compiled template into the central template registry with a
+given template string, allowing that template to be called and rendered by
+that name using the `Y.Template.render()` static method.
+
+For example, given the following simple Handlebars template, in `foo.hbs`:
+@example
+
-1&&e.Test.Runner.subscribe(s,r)}},"3.9.1",{requires:["event-simulate","event-custom","json-stringify"]});
+{YUITest.Assert._increment();if(!(e instanceof Date&&t instanceof Date))throw new TypeError("YUITest.DateAssert.timesAreEqual(): Expected and actual values must be Date objects.");var r="";e.getHours()!=t.getHours()&&(r="Hours should be equal."),e.getMinutes()!=t.getMinutes()&&(r="Minutes should be equal."),e.getSeconds()!=t.getSeconds()&&(r="Seconds should be equal.");if(r.length)throw new YUITest.ComparisonFailure(YUITest.Assert._formatMessage(n,r),e,t)}},YUITest.Mock=function(e){e=e||{};var t,n;try{function r(){}r.prototype=e,t=new r}catch(i){t={}}for(n in e)e.hasOwnProperty(n)&&typeof e[n]=="function"&&(t[n]=function(e){return function(){YUITest.Assert.fail("Method "+e+"() was called but was not expected to be.")}}(n));return t},YUITest.Mock.expect=function(e,t){e.__expectations||(e.__expectations={});if(t.method){var n=t.method,r=t.args||[],i=t.returns,s=typeof t.callCount=="number"?t.callCount:1,o=t.error,u=t.run||function(){},a,f;e.__expectations[n]=t,t.callCount=s,t.actualCallCount=0;for(f=0;f-1&&e.Test.Runner.subscribe(s,r)}},"3.12.0",{requires:["event-simulate","event-custom","json-stringify"]});
diff --git a/lib/yuilib/3.9.1/build/test/test.js b/lib/yuilib/3.12.0/test/test.js
old mode 100644
new mode 100755
similarity index 99%
rename from lib/yuilib/3.9.1/build/test/test.js
rename to lib/yuilib/3.12.0/test/test.js
index cbfa1556b06..d8cf36ca5f4
--- a/lib/yuilib/3.9.1/build/test/test.js
+++ b/lib/yuilib/3.12.0/test/test.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('test', function (Y, NAME) {
@@ -20,7 +26,7 @@ if (YUI.YUITest) {
//Make this global for back compat
YUITest = {
- version: "3.9.1",
+ version: "3.12.0",
guid: function(pre) {
return Y.guid(pre);
}
@@ -3295,14 +3301,8 @@ YUITest.ObjectAssert = {
*/
ownsNoKeys : function (object, message) {
YUITest.Assert._increment();
- var count = 0,
- name;
- for (name in object){
- if (object.hasOwnProperty(name)){
- count++;
- }
- }
-
+ var count = YUITest.Object.keys(object).length;
+
if (count !== 0){
YUITest.Assert.fail(YUITest.Assert._formatMessage(message, "Object owns " + count + " properties but should own none."));
}
@@ -3764,4 +3764,4 @@ if (!YUI.YUITest) {
} //End if for YUI.YUITest
-}, '3.9.1', {"requires": ["event-simulate", "event-custom", "json-stringify"]});
+}, '3.12.0', {"requires": ["event-simulate", "event-custom", "json-stringify"]});
diff --git a/lib/yuilib/3.9.1/build/text-accentfold/text-accentfold-debug.js b/lib/yuilib/3.12.0/text-accentfold/text-accentfold-debug.js
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/text-accentfold/text-accentfold-debug.js
rename to lib/yuilib/3.12.0/text-accentfold/text-accentfold-debug.js
index 7e603b4fc07..a846e10e1b9
--- a/lib/yuilib/3.9.1/build/text-accentfold/text-accentfold-debug.js
+++ b/lib/yuilib/3.12.0/text-accentfold/text-accentfold-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('text-accentfold', function (Y, NAME) {
/**
@@ -160,4 +166,4 @@ AccentFold = {
Text.AccentFold = AccentFold;
-}, '3.9.1', {"requires": ["array-extras", "text-data-accentfold"]});
+}, '3.12.0', {"requires": ["array-extras", "text-data-accentfold"]});
diff --git a/lib/yuilib/3.9.1/build/text-accentfold/text-accentfold-min.js b/lib/yuilib/3.12.0/text-accentfold/text-accentfold-min.js
old mode 100644
new mode 100755
similarity index 64%
rename from lib/yuilib/3.9.1/build/text-accentfold/text-accentfold-min.js
rename to lib/yuilib/3.12.0/text-accentfold/text-accentfold-min.js
index 728abc42c74..b44f8cd5278
--- a/lib/yuilib/3.9.1/build/text-accentfold/text-accentfold-min.js
+++ b/lib/yuilib/3.12.0/text-accentfold/text-accentfold-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("text-accentfold",function(e,t){var n=e.Array,r=e.Text,i=r.Data.AccentFold,s={canFold:function(e){var t;for(t in i)if(i.hasOwnProperty(t)&&e.search(i[t])!==-1)return!0;return!1},compare:function(e,t,n){var r=s.fold(e),i=s.fold(t);return n?!!n(r,i):r===i},filter:function(e,t){return n.filter(e,function(e){return t(s.fold(e))})},fold:function(t){return e.Lang.isArray(t)?n.map(t,s.fold):(t=t.toLowerCase(),e.Object.each(i,function(e,n){t=t.replace(e,n)}),t)}};r.AccentFold=s},"3.9.1",{requires:["array-extras","text-data-accentfold"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("text-accentfold",function(e,t){var n=e.Array,r=e.Text,i=r.Data.AccentFold,s={canFold:function(e){var t;for(t in i)if(i.hasOwnProperty(t)&&e.search(i[t])!==-1)return!0;return!1},compare:function(e,t,n){var r=s.fold(e),i=s.fold(t);return n?!!n(r,i):r===i},filter:function(e,t){return n.filter(e,function(e){return t(s.fold(e))})},fold:function(t){return e.Lang.isArray(t)?n.map(t,s.fold):(t=t.toLowerCase(),e.Object.each(i,function(e,n){t=t.replace(e,n)}),t)}};r.AccentFold=s},"3.12.0",{requires:["array-extras","text-data-accentfold"]});
diff --git a/lib/yuilib/3.9.1/build/text-accentfold/text-accentfold.js b/lib/yuilib/3.12.0/text-accentfold/text-accentfold.js
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/text-accentfold/text-accentfold.js
rename to lib/yuilib/3.12.0/text-accentfold/text-accentfold.js
index 7e603b4fc07..a846e10e1b9
--- a/lib/yuilib/3.9.1/build/text-accentfold/text-accentfold.js
+++ b/lib/yuilib/3.12.0/text-accentfold/text-accentfold.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('text-accentfold', function (Y, NAME) {
/**
@@ -160,4 +166,4 @@ AccentFold = {
Text.AccentFold = AccentFold;
-}, '3.9.1', {"requires": ["array-extras", "text-data-accentfold"]});
+}, '3.12.0', {"requires": ["array-extras", "text-data-accentfold"]});
diff --git a/lib/yuilib/3.9.1/build/text-data-accentfold/text-data-accentfold-debug.js b/lib/yuilib/3.12.0/text-data-accentfold/text-data-accentfold-debug.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/text-data-accentfold/text-data-accentfold-debug.js
rename to lib/yuilib/3.12.0/text-data-accentfold/text-data-accentfold-debug.js
index 4e2a2653d6e..d447e95519c
--- a/lib/yuilib/3.9.1/build/text-data-accentfold/text-data-accentfold-debug.js
+++ b/lib/yuilib/3.12.0/text-data-accentfold/text-data-accentfold-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('text-data-accentfold', function (Y, NAME) {
// The following tool was very helpful in creating these mappings:
@@ -44,4 +50,4 @@ Y.namespace('Text.Data').AccentFold = {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/text-data-accentfold/text-data-accentfold-min.js b/lib/yuilib/3.12.0/text-data-accentfold/text-data-accentfold-min.js
old mode 100644
new mode 100755
similarity index 93%
rename from lib/yuilib/3.9.1/build/text-data-accentfold/text-data-accentfold-min.js
rename to lib/yuilib/3.12.0/text-data-accentfold/text-data-accentfold-min.js
index 681b636bbf8..9d674eeb574
--- a/lib/yuilib/3.9.1/build/text-data-accentfold/text-data-accentfold-min.js
+++ b/lib/yuilib/3.12.0/text-data-accentfold/text-data-accentfold-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("text-data-accentfold",function(e,t){e.namespace("Text.Data").AccentFold={0:/[\u2070\u2080\u24EA\uFF10]/gi,1:/[\u00B9\u2081\u2460\uFF11]/gi,2:/[\u00B2\u2082\u2461\uFF12]/gi,3:/[\u00B3\u2083\u2462\uFF13]/gi,4:/[\u2074\u2084\u2463\uFF14]/gi,5:/[\u2075\u2085\u2464\uFF15]/gi,6:/[\u2076\u2086\u2465\uFF16]/gi,7:/[\u2077\u2087\u2466\uFF17]/gi,8:/[\u2078\u2088\u2467\uFF18]/gi,9:/[\u2079\u2089\u2468\uFF19]/gi,a:/[\u00AA\u00E0-\u00E5\u0101\u0103\u0105\u01CE\u01DF\u01E1\u01FB\u0201\u0203\u0227\u1D43\u1E01\u1E9A\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u24D0\uFF41]/gi,b:/[\u1D47\u1E03\u1E05\u1E07\u24D1\uFF42]/gi,c:/[\u00E7\u0107\u0109\u010B\u010D\u1D9C\u1E09\u24D2\uFF43]/gi,d:/[\u010F\u1D48\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u217E\u24D3\uFF44]/gi,e:/[\u00E8-\u00EB\u0113\u0115\u0117\u0119\u011B\u0205\u0207\u0229\u1D49\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u2091\u212F\u24D4\uFF45]/gi,f:/[\u1DA0\u1E1F\u24D5\uFF46]/gi,g:/[\u011D\u011F\u0121\u0123\u01E7\u01F5\u1D4D\u1E21\u210A\u24D6\uFF47]/gi,h:/[\u0125\u021F\u02B0\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E96\u210E\u24D7\uFF48]/gi,i:/[\u00EC-\u00EF\u0129\u012B\u012D\u012F\u0133\u01D0\u0209\u020B\u1D62\u1E2D\u1E2F\u1EC9\u1ECB\u2071\u2139\u2170\u24D8\uFF49]/gi,j:/[\u0135\u01F0\u02B2\u24D9\u2C7C\uFF4A]/gi,k:/[\u0137\u01E9\u1D4F\u1E31\u1E33\u1E35\u24DA\uFF4B]/gi,l:/[\u013A\u013C\u013E\u0140\u01C9\u02E1\u1E37\u1E39\u1E3B\u1E3D\u2113\u217C\u24DB\uFF4C]/gi,m:/[\u1D50\u1E3F\u1E41\u1E43\u217F\u24DC\uFF4D]/gi,n:/[\u00F1\u0144\u0146\u0148\u01F9\u1E45\u1E47\u1E49\u1E4B\u207F\u24DD\uFF4E]/gi,o:/[\u00BA\u00F2-\u00F6\u014D\u014F\u0151\u01A1\u01D2\u01EB\u01ED\u020D\u020F\u022B\u022D\u022F\u0231\u1D52\u1E4D\u1E4F\u1E51\u1E53\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u2092\u2134\u24DE\uFF4F]/gi,p:/[\u1D56\u1E55\u1E57\u24DF\uFF50]/gi,q:/[\u02A0\u24E0\uFF51]/gi,r:/[\u0155\u0157\u0159\u0211\u0213\u02B3\u1D63\u1E59\u1E5B\u1E5D\u1E5F\u24E1\uFF52]/gi,s:/[\u015B\u015D\u015F\u0161\u017F\u0219\u02E2\u1E61\u1E63\u1E65\u1E67\u1E69\u1E9B\u24E2\uFF53]/gi,t:/[\u0163\u0165\u021B\u1D57\u1E6B\u1E6D\u1E6F\u1E71\u1E97\u24E3\uFF54]/gi,u:/[\u00F9-\u00FC\u0169\u016B\u016D\u016F\u0171\u0173\u01B0\u01D4\u01D6\u01D8\u01DA\u01DC\u0215\u0217\u1D58\u1D64\u1E73\u1E75\u1E77\u1E79\u1E7B\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u24E4\uFF55]/gi,v:/[\u1D5B\u1D65\u1E7D\u1E7F\u2174\u24E5\uFF56]/gi,w:/[\u0175\u02B7\u1E81\u1E83\u1E85\u1E87\u1E89\u1E98\u24E6\uFF57]/gi,x:/[\u02E3\u1E8B\u1E8D\u2093\u2179\u24E7\uFF58]/gi,y:/[\u00FD\u00FF\u0177\u0233\u02B8\u1E8F\u1E99\u1EF3\u1EF5\u1EF7\u1EF9\u24E8\uFF59]/gi,z:/[\u017A\u017C\u017E\u1DBB\u1E91\u1E93\u1E95\u24E9\uFF5A]/gi}},"3.9.1",{requires:["yui-base"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("text-data-accentfold",function(e,t){e.namespace("Text.Data").AccentFold={0:/[\u2070\u2080\u24EA\uFF10]/gi,1:/[\u00B9\u2081\u2460\uFF11]/gi,2:/[\u00B2\u2082\u2461\uFF12]/gi,3:/[\u00B3\u2083\u2462\uFF13]/gi,4:/[\u2074\u2084\u2463\uFF14]/gi,5:/[\u2075\u2085\u2464\uFF15]/gi,6:/[\u2076\u2086\u2465\uFF16]/gi,7:/[\u2077\u2087\u2466\uFF17]/gi,8:/[\u2078\u2088\u2467\uFF18]/gi,9:/[\u2079\u2089\u2468\uFF19]/gi,a:/[\u00AA\u00E0-\u00E5\u0101\u0103\u0105\u01CE\u01DF\u01E1\u01FB\u0201\u0203\u0227\u1D43\u1E01\u1E9A\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u24D0\uFF41]/gi,b:/[\u1D47\u1E03\u1E05\u1E07\u24D1\uFF42]/gi,c:/[\u00E7\u0107\u0109\u010B\u010D\u1D9C\u1E09\u24D2\uFF43]/gi,d:/[\u010F\u1D48\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u217E\u24D3\uFF44]/gi,e:/[\u00E8-\u00EB\u0113\u0115\u0117\u0119\u011B\u0205\u0207\u0229\u1D49\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u2091\u212F\u24D4\uFF45]/gi,f:/[\u1DA0\u1E1F\u24D5\uFF46]/gi,g:/[\u011D\u011F\u0121\u0123\u01E7\u01F5\u1D4D\u1E21\u210A\u24D6\uFF47]/gi,h:/[\u0125\u021F\u02B0\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E96\u210E\u24D7\uFF48]/gi,i:/[\u00EC-\u00EF\u0129\u012B\u012D\u012F\u0133\u01D0\u0209\u020B\u1D62\u1E2D\u1E2F\u1EC9\u1ECB\u2071\u2139\u2170\u24D8\uFF49]/gi,j:/[\u0135\u01F0\u02B2\u24D9\u2C7C\uFF4A]/gi,k:/[\u0137\u01E9\u1D4F\u1E31\u1E33\u1E35\u24DA\uFF4B]/gi,l:/[\u013A\u013C\u013E\u0140\u01C9\u02E1\u1E37\u1E39\u1E3B\u1E3D\u2113\u217C\u24DB\uFF4C]/gi,m:/[\u1D50\u1E3F\u1E41\u1E43\u217F\u24DC\uFF4D]/gi,n:/[\u00F1\u0144\u0146\u0148\u01F9\u1E45\u1E47\u1E49\u1E4B\u207F\u24DD\uFF4E]/gi,o:/[\u00BA\u00F2-\u00F6\u014D\u014F\u0151\u01A1\u01D2\u01EB\u01ED\u020D\u020F\u022B\u022D\u022F\u0231\u1D52\u1E4D\u1E4F\u1E51\u1E53\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u2092\u2134\u24DE\uFF4F]/gi,p:/[\u1D56\u1E55\u1E57\u24DF\uFF50]/gi,q:/[\u02A0\u24E0\uFF51]/gi,r:/[\u0155\u0157\u0159\u0211\u0213\u02B3\u1D63\u1E59\u1E5B\u1E5D\u1E5F\u24E1\uFF52]/gi,s:/[\u015B\u015D\u015F\u0161\u017F\u0219\u02E2\u1E61\u1E63\u1E65\u1E67\u1E69\u1E9B\u24E2\uFF53]/gi,t:/[\u0163\u0165\u021B\u1D57\u1E6B\u1E6D\u1E6F\u1E71\u1E97\u24E3\uFF54]/gi,u:/[\u00F9-\u00FC\u0169\u016B\u016D\u016F\u0171\u0173\u01B0\u01D4\u01D6\u01D8\u01DA\u01DC\u0215\u0217\u1D58\u1D64\u1E73\u1E75\u1E77\u1E79\u1E7B\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u24E4\uFF55]/gi,v:/[\u1D5B\u1D65\u1E7D\u1E7F\u2174\u24E5\uFF56]/gi,w:/[\u0175\u02B7\u1E81\u1E83\u1E85\u1E87\u1E89\u1E98\u24E6\uFF57]/gi,x:/[\u02E3\u1E8B\u1E8D\u2093\u2179\u24E7\uFF58]/gi,y:/[\u00FD\u00FF\u0177\u0233\u02B8\u1E8F\u1E99\u1EF3\u1EF5\u1EF7\u1EF9\u24E8\uFF59]/gi,z:/[\u017A\u017C\u017E\u1DBB\u1E91\u1E93\u1E95\u24E9\uFF5A]/gi}},"3.12.0",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/text-data-accentfold/text-data-accentfold.js b/lib/yuilib/3.12.0/text-data-accentfold/text-data-accentfold.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/text-data-accentfold/text-data-accentfold.js
rename to lib/yuilib/3.12.0/text-data-accentfold/text-data-accentfold.js
index 4e2a2653d6e..d447e95519c
--- a/lib/yuilib/3.9.1/build/text-data-accentfold/text-data-accentfold.js
+++ b/lib/yuilib/3.12.0/text-data-accentfold/text-data-accentfold.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('text-data-accentfold', function (Y, NAME) {
// The following tool was very helpful in creating these mappings:
@@ -44,4 +50,4 @@ Y.namespace('Text.Data').AccentFold = {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/text-data-wordbreak/text-data-wordbreak-debug.js b/lib/yuilib/3.12.0/text-data-wordbreak/text-data-wordbreak-debug.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/text-data-wordbreak/text-data-wordbreak-debug.js
rename to lib/yuilib/3.12.0/text-data-wordbreak/text-data-wordbreak-debug.js
index 0a69719990e..614635e64dc
--- a/lib/yuilib/3.9.1/build/text-data-wordbreak/text-data-wordbreak-debug.js
+++ b/lib/yuilib/3.12.0/text-data-wordbreak/text-data-wordbreak-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('text-data-wordbreak', function (Y, NAME) {
Y.namespace('Text.Data').WordBreak = {
@@ -27,4 +33,4 @@ Y.namespace('Text.Data').WordBreak = {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/text-data-wordbreak/text-data-wordbreak-min.js b/lib/yuilib/3.12.0/text-data-wordbreak/text-data-wordbreak-min.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/text-data-wordbreak/text-data-wordbreak-min.js
rename to lib/yuilib/3.12.0/text-data-wordbreak/text-data-wordbreak-min.js
index 4cc8ea46bb7..14dcd91facf
--- a/lib/yuilib/3.9.1/build/text-data-wordbreak/text-data-wordbreak-min.js
+++ b/lib/yuilib/3.12.0/text-data-wordbreak/text-data-wordbreak-min.js
@@ -1,3 +1,9 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add("text-data-wordbreak",function(e,t){e.namespace("Text.Data").WordBreak={aletter:"[A-Za-z\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f3\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u10a0-\u10c5\u10d0-\u10fa\u10fc\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1a00-\u1a16\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bc0-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u24b6-\u24e9\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2d00-\u2d25\u2d30-\u2d65\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005\u303b\u303c\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790\ua791\ua7a0-\ua7a9\ua7fa-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]",midnumlet:"['\\.\u2018\u2019\u2024\ufe52\uff07\uff0e]",midletter:"[:\u00b7\u00b7\u05f4\u2027\ufe13\ufe55\uff1a]",midnum:"[,;;\u0589\u060c\u060d\u066c\u07f8\u2044\ufe10\ufe14\ufe50\ufe54\uff0c\uff1b]",numeric:"[0-9\u0660-\u0669\u066b\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\uaa50-\uaa59\uabf0-\uabf9]",cr:"\\r",lf:"\\n",newline:"[\f\u0085\u2028\u2029]",extend:"[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f\u109a-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b6-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u192b\u1930-\u193b\u19b0-\u19c0\u19c8\u19c9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f\u1b00-\u1b04\u1b34-\u1b44\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1baa\u1be6-\u1bf3\u1c24-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe3-\uabea\uabec\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]"
-,format:"[\u00ad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200e\u200f\u202a-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb]",katakana:"[\u3031-\u3035\u309b\u309c\u30a0-\u30fa\u30fc-\u30ff\u31f0-\u31ff\u32d0-\u32fe\u3300-\u3357\uff66-\uff9d]",extendnumlet:"[_\u203f\u2040\u2054\ufe33\ufe34\ufe4d-\ufe4f\uff3f]",punctuation:"[!-#%-*,-\\/:;?@\\[-\\]_{}\u00a1\u00ab\u00b7\u00bb\u00bf;\u00b7\u055a-\u055f\u0589\u058a\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1361-\u1368\u1400\u166d\u166e\u169b\u169c\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d\u207e\u208d\u208e\u3008\u3009\u2768-\u2775\u27c5\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc\u29fd\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e2e\u2e30\u2e31\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uabeb\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a\uff1b\uff1f\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65]"}},"3.9.1",{requires:["yui-base"]});
+,format:"[\u00ad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200e\u200f\u202a-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb]",katakana:"[\u3031-\u3035\u309b\u309c\u30a0-\u30fa\u30fc-\u30ff\u31f0-\u31ff\u32d0-\u32fe\u3300-\u3357\uff66-\uff9d]",extendnumlet:"[_\u203f\u2040\u2054\ufe33\ufe34\ufe4d-\ufe4f\uff3f]",punctuation:"[!-#%-*,-\\/:;?@\\[-\\]_{}\u00a1\u00ab\u00b7\u00bb\u00bf;\u00b7\u055a-\u055f\u0589\u058a\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1361-\u1368\u1400\u166d\u166e\u169b\u169c\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d\u207e\u208d\u208e\u3008\u3009\u2768-\u2775\u27c5\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc\u29fd\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e2e\u2e30\u2e31\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uabeb\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a\uff1b\uff1f\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65]"}},"3.12.0",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/text-data-wordbreak/text-data-wordbreak.js b/lib/yuilib/3.12.0/text-data-wordbreak/text-data-wordbreak.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/text-data-wordbreak/text-data-wordbreak.js
rename to lib/yuilib/3.12.0/text-data-wordbreak/text-data-wordbreak.js
index 0a69719990e..614635e64dc
--- a/lib/yuilib/3.9.1/build/text-data-wordbreak/text-data-wordbreak.js
+++ b/lib/yuilib/3.12.0/text-data-wordbreak/text-data-wordbreak.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('text-data-wordbreak', function (Y, NAME) {
Y.namespace('Text.Data').WordBreak = {
@@ -27,4 +33,4 @@ Y.namespace('Text.Data').WordBreak = {
};
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/text-wordbreak/text-wordbreak-debug.js b/lib/yuilib/3.12.0/text-wordbreak/text-wordbreak-debug.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/text-wordbreak/text-wordbreak-debug.js
rename to lib/yuilib/3.12.0/text-wordbreak/text-wordbreak-debug.js
index 9a0ebfa4d9c..7d11f3cca7e
--- a/lib/yuilib/3.9.1/build/text-wordbreak/text-wordbreak-debug.js
+++ b/lib/yuilib/3.12.0/text-wordbreak/text-wordbreak-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('text-wordbreak', function (Y, NAME) {
/**
@@ -361,4 +367,4 @@ WordBreak = {
Text.WordBreak = WordBreak;
-}, '3.9.1', {"requires": ["array-extras", "text-data-wordbreak"]});
+}, '3.12.0', {"requires": ["array-extras", "text-data-wordbreak"]});
diff --git a/lib/yuilib/3.9.1/build/text-wordbreak/text-wordbreak-min.js b/lib/yuilib/3.12.0/text-wordbreak/text-wordbreak-min.js
old mode 100644
new mode 100755
similarity index 87%
rename from lib/yuilib/3.9.1/build/text-wordbreak/text-wordbreak-min.js
rename to lib/yuilib/3.12.0/text-wordbreak/text-wordbreak-min.js
index 0ed0db2e26d..2277f0a8477
--- a/lib/yuilib/3.9.1/build/text-wordbreak/text-wordbreak-min.js
+++ b/lib/yuilib/3.12.0/text-wordbreak/text-wordbreak-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("text-wordbreak",function(e,t){var n=e.Text,r=n.Data.WordBreak,i=0,s=1,o=2,u=3,a=4,f=5,l=6,c=7,h=8,p=9,d=10,v=11,m=12,g=[new RegExp(r.aletter),new RegExp(r.midnumlet),new RegExp(r.midletter),new RegExp(r.midnum),new RegExp(r.numeric),new RegExp(r.cr),new RegExp(r.lf),new RegExp(r.newline),new RegExp(r.extend),new RegExp(r.format),new RegExp(r.katakana),new RegExp(r.extendnumlet)],y="",b=new RegExp("^"+r.punctuation+"$"),w=/\s/,E={getWords:function(e,t){var n=0,r=E._classify(e),i=r.length,s=[],o=[],u,a,f;t||(t={}),t.ignoreCase&&(e=e.toLowerCase()),a=t.includePunctuation,f=t.includeWhitespace;for(;ne.length-1&&t!==0?!1:r===i&&m===i?!1:(g=e[t+2],r!==i||m!==o&&m!==s||g!==i?(n=e[t-1],r!==o&&r!==s||m!==i||n!==i?r!==a&&r!==i||m!==a&&m!==i?r!==u&&r!==s||m!==a||n!==a?r!==a||m!==u&&m!==s||g!==a?r===h||r===p||n===h||n===p||m===h||m===p?!1:r===f&&m===l?!1:r===c||r===f||r===l?!0:m===c||m===f||m===l?!0:r===d&&m===d?!1:m!==v||r!==i&&r!==a&&r!==d&&r!==v?r!==v||m!==i&&m!==a&&m!==d?!0:!1:!1:!1:!1:!1:!1):!1)}};n.WordBreak=E},"3.9.1",{requires:["array-extras","text-data-wordbreak"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("text-wordbreak",function(e,t){var n=e.Text,r=n.Data.WordBreak,i=0,s=1,o=2,u=3,a=4,f=5,l=6,c=7,h=8,p=9,d=10,v=11,m=12,g=[new RegExp(r.aletter),new RegExp(r.midnumlet),new RegExp(r.midletter),new RegExp(r.midnum),new RegExp(r.numeric),new RegExp(r.cr),new RegExp(r.lf),new RegExp(r.newline),new RegExp(r.extend),new RegExp(r.format),new RegExp(r.katakana),new RegExp(r.extendnumlet)],y="",b=new RegExp("^"+r.punctuation+"$"),w=/\s/,E={getWords:function(e,t){var n=0,r=E._classify(e),i=r.length,s=[],o=[],u,a,f;t||(t={}),t.ignoreCase&&(e=e.toLowerCase()),a=t.includePunctuation,f=t.includeWhitespace;for(;ne.length-1&&t!==0?!1:r===i&&m===i?!1:(g=e[t+2],r!==i||m!==o&&m!==s||g!==i?(n=e[t-1],r!==o&&r!==s||m!==i||n!==i?r!==a&&r!==i||m!==a&&m!==i?r!==u&&r!==s||m!==a||n!==a?r!==a||m!==u&&m!==s||g!==a?r===h||r===p||n===h||n===p||m===h||m===p?!1:r===f&&m===l?!1:r===c||r===f||r===l?!0:m===c||m===f||m===l?!0:r===d&&m===d?!1:m!==v||r!==i&&r!==a&&r!==d&&r!==v?r!==v||m!==i&&m!==a&&m!==d?!0:!1:!1:!1:!1:!1:!1):!1)}};n.WordBreak=E},"3.12.0",{requires:["array-extras","text-data-wordbreak"]});
diff --git a/lib/yuilib/3.9.1/build/text-wordbreak/text-wordbreak.js b/lib/yuilib/3.12.0/text-wordbreak/text-wordbreak.js
old mode 100644
new mode 100755
similarity index 98%
rename from lib/yuilib/3.9.1/build/text-wordbreak/text-wordbreak.js
rename to lib/yuilib/3.12.0/text-wordbreak/text-wordbreak.js
index a566516f433..2013135bae2
--- a/lib/yuilib/3.9.1/build/text-wordbreak/text-wordbreak.js
+++ b/lib/yuilib/3.12.0/text-wordbreak/text-wordbreak.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('text-wordbreak', function (Y, NAME) {
/**
@@ -360,4 +366,4 @@ WordBreak = {
Text.WordBreak = WordBreak;
-}, '3.9.1', {"requires": ["array-extras", "text-data-wordbreak"]});
+}, '3.12.0', {"requires": ["array-extras", "text-data-wordbreak"]});
diff --git a/lib/yuilib/3.9.1/build/timers/timers-debug.js b/lib/yuilib/3.12.0/timers/timers-debug.js
old mode 100644
new mode 100755
similarity index 93%
rename from lib/yuilib/3.9.1/build/timers/timers-debug.js
rename to lib/yuilib/3.12.0/timers/timers-debug.js
index 68c4a230b4f..570a3b9c43f
--- a/lib/yuilib/3.9.1/build/timers/timers-debug.js
+++ b/lib/yuilib/3.12.0/timers/timers-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('timers', function (Y, NAME) {
/**
@@ -92,4 +98,4 @@ else {
Y.soon = soon;
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/timers/timers-min.js b/lib/yuilib/3.12.0/timers/timers-min.js
old mode 100644
new mode 100755
similarity index 65%
rename from lib/yuilib/3.9.1/build/timers/timers-min.js
rename to lib/yuilib/3.12.0/timers/timers-min.js
index 382d3f53f5e..84b46715642
--- a/lib/yuilib/3.9.1/build/timers/timers-min.js
+++ b/lib/yuilib/3.12.0/timers/timers-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("timers",function(e,t){var n=e.config.global,r=function(e){var t;return r._asynchronizer(function(){t||e()}),{cancel:function(){t=1}}};"setImmediate"in n?(r._asynchronizer=function(e){setImmediate(e)},r._impl="setImmediate"):"process"in n&&"nextTick"in process?(r._asynchronizer=process.nextTick,r._impl="nextTick"):(r._asynchronizer=function(e){setTimeout(e,0)},r._impl="setTimeout"),e.soon=r},"3.9.1",{requires:["yui-base"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("timers",function(e,t){var n=e.config.global,r=function(e){var t;return r._asynchronizer(function(){t||e()}),{cancel:function(){t=1}}};"setImmediate"in n?(r._asynchronizer=function(e){setImmediate(e)},r._impl="setImmediate"):"process"in n&&"nextTick"in process?(r._asynchronizer=process.nextTick,r._impl="nextTick"):(r._asynchronizer=function(e){setTimeout(e,0)},r._impl="setTimeout"),e.soon=r},"3.12.0",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/timers/timers.js b/lib/yuilib/3.12.0/timers/timers.js
old mode 100644
new mode 100755
similarity index 93%
rename from lib/yuilib/3.9.1/build/timers/timers.js
rename to lib/yuilib/3.12.0/timers/timers.js
index 68c4a230b4f..570a3b9c43f
--- a/lib/yuilib/3.9.1/build/timers/timers.js
+++ b/lib/yuilib/3.12.0/timers/timers.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('timers', function (Y, NAME) {
/**
@@ -92,4 +98,4 @@ else {
Y.soon = soon;
-}, '3.9.1', {"requires": ["yui-base"]});
+}, '3.12.0', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.1/build/transition-timer/transition-timer-debug.js b/lib/yuilib/3.12.0/transition-timer/transition-timer-debug.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/transition-timer/transition-timer-debug.js
rename to lib/yuilib/3.12.0/transition-timer/transition-timer-debug.js
index 80104854a06..6e6651df14d
--- a/lib/yuilib/3.9.1/build/transition-timer/transition-timer-debug.js
+++ b/lib/yuilib/3.12.0/transition-timer/transition-timer-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('transition-timer', function (Y, NAME) {
/**
@@ -332,4 +338,4 @@ Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.ri
Y.Transition = Transition;
-}, '3.9.1', {"requires": ["transition"]});
+}, '3.12.0', {"requires": ["transition"]});
diff --git a/lib/yuilib/3.9.1/build/transition-timer/transition-timer-min.js b/lib/yuilib/3.12.0/transition-timer/transition-timer-min.js
old mode 100644
new mode 100755
similarity index 94%
rename from lib/yuilib/3.9.1/build/transition-timer/transition-timer-min.js
rename to lib/yuilib/3.12.0/transition-timer/transition-timer-min.js
index ac9b57cad94..e555ff3c369
--- a/lib/yuilib/3.9.1/build/transition-timer/transition-timer-min.js
+++ b/lib/yuilib/3.12.0/transition-timer/transition-timer-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("transition-timer",function(e,t){var n=e.Transition;e.mix(n.prototype,{_start:function(){n.useNative?this._runNative():this._runTimer()},_runTimer:function(){var t=this;t._initAttrs(),n._running[e.stamp(t)]=t,t._startTime=new Date,n._startTimer()},_endTimer:function(){var t=this;delete n._running[e.stamp(t)],t._startTime=null},_runFrame:function(){var e=new Date-this._startTime;this._runAttrs(e)},_runAttrs:function(t){var r=this,i=r._node,s=r._config,o=e.stamp(i),u=n._nodeAttrs[o],a=n.behaviors,f=!1,l=!1,c,h,p,d,v,m,g,y,b;for(h in u)if((p=u[h])&&p.transition===r){g=p.duration,m=p.delay,v=(t-m)/1e3,y=t,c={type:"propertyEnd",propertyName:h,config:s,elapsedTime:v},d=b in a&&"set"in a[b]?a[b].set:n.DEFAULT_SETTER,f=y>=g,y>g&&(y=g);if(!m||t>=m)d(r,h,p.from,p.to,y-m,g-m,p.easing,p.unit),f&&(delete u[h],r._count--,s[h]&&s[h].on&&s[h].on.end&&s[h].on.end.call(e.one(i),c),!l&&r._count<=0&&(l=!0,r._end(v),r._endTimer()))}},_initAttrs:function(){var t=this,r=n.behaviors,i=e.stamp(t._node),s=n._nodeAttrs[i],o,u,a,f,l,c,h,p,d,v,m;for(c in s)(o=s[c])&&o.transition===t&&(u=o.duration*1e3,a=o.delay*1e3,f=o.easing,l=o.value,c in t._node.style||c in e.DOM.CUSTOM_STYLES?(v=c in r&&"get"in r[c]?r[c].get(t,c):n.DEFAULT_GETTER(t,c),p=n.RE_UNITS.exec(v),h=n.RE_UNITS.exec(l),v=p?p[1]:v,m=h?h[1]:l,d=h?h[2]:p?p[2]:"",!d&&n.RE_DEFAULT_UNIT.test(c)&&(d=n.DEFAULT_UNIT),typeof f=="string"&&(f.indexOf("cubic-bezier")>-1?f=f.substring(13,f.length-1).split(","):n.easings[f]&&(f=n.easings[f])),o.from=Number(v),o.to=Number(m),o.unit=d,o.easing=f,o.duration=u+a,o.delay=a):(delete s[c],t._count--))},destroy:function(){this.detachAll(),this._node=null}},!0),e.mix(e.Transition,{_runtimeAttrs:{},RE_DEFAULT_UNIT:/^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i,DEFAULT_UNIT:"px",intervalTime:20,behaviors:{left:{get:function(t,n){return e.DOM._getAttrOffset(t._node,n)}}},DEFAULT_SETTER:function(t,r,i,s,o,u,a,f){i=Number(i),s=Number(s);var l=t._node,c=n.cubicBezier(a,o/u);c=i+c[0]*(s-i);if(l){if(r in l.style||r in e.DOM.CUSTOM_STYLES)f=f||"",e.DOM.setStyle(l,r,c+f)}else t._end()},DEFAULT_GETTER:function(t,n){var r=t._node,i="";if(n in r.style||n in e.DOM.CUSTOM_STYLES)i=e.DOM.getComputedStyle(r,n);return i},_startTimer:function(){n._timer||(n._timer=setInterval(n._runFrame,n.intervalTime))},_stopTimer:function(){clearInterval(n._timer),n._timer=null},_runFrame:function(){var e=!0,t;for(t in n._running)n._running[t]._runFrame&&(e=!1,n._running[t]._runFrame());e&&n._stopTimer()},cubicBezier:function(e,t){var n=0,r=0,i=e[0],s=e[1],o=e[2],u=e[3],a=1,f=0,l=a-3*o+3*i-n,c=3*o-6*i+3*n,h=3*i-3*n,p=n,d=f-3*u+3*s-r,v=3*u-6*s+3*r,m=3*s-3*r,g=r,y=((l*t+c)*t+h)*t+p,b=((d*t+v)*t+m)*t+g;return[y,b]},easings:{ease:[.25,0,1,.25],linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},_running:{},_timer:null,RE_UNITS:/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/},!0),n.behaviors.top=n.behaviors.bottom=n.behaviors.right=n.behaviors.left,e.Transition=n},"3.9.1",{requires:["transition"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("transition-timer",function(e,t){var n=e.Transition;e.mix(n.prototype,{_start:function(){n.useNative?this._runNative():this._runTimer()},_runTimer:function(){var t=this;t._initAttrs(),n._running[e.stamp(t)]=t,t._startTime=new Date,n._startTimer()},_endTimer:function(){var t=this;delete n._running[e.stamp(t)],t._startTime=null},_runFrame:function(){var e=new Date-this._startTime;this._runAttrs(e)},_runAttrs:function(t){var r=this,i=r._node,s=r._config,o=e.stamp(i),u=n._nodeAttrs[o],a=n.behaviors,f=!1,l=!1,c,h,p,d,v,m,g,y,b;for(h in u)if((p=u[h])&&p.transition===r){g=p.duration,m=p.delay,v=(t-m)/1e3,y=t,c={type:"propertyEnd",propertyName:h,config:s,elapsedTime:v},d=b in a&&"set"in a[b]?a[b].set:n.DEFAULT_SETTER,f=y>=g,y>g&&(y=g);if(!m||t>=m)d(r,h,p.from,p.to,y-m,g-m,p.easing,p.unit),f&&(delete u[h],r._count--,s[h]&&s[h].on&&s[h].on.end&&s[h].on.end.call(e.one(i),c),!l&&r._count<=0&&(l=!0,r._end(v),r._endTimer()))}},_initAttrs:function(){var t=this,r=n.behaviors,i=e.stamp(t._node),s=n._nodeAttrs[i],o,u,a,f,l,c,h,p,d,v,m;for(c in s)(o=s[c])&&o.transition===t&&(u=o.duration*1e3,a=o.delay*1e3,f=o.easing,l=o.value,c in t._node.style||c in e.DOM.CUSTOM_STYLES?(v=c in r&&"get"in r[c]?r[c].get(t,c):n.DEFAULT_GETTER(t,c),p=n.RE_UNITS.exec(v),h=n.RE_UNITS.exec(l),v=p?p[1]:v,m=h?h[1]:l,d=h?h[2]:p?p[2]:"",!d&&n.RE_DEFAULT_UNIT.test(c)&&(d=n.DEFAULT_UNIT),typeof f=="string"&&(f.indexOf("cubic-bezier")>-1?f=f.substring(13,f.length-1).split(","):n.easings[f]&&(f=n.easings[f])),o.from=Number(v),o.to=Number(m),o.unit=d,o.easing=f,o.duration=u+a,o.delay=a):(delete s[c],t._count--))},destroy:function(){this.detachAll(),this._node=null}},!0),e.mix(e.Transition,{_runtimeAttrs:{},RE_DEFAULT_UNIT:/^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i,DEFAULT_UNIT:"px",intervalTime:20,behaviors:{left:{get:function(t,n){return e.DOM._getAttrOffset(t._node,n)}}},DEFAULT_SETTER:function(t,r,i,s,o,u,a,f){i=Number(i),s=Number(s);var l=t._node,c=n.cubicBezier(a,o/u);c=i+c[0]*(s-i);if(l){if(r in l.style||r in e.DOM.CUSTOM_STYLES)f=f||"",e.DOM.setStyle(l,r,c+f)}else t._end()},DEFAULT_GETTER:function(t,n){var r=t._node,i="";if(n in r.style||n in e.DOM.CUSTOM_STYLES)i=e.DOM.getComputedStyle(r,n);return i},_startTimer:function(){n._timer||(n._timer=setInterval(n._runFrame,n.intervalTime))},_stopTimer:function(){clearInterval(n._timer),n._timer=null},_runFrame:function(){var e=!0,t;for(t in n._running)n._running[t]._runFrame&&(e=!1,n._running[t]._runFrame());e&&n._stopTimer()},cubicBezier:function(e,t){var n=0,r=0,i=e[0],s=e[1],o=e[2],u=e[3],a=1,f=0,l=a-3*o+3*i-n,c=3*o-6*i+3*n,h=3*i-3*n,p=n,d=f-3*u+3*s-r,v=3*u-6*s+3*r,m=3*s-3*r,g=r,y=((l*t+c)*t+h)*t+p,b=((d*t+v)*t+m)*t+g;return[y,b]},easings:{ease:[.25,0,1,.25],linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},_running:{},_timer:null,RE_UNITS:/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/},!0),n.behaviors.top=n.behaviors.bottom=n.behaviors.right=n.behaviors.left,e.Transition=n},"3.12.0",{requires:["transition"]});
diff --git a/lib/yuilib/3.9.1/build/transition-timer/transition-timer.js b/lib/yuilib/3.12.0/transition-timer/transition-timer.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/transition-timer/transition-timer.js
rename to lib/yuilib/3.12.0/transition-timer/transition-timer.js
index 80104854a06..6e6651df14d
--- a/lib/yuilib/3.9.1/build/transition-timer/transition-timer.js
+++ b/lib/yuilib/3.12.0/transition-timer/transition-timer.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('transition-timer', function (Y, NAME) {
/**
@@ -332,4 +338,4 @@ Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.ri
Y.Transition = Transition;
-}, '3.9.1', {"requires": ["transition"]});
+}, '3.12.0', {"requires": ["transition"]});
diff --git a/lib/yuilib/3.9.1/build/transition/transition-debug.js b/lib/yuilib/3.12.0/transition/transition-debug.js
old mode 100644
new mode 100755
similarity index 99%
rename from lib/yuilib/3.9.1/build/transition/transition-debug.js
rename to lib/yuilib/3.12.0/transition/transition-debug.js
index bc70f60a6aa..aa6859a46db
--- a/lib/yuilib/3.9.1/build/transition/transition-debug.js
+++ b/lib/yuilib/3.12.0/transition/transition-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('transition', function (Y, NAME) {
/**
@@ -750,4 +756,4 @@ Y.mix(Transition.toggles, {
});
-}, '3.9.1', {"requires": ["node-style"]});
+}, '3.12.0', {"requires": ["node-style"]});
diff --git a/lib/yuilib/3.9.1/build/transition/transition-min.js b/lib/yuilib/3.12.0/transition/transition-min.js
old mode 100644
new mode 100755
similarity index 97%
rename from lib/yuilib/3.9.1/build/transition/transition-min.js
rename to lib/yuilib/3.12.0/transition/transition-min.js
index f02305f1db0..136f2925981
--- a/lib/yuilib/3.9.1/build/transition/transition-min.js
+++ b/lib/yuilib/3.12.0/transition/transition-min.js
@@ -1,3 +1,9 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add("transition",function(e,t){var n="",r="",i=e.config.doc,s="documentElement",o=i[s].style,u="transition",a="transitionProperty",f,l,c,h,p,d,v={},m=["Webkit","Moz"],g={Webkit:"webkitTransitionEnd"},y=function(){this.init.apply(this,arguments)};y._TRANSFORM="transform",y._toCamel=function(e){return e=e.replace(/-([a-z])/gi,function(e,t){return t.toUpperCase()}),e},y._toHyphen=function(e){return e=e.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g,function(e,t,n,r){var i=(t?"-"+t.toLowerCase():"")+n;return r&&(i+="-"+r.toLowerCase()),i}),e},y.SHOW_TRANSITION="fadeIn",y.HIDE_TRANSITION="fadeOut",y.useNative=!1,"transition"in o&&"transitionProperty"in o&&"transitionDuration"in o&&"transitionTimingFunction"in o&&"transitionDelay"in o?(y.useNative=!0,y.supported=!0):e.Array.each(m,function(e){var t=e+"Transition";t in i[s].style&&(n=e,r=y._toHyphen(e)+"-",y.useNative=!0,y.supported=!0,y._VENDOR_PREFIX=e)}),typeof o.transform=="undefined"&&e.Array.each(m,function(e){var t=e+"Transform";typeof o[t]!="undefined"&&(y._TRANSFORM=t)}),n&&(u=n+"Transition",a=n+"TransitionProperty"),f=r+"transition-property",l=r+"transition-duration",c=r+"transition-timing-function",h=r+"transition-delay",p="transitionend",d="on"+n.toLowerCase()+"transitionend",p=g[n]||p,y.fx={},y.toggles={},y._hasEnd={},y._reKeywords=/^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i,e.Node.DOM_EVENTS[p]=1,y.NAME="transition",y.DEFAULT_EASING="ease",y.DEFAULT_DURATION=.5,y.DEFAULT_DELAY=0,y._nodeAttrs={},y.prototype={constructor:y,init:function(e,t){var n=this;return n._node=e,!n._running&&t&&(n._config=t,e._transition=n,n._duration="duration"in t?t.duration:n.constructor.DEFAULT_DURATION,n._delay="delay"in t?t.delay:n.constructor.DEFAULT_DELAY,n._easing=t.easing||n.constructor.DEFAULT_EASING,n._count=0,n._running=!1),n},addProperty:function(t,n){var r=this,i=this._node,s=e.stamp(i),o=e.one(i),u=y._nodeAttrs[s],a,f,l,c,h;u||(u=y._nodeAttrs[s]={}),c=u[t],n&&n.value!==undefined?h=n.value:n!==undefined&&(h=n,n=v),typeof h=="function"&&(h=h.call(o,o)),c&&c.transition&&c.transition!==r&&c.transition._count--,r._count++,l=(typeof n.duration!="undefined"?n.duration:r._duration)||1e-4,u[t]={value:h,duration:l,delay:typeof n.delay!="undefined"?n.delay:r._delay,easing:n.easing||r._easing,transition:r},a=e.DOM.getComputedStyle(i,t),f=typeof h=="string"?a:parseFloat(a),y.useNative&&f===h&&setTimeout(function(){r._onNativeEnd.call(i,{propertyName:t,elapsedTime:l})},l*1e3)},removeProperty:function(t){var n=this,r=y._nodeAttrs[e.stamp(n._node)];r&&r[t]&&(delete r[t],n._count--)},initAttrs:function(t){var n,r=this._node;t.transform&&!t[y._TRANSFORM]&&(t[y._TRANSFORM]=t.transform,delete t.transform);for(n in t)t.hasOwnProperty(n)&&!y._reKeywords.test(n)&&(this.addProperty(n,t[n]),r.style[n]===""&&e.DOM.setStyle(r,n,e.DOM.getComputedStyle(r,n)))},run:function(t){var n=this,r=n._node,i=n._config,s={type:"transition:start",config:i};return n._running||(n._running=!0,i.on&&i.on.start&&i.on.start.call(e.one(r),s),n.initAttrs(n._config),n._callback=t,n._start()),n},_start:function(){this._runNative()},_prepDur:function(e){return e=parseFloat(e)*1e3,e+"ms"},_runNative:function(){var t=this,n=t._node,r=e.stamp(n),i=n.style,s=n.ownerDocument.defaultView.getComputedStyle(n),o=y._nodeAttrs[r],u="",a=s[y._toCamel(f)],d=f+": ",v=l+": ",m=c+": ",g=h+": ",b,w,E;a!=="all"&&(d+=a+",",v+=s[y._toCamel(l)]+",",m+=s[y._toCamel(c)]+",",g+=s[y._toCamel(h)]+",");for(E in o)b=y._toHyphen(E),w=o[E],(w=o[E])&&w.transition===t&&(E in n.style?(v+=t._prepDur(w.duration)+",",g+=t._prepDur(w.delay)+",",m+=w.easing+",",d+=b+",",u+=b+": "+w.value+"; "):this.removeProperty(E));d=d.replace(/,$/,";"),v=v.replace(/,$/,";"),m=m.replace(/,$/,";"),g=g.replace(/,$/,";"),y._hasEnd[r]||(n.addEventListener(p,t._onNativeEnd,""),y._hasEnd[r]=!0),i.cssText+=d+v+m+g+u},_end:function(t){var n=this,r=n._node,i=n._callback,s=n._config,o={type:"transition:end",config:s,elapsedTime:t},u=e.one(r);n._running=!1,n._callback=null,r&&(s.on&&s.on.end?setTimeout(function(){s.on.end.call(u,o),i&&i.call(u,o)},1):i&&setTimeout(function(){i.call(u,o)},1))},_endNative:function(e){var t=this._node,n=t.ownerDocument.defaultView.getComputedStyle(t,"")[y._toCamel(f)];e=y._toHyphen(e),typeof n=="string"&&(n=n.replace(new RegExp("(?:^|,\\s)"+e+",?"),","),n=n.replace(/^,|,$/,""),t.style[u]=n)},_onNativeEnd:function(t){var n=this,r=e.stamp(n),i=t,s=y._toCamel(i.propertyName),o=i.elapsedTime,u=y._nodeAttrs[r],f=u[s],l=f?f.transition:null,c,h;l&&(l.removeProperty(s),l._endNative(s),h=l._config[s],c={type:"propertyEnd",propertyName:s,elapsedTime:o,config:h},h&&h.on&&h.on.end&&h.on.end.call(e.one(n),c),l._count<=0&&(l._end(o),n.style[a]=""))},destroy:function(){var e=this,t=e._node;t&&(t.removeEventListener(p,e._onNativeEnd,!1),e._node=null)}},e.Transition=y,e.TransitionNative=y,e.Node.prototype.transition=function(t,n,r){var i=y._nodeAttrs[e.stamp(this._node)],s=i?i.transition||null:null,o,u;if(typeof t=="string"){typeof n=="function"&&(r=n,n=null),o=y.fx[t];if(n&&typeof n!="boolean"){n=e.clone(n);for(u in o)o.hasOwnProperty(u)&&(u in n||(n[u]=o[u]))}else n=o}else r=n,n=t;return s&&!s._running?s.init(this,n):s=new y(this._node,n),s.run(r),this},e.Node.prototype.show=function(t,n,r){return this._show(),t&&e.Transition&&(typeof t!="string"&&!t.push&&(typeof n=="function"&&(r=n,n=t),t=y.SHOW_TRANSITION),this.transition(t,n,r)),this},e.NodeList.prototype.show=function(t,n,r){var i=this._nodes,s=0,o;while(o=i[s++])e.one(o).show(t,n,r);return this};var b=function(e,t,n){return function(){t&&t.call(e),n&&typeof n=="function"&&n.apply(e._node,arguments)}};e.Node.prototype.hide=function(t,n,r){return t&&e.Transition?(typeof n=="function"&&(r=n,n=null),r=b(this,this._hide,r),typeof t!="string"&&!t.push&&(typeof n=="function"&&(r=n,n=t),t=y.HIDE_TRANSITION),this.transition(t,n,r)):this._hide(),this},e.NodeList.prototype.hide=function(t,n,r){var i=this._nodes,s=0,o;while(o=i[s++])e.one(o).hide(t,n,r);return this},e.NodeList.prototype
-.transition=function(t,n){var r=this._nodes,i=0,s;while(s=r[i++])e.one(s).transition(t,n);return this},e.Node.prototype.toggleView=function(t,n,r){this._toggles=this._toggles||[],r=arguments[arguments.length-1];if(typeof t!="string"){n=t,this._toggleView(n,r);return}return typeof n=="function"&&(n=undefined),typeof n=="undefined"&&t in this._toggles&&(n=!this._toggles[t]),n=n?1:0,n?this._show():r=b(this,this._hide,r),this._toggles[t]=n,this.transition(e.Transition.toggles[t][n],r),this},e.NodeList.prototype.toggleView=function(t,n,r){var i=this._nodes,s=0,o;while(o=i[s++])o=e.one(o),o.toggleView.apply(o,arguments);return this},e.mix(y.fx,{fadeOut:{opacity:0,duration:.5,easing:"ease-out"},fadeIn:{opacity:1,duration:.5,easing:"ease-in"},sizeOut:{height:0,width:0,duration:.75,easing:"ease-out"},sizeIn:{height:function(e){return e.get("scrollHeight")+"px"},width:function(e){return e.get("scrollWidth")+"px"},duration:.5,easing:"ease-in",on:{start:function(){var e=this.getStyle("overflow");e!=="hidden"&&(this.setStyle("overflow","hidden"),this._transitionOverflow=e)},end:function(){this._transitionOverflow&&(this.setStyle("overflow",this._transitionOverflow),delete this._transitionOverflow)}}}}),e.mix(y.toggles,{size:["sizeOut","sizeIn"],fade:["fadeOut","fadeIn"]})},"3.9.1",{requires:["node-style"]});
+.transition=function(t,n){var r=this._nodes,i=0,s;while(s=r[i++])e.one(s).transition(t,n);return this},e.Node.prototype.toggleView=function(t,n,r){this._toggles=this._toggles||[],r=arguments[arguments.length-1];if(typeof t!="string"){n=t,this._toggleView(n,r);return}return typeof n=="function"&&(n=undefined),typeof n=="undefined"&&t in this._toggles&&(n=!this._toggles[t]),n=n?1:0,n?this._show():r=b(this,this._hide,r),this._toggles[t]=n,this.transition(e.Transition.toggles[t][n],r),this},e.NodeList.prototype.toggleView=function(t,n,r){var i=this._nodes,s=0,o;while(o=i[s++])o=e.one(o),o.toggleView.apply(o,arguments);return this},e.mix(y.fx,{fadeOut:{opacity:0,duration:.5,easing:"ease-out"},fadeIn:{opacity:1,duration:.5,easing:"ease-in"},sizeOut:{height:0,width:0,duration:.75,easing:"ease-out"},sizeIn:{height:function(e){return e.get("scrollHeight")+"px"},width:function(e){return e.get("scrollWidth")+"px"},duration:.5,easing:"ease-in",on:{start:function(){var e=this.getStyle("overflow");e!=="hidden"&&(this.setStyle("overflow","hidden"),this._transitionOverflow=e)},end:function(){this._transitionOverflow&&(this.setStyle("overflow",this._transitionOverflow),delete this._transitionOverflow)}}}}),e.mix(y.toggles,{size:["sizeOut","sizeIn"],fade:["fadeOut","fadeIn"]})},"3.12.0",{requires:["node-style"]});
diff --git a/lib/yuilib/3.9.1/build/transition/transition.js b/lib/yuilib/3.12.0/transition/transition.js
old mode 100644
new mode 100755
similarity index 99%
rename from lib/yuilib/3.9.1/build/transition/transition.js
rename to lib/yuilib/3.12.0/transition/transition.js
index 560a1675d5c..7b35823cf4c
--- a/lib/yuilib/3.9.1/build/transition/transition.js
+++ b/lib/yuilib/3.12.0/transition/transition.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('transition', function (Y, NAME) {
/**
@@ -748,4 +754,4 @@ Y.mix(Transition.toggles, {
});
-}, '3.9.1', {"requires": ["node-style"]});
+}, '3.12.0', {"requires": ["node-style"]});
diff --git a/lib/yuilib/3.9.1/build/tree-labelable/tree-labelable-debug.js b/lib/yuilib/3.12.0/tree-labelable/tree-labelable-debug.js
old mode 100644
new mode 100755
similarity index 91%
rename from lib/yuilib/3.9.1/build/tree-labelable/tree-labelable-debug.js
rename to lib/yuilib/3.12.0/tree-labelable/tree-labelable-debug.js
index 02f8b3920a6..a2cd9bbc7e8
--- a/lib/yuilib/3.9.1/build/tree-labelable/tree-labelable-debug.js
+++ b/lib/yuilib/3.12.0/tree-labelable/tree-labelable-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('tree-labelable', function (Y, NAME) {
/*jshint expr:true, onevar:false */
@@ -77,4 +83,4 @@ NodeLabelable.prototype = {
Y.Tree.Node.Labelable = NodeLabelable;
-}, '3.9.1', {"requires": ["tree"]});
+}, '3.12.0', {"requires": ["tree"]});
diff --git a/lib/yuilib/3.9.1/build/tree-labelable/tree-labelable-min.js b/lib/yuilib/3.12.0/tree-labelable/tree-labelable-min.js
old mode 100644
new mode 100755
similarity index 62%
rename from lib/yuilib/3.9.1/build/tree-labelable/tree-labelable-min.js
rename to lib/yuilib/3.12.0/tree-labelable/tree-labelable-min.js
index e9aad6dd457..b0fa87131f3
--- a/lib/yuilib/3.9.1/build/tree-labelable/tree-labelable-min.js
+++ b/lib/yuilib/3.12.0/tree-labelable/tree-labelable-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("tree-labelable",function(e,t){function n(){}function r(e,t){this._serializable=this._serializable.concat("label"),"label"in t&&(this.label=t.label)}n.prototype={initializer:function(){this.nodeExtensions=this.nodeExtensions.concat(e.Tree.Node.Labelable)}},e.Tree.Labelable=n,r.prototype={label:""},e.Tree.Node.Labelable=r},"3.9.1",{requires:["tree"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("tree-labelable",function(e,t){function n(){}function r(e,t){this._serializable=this._serializable.concat("label"),"label"in t&&(this.label=t.label)}n.prototype={initializer:function(){this.nodeExtensions=this.nodeExtensions.concat(e.Tree.Node.Labelable)}},e.Tree.Labelable=n,r.prototype={label:""},e.Tree.Node.Labelable=r},"3.12.0",{requires:["tree"]});
diff --git a/lib/yuilib/3.9.1/build/tree-labelable/tree-labelable.js b/lib/yuilib/3.12.0/tree-labelable/tree-labelable.js
old mode 100644
new mode 100755
similarity index 91%
rename from lib/yuilib/3.9.1/build/tree-labelable/tree-labelable.js
rename to lib/yuilib/3.12.0/tree-labelable/tree-labelable.js
index 02f8b3920a6..a2cd9bbc7e8
--- a/lib/yuilib/3.9.1/build/tree-labelable/tree-labelable.js
+++ b/lib/yuilib/3.12.0/tree-labelable/tree-labelable.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('tree-labelable', function (Y, NAME) {
/*jshint expr:true, onevar:false */
@@ -77,4 +83,4 @@ NodeLabelable.prototype = {
Y.Tree.Node.Labelable = NodeLabelable;
-}, '3.9.1', {"requires": ["tree"]});
+}, '3.12.0', {"requires": ["tree"]});
diff --git a/lib/yuilib/3.9.1/build/tree-lazy/tree-lazy-debug.js b/lib/yuilib/3.12.0/tree-lazy/tree-lazy-debug.js
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/tree-lazy/tree-lazy-debug.js
rename to lib/yuilib/3.12.0/tree-lazy/tree-lazy-debug.js
index b31b33ddb26..aa9393361ba
--- a/lib/yuilib/3.9.1/build/tree-lazy/tree-lazy-debug.js
+++ b/lib/yuilib/3.12.0/tree-lazy/tree-lazy-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('tree-lazy', function (Y, NAME) {
/*jshint expr:true, maxlen:200, onevar:false */
@@ -174,4 +180,4 @@ Y.namespace('Plugin.Tree').Lazy = Y.Base.create('lazyTreePlugin', Y.Plugin.Base,
});
-}, '3.9.1', {"requires": ["base-pluginhost", "plugin", "tree"]});
+}, '3.12.0', {"requires": ["base-pluginhost", "plugin", "tree"]});
diff --git a/lib/yuilib/3.9.1/build/tree-lazy/tree-lazy-min.js b/lib/yuilib/3.12.0/tree-lazy/tree-lazy-min.js
old mode 100644
new mode 100755
similarity index 76%
rename from lib/yuilib/3.9.1/build/tree-lazy/tree-lazy-min.js
rename to lib/yuilib/3.12.0/tree-lazy/tree-lazy-min.js
index 8d1ac063649..08acca8e3ea
--- a/lib/yuilib/3.9.1/build/tree-lazy/tree-lazy-min.js
+++ b/lib/yuilib/3.12.0/tree-lazy/tree-lazy-min.js
@@ -1,2 +1,8 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("tree-lazy",function(e,t){var n="beforeLoad",r="error",i="load";e.namespace("Plugin.Tree").Lazy=e.Base.create("lazyTreePlugin",e.Plugin.Base,[],{initializer:function(e){this._host=e.host,e.load&&(this.load=e.load),!this._host.openNode,this._published={},this._attachEvents()},load:function(e,t){t(new Error("Plugin.Tree.Lazy: Please provide a custom `load` method when instantiating this plugin."))},_attachEvents:function(){this.onHostEvent("open",this._onOpen)},_onOpen:function(e){var t=e.node;if(!t.canHaveChildren||t.state.loaded||t.state.loading)return;this._published[n]||(this._published[n]=this.publish(n,{defaultFn:this._defLoadingFn})),this.fire(n,{node:t})},_defLoadingFn:function(e){var t=e.node,n=this;t.state.loading=!0,this.load(t,function(e){delete t.state.loading;if(e){n.fire(r,{error:e,src:"load"});return}t.state.loaded=!0,n.fire(i,{node:t})})}},{NS:"lazy"})},"3.9.1",{requires:["base-pluginhost","plugin","tree"]});
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("tree-lazy",function(e,t){var n="beforeLoad",r="error",i="load";e.namespace("Plugin.Tree").Lazy=e.Base.create("lazyTreePlugin",e.Plugin.Base,[],{initializer:function(e){this._host=e.host,e.load&&(this.load=e.load),!this._host.openNode,this._published={},this._attachEvents()},load:function(e,t){t(new Error("Plugin.Tree.Lazy: Please provide a custom `load` method when instantiating this plugin."))},_attachEvents:function(){this.onHostEvent("open",this._onOpen)},_onOpen:function(e){var t=e.node;if(!t.canHaveChildren||t.state.loaded||t.state.loading)return;this._published[n]||(this._published[n]=this.publish(n,{defaultFn:this._defLoadingFn})),this.fire(n,{node:t})},_defLoadingFn:function(e){var t=e.node,n=this;t.state.loading=!0,this.load(t,function(e){delete t.state.loading;if(e){n.fire(r,{error:e,src:"load"});return}t.state.loaded=!0,n.fire(i,{node:t})})}},{NS:"lazy"})},"3.12.0",{requires:["base-pluginhost","plugin","tree"]});
diff --git a/lib/yuilib/3.9.1/build/tree-lazy/tree-lazy.js b/lib/yuilib/3.12.0/tree-lazy/tree-lazy.js
old mode 100644
new mode 100755
similarity index 96%
rename from lib/yuilib/3.9.1/build/tree-lazy/tree-lazy.js
rename to lib/yuilib/3.12.0/tree-lazy/tree-lazy.js
index 8c38f12a364..98ce0af6e98
--- a/lib/yuilib/3.9.1/build/tree-lazy/tree-lazy.js
+++ b/lib/yuilib/3.12.0/tree-lazy/tree-lazy.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('tree-lazy', function (Y, NAME) {
/*jshint expr:true, maxlen:200, onevar:false */
@@ -173,4 +179,4 @@ Y.namespace('Plugin.Tree').Lazy = Y.Base.create('lazyTreePlugin', Y.Plugin.Base,
});
-}, '3.9.1', {"requires": ["base-pluginhost", "plugin", "tree"]});
+}, '3.12.0', {"requires": ["base-pluginhost", "plugin", "tree"]});
diff --git a/lib/yuilib/3.9.1/build/tree-node/tree-node-debug.js b/lib/yuilib/3.12.0/tree-node/tree-node-debug.js
old mode 100644
new mode 100755
similarity index 80%
rename from lib/yuilib/3.9.1/build/tree-node/tree-node-debug.js
rename to lib/yuilib/3.12.0/tree-node/tree-node-debug.js
index da911dee0dd..164c50fc833
--- a/lib/yuilib/3.9.1/build/tree-node/tree-node-debug.js
+++ b/lib/yuilib/3.12.0/tree-node/tree-node-debug.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('tree-node', function (Y, NAME) {
/*jshint expr:true, onevar:false */
@@ -195,6 +201,32 @@ TreeNode.prototype = {
return this.tree.appendNode(this, node, options);
},
+ /**
+ Returns this node's depth.
+
+ The root node of a tree always has a depth of 0. A child of the root has a
+ depth of 1, a child of that child will have a depth of 2, and so on.
+
+ @method depth
+ @return {Number} This node's depth.
+ @since 3.11.0
+ **/
+ depth: function () {
+ if (this.isRoot()) {
+ return 0;
+ }
+
+ var depth = 0,
+ parent = this.parent;
+
+ while (parent) {
+ depth += 1;
+ parent = parent.parent;
+ }
+
+ return depth;
+ },
+
/**
Removes all children from this node. The removed children will still be
reusable unless the `destroy` option is truthy.
@@ -216,6 +248,36 @@ TreeNode.prototype = {
return this.tree.emptyNode(this, options);
},
+ /**
+ Performs a depth-first traversal of this node, passing it and each of its
+ descendants to the specified _callback_, and returning the first node for
+ which the callback returns a truthy value.
+
+ Traversal will stop as soon as a truthy value is returned from the callback.
+
+ See `Tree#traverseNode()` for more details on how depth-first traversal
+ works.
+
+ @method find
+ @param {Object} [options] Options.
+ @param {Number} [options.depth] Depth limit. If specified, descendants
+ will only be traversed to this depth before backtracking and moving
+ on.
+ @param {Function} callback Callback function to call with the traversed
+ node and each of its descendants. If this function returns a truthy
+ value, traversal will be stopped and the current node will be returned.
+
+ @param {Tree.Node} callback.node Node being traversed.
+
+ @param {Object} [thisObj] `this` object to use when executing _callback_.
+ @return {Tree.Node|null} Returns the first node for which the _callback_
+ returns a truthy value, or `null` if the callback never returns a truthy
+ value.
+ **/
+ find: function (options, callback, thisObj) {
+ return this.tree.findNode(this, options, callback, thisObj);
+ },
+
/**
Returns `true` if this node has one or more child nodes.
@@ -299,7 +361,7 @@ TreeNode.prototype = {
otherwise.
**/
isInTree: function () {
- if (this.tree.rootNode === this) {
+ if (this.tree && this.tree.rootNode === this) {
return true;
}
@@ -314,7 +376,7 @@ TreeNode.prototype = {
otherwise.
**/
isRoot: function () {
- return this.tree.rootNode === this;
+ return !!(this.tree && this.tree.rootNode === this);
},
/**
@@ -442,6 +504,43 @@ TreeNode.prototype = {
return obj;
},
+ /**
+ Performs a depth-first traversal of this node, passing it and each of its
+ descendants to the specified _callback_.
+
+ If the callback function returns `Tree.STOP_TRAVERSAL`, traversal will be
+ stopped immediately. Otherwise, it will continue until the deepest
+ descendant of _node_ has been traversed, or until each branch has been
+ traversed to the optional maximum depth limit.
+
+ Since traversal is depth-first, that means nodes are traversed like this:
+
+ 1
+ / | \
+ 2 8 9
+ / \ \
+ 3 7 10
+ / | \ / \
+ 4 5 6 11 12
+
+ @method traverse
+ @param {Object} [options] Options.
+ @param {Number} [options.depth] Depth limit. If specified, descendants
+ will only be traversed to this depth before backtracking and moving
+ on.
+ @param {Function} callback Callback function to call with the traversed
+ node and each of its descendants.
+
+ @param {Tree.Node} callback.node Node being traversed.
+
+ @param {Object} [thisObj] `this` object to use when executing _callback_.
+ @return {Mixed} Returns `Tree.STOP_TRAVERSAL` if traversal was stopped;
+ otherwise returns `undefined`.
+ **/
+ traverse: function (options, callback, thisObj) {
+ return this.tree.traverseNode(this, options, callback, thisObj);
+ },
+
// -- Protected Methods ----------------------------------------------------
_reindex: function () {
var children = this.children,
@@ -460,4 +559,4 @@ TreeNode.prototype = {
Y.namespace('Tree').Node = TreeNode;
-}, '3.9.1');
+}, '3.12.0');
diff --git a/lib/yuilib/3.12.0/tree-node/tree-node-min.js b/lib/yuilib/3.12.0/tree-node/tree-node-min.js
new file mode 100755
index 00000000000..0e0f2311b27
--- /dev/null
+++ b/lib/yuilib/3.12.0/tree-node/tree-node-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("tree-node",function(e,t){function n(t,n){n||(n={}),this.id=this._yuid=n.id||this.id||e.guid("treeNode-"),this.tree=t,this.children=n.children||[],this.data=n.data||{},this.state=n.state||{},n.canHaveChildren?this.canHaveChildren=n.canHaveChildren:this.children.length&&(this.canHaveChildren=!0),e.mix(this,n);for(var r=0,i=this.children.length;r b ? 1 : 0);
+ },
+
+ /**
+ Compares value _a_ to value _b_ for sorting purposes, but sorts them in
+ reverse (descending) order.
+
+ Values are assumed to be the result of calling a sortComparator function.
+
+ @method _compareReverse
+ @param {Mixed} a First value to compare.
+ @param {Mixed} b Second value to compare.
+ @return {Number} `-1` if _a_ should come before _b_, `0` if they're
+ equivalent, `1` if _a_ should come after _b_.
+ @protected
+ **/
+ _compareReverse: function (a, b) {
+ return b < a ? -1 : (b > a ? 1 : 0);
+ },
+
+ /**
+ Overrides `Tree#_getDefaultNodeIndex()` to provide insertion-time sorting
+ for nodes inserted without an explicit index.
+
+ @method _getDefaultNodeIndex
+ @param {Tree.Node} parent Parent node.
+ @param {Tree.Node} node Node being inserted.
+ @param {Object} [options] Options passed to `insertNode()`.
+ @return {Number} Index at which _node_ should be inserted into _parent_'s
+ `children` array.
+ @protected
+ **/
+ _getDefaultNodeIndex: function (parent, node) {
+ /*jshint bitwise:false */
+
+ var children = parent.children,
+ comparator = this._getSortComparator(parent),
+ max = children.length,
+ min = 0,
+ reverse = 'sortReverse' in parent ? parent.sortReverse : this.sortReverse;
+
+ if (!max) {
+ return max;
+ }
+
+ // Special case: if the sortComparator is the default sortComparator,
+ // cheat and just return the first or last index of the children array.
+ //
+ // This is necessary because the default sortComparator relies on
+ // the node's index, which is always -1 for uninserted nodes.
+ if (comparator._unboundComparator === Sortable.prototype.sortComparator) {
+ return reverse ? 0 : max;
+ }
+
+ var compare = reverse ? this._compareReverse : this._compare,
+ needle = comparator(node);
+
+ // Perform an iterative binary search to determine the correct position
+ // for the node based on the return value of the comparator function.
+ var middle;
+
+ while (min < max) {
+ middle = (min + max) >> 1; // Divide by two and discard remainder.
+
+ if (compare(comparator(children[middle]), needle) < 0) {
+ min = middle + 1;
+ } else {
+ max = middle;
+ }
+ }
+
+ return min;
+ },
+
+ /**
+ Returns a sort comparator function derived from the given _node_ and
+ _options_, and bound to the correct `thisObj` based on where it was found.
+
+ @method _getSortComparator
+ @param {Tree.Node} node Node on which to look for a `sortComparator`
+ function.
+ @param {Object} [options] Options object on which to look for a
+ `sortComparator` function.
+ @return {Function} Properly bound sort comparator function.
+ @protected
+ **/
+ _getSortComparator: function (node, options) {
+ var boundComparator,
+ comparator,
+ thisObj;
+
+ if (options && options.sortComparator) {
+ comparator = node.sortComparator = options.sortComparator;
+ } else if (node.sortComparator) {
+ comparator = node.sortComparator;
+ thisObj = node;
+ } else {
+ comparator = this.sortComparator;
+ thisObj = this;
+ }
+
+ boundComparator = function () {
+ return comparator.apply(thisObj, arguments);
+ };
+
+ boundComparator._unboundComparator = comparator;
+
+ return boundComparator;
+ },
+
+ /**
+ Array sort function used by `sortNode()` to re-sort a node's children.
+
+ @method _sort
+ @param {Tree.Node} a First node to compare.
+ @param {Tree.Node} b Second node to compare.
+ @param {Function} comparator Comparator function.
+ @param {Boolean} [reverse=false] If `true`, this will be a reverse
+ (descending) comparison.
+ @return {Number} `-1` if _a_ is less than _b_, `0` if equal, `1` if greater.
+ @protected
+ **/
+ _sort: function (a, b, comparator, reverse) {
+ return this[reverse ? '_compareReverse' : '_compare'](
+ comparator(a), comparator(b));
+ }
+};
+
+Y.Tree.Sortable = Sortable;
+/**
+@module tree
+@submodule tree-sortable
+**/
+
+/**
+`Tree.Node` extension that adds methods useful for nodes in trees that use the
+`Tree.Sortable` extension.
+
+@class Tree.Node.Sortable
+@constructor
+@extensionfor Tree.Node
+**/
+
+function NodeSortable() {}
+
+NodeSortable.prototype = {
+ /**
+ Sorts this node's children.
+
+ @method sort
+ @param {Object} [options] Options.
+ @param {Boolean} [options.silent] If `true`, no `sort` event will be
+ fired.
+ @param {Function} [options.sortComparator] Custom comparator function to
+ use. If specified, this will become the node's new comparator
+ function, overwriting any previous comparator function that was set
+ for the node.
+ @param {Boolean} [options.sortReverse] If `true`, children will be
+ sorted in reverse (descending) order. Otherwise they'll be sorted in
+ ascending order. This will become the node's new sort order,
+ overwriting any previous sort order that was set for the node.
+ @param {String} [options.src] Source of the sort operation. Will be
+ passed along to the `sort` event facade.
+ @chainable
+ **/
+ sort: function (options) {
+ this.tree.sortNode(this, options);
+ return this;
+ }
+};
+
+Y.Tree.Node.Sortable = NodeSortable;
+
+
+}, '3.12.0', {"requires": ["tree"]});
diff --git a/lib/yuilib/3.12.0/tree-sortable/tree-sortable-min.js b/lib/yuilib/3.12.0/tree-sortable/tree-sortable-min.js
new file mode 100755
index 00000000000..f660decd0c9
--- /dev/null
+++ b/lib/yuilib/3.12.0/tree-sortable/tree-sortable-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("tree-sortable",function(e,t){function r(){}function i(){}var n="sort";r.prototype={sortReverse:!1,initializer:function(t){this.nodeExtensions=this.nodeExtensions.concat(e.Tree.Node.Sortable),t&&(t.sortComparator&&(this.sortComparator=t.sortComparator),"sortReverse"in t&&(this.sortReverse=t.sortReverse))},sort:function(t){return this.sortNode(this.rootNode,e.merge(t,{deep:!0}))},sortComparator:function(e){return e.index()},sortNode:function(t,r){if(!t.children.length)return this;r||(r={});if(r.deep){r=e.merge(r,{deep:!1});var i=this;return this.traverseNode(t,function(e){i.sortNode(e,r)}),this}var s=this._getSortComparator(t,r),o;return"sortReverse"in r?o=t.sortReverse=r.sortReverse:"sortReverse"in t?o=t.sortReverse:o=this.sortReverse,t.children.sort(e.rbind(this._sort,this,s,o)),t._isIndexStale=!0,r.silent||this.fire(n,{node:t,reverse:!!o,src:r.src}),this},_compare:function(e,t){return e>1,a(i(n[l]),f)<0?o=l+1:s=l;return o},_getSortComparator:function(e,t){var n,r,i;return t&&t.sortComparator?r=e.sortComparator=t.sortComparator:e.sortComparator?(r=e.sortComparator,i=e):(r=this.sortComparator,i=this),n=function(){return r.apply(i,arguments)},n._unboundComparator=r,n},_sort:function(e,t,n,r){return this[r?"_compareReverse":"_compare"](n(e),n(t))}},e.Tree.Sortable=r,i.prototype={sort:function(e){return this.tree.sortNode(this,e),this}},e.Tree.Node.Sortable=i},"3.12.0",{requires:["tree"]});
diff --git a/lib/yuilib/3.12.0/tree-sortable/tree-sortable.js b/lib/yuilib/3.12.0/tree-sortable/tree-sortable.js
new file mode 100755
index 00000000000..b780ec9b4aa
--- /dev/null
+++ b/lib/yuilib/3.12.0/tree-sortable/tree-sortable.js
@@ -0,0 +1,384 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add('tree-sortable', function (Y, NAME) {
+
+/*jshint expr:true, onevar:false */
+
+/**
+Extension for `Tree` that makes nodes sortable.
+
+@module tree
+@submodule tree-sortable
+@main tree-sortable
+**/
+
+/**
+Extension for `Tree` that makes nodes sortable.
+
+@class Tree.Sortable
+@constructor
+@param {Object} [config] Configuration options.
+@param {Function} [config.sortComparator] Default comparator function to use
+ when sorting a node's children if the node itself doesn't have a custom
+ comparator function. If not specified, insertion order will be used by
+ default.
+@param {Boolean} [config.sortReverse=false] If `true`, node children will be
+ sorted in reverse (descending) order by default. Otherwise they'll be sorted
+ in ascending order.
+@extensionfor Tree
+**/
+
+/**
+Fired after a node's children are re-sorted.
+
+@event sort
+@param {Tree.Node} node Node whose children were sorted.
+@param {Boolean} reverse `true` if the children were sorted in reverse
+ (descending) order, `false` otherwise.
+@param {String} src Source of the event.
+**/
+var EVT_SORT = 'sort';
+
+function Sortable() {}
+
+Sortable.prototype = {
+ // -- Public Properties ----------------------------------------------------
+
+ /**
+ If `true`, node children will be sorted in reverse (descending) order by
+ default. Otherwise they'll be sorted in ascending order.
+
+ @property {Boolean} sortReverse
+ @default false
+ **/
+ sortReverse: false,
+
+ // -- Lifecycle ------------------------------------------------------------
+ initializer: function (config) {
+ this.nodeExtensions = this.nodeExtensions.concat(Y.Tree.Node.Sortable);
+
+ if (config) {
+ if (config.sortComparator) {
+ this.sortComparator = config.sortComparator;
+ }
+
+ if ('sortReverse' in config) {
+ this.sortReverse = config.sortReverse;
+ }
+ }
+ },
+
+ // -- Public Methods -------------------------------------------------------
+
+ /**
+ Sorts the children of every node in this tree.
+
+ A `sort` event will be fired for each node whose children are sorted, which
+ can get very noisy. If this is a large tree, you may want to set the
+ `silent` option to `true` to suppress these events.
+
+ @method sort
+ @param {Object} [options] Options.
+ @param {Boolean} [options.silent] If `true`, no `sort` events will be
+ fired.
+ @param {Function} [options.sortComparator] Custom comparator function to
+ use. If specified, this will become the new comparator function for
+ each node, overwriting any previous comparator function that was set
+ for the node.
+ @param {Boolean} [options.sortReverse] If `true`, children will be
+ sorted in reverse (descending) order. Otherwise they'll be sorted in
+ ascending order. This will become each node's new sort order,
+ overwriting any previous sort order that was set for the node.
+ @param {String} [options.src] Source of the sort operation. Will be
+ passed along to the `sort` event facade.
+ @chainable
+ **/
+ sort: function (options) {
+ return this.sortNode(this.rootNode, Y.merge(options, {deep: true}));
+ },
+
+ /**
+ Default comparator function to use when sorting a node's children if the
+ node itself doesn't have a custom comparator function.
+
+ If not specified, insertion order will be used by default.
+
+ @method sortComparator
+ @param {Tree.Node} node Node being sorted.
+ @return {Number|String} Value by which the node should be sorted relative to
+ its siblings.
+ **/
+ sortComparator: function (node) {
+ return node.index();
+ },
+
+ /**
+ Sorts the children of the specified node.
+
+ By default, only the node's direct children are sorted. To sort all nodes in
+ the hierarchy (children, children's children, etc.), set the `deep` option
+ to `true`. If this is a very deep hierarchy, you may also want to set
+ `silent` to true to avoid generating a flood of `sort` events.
+
+ @method sortNode
+ @param {Tree.Node} node Node whose children should be sorted.
+ @param {Object} [options] Options.
+ @param {Boolean} [options.deep=false] If `true`, all of this node's
+ children (and their children, and so on) will be traversed and
+ re-sorted as well.
+ @param {Boolean} [options.silent] If `true`, no `sort` event will be
+ fired.
+ @param {Function} [options.sortComparator] Custom comparator function to
+ use. If specified, this will become the node's new comparator
+ function, overwriting any previous comparator function that was set
+ for the node.
+ @param {Boolean} [options.sortReverse] If `true`, children will be
+ sorted in reverse (descending) order. Otherwise they'll be sorted in
+ ascending order. This will become the node's new sort order,
+ overwriting any previous sort order that was set for the node.
+ @param {String} [options.src] Source of the sort operation. Will be
+ passed along to the `sort` event facade.
+ @chainable
+ **/
+ sortNode: function (node, options) {
+ // Nothing to do if the node has no children.
+ if (!node.children.length) {
+ return this;
+ }
+
+ options || (options = {});
+
+ if (options.deep) {
+ // Unset the `deep` option so we don't cause an infinite loop.
+ options = Y.merge(options, {deep: false});
+
+ var self = this;
+
+ // Traverse and sort all nodes (including this one).
+ this.traverseNode(node, function (nodeToSort) {
+ self.sortNode(nodeToSort, options);
+ });
+
+ return this;
+ }
+
+ var comparator = this._getSortComparator(node, options),
+ reverse;
+
+ if ('sortReverse' in options) {
+ reverse = node.sortReverse = options.sortReverse;
+ } else if ('sortReverse' in node) {
+ reverse = node.sortReverse;
+ } else {
+ reverse = this.sortReverse;
+ }
+
+ node.children.sort(Y.rbind(this._sort, this, comparator, reverse));
+ node._isIndexStale = true;
+
+ if (!options.silent) {
+ this.fire(EVT_SORT, {
+ node : node,
+ reverse: !!reverse,
+ src : options.src
+ });
+ }
+
+ return this;
+ },
+
+ // -- Protected Methods ----------------------------------------------------
+
+ /**
+ Compares value _a_ to value _b_ for sorting purposes.
+
+ Values are assumed to be the result of calling a sortComparator function.
+
+ @method _compare
+ @param {Mixed} a First value to compare.
+ @param {Mixed} b Second value to compare.
+ @return {Number} `-1` if _a_ should come before _b_, `0` if they're
+ equivalent, `1` if _a_ should come after _b_.
+ @protected
+ **/
+ _compare: function (a, b) {
+ return a < b ? -1 : (a > b ? 1 : 0);
+ },
+
+ /**
+ Compares value _a_ to value _b_ for sorting purposes, but sorts them in
+ reverse (descending) order.
+
+ Values are assumed to be the result of calling a sortComparator function.
+
+ @method _compareReverse
+ @param {Mixed} a First value to compare.
+ @param {Mixed} b Second value to compare.
+ @return {Number} `-1` if _a_ should come before _b_, `0` if they're
+ equivalent, `1` if _a_ should come after _b_.
+ @protected
+ **/
+ _compareReverse: function (a, b) {
+ return b < a ? -1 : (b > a ? 1 : 0);
+ },
+
+ /**
+ Overrides `Tree#_getDefaultNodeIndex()` to provide insertion-time sorting
+ for nodes inserted without an explicit index.
+
+ @method _getDefaultNodeIndex
+ @param {Tree.Node} parent Parent node.
+ @param {Tree.Node} node Node being inserted.
+ @param {Object} [options] Options passed to `insertNode()`.
+ @return {Number} Index at which _node_ should be inserted into _parent_'s
+ `children` array.
+ @protected
+ **/
+ _getDefaultNodeIndex: function (parent, node) {
+ /*jshint bitwise:false */
+
+ var children = parent.children,
+ comparator = this._getSortComparator(parent),
+ max = children.length,
+ min = 0,
+ reverse = 'sortReverse' in parent ? parent.sortReverse : this.sortReverse;
+
+ if (!max) {
+ return max;
+ }
+
+ // Special case: if the sortComparator is the default sortComparator,
+ // cheat and just return the first or last index of the children array.
+ //
+ // This is necessary because the default sortComparator relies on
+ // the node's index, which is always -1 for uninserted nodes.
+ if (comparator._unboundComparator === Sortable.prototype.sortComparator) {
+ return reverse ? 0 : max;
+ }
+
+ var compare = reverse ? this._compareReverse : this._compare,
+ needle = comparator(node);
+
+ // Perform an iterative binary search to determine the correct position
+ // for the node based on the return value of the comparator function.
+ var middle;
+
+ while (min < max) {
+ middle = (min + max) >> 1; // Divide by two and discard remainder.
+
+ if (compare(comparator(children[middle]), needle) < 0) {
+ min = middle + 1;
+ } else {
+ max = middle;
+ }
+ }
+
+ return min;
+ },
+
+ /**
+ Returns a sort comparator function derived from the given _node_ and
+ _options_, and bound to the correct `thisObj` based on where it was found.
+
+ @method _getSortComparator
+ @param {Tree.Node} node Node on which to look for a `sortComparator`
+ function.
+ @param {Object} [options] Options object on which to look for a
+ `sortComparator` function.
+ @return {Function} Properly bound sort comparator function.
+ @protected
+ **/
+ _getSortComparator: function (node, options) {
+ var boundComparator,
+ comparator,
+ thisObj;
+
+ if (options && options.sortComparator) {
+ comparator = node.sortComparator = options.sortComparator;
+ } else if (node.sortComparator) {
+ comparator = node.sortComparator;
+ thisObj = node;
+ } else {
+ comparator = this.sortComparator;
+ thisObj = this;
+ }
+
+ boundComparator = function () {
+ return comparator.apply(thisObj, arguments);
+ };
+
+ boundComparator._unboundComparator = comparator;
+
+ return boundComparator;
+ },
+
+ /**
+ Array sort function used by `sortNode()` to re-sort a node's children.
+
+ @method _sort
+ @param {Tree.Node} a First node to compare.
+ @param {Tree.Node} b Second node to compare.
+ @param {Function} comparator Comparator function.
+ @param {Boolean} [reverse=false] If `true`, this will be a reverse
+ (descending) comparison.
+ @return {Number} `-1` if _a_ is less than _b_, `0` if equal, `1` if greater.
+ @protected
+ **/
+ _sort: function (a, b, comparator, reverse) {
+ return this[reverse ? '_compareReverse' : '_compare'](
+ comparator(a), comparator(b));
+ }
+};
+
+Y.Tree.Sortable = Sortable;
+/**
+@module tree
+@submodule tree-sortable
+**/
+
+/**
+`Tree.Node` extension that adds methods useful for nodes in trees that use the
+`Tree.Sortable` extension.
+
+@class Tree.Node.Sortable
+@constructor
+@extensionfor Tree.Node
+**/
+
+function NodeSortable() {}
+
+NodeSortable.prototype = {
+ /**
+ Sorts this node's children.
+
+ @method sort
+ @param {Object} [options] Options.
+ @param {Boolean} [options.silent] If `true`, no `sort` event will be
+ fired.
+ @param {Function} [options.sortComparator] Custom comparator function to
+ use. If specified, this will become the node's new comparator
+ function, overwriting any previous comparator function that was set
+ for the node.
+ @param {Boolean} [options.sortReverse] If `true`, children will be
+ sorted in reverse (descending) order. Otherwise they'll be sorted in
+ ascending order. This will become the node's new sort order,
+ overwriting any previous sort order that was set for the node.
+ @param {String} [options.src] Source of the sort operation. Will be
+ passed along to the `sort` event facade.
+ @chainable
+ **/
+ sort: function (options) {
+ this.tree.sortNode(this, options);
+ return this;
+ }
+};
+
+Y.Tree.Node.Sortable = NodeSortable;
+
+
+}, '3.12.0', {"requires": ["tree"]});
diff --git a/lib/yuilib/3.9.1/build/tree/tree-debug.js b/lib/yuilib/3.12.0/tree/tree-debug.js
old mode 100644
new mode 100755
similarity index 72%
rename from lib/yuilib/3.9.1/build/tree/tree-debug.js
rename to lib/yuilib/3.12.0/tree/tree-debug.js
index d0e94d45937..c54ed7769ac
--- a/lib/yuilib/3.9.1/build/tree/tree-debug.js
+++ b/lib/yuilib/3.12.0/tree/tree-debug.js
@@ -1,7 +1,13 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('tree', function (Y, NAME) {
-/*jshint expr:true, onevar:false */
+/*jshint boss:true, expr:true, onevar:false */
/**
Provides a generic tree data structure and related functionality.
@@ -267,14 +273,20 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
instance is specified instead of a config object, that node will be
adopted into this tree (if it doesn't already belong to this tree) and
removed from any other tree to which it belongs.
- @return {Tree.Node} New node.
+ @return {Tree.Node|null} New node, or `null` if a node could not be created
+ from the given _config_.
**/
createNode: function (config) {
config || (config = {});
- // If `config` is already a node, just ensure it's in the node map and
- // return it.
+ // If `config` is already a node, just ensure it hasn't been destroyed
+ // and is in the node map, then return it.
if (config._isYUITreeNode) {
+ if (config.state.destroyed) {
+ Y.error('Cannot insert a node that has already been destroyed.', null, 'tree');
+ return null;
+ }
+
this._adoptNode(config);
return config;
}
@@ -332,12 +344,11 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
this.removeNode(node, options);
}
- node.children = null;
- node.data = null;
+ node.children = [];
+ node.data = {};
node.state = {destroyed: true};
node.tree = null;
- node._htmlNode = null;
- node._indexMap = null;
+ node._indexMap = {};
delete this._nodeMap[node.id];
@@ -363,15 +374,62 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
@return {Tree.Node[]} Array of removed child nodes.
**/
emptyNode: function (node, options) {
- var removed = [];
+ var children = node.children,
+ removed = [];
- while (node.children.length) {
- removed.push(this.removeNode(node.children[0], options));
+ for (var i = children.length - 1; i > -1; --i) {
+ removed[i] = this.removeNode(children[i], options);
}
return removed;
},
+ /**
+ Performs a depth-first traversal of _node_, passing it and each of its
+ descendants to the specified _callback_, and returning the first node for
+ which the callback returns a truthy value.
+
+ Traversal will stop as soon as a truthy value is returned from the callback.
+
+ See `traverseNode()` for more details on how depth-first traversal works.
+
+ @method findNode
+ @param {Tree.Node} node Node to traverse.
+ @param {Object} [options] Options.
+ @param {Number} [options.depth] Depth limit. If specified, descendants
+ will only be traversed to this depth before backtracking and moving
+ on.
+ @param {Function} callback Callback function to call with the traversed
+ node and each of its descendants. If this function returns a truthy
+ value, traversal will be stopped and the current node will be returned.
+
+ @param {Tree.Node} callback.node Node being traversed.
+
+ @param {Object} [thisObj] `this` object to use when executing _callback_.
+ @return {Tree.Node|null} Returns the first node for which the _callback_
+ returns a truthy value, or `null` if the callback never returns a truthy
+ value.
+ **/
+ findNode: function (node, options, callback, thisObj) {
+ var match = null;
+
+ // Allow callback as second argument.
+ if (typeof options === 'function') {
+ thisObj = callback;
+ callback = options;
+ options = {};
+ }
+
+ this.traverseNode(node, options, function (descendant) {
+ if (callback.call(thisObj, descendant)) {
+ match = descendant;
+ return Tree.STOP_TRAVERSAL;
+ }
+ });
+
+ return match;
+ },
+
/**
Returns the tree node with the specified id, or `undefined` if the node
doesn't exist in this tree.
@@ -409,18 +467,12 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
used to distinguish between changes triggered by a user and changes
triggered programmatically, for example.
- @return {Tree.Node[]} Node or array of nodes that were inserted.
+ @return {Tree.Node|Tree.Node[]} Node or array of nodes that were inserted.
**/
insertNode: function (parent, node, options) {
options || (options = {});
parent || (parent = this.rootNode);
- var index = options.index;
-
- if (typeof index === 'undefined') {
- index = parent.children.length;
- }
-
// If `node` is an array, recurse to insert each node it contains.
//
// Note: If you're getting an exception here because `node` is null when
@@ -434,30 +486,44 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
// impact on performance, so you're on your own since this is such a
// rare edge case.
if ('length' in node && Lang.isArray(node)) {
- var inserted = [];
+ var hasIndex = 'index' in options,
+ insertedNodes = [],
+ insertedNode;
for (var i = 0, len = node.length; i < len; i++) {
- inserted.push(this.insertNode(parent, node[i], options));
+ insertedNode = this.insertNode(parent, node[i], options);
- if ('index' in options) {
- options.index += 1;
+ if (insertedNode) {
+ insertedNodes.push(insertedNode);
+
+ if (hasIndex) {
+ options.index += 1;
+ }
}
}
- return inserted;
+ return insertedNodes;
}
node = this.createNode(node);
- this._fireTreeEvent(EVT_ADD, {
- index : index,
- node : node,
- parent: parent,
- src : options.src || 'insert'
- }, {
- defaultFn: this._defAddFn,
- silent : options.silent
- });
+ if (node) {
+ var index = options.index;
+
+ if (typeof index === 'undefined') {
+ index = this._getDefaultNodeIndex(parent, node, options);
+ }
+
+ this._fireTreeEvent(EVT_ADD, {
+ index : index,
+ node : node,
+ parent: parent,
+ src : options.src || 'insert'
+ }, {
+ defaultFn: this._defAddFn,
+ silent : options.silent
+ });
+ }
return node;
},
@@ -531,7 +597,7 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
@return {Number} Total number of nodes in this tree.
**/
size: function () {
- return this.rootNode.size();
+ return this.rootNode.size() + 1;
},
/**
@@ -544,6 +610,75 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
return this.rootNode.toJSON();
},
+ /**
+ Performs a depth-first traversal of _node_, passing it and each of its
+ descendants to the specified _callback_.
+
+ If the callback function returns `Tree.STOP_TRAVERSAL`, traversal will be
+ stopped immediately. Otherwise, it will continue until the deepest
+ descendant of _node_ has been traversed, or until each branch has been
+ traversed to the optional maximum depth limit.
+
+ Since traversal is depth-first, that means nodes are traversed like this:
+
+ 1
+ / | \
+ 2 8 9
+ / \ \
+ 3 7 10
+ / | \ / \
+ 4 5 6 11 12
+
+ @method traverseNode
+ @param {Tree.Node} node Node to traverse.
+ @param {Object} [options] Options.
+ @param {Number} [options.depth] Depth limit. If specified, descendants
+ will only be traversed to this depth before backtracking and moving
+ on.
+ @param {Function} callback Callback function to call with the traversed
+ node and each of its descendants.
+
+ @param {Tree.Node} callback.node Node being traversed.
+
+ @param {Object} [thisObj] `this` object to use when executing _callback_.
+ @return {Mixed} Returns `Tree.STOP_TRAVERSAL` if traversal was stopped;
+ otherwise returns `undefined`.
+ **/
+ traverseNode: function (node, options, callback, thisObj) {
+ if (node.state.destroyed) {
+ Y.error('Cannot traverse a node that has been destroyed.', null, 'tree');
+ return;
+ }
+
+ // Allow callback as second argument.
+ if (typeof options === 'function') {
+ thisObj = callback;
+ callback = options;
+ options = {};
+ }
+
+ options || (options = {});
+
+ var stop = Tree.STOP_TRAVERSAL,
+ unlimited = typeof options.depth === 'undefined';
+
+ if (callback.call(thisObj, node) === stop) {
+ return stop;
+ }
+
+ var children = node.children;
+
+ if (unlimited || options.depth > 0) {
+ var childOptions = unlimited ? options : {depth: options.depth - 1};
+
+ for (var i = 0, len = children.length; i < len; i++) {
+ if (this.traverseNode(children[i], childOptions, callback, thisObj) === stop) {
+ return stop;
+ }
+ }
+ }
+ },
+
// -- Protected Methods ----------------------------------------------------
/**
@@ -606,7 +741,7 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
if (nodeClass) {
this.nodeClass = nodeClass;
} else {
- Y.error('Tree: Node class not found: ' + nodeClass);
+ Y.error('Node class not found: ' + nodeClass, null, 'tree');
return;
}
}
@@ -653,6 +788,7 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
_fireTreeEvent: function (name, facade, options) {
if (options && options.silent) {
if (options.defaultFn) {
+ facade.silent = true; // intentionally modifying the facade
options.defaultFn.call(this, facade);
}
} else {
@@ -668,6 +804,25 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
return this;
},
+ /**
+ Returns the default insertion index that should be used when _node_ is
+ inserted as a child of _parent_ without an explicit index.
+
+ The primary purpose of this method is to serve as a hook point for
+ extensions and plugins that need to customize insertion order.
+
+ @method _getDefaultNodeIndex
+ @param {Tree.Node} parent Parent node.
+ @param {Tree.Node} node Node being inserted.
+ @param {Object} [options] Options passed to `insertNode()`.
+ @return {Number} Index at which _node_ should be inserted into _parent_'s
+ `children` array.
+ @protected
+ **/
+ _getDefaultNodeIndex: function (parent/*, node, options*/) {
+ return parent.children.length;
+ },
+
/**
Removes the specified node from its parent node if it has one.
@@ -683,8 +838,15 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
index = parent.indexOf(node);
if (index > -1) {
- parent.children.splice(index, 1);
- parent._isIndexStale = true;
+ var children = parent.children;
+
+ if (index === children.length - 1) {
+ children.pop();
+ } else {
+ children.splice(index, 1);
+ parent._isIndexStale = true;
+ }
+
node.parent = null;
}
}
@@ -692,17 +854,38 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
// -- Default Event Handlers -----------------------------------------------
_defAddFn: function (e) {
- var node = e.node,
- parent = e.parent;
+ var index = e.index,
+ node = e.node,
+ parent = e.parent,
+ oldIndex;
// Remove the node from its existing parent if it has one.
if (node.parent) {
- this._removeNodeFromParent(node);
+ // If the node's existing parent is the same parent it's being
+ // inserted into, adjust the index to avoid an off-by-one error.
+ if (node.parent === parent) {
+ oldIndex = parent.indexOf(node);
+
+ if (oldIndex === index) {
+ // Old index is the same as the new index, so just don't do
+ // anything.
+ return;
+ } else if (oldIndex < index) {
+ // Removing the node from its old index will affect the new
+ // index, so decrement the new index by one.
+ index -= 1;
+ }
+ }
+
+ this.removeNode(node, {
+ silent: e.silent,
+ src : 'add'
+ });
}
// Add the node to its new parent at the desired index.
node.parent = parent;
- parent.children.splice(e.index, 0, node);
+ parent.children.splice(index, 0, node);
parent.canHaveChildren = true;
parent._isIndexStale = true;
@@ -735,9 +918,18 @@ var Tree = Y.Base.create('tree', Y.Base, [], {
this.children = this.rootNode.children;
}
}
+}, {
+ /**
+ Return this value from a `Tree#traverseNode()` or `Tree.Node#traverse()`
+ callback to immediately stop traversal.
+
+ @property STOP_TRAVERSAL
+ @static
+ **/
+ STOP_TRAVERSAL: {}
});
Y.Tree = Y.mix(Tree, Y.Tree);
-}, '3.9.1', {"requires": ["base-build", "tree-node"]});
+}, '3.12.0', {"requires": ["base-build", "tree-node"]});
diff --git a/lib/yuilib/3.12.0/tree/tree-min.js b/lib/yuilib/3.12.0/tree/tree-min.js
new file mode 100755
index 00000000000..7d3743449a5
--- /dev/null
+++ b/lib/yuilib/3.12.0/tree/tree-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("tree",function(e,t){var n=e.Lang,r="add",i="clear",s="remove",o=e.Base.create("tree",e.Base,[],{nodeClass:e.Tree.Node,nodeExtensions:[],_isYUITree:!0,_rootNodeConfig:{canHaveChildren:!0},initializer:function(e){e||(e={}),e.nodeClass&&(this.nodeClass=e.nodeClass),e.nodeExtensions&&(this.nodeExtensions=this.nodeExtensions.concat(e.nodeExtensions)),this._published||(this._published={}),this._nodeMap={},this.onceAfter("initializedChange",function(){this._composeNodeClass(),this.clear(e.rootNode,{silent:!0}),e.nodes&&this.insertNode(this.rootNode,e.nodes,{silent:!0})})},destructor:function(){this.destroyNode(this.rootNode,{silent:!0}),this.children=null,this.rootNode=null,this._nodeClass=null,this._nodeMap=null,this._published=null},appendNode:function(t,n,r){return this.insertNode(t,n,e.merge(r,{index:t.children.length,src:"append"}))},clear:function(e,t){return this._fireTreeEvent(i,{rootNode:this.createNode(e||this._rootNodeConfig),src:t&&t.src},{defaultFn:this._defClearFn,silent:t&&t.silent})},createNode:function(t){t||(t={});if(t._isYUITreeNode)return t.state.destroyed?(e.error("Cannot insert a node that has already been destroyed.",null,"tree"),null):(this._adoptNode(t),t);if(t.children){var n=[];for(var r=0,i=t.children.length;r-1;--i)r[i]=this.removeNode(n[i],t);return r},findNode:function(e,t,n,r){var i=null;return typeof t=="function"&&(r=n,n=t,t={}),this.traverseNode(e,t,function(e){if(n.call(r,e))return i=e,o.STOP_TRAVERSAL}),i},getNodeById:function(e){return this._nodeMap[e]},insertNode:function(e,t,i){i||(i={}),e||(e=this.rootNode);if("length"in t&&n.isArray(t)){var s="index"in i,o=[],u;for(var a=0,f=t.length;aY.config.classNamePrefix attribute used by ClassNameManager and
- * Widget.NAME.toLowerCase() (e.g. "yui-widget-xxxxx-yyyyy", based on default values for
+ * by the Y.config.classNamePrefix attribute used by ClassNameManager and
+ * Widget.NAME.toLowerCase() (e.g. "yui-widget-xxxxx-yyyyy", based on default values for
* the prefix and widget class name).
* YUI.config.classNamePrefix attribute + the instances NAME property.
* Uses YUI.config.classNameDelimiter attribute to delimit the provided strings.
- * e.g.
+ * e.g.
*
*
* // returns "yui-slider-foo-bar", for a slider instance
@@ -381,8 +387,8 @@ Y.extend(Widget, Y.Base, {
},
/**
- * Initializer lifecycle implementation for the Widget class. Registers the
- * widget instance, and runs through the Widget's HTML_PARSER definition.
+ * Initializer lifecycle implementation for the Widget class. Registers the
+ * widget instance, and runs through the Widget's HTML_PARSER definition.
*
* @method initializer
* @protected
@@ -401,23 +407,19 @@ Y.extend(Widget, Y.Base, {
* Notification event, which widget implementations can fire, when
* they change the content of the widget. This event has no default
* behavior and cannot be prevented, so the "on" or "after"
- * moments are effectively equivalent (with on listeners being invoked before
+ * moments are effectively equivalent (with on listeners being invoked before
* after listeners).
*
* @event widget:contentUpdate
* @preventable false
* @param {EventFacade} e The Event Facade
*/
-
- if (this._applyParser) {
- this._applyParser(config);
- }
},
/**
- * Utility method used to add an entry to the boundingBox id to instance map.
+ * Utility method used to add an entry to the boundingBox id to instance map.
*
- * This method can be used to populate the instance with lazily created boundingBox Node references.
+ * This method can be used to populate the instance with lazily created boundingBox Node references.
*
* @method _mapInstance
* @param {String} The boundingBox id
@@ -429,7 +431,7 @@ Y.extend(Widget, Y.Base, {
/**
* Destructor lifecycle implementation for the Widget class. Purges events attached
- * to the bounding box and content box, removes them from the DOM and removes
+ * to the bounding box and content box, removes them from the DOM and removes
* the Widget from the list of registered widgets.
*
* @method destructor
@@ -466,7 +468,8 @@ Y.extend(Widget, Y.Base, {
* from proceeding.
* Y.config.classNamePrefix attribute used by ClassNameManager and
- * Widget.NAME.toLowerCase() (e.g. "yui-widget-xxxxx-yyyyy", based on default values for
+ * by the Y.config.classNamePrefix attribute used by ClassNameManager and
+ * Widget.NAME.toLowerCase() (e.g. "yui-widget-xxxxx-yyyyy", based on default values for
* the prefix and widget class name).
* YUI.config.classNamePrefix attribute + the instances NAME property.
* Uses YUI.config.classNameDelimiter attribute to delimit the provided strings.
- * e.g.
+ * e.g.
*
*
* // returns "yui-slider-foo-bar", for a slider instance
@@ -380,8 +386,8 @@ Y.extend(Widget, Y.Base, {
},
/**
- * Initializer lifecycle implementation for the Widget class. Registers the
- * widget instance, and runs through the Widget's HTML_PARSER definition.
+ * Initializer lifecycle implementation for the Widget class. Registers the
+ * widget instance, and runs through the Widget's HTML_PARSER definition.
*
* @method initializer
* @protected
@@ -399,23 +405,19 @@ Y.extend(Widget, Y.Base, {
* Notification event, which widget implementations can fire, when
* they change the content of the widget. This event has no default
* behavior and cannot be prevented, so the "on" or "after"
- * moments are effectively equivalent (with on listeners being invoked before
+ * moments are effectively equivalent (with on listeners being invoked before
* after listeners).
*
* @event widget:contentUpdate
* @preventable false
* @param {EventFacade} e The Event Facade
*/
-
- if (this._applyParser) {
- this._applyParser(config);
- }
},
/**
- * Utility method used to add an entry to the boundingBox id to instance map.
+ * Utility method used to add an entry to the boundingBox id to instance map.
*
- * This method can be used to populate the instance with lazily created boundingBox Node references.
+ * This method can be used to populate the instance with lazily created boundingBox Node references.
*
* @method _mapInstance
* @param {String} The boundingBox id
@@ -427,7 +429,7 @@ Y.extend(Widget, Y.Base, {
/**
* Destructor lifecycle implementation for the Widget class. Purges events attached
- * to the bounding box and content box, removes them from the DOM and removes
+ * to the bounding box and content box, removes them from the DOM and removes
* the Widget from the list of registered widgets.
*
* @method destructor
@@ -463,7 +465,8 @@ Y.extend(Widget, Y.Base, {
* from proceeding.
*
* {
- * // Set single Node references using selector syntax
+ * // Set single Node references using selector syntax
* // (selector is run through node.one)
* titleNode: "span.yui-title",
- * // Set NodeList references using selector syntax
+ * // Set NodeList references using selector syntax
* // (array indicates selector is to be run through node.all)
* listNodes: ["li.yui-item"],
- * // Set other attribute types, using a parse function.
+ * // Set other attribute types, using a parse function.
* // Context is set to the widget instance.
* label: function(contentBox) {
* return contentBox.one("span.title").get("innerHTML");
* }
* }
*
- *
+ *
* @property HTML_PARSER
* @type Object
* @static
@@ -45,7 +51,7 @@ Widget.HTML_PARSER = {};
* The build configuration for the Widget class.
* HTML_PARSER configuration for the
+ * Utility method used to apply the HTML_PARSER configuration for the
* instance, to retrieve config data values.
*
* @method _applyParser
* @protected
- * @param config {Object} User configuration object (will be populated with values from Node)
+ * @param config {Object} User configuration object (will be populated with values from Node)
*/
_applyParser : function(config) {
@@ -136,10 +180,10 @@ Y.mix(Widget.prototype, {
/**
* Determines whether we have a node reference which we should try and parse.
- *
+ *
* The current implementation does not parse nodes generated from CONTENT_TEMPLATE,
* only explicitly set srcNode, or contentBox attributes.
- *
+ *
* @method _getNodeToParse
* @return {Node} The node reference to apply HTML_PARSER to.
* @private
@@ -175,4 +219,4 @@ Y.mix(Widget.prototype, {
});
-}, '3.9.1', {"requires": ["widget-base"]});
+}, '3.12.0', {"requires": ["widget-base"]});
diff --git a/lib/yuilib/3.12.0/widget-htmlparser/widget-htmlparser-min.js b/lib/yuilib/3.12.0/widget-htmlparser/widget-htmlparser-min.js
new file mode 100755
index 00000000000..d9b29581bb7
--- /dev/null
+++ b/lib/yuilib/3.12.0/widget-htmlparser/widget-htmlparser-min.js
@@ -0,0 +1,8 @@
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add("widget-htmlparser",function(e,t){var n=e.Widget,r=e.Node,i=e.Lang,s="srcNode",o="contentBox";n.HTML_PARSER={},n._buildCfg={aggregates:["HTML_PARSER"]},n.ATTRS[s]={value:null,setter:r.one,getter:"_getSrcNode",writeOnce:!0},e.mix(n.prototype,{_getSrcNode:function(e){return e||this.get(o)},_preAddAttrs:function(e,t,n){var r={id:e.id,boundingBox:e.boundingBox,contentBox:e.contentBox,srcNode:e.srcNode};this.addAttrs(r,t,n),delete e.boundingBox,delete e.contentBox,delete e.srcNode,delete e.id,this._applyParser&&this._applyParser(t)},_applyParsedConfig:function(t,n,r){return r?e.mix(n,r,!1):n},_applyParser:function(t){var n=this,r=this._getNodeToParse(),s=n._getHtmlParser(),o,u;s&&r&&e.Object.each(s,function(e,t,s){u=null,i.isFunction(e)?u=e.call(n,r):i.isArray(e)?(u=r.all(e[0]),u.isEmpty()&&(u=null)):u=r.one(e),u!==null&&u!==undefined&&(o=o||{},o[t]=u)}),t=n._applyParsedConfig(r,t,o)},_getNodeToParse:function(){var e=this.get("srcNode");return this._cbFromTemplate?null:e},_getHtmlParser:function(){var t=this._getClasses(),n={},r,i;for(r=t.length-1;r>=0;r--)i=t[r].HTML_PARSER,i&&e.mix(n,i,!0);return n}})},"3.12.0",{requires:["widget-base"]});
diff --git a/lib/yuilib/3.9.1/build/widget-htmlparser/widget-htmlparser.js b/lib/yuilib/3.12.0/widget-htmlparser/widget-htmlparser.js
old mode 100644
new mode 100755
similarity index 73%
rename from lib/yuilib/3.9.1/build/widget-htmlparser/widget-htmlparser.js
rename to lib/yuilib/3.12.0/widget-htmlparser/widget-htmlparser.js
index 05bb1d0a3d3..cb4e34513a7
--- a/lib/yuilib/3.9.1/build/widget-htmlparser/widget-htmlparser.js
+++ b/lib/yuilib/3.12.0/widget-htmlparser/widget-htmlparser.js
@@ -1,4 +1,10 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-htmlparser', function (Y, NAME) {
/**
@@ -21,20 +27,20 @@ var Widget = Y.Widget,
* markup contained in the widget's content box. e.g.:
*
* {
- * // Set single Node references using selector syntax
+ * // Set single Node references using selector syntax
* // (selector is run through node.one)
* titleNode: "span.yui-title",
- * // Set NodeList references using selector syntax
+ * // Set NodeList references using selector syntax
* // (array indicates selector is to be run through node.all)
* listNodes: ["li.yui-item"],
- * // Set other attribute types, using a parse function.
+ * // Set other attribute types, using a parse function.
* // Context is set to the widget instance.
* label: function(contentBox) {
* return contentBox.one("span.title").get("innerHTML");
* }
* }
*
- *
+ *
* @property HTML_PARSER
* @type Object
* @static
@@ -45,7 +51,7 @@ Widget.HTML_PARSER = {};
* The build configuration for the Widget class.
* HTML_PARSER configuration for the
+ * Utility method used to apply the HTML_PARSER configuration for the
* instance, to retrieve config data values.
*
* @method _applyParser
* @protected
- * @param config {Object} User configuration object (will be populated with values from Node)
+ * @param config {Object} User configuration object (will be populated with values from Node)
*/
_applyParser : function(config) {
@@ -136,10 +180,10 @@ Y.mix(Widget.prototype, {
/**
* Determines whether we have a node reference which we should try and parse.
- *
+ *
* The current implementation does not parse nodes generated from CONTENT_TEMPLATE,
* only explicitly set srcNode, or contentBox attributes.
- *
+ *
* @method _getNodeToParse
* @return {Node} The node reference to apply HTML_PARSER to.
* @private
@@ -175,4 +219,4 @@ Y.mix(Widget.prototype, {
});
-}, '3.9.1', {"requires": ["widget-base"]});
+}, '3.12.0', {"requires": ["widget-base"]});
diff --git a/lib/yuilib/3.9.1/build/widget-locale/widget-locale-debug.js b/lib/yuilib/3.12.0/widget-locale/widget-locale-debug.js
old mode 100644
new mode 100755
similarity index 87%
rename from lib/yuilib/3.9.1/build/widget-locale/widget-locale-debug.js
rename to lib/yuilib/3.12.0/widget-locale/widget-locale-debug.js
index 22ea5a17131..9ba8d651754
--- a/lib/yuilib/3.9.1/build/widget-locale/widget-locale-debug.js
+++ b/lib/yuilib/3.12.0/widget-locale/widget-locale-debug.js
@@ -1,11 +1,20 @@
-/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/*
+YUI 3.12.0 (build 8655935)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
YUI.add('widget-locale', function (Y, NAME) {
/**
- * Provides string support for widget with BCP 47 language tag lookup. This module has been deprecated. It's replaced by the "intl" module which provides generic internationalization and BCP 47 language tag support with externalization.
+ * Provides string support for widget with BCP 47 language tag lookup. This module has been deprecated.
+ * It's replaced by the "intl" module which provides generic internationalization and BCP 47 language tag
+ * support with externalization.
*
* @module widget-locale
- * @deprecated This module has been deprecated. It's replaced by the "intl" module which provides generic internationalization and BCP 47 language tag support with externalization.
+ * @deprecated This module has been deprecated. It's replaced by the "intl" module which provides
+ * generic internationalization and BCP 47 language tag support with externalization.
*/
var TRUE = true,
LOCALE = "locale",
@@ -67,7 +76,7 @@ Y.mix(Widget.prototype, {
/**
* Gets the entire strings hash for a particular locale, performing locale lookup.
* =0){for(i=0;u!==w&&i=10?(o.onerror=function(){setTimeout(c,0)},o.onload=function(){setTimeout(h,0)}):(o.onerror=c,o.onload=h),!n.cssFail&&!s&&(f=setTimeout(c,t.timeout||3e3))),this.nodes.push(o),r.parentNode.insertBefore(o,r)},_next:function(){if(this._pending)return;this._queue.length?this._insert(this._queue.shift()):this._reqsWaiting||this._finish()},_poll:function(t){var n=this,r=n._pendingCSS,i=e.UA.webkit,s,o,u,a,f,l;if(t){r||(r=n._pendingCSS=[]),r.push(t);if(n._pollTimer)return}n._pollTimer=null;for(s=0;s=0){for(i=0;u!==w&&i=0){for(i=0;u!==w&&i=0){for(i=0;u!==w&&i=10?(o.onerror=function(){setTimeout(c,0)},o.onload=function(){setTimeout(h,0)}):(o.onerror=c,o.onload=h),!n.cssFail&&!s&&(f=setTimeout(c,t.timeout||3e3))),this.nodes.push(o),r.parentNode.insertBefore(o,r)},_next:function(){if(this._pending)return;this._queue.length?this._insert(this._queue.shift()):this._reqsWaiting||this._finish()},_poll:function(t){var n=this,r=n._pendingCSS,i=e.UA.webkit,s,o,u,a,f,l;if(t){r||(r=n._pendingCSS=[]),r.push(t);if(n._pollTimer)return}n._pollTimer=null;for(s=0;s=t?(i=Math.floor((r/2-t)/(Math.pow(10,n-1)/2)),t=r/2-i*Math.pow(10,n-1)/2):t=r,isNaN(t)?e:t},_updateMinAndMax:function(){var e=this.get("data"),t,n,r,i,s=0,o=this.get("setMax"),u=this.get("setMin");if(!o||!u){if(e&&e.length&&e.length>0){r=e.length;for(;s