From aaee690b899dc29bec0628b070fb41416d1e6ce8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20S=CC=8Ckoda?= 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 0000000000000000000000000000000000000000..34fd6cdc6443c083be6e5c9191d2e302e2b6f74a
GIT binary patch
literal 176
zcmeAS@N?(olHy`uVBq!ia0vp@K%BzC3?#G8dEEh0JOMr-u0T38JiProvides 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("s?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;fCc{uWw*rU}$J)WMpJ)Y;0m;Vrpt?
zW@ct?Zf;>=VQFb;Wo2b;ZEa&?V{2<`XJ=<`Z|~sX;OOY+