from attributes."," * @module anim"," * @submodule anim-color"," */","","var NUM = Number;","","Y.Anim.getUpdatedColorValue = function(fromColor, toColor, elapsed, duration, fn)","{"," fromColor = Y.Color.re_RGB.exec(Y.Color.toRGB(fromColor));"," toColor = Y.Color.re_RGB.exec(Y.Color.toRGB(toColor));",""," if (!fromColor || fromColor.length < 3 || !toColor || toColor.length < 3) {"," Y.error('invalid from or to passed to color behavior');"," }",""," return 'rgb(' + ["," Math.floor(fn(elapsed, NUM(fromColor[1]), NUM(toColor[1]) - NUM(fromColor[1]), duration)),"," Math.floor(fn(elapsed, NUM(fromColor[2]), NUM(toColor[2]) - NUM(fromColor[2]), duration)),"," Math.floor(fn(elapsed, NUM(fromColor[3]), NUM(toColor[3]) - NUM(fromColor[3]), duration))"," ].join(', ') + ')';","};","","Y.Anim.behaviors.color = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," anim._node.setStyle(att, Y.Anim.getUpdatedColorValue(from, to, elapsed, duration, fn)); "," },"," "," // TODO: default bgcolor const"," get: function(anim, att) {"," var val = anim._node.getComputedStyle(att);"," val = (val === 'transparent') ? 'rgb(255, 255, 255)' : val;"," return val;"," }","};","","Y.each(['backgroundColor',"," 'borderColor',"," 'borderTopColor',"," 'borderRightColor', "," 'borderBottomColor', "," 'borderLeftColor'],"," function(v, i) {"," Y.Anim.behaviors[v] = Y.Anim.behaviors.color;"," }",");","","","}, '3.7.1', {\"requires\": [\"anim-base\"]});"];
+_yuitest_coverage["build/anim-color/anim-color.js"].code=["YUI.add('anim-color', function (Y, NAME) {","","/**"," * Adds support for color properties in to"," * and from attributes."," * @module anim"," * @submodule anim-color"," */","","var NUM = Number;","","Y.Anim.getUpdatedColorValue = function(fromColor, toColor, elapsed, duration, fn)","{"," fromColor = Y.Color.re_RGB.exec(Y.Color.toRGB(fromColor));"," toColor = Y.Color.re_RGB.exec(Y.Color.toRGB(toColor));",""," if (!fromColor || fromColor.length < 3 || !toColor || toColor.length < 3) {"," Y.error('invalid from or to passed to color behavior');"," }",""," return 'rgb(' + ["," Math.floor(fn(elapsed, NUM(fromColor[1]), NUM(toColor[1]) - NUM(fromColor[1]), duration)),"," Math.floor(fn(elapsed, NUM(fromColor[2]), NUM(toColor[2]) - NUM(fromColor[2]), duration)),"," Math.floor(fn(elapsed, NUM(fromColor[3]), NUM(toColor[3]) - NUM(fromColor[3]), duration))"," ].join(', ') + ')';","};","","Y.Anim.behaviors.color = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," anim._node.setStyle(att, Y.Anim.getUpdatedColorValue(from, to, elapsed, duration, fn)); "," },"," "," // TODO: default bgcolor const"," get: function(anim, att) {"," var val = anim._node.getComputedStyle(att);"," val = (val === 'transparent') ? 'rgb(255, 255, 255)' : val;"," return val;"," }","};","","Y.each(['backgroundColor',"," 'borderColor',"," 'borderTopColor',"," 'borderRightColor', "," 'borderBottomColor', "," 'borderLeftColor'],"," function(v, i) {"," Y.Anim.behaviors[v] = Y.Anim.behaviors.color;"," }",");","","","}, '3.7.2', {\"requires\": [\"anim-base\"]});"];
_yuitest_coverage["build/anim-color/anim-color.js"].lines = {"1":0,"10":0,"12":0,"14":0,"15":0,"17":0,"18":0,"21":0,"28":0,"30":0,"35":0,"36":0,"37":0,"41":0,"48":0};
_yuitest_coverage["build/anim-color/anim-color.js"].functions = {"getUpdatedColorValue:12":0,"set:29":0,"get:34":0,"(anonymous 2):47":0,"(anonymous 1):1":0};
_yuitest_coverage["build/anim-color/anim-color.js"].coveredLines = 15;
@@ -109,4 +109,4 @@ Y.Anim.behaviors[v] = Y.Anim.behaviors.color;
);
-}, '3.7.1', {"requires": ["anim-base"]});
+}, '3.7.2', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.7.1/build/anim-color/anim-color-debug.js b/lib/yuilib/3.7.2/build/anim-color/anim-color-debug.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/anim-color/anim-color-debug.js
rename to lib/yuilib/3.7.2/build/anim-color/anim-color-debug.js
index 3c4f030a26d..f64b2a5b714 100644
--- a/lib/yuilib/3.7.1/build/anim-color/anim-color-debug.js
+++ b/lib/yuilib/3.7.2/build/anim-color/anim-color-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -56,4 +56,4 @@ Y.each(['backgroundColor',
);
-}, '3.7.1', {"requires": ["anim-base"]});
+}, '3.7.2', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.7.1/build/anim-color/anim-color-min.js b/lib/yuilib/3.7.2/build/anim-color/anim-color-min.js
similarity index 91%
rename from lib/yuilib/3.7.1/build/anim-color/anim-color-min.js
rename to lib/yuilib/3.7.2/build/anim-color/anim-color-min.js
index da2e7c9568e..5006fc2447b 100644
--- a/lib/yuilib/3.7.1/build/anim-color/anim-color-min.js
+++ b/lib/yuilib/3.7.2/build/anim-color/anim-color-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("anim-color",function(e,t){var n=Number;e.Anim.getUpdatedColorValue=function(t,r,i,s,o){return t=e.Color.re_RGB.exec(e.Color.toRGB(t)),r=e.Color.re_RGB.exec(e.Color.toRGB(r)),(!t||t.length<3||!r||r.length<3)&&e.error("invalid from or to passed to color behavior"),"rgb("+[Math.floor(o(i,n(t[1]),n(r[1])-n(t[1]),s)),Math.floor(o(i,n(t[2]),n(r[2])-n(t[2]),s)),Math.floor(o(i,n(t[3]),n(r[3])-n(t[3]),s))].join(", ")+")"},e.Anim.behaviors.color={set:function(t,n,r,i,s,o,u){t._node.setStyle(n,e.Anim.getUpdatedColorValue(r,i,s,o,u))},get:function(e,t){var n=e._node.getComputedStyle(t);return n=n==="transparent"?"rgb(255, 255, 255)":n,n}},e.each(["backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],function(t,n){e.Anim.behaviors[t]=e.Anim.behaviors.color})},"3.7.1",{requires:["anim-base"]});
+YUI.add("anim-color",function(e,t){var n=Number;e.Anim.getUpdatedColorValue=function(t,r,i,s,o){return t=e.Color.re_RGB.exec(e.Color.toRGB(t)),r=e.Color.re_RGB.exec(e.Color.toRGB(r)),(!t||t.length<3||!r||r.length<3)&&e.error("invalid from or to passed to color behavior"),"rgb("+[Math.floor(o(i,n(t[1]),n(r[1])-n(t[1]),s)),Math.floor(o(i,n(t[2]),n(r[2])-n(t[2]),s)),Math.floor(o(i,n(t[3]),n(r[3])-n(t[3]),s))].join(", ")+")"},e.Anim.behaviors.color={set:function(t,n,r,i,s,o,u){t._node.setStyle(n,e.Anim.getUpdatedColorValue(r,i,s,o,u))},get:function(e,t){var n=e._node.getComputedStyle(t);return n=n==="transparent"?"rgb(255, 255, 255)":n,n}},e.each(["backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],function(t,n){e.Anim.behaviors[t]=e.Anim.behaviors.color})},"3.7.2",{requires:["anim-base"]});
diff --git a/lib/yuilib/3.7.1/build/anim-color/anim-color.js b/lib/yuilib/3.7.2/build/anim-color/anim-color.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/anim-color/anim-color.js
rename to lib/yuilib/3.7.2/build/anim-color/anim-color.js
index 3c4f030a26d..f64b2a5b714 100644
--- a/lib/yuilib/3.7.1/build/anim-color/anim-color.js
+++ b/lib/yuilib/3.7.2/build/anim-color/anim-color.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -56,4 +56,4 @@ Y.each(['backgroundColor',
);
-}, '3.7.1', {"requires": ["anim-base"]});
+}, '3.7.2', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.7.1/build/anim-curve/anim-curve-coverage.js b/lib/yuilib/3.7.2/build/anim-curve/anim-curve-coverage.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/anim-curve/anim-curve-coverage.js
rename to lib/yuilib/3.7.2/build/anim-curve/anim-curve-coverage.js
index df5fe562758..188acbc3057 100644
--- a/lib/yuilib/3.7.1/build/anim-curve/anim-curve-coverage.js
+++ b/lib/yuilib/3.7.2/build/anim-curve/anim-curve-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/anim-curve/anim-curve.js"] = {
path: "build/anim-curve/anim-curve.js",
code: []
};
-_yuitest_coverage["build/anim-curve/anim-curve.js"].code=["YUI.add('anim-curve', function (Y, NAME) {","","/**"," * Adds support for the curve property for the to "," * attribute. A curve is zero or more control points and an end point."," * @module anim"," * @submodule anim-curve"," */","","Y.Anim.behaviors.curve = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," from = from.slice.call(from);"," to = to.slice.call(to);"," var t = fn(elapsed, 0, 100, duration) / 100;"," to.unshift(from);"," anim._node.setXY(Y.Anim.getBezier(to, t));"," },",""," get: function(anim, att) {"," return anim._node.getXY();"," }","};","","/**"," * Get the current position of the animated element based on t."," * Each point is an array of \"x\" and \"y\" values (0 = x, 1 = y)"," * At least 2 points are required (start and end)."," * First point is start. Last point is end."," * Additional control points are optional. "," * @for Anim"," * @method getBezier"," * @static"," * @param {Array} points An array containing Bezier points"," * @param {Number} t A number between 0 and 1 which is the basis for determining current position"," * @return {Array} An array containing int x and y member data"," */","Y.Anim.getBezier = function(points, t) { "," var n = points.length;"," var tmp = [];",""," for (var i = 0; i < n; ++i){"," tmp[i] = [points[i][0], points[i][1]]; // save input"," }"," "," for (var j = 1; j < n; ++j) {"," for (i = 0; i < n - j; ++i) {"," tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];"," tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1]; "," }"," }",""," return [ tmp[0][0], tmp[0][1] ]; ","","};","","","}, '3.7.1', {\"requires\": [\"anim-xy\"]});"];
+_yuitest_coverage["build/anim-curve/anim-curve.js"].code=["YUI.add('anim-curve', function (Y, NAME) {","","/**"," * Adds support for the curve property for the to "," * attribute. A curve is zero or more control points and an end point."," * @module anim"," * @submodule anim-curve"," */","","Y.Anim.behaviors.curve = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," from = from.slice.call(from);"," to = to.slice.call(to);"," var t = fn(elapsed, 0, 100, duration) / 100;"," to.unshift(from);"," anim._node.setXY(Y.Anim.getBezier(to, t));"," },",""," get: function(anim, att) {"," return anim._node.getXY();"," }","};","","/**"," * Get the current position of the animated element based on t."," * Each point is an array of \"x\" and \"y\" values (0 = x, 1 = y)"," * At least 2 points are required (start and end)."," * First point is start. Last point is end."," * Additional control points are optional. "," * @for Anim"," * @method getBezier"," * @static"," * @param {Array} points An array containing Bezier points"," * @param {Number} t A number between 0 and 1 which is the basis for determining current position"," * @return {Array} An array containing int x and y member data"," */","Y.Anim.getBezier = function(points, t) { "," var n = points.length;"," var tmp = [];",""," for (var i = 0; i < n; ++i){"," tmp[i] = [points[i][0], points[i][1]]; // save input"," }"," "," for (var j = 1; j < n; ++j) {"," for (i = 0; i < n - j; ++i) {"," tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];"," tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1]; "," }"," }",""," return [ tmp[0][0], tmp[0][1] ]; ","","};","","","}, '3.7.2', {\"requires\": [\"anim-xy\"]});"];
_yuitest_coverage["build/anim-curve/anim-curve.js"].lines = {"1":0,"10":0,"12":0,"13":0,"14":0,"15":0,"16":0,"20":0,"37":0,"38":0,"39":0,"41":0,"42":0,"45":0,"46":0,"47":0,"48":0,"52":0};
_yuitest_coverage["build/anim-curve/anim-curve.js"].functions = {"set:11":0,"get:19":0,"getBezier:37":0,"(anonymous 1):1":0};
_yuitest_coverage["build/anim-curve/anim-curve.js"].coveredLines = 18;
@@ -115,4 +115,4 @@ return [ tmp[0][0], tmp[0][1] ];
};
-}, '3.7.1', {"requires": ["anim-xy"]});
+}, '3.7.2', {"requires": ["anim-xy"]});
diff --git a/lib/yuilib/3.7.1/build/anim-curve/anim-curve-debug.js b/lib/yuilib/3.7.2/build/anim-curve/anim-curve-debug.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/anim-curve/anim-curve-debug.js
rename to lib/yuilib/3.7.2/build/anim-curve/anim-curve-debug.js
index 6fd4681ad77..3195947a79f 100644
--- a/lib/yuilib/3.7.1/build/anim-curve/anim-curve-debug.js
+++ b/lib/yuilib/3.7.2/build/anim-curve/anim-curve-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -60,4 +60,4 @@ Y.Anim.getBezier = function(points, t) {
};
-}, '3.7.1', {"requires": ["anim-xy"]});
+}, '3.7.2', {"requires": ["anim-xy"]});
diff --git a/lib/yuilib/3.7.1/build/anim-curve/anim-curve-min.js b/lib/yuilib/3.7.2/build/anim-curve/anim-curve-min.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/anim-curve/anim-curve-min.js
rename to lib/yuilib/3.7.2/build/anim-curve/anim-curve-min.js
index 3a229ed3d60..5a50ab9d5c1 100644
--- a/lib/yuilib/3.7.1/build/anim-curve/anim-curve-min.js
+++ b/lib/yuilib/3.7.2/build/anim-curve/anim-curve-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("anim-curve",function(e,t){e.Anim.behaviors.curve={set:function(t,n,r,i,s,o,u){r=r.slice.call(r),i=i.slice.call(i);var a=u(s,0,100,o)/100;i.unshift(r),t._node.setXY(e.Anim.getBezier(i,a))},get:function(e,t){return e._node.getXY()}},e.Anim.getBezier=function(e,t){var n=e.length,r=[];for(var i=0;ito"," * and from attributes."," * @module anim"," * @submodule anim-scroll"," */","","var NUM = Number;","","//TODO: deprecate for scrollTop/Left properties?","Y.Anim.behaviors.scroll = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," var"," node = anim._node, "," val = (["," fn(elapsed, NUM(from[0]), NUM(to[0]) - NUM(from[0]), duration),"," fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)"," ]);",""," if (val[0]) {"," node.set('scrollLeft', val[0]);"," }",""," if (val[1]) {"," node.set('scrollTop', val[1]);"," }"," },"," get: function(anim) {"," var node = anim._node;"," return [node.get('scrollLeft'), node.get('scrollTop')];"," }","};","","","","}, '3.7.1', {\"requires\": [\"anim-base\"]});"];
+_yuitest_coverage["build/anim-scroll/anim-scroll.js"].code=["YUI.add('anim-scroll', function (Y, NAME) {","","/**"," * Adds support for the scroll property in to"," * and from attributes."," * @module anim"," * @submodule anim-scroll"," */","","var NUM = Number;","","//TODO: deprecate for scrollTop/Left properties?","Y.Anim.behaviors.scroll = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," var"," node = anim._node, "," val = (["," fn(elapsed, NUM(from[0]), NUM(to[0]) - NUM(from[0]), duration),"," fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)"," ]);",""," if (val[0]) {"," node.set('scrollLeft', val[0]);"," }",""," if (val[1]) {"," node.set('scrollTop', val[1]);"," }"," },"," get: function(anim) {"," var node = anim._node;"," return [node.get('scrollLeft'), node.get('scrollTop')];"," }","};","","","","}, '3.7.2', {\"requires\": [\"anim-base\"]});"];
_yuitest_coverage["build/anim-scroll/anim-scroll.js"].lines = {"1":0,"10":0,"13":0,"15":0,"22":0,"23":0,"26":0,"27":0,"31":0,"32":0};
_yuitest_coverage["build/anim-scroll/anim-scroll.js"].functions = {"set:14":0,"get:30":0,"(anonymous 1):1":0};
_yuitest_coverage["build/anim-scroll/anim-scroll.js"].coveredLines = 10;
@@ -87,4 +87,4 @@ return [node.get('scrollLeft'), node.get('scrollTop')];
-}, '3.7.1', {"requires": ["anim-base"]});
+}, '3.7.2', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.7.1/build/anim-scroll/anim-scroll-debug.js b/lib/yuilib/3.7.2/build/anim-scroll/anim-scroll-debug.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/anim-scroll/anim-scroll-debug.js
rename to lib/yuilib/3.7.2/build/anim-scroll/anim-scroll-debug.js
index fa4ef738e31..d34f3c281d0 100644
--- a/lib/yuilib/3.7.1/build/anim-scroll/anim-scroll-debug.js
+++ b/lib/yuilib/3.7.2/build/anim-scroll/anim-scroll-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -41,4 +41,4 @@ Y.Anim.behaviors.scroll = {
-}, '3.7.1', {"requires": ["anim-base"]});
+}, '3.7.2', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.7.1/build/anim-scroll/anim-scroll-min.js b/lib/yuilib/3.7.2/build/anim-scroll/anim-scroll-min.js
similarity index 87%
rename from lib/yuilib/3.7.1/build/anim-scroll/anim-scroll-min.js
rename to lib/yuilib/3.7.2/build/anim-scroll/anim-scroll-min.js
index 69b4a081f45..45838ccbec5 100644
--- a/lib/yuilib/3.7.1/build/anim-scroll/anim-scroll-min.js
+++ b/lib/yuilib/3.7.2/build/anim-scroll/anim-scroll-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("anim-scroll",function(e,t){var n=Number;e.Anim.behaviors.scroll={set:function(e,t,r,i,s,o,u){var a=e._node,f=[u(s,n(r[0]),n(i[0])-n(r[0]),o),u(s,n(r[1]),n(i[1])-n(r[1]),o)];f[0]&&a.set("scrollLeft",f[0]),f[1]&&a.set("scrollTop",f[1])},get:function(e){var t=e._node;return[t.get("scrollLeft"),t.get("scrollTop")]}}},"3.7.1",{requires:["anim-base"]});
+YUI.add("anim-scroll",function(e,t){var n=Number;e.Anim.behaviors.scroll={set:function(e,t,r,i,s,o,u){var a=e._node,f=[u(s,n(r[0]),n(i[0])-n(r[0]),o),u(s,n(r[1]),n(i[1])-n(r[1]),o)];f[0]&&a.set("scrollLeft",f[0]),f[1]&&a.set("scrollTop",f[1])},get:function(e){var t=e._node;return[t.get("scrollLeft"),t.get("scrollTop")]}}},"3.7.2",{requires:["anim-base"]});
diff --git a/lib/yuilib/3.7.1/build/anim-scroll/anim-scroll.js b/lib/yuilib/3.7.2/build/anim-scroll/anim-scroll.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/anim-scroll/anim-scroll.js
rename to lib/yuilib/3.7.2/build/anim-scroll/anim-scroll.js
index fa4ef738e31..d34f3c281d0 100644
--- a/lib/yuilib/3.7.1/build/anim-scroll/anim-scroll.js
+++ b/lib/yuilib/3.7.2/build/anim-scroll/anim-scroll.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -41,4 +41,4 @@ Y.Anim.behaviors.scroll = {
-}, '3.7.1', {"requires": ["anim-base"]});
+}, '3.7.2', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.7.1/build/anim-shape-transform/anim-shape-transform-coverage.js b/lib/yuilib/3.7.2/build/anim-shape-transform/anim-shape-transform-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/anim-shape-transform/anim-shape-transform-coverage.js
rename to lib/yuilib/3.7.2/build/anim-shape-transform/anim-shape-transform-coverage.js
index d9644cf8114..b541e4d11db 100644
--- a/lib/yuilib/3.7.1/build/anim-shape-transform/anim-shape-transform-coverage.js
+++ b/lib/yuilib/3.7.2/build/anim-shape-transform/anim-shape-transform-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/anim-shape-transform/anim-shape-transform.js"] = {
path: "build/anim-shape-transform/anim-shape-transform.js",
code: []
};
-_yuitest_coverage["build/anim-shape-transform/anim-shape-transform.js"].code=["YUI.add('anim-shape-transform', function (Y, NAME) {","","/**"," * Adds support for the transform attribute of Graphic"," * Shape instances."," * @module anim"," * @submodule anim-shape-transform"," */"," var NUM = Number,"," TO,"," TOSTRING;",""," Y.Anim.behaviors.transform = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," var node = anim._node,"," transform = \"\","," transformTo,"," transformFrom,"," toArgs,"," fromArgs,"," i = 0,"," j,"," argLen,"," len;"," to = TO;"," len = TO.length;"," for(; i < len; ++i)"," {"," toArgs = to[i].concat();"," fromArgs = from[i].concat();"," transformTo = toArgs.shift();"," transformFrom = fromArgs.shift();"," argLen = toArgs.length;"," transform += transformTo + \"(\";"," for(j = 0; j < argLen; ++j)"," {"," transform += fn(elapsed, NUM(fromArgs[j]), NUM(toArgs[j]) - NUM(fromArgs[j]), duration);"," if(j < argLen - 1)"," {"," transform += \", \";"," }"," }"," transform += \");\";"," }"," if(transform)"," {"," node.set('transform', transform);"," }"," node._transform = TOSTRING;"," },"," "," get: function(anim) {"," var node = anim._node,"," fromMatrix = node.matrix,"," toAttr = anim.get(\"to\") || {},"," toString = anim.get(\"to\").transform,"," fromString = node.get(\"transform\"),"," toArray = Y.MatrixUtil.getTransformArray(toString),"," fromArray = fromString ? Y.MatrixUtil.getTransformArray(fromString) : null,"," toMatrix,"," i,"," len,"," transformFunction,"," from;"," if(toArray)"," {"," if(!fromArray || fromArray.length < 1)"," {"," fromArray = [];"," len = toArray.length;"," for(i = 0; i < len; ++i)"," {"," transformFunction = toArray[i][0];"," fromArray[i] = Y.MatrixUtil.getTransformFunctionArray(transformFunction);"," }"," TO = toArray;"," from = fromArray;"," }"," else if(Y.MatrixUtil.compareTransformSequence(toArray, fromArray))"," {"," TO = toArray;"," from = fromArray;"," }"," else"," {"," toMatrix = new Y.Matrix();"," len = toArray.length;"," for(i = 0; i < len; ++i)"," {"," transformFunction = toArray[i].shift();"," transformFunction = transformFunction == \"matrix\" ? \"multiply\" : transformFunction;"," toMatrix[transformFunction].apply(toMatrix, toArray[i]); "," }",""," TO = toMatrix.decompose();"," from = fromMatrix.decompose();"," }"," }"," TOSTRING = toString;"," return from;"," }"," }; ","","","","}, '3.7.1', {\"requires\": [\"anim-base\", \"anim-easing\", \"matrix\"]});"];
+_yuitest_coverage["build/anim-shape-transform/anim-shape-transform.js"].code=["YUI.add('anim-shape-transform', function (Y, NAME) {","","/**"," * Adds support for the transform attribute of Graphic"," * Shape instances."," * @module anim"," * @submodule anim-shape-transform"," */"," var NUM = Number,"," TO,"," TOSTRING;",""," Y.Anim.behaviors.transform = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," var node = anim._node,"," transform = \"\","," transformTo,"," transformFrom,"," toArgs,"," fromArgs,"," i = 0,"," j,"," argLen,"," len;"," to = TO;"," len = TO.length;"," for(; i < len; ++i)"," {"," toArgs = to[i].concat();"," fromArgs = from[i].concat();"," transformTo = toArgs.shift();"," transformFrom = fromArgs.shift();"," argLen = toArgs.length;"," transform += transformTo + \"(\";"," for(j = 0; j < argLen; ++j)"," {"," transform += fn(elapsed, NUM(fromArgs[j]), NUM(toArgs[j]) - NUM(fromArgs[j]), duration);"," if(j < argLen - 1)"," {"," transform += \", \";"," }"," }"," transform += \");\";"," }"," if(transform)"," {"," node.set('transform', transform);"," }"," node._transform = TOSTRING;"," },"," "," get: function(anim) {"," var node = anim._node,"," fromMatrix = node.matrix,"," toAttr = anim.get(\"to\") || {},"," toString = anim.get(\"to\").transform,"," fromString = node.get(\"transform\"),"," toArray = Y.MatrixUtil.getTransformArray(toString),"," fromArray = fromString ? Y.MatrixUtil.getTransformArray(fromString) : null,"," toMatrix,"," i,"," len,"," transformFunction,"," from;"," if(toArray)"," {"," if(!fromArray || fromArray.length < 1)"," {"," fromArray = [];"," len = toArray.length;"," for(i = 0; i < len; ++i)"," {"," transformFunction = toArray[i][0];"," fromArray[i] = Y.MatrixUtil.getTransformFunctionArray(transformFunction);"," }"," TO = toArray;"," from = fromArray;"," }"," else if(Y.MatrixUtil.compareTransformSequence(toArray, fromArray))"," {"," TO = toArray;"," from = fromArray;"," }"," else"," {"," toMatrix = new Y.Matrix();"," len = toArray.length;"," for(i = 0; i < len; ++i)"," {"," transformFunction = toArray[i].shift();"," transformFunction = transformFunction == \"matrix\" ? \"multiply\" : transformFunction;"," toMatrix[transformFunction].apply(toMatrix, toArray[i]); "," }",""," TO = toMatrix.decompose();"," from = fromMatrix.decompose();"," }"," }"," TOSTRING = toString;"," return from;"," }"," }; ","","","","}, '3.7.2', {\"requires\": [\"anim-base\", \"anim-easing\", \"matrix\"]});"];
_yuitest_coverage["build/anim-shape-transform/anim-shape-transform.js"].lines = {"1":0,"9":0,"13":0,"15":0,"25":0,"26":0,"27":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"37":0,"38":0,"40":0,"43":0,"45":0,"47":0,"49":0,"53":0,"65":0,"67":0,"69":0,"70":0,"71":0,"73":0,"74":0,"76":0,"77":0,"79":0,"81":0,"82":0,"86":0,"87":0,"88":0,"90":0,"91":0,"92":0,"95":0,"96":0,"99":0,"100":0};
_yuitest_coverage["build/anim-shape-transform/anim-shape-transform.js"].functions = {"set:14":0,"get:52":0,"(anonymous 1):1":0};
_yuitest_coverage["build/anim-shape-transform/anim-shape-transform.js"].coveredLines = 44;
@@ -189,4 +189,4 @@ return from;
-}, '3.7.1', {"requires": ["anim-base", "anim-easing", "matrix"]});
+}, '3.7.2', {"requires": ["anim-base", "anim-easing", "matrix"]});
diff --git a/lib/yuilib/3.7.1/build/anim-shape/anim-shape-coverage.js b/lib/yuilib/3.7.2/build/anim-shape/anim-shape-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/anim-shape/anim-shape-coverage.js
rename to lib/yuilib/3.7.2/build/anim-shape/anim-shape-coverage.js
index 5d86671e266..33f6bfec7eb 100644
--- a/lib/yuilib/3.7.1/build/anim-shape/anim-shape-coverage.js
+++ b/lib/yuilib/3.7.2/build/anim-shape/anim-shape-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/anim-shape/anim-shape.js"] = {
path: "build/anim-shape/anim-shape.js",
code: []
};
-_yuitest_coverage["build/anim-shape/anim-shape.js"].code=["YUI.add('anim-shape', function (Y, NAME) {","","/**"," * Adds support for the transform attribute of Graphic"," * Shape instances."," * @module anim"," * @submodule anim-shape-transform"," * @deprecated Use anim-shape instead."," */","/**"," * Adds support for the transform, fill, and attributes of Graphic"," * Shape instances. The anim-shape submodule can be used for all animations involving"," * Graphic Shape attributes. "," * "," * @module anim"," * @submodule anim-shape"," */"," var NUM = Number,"," TO,"," TOSTRING,"," COLOR = \"color\","," STOPS = \"stops\","," TYPE = \"type\","," GETUPDATEDSTOPS = function(anim, from, to, elapsed, duration, fn)"," {"," var i = 0,"," getUpdatedColorValue = Y.Anim.getUpdatedColorValue,"," toStop,"," fromStop,"," prop,"," len = to.length,"," color,"," opacity,"," offset,"," rotation,"," r,"," fx,"," fy,"," cx,"," cy,"," stops = [],"," stop;"," for(; i < len; i = i + 1)"," {"," toStop = to[i];"," fromStop = from[i];"," stop = {};"," for(prop in toStop)"," {"," if(toStop.hasOwnProperty(prop))"," {"," if(prop == COLOR)"," {"," stop[prop] = Y.Color.toHex(getUpdatedColorValue(Y.Color.toHex(fromStop[prop]), Y.Color.toHex(toStop[prop]), elapsed, duration, fn));"," }"," else"," {"," stop[prop] = fn(elapsed, NUM(fromStop[prop]), NUM(toStop[prop]) - NUM(fromStop[prop]), duration);"," }"," }"," }"," stops.push(stop);"," }"," return stops;"," },"," FILLANDSTROKEBEHAVIOR = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," var i,"," updated = {},"," getUpdatedColorValue = Y.Anim.getUpdatedColorValue,"," getUpdatedStops = GETUPDATEDSTOPS;"," for(i in to)"," {"," if(to.hasOwnProperty(i) && i != TYPE)"," {"," switch(i)"," {"," case COLOR :"," updated[i] = getUpdatedColorValue(from[i], to[i], elapsed, duration, fn);"," break;"," case STOPS :"," updated[i] = getUpdatedStops(anim, from[i], to[i], elapsed, duration, fn);"," break;"," default :"," updated[i] = fn(elapsed, NUM(from[i]), NUM(to[i]) - NUM(from[i]), duration);"," break;"," }"," }"," }"," anim._node.set(att, updated);"," }"," };"," Y.Anim.behaviors.fill = FILLANDSTROKEBEHAVIOR;"," Y.Anim.behaviors.stroke = FILLANDSTROKEBEHAVIOR; ",""," Y.Anim.behaviors.transform = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," var node = anim._node,"," transform = \"\","," transformTo,"," transformFrom,"," toArgs,"," fromArgs,"," i = 0,"," j,"," argLen,"," len;"," to = TO;"," len = TO.length;"," for(; i < len; ++i)"," {"," toArgs = to[i].concat();"," fromArgs = from[i].concat();"," transformTo = toArgs.shift();"," transformFrom = fromArgs.shift();"," argLen = toArgs.length;"," transform += transformTo + \"(\";"," for(j = 0; j < argLen; ++j)"," {"," transform += fn(elapsed, NUM(fromArgs[j]), NUM(toArgs[j]) - NUM(fromArgs[j]), duration);"," if(j < argLen - 1)"," {"," transform += \", \";"," }"," }"," transform += \");\";"," }"," if(transform)"," {"," node.set('transform', transform);"," }"," node._transform = TOSTRING;"," },"," "," get: function(anim) {"," var node = anim._node,"," fromMatrix = node.matrix,"," toAttr = anim.get(\"to\") || {},"," toString = anim.get(\"to\").transform,"," fromString = node.get(\"transform\"),"," toArray = Y.MatrixUtil.getTransformArray(toString),"," fromArray = fromString ? Y.MatrixUtil.getTransformArray(fromString) : null,"," toMatrix,"," i,"," len,"," transformFunction,"," from;"," if(toArray)"," {"," if(!fromArray || fromArray.length < 1)"," {"," fromArray = [];"," len = toArray.length;"," for(i = 0; i < len; ++i)"," {"," transformFunction = toArray[i][0];"," fromArray[i] = Y.MatrixUtil.getTransformFunctionArray(transformFunction);"," }"," TO = toArray;"," from = fromArray;"," }"," else if(Y.MatrixUtil.compareTransformSequence(toArray, fromArray))"," {"," TO = toArray;"," from = fromArray;"," }"," else"," {"," toMatrix = new Y.Matrix();"," len = toArray.length;"," for(i = 0; i < len; ++i)"," {"," transformFunction = toArray[i].shift();"," transformFunction = transformFunction == \"matrix\" ? \"multiply\" : transformFunction;"," toMatrix[transformFunction].apply(toMatrix, toArray[i]); "," }",""," TO = toMatrix.decompose();"," from = fromMatrix.decompose();"," }"," }"," TOSTRING = toString;"," return from;"," }"," }; ","","","","}, '3.7.1', {\"requires\": [\"anim-base\", \"anim-easing\", \"anim-color\", \"matrix\"]});"];
+_yuitest_coverage["build/anim-shape/anim-shape.js"].code=["YUI.add('anim-shape', function (Y, NAME) {","","/**"," * Adds support for the transform attribute of Graphic"," * Shape instances."," * @module anim"," * @submodule anim-shape-transform"," * @deprecated Use anim-shape instead."," */","/**"," * Adds support for the transform, fill, and attributes of Graphic"," * Shape instances. The anim-shape submodule can be used for all animations involving"," * Graphic Shape attributes. "," * "," * @module anim"," * @submodule anim-shape"," */"," var NUM = Number,"," TO,"," TOSTRING,"," COLOR = \"color\","," STOPS = \"stops\","," TYPE = \"type\","," GETUPDATEDSTOPS = function(anim, from, to, elapsed, duration, fn)"," {"," var i = 0,"," getUpdatedColorValue = Y.Anim.getUpdatedColorValue,"," toStop,"," fromStop,"," prop,"," len = to.length,"," color,"," opacity,"," offset,"," rotation,"," r,"," fx,"," fy,"," cx,"," cy,"," stops = [],"," stop;"," for(; i < len; i = i + 1)"," {"," toStop = to[i];"," fromStop = from[i];"," stop = {};"," for(prop in toStop)"," {"," if(toStop.hasOwnProperty(prop))"," {"," if(prop == COLOR)"," {"," stop[prop] = Y.Color.toHex(getUpdatedColorValue(Y.Color.toHex(fromStop[prop]), Y.Color.toHex(toStop[prop]), elapsed, duration, fn));"," }"," else"," {"," stop[prop] = fn(elapsed, NUM(fromStop[prop]), NUM(toStop[prop]) - NUM(fromStop[prop]), duration);"," }"," }"," }"," stops.push(stop);"," }"," return stops;"," },"," FILLANDSTROKEBEHAVIOR = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," var i,"," updated = {},"," getUpdatedColorValue = Y.Anim.getUpdatedColorValue,"," getUpdatedStops = GETUPDATEDSTOPS;"," for(i in to)"," {"," if(to.hasOwnProperty(i) && i != TYPE)"," {"," switch(i)"," {"," case COLOR :"," updated[i] = getUpdatedColorValue(from[i], to[i], elapsed, duration, fn);"," break;"," case STOPS :"," updated[i] = getUpdatedStops(anim, from[i], to[i], elapsed, duration, fn);"," break;"," default :"," updated[i] = fn(elapsed, NUM(from[i]), NUM(to[i]) - NUM(from[i]), duration);"," break;"," }"," }"," }"," anim._node.set(att, updated);"," }"," };"," Y.Anim.behaviors.fill = FILLANDSTROKEBEHAVIOR;"," Y.Anim.behaviors.stroke = FILLANDSTROKEBEHAVIOR; ",""," Y.Anim.behaviors.transform = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," var node = anim._node,"," transform = \"\","," transformTo,"," transformFrom,"," toArgs,"," fromArgs,"," i = 0,"," j,"," argLen,"," len;"," to = TO;"," len = TO.length;"," for(; i < len; ++i)"," {"," toArgs = to[i].concat();"," fromArgs = from[i].concat();"," transformTo = toArgs.shift();"," transformFrom = fromArgs.shift();"," argLen = toArgs.length;"," transform += transformTo + \"(\";"," for(j = 0; j < argLen; ++j)"," {"," transform += fn(elapsed, NUM(fromArgs[j]), NUM(toArgs[j]) - NUM(fromArgs[j]), duration);"," if(j < argLen - 1)"," {"," transform += \", \";"," }"," }"," transform += \");\";"," }"," if(transform)"," {"," node.set('transform', transform);"," }"," node._transform = TOSTRING;"," },"," "," get: function(anim) {"," var node = anim._node,"," fromMatrix = node.matrix,"," toAttr = anim.get(\"to\") || {},"," toString = anim.get(\"to\").transform,"," fromString = node.get(\"transform\"),"," toArray = Y.MatrixUtil.getTransformArray(toString),"," fromArray = fromString ? Y.MatrixUtil.getTransformArray(fromString) : null,"," toMatrix,"," i,"," len,"," transformFunction,"," from;"," if(toArray)"," {"," if(!fromArray || fromArray.length < 1)"," {"," fromArray = [];"," len = toArray.length;"," for(i = 0; i < len; ++i)"," {"," transformFunction = toArray[i][0];"," fromArray[i] = Y.MatrixUtil.getTransformFunctionArray(transformFunction);"," }"," TO = toArray;"," from = fromArray;"," }"," else if(Y.MatrixUtil.compareTransformSequence(toArray, fromArray))"," {"," TO = toArray;"," from = fromArray;"," }"," else"," {"," toMatrix = new Y.Matrix();"," len = toArray.length;"," for(i = 0; i < len; ++i)"," {"," transformFunction = toArray[i].shift();"," transformFunction = transformFunction == \"matrix\" ? \"multiply\" : transformFunction;"," toMatrix[transformFunction].apply(toMatrix, toArray[i]); "," }",""," TO = toMatrix.decompose();"," from = fromMatrix.decompose();"," }"," }"," TOSTRING = toString;"," return from;"," }"," }; ","","","","}, '3.7.2', {\"requires\": [\"anim-base\", \"anim-easing\", \"anim-color\", \"matrix\"]});"];
_yuitest_coverage["build/anim-shape/anim-shape.js"].lines = {"1":0,"18":0,"26":0,"43":0,"45":0,"46":0,"47":0,"48":0,"50":0,"52":0,"54":0,"58":0,"62":0,"64":0,"68":0,"72":0,"74":0,"76":0,"79":0,"80":0,"82":0,"83":0,"85":0,"86":0,"90":0,"93":0,"94":0,"96":0,"98":0,"108":0,"109":0,"110":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"120":0,"121":0,"123":0,"126":0,"128":0,"130":0,"132":0,"136":0,"148":0,"150":0,"152":0,"153":0,"154":0,"156":0,"157":0,"159":0,"160":0,"162":0,"164":0,"165":0,"169":0,"170":0,"171":0,"173":0,"174":0,"175":0,"178":0,"179":0,"182":0,"183":0};
_yuitest_coverage["build/anim-shape/anim-shape.js"].functions = {"GETUPDATEDSTOPS:24":0,"set:67":0,"set:97":0,"get:135":0,"(anonymous 1):1":0};
_yuitest_coverage["build/anim-shape/anim-shape.js"].coveredLines = 69;
@@ -299,4 +299,4 @@ return from;
-}, '3.7.1', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
+}, '3.7.2', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
diff --git a/lib/yuilib/3.7.1/build/anim-shape/anim-shape-debug.js b/lib/yuilib/3.7.2/build/anim-shape/anim-shape-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/anim-shape/anim-shape-debug.js
rename to lib/yuilib/3.7.2/build/anim-shape/anim-shape-debug.js
index f795adade43..87acd0febf0 100644
--- a/lib/yuilib/3.7.1/build/anim-shape/anim-shape-debug.js
+++ b/lib/yuilib/3.7.2/build/anim-shape/anim-shape-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -192,4 +192,4 @@ YUI.add('anim-shape', function (Y, NAME) {
-}, '3.7.1', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
+}, '3.7.2', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
diff --git a/lib/yuilib/3.7.1/build/anim-shape/anim-shape-min.js b/lib/yuilib/3.7.2/build/anim-shape/anim-shape-min.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/anim-shape/anim-shape-min.js
rename to lib/yuilib/3.7.2/build/anim-shape/anim-shape-min.js
index 18979db8679..26b1909c1c2 100644
--- a/lib/yuilib/3.7.1/build/anim-shape/anim-shape-min.js
+++ b/lib/yuilib/3.7.2/build/anim-shape/anim-shape-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
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,g,y,b,w,E,S,x,T=[],N;for(;fxy property in from and "," * to attributes."," * @module anim"," * @submodule anim-xy"," */","","var NUM = Number;","","Y.Anim.behaviors.xy = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," anim._node.setXY(["," fn(elapsed, NUM(from[0]), NUM(to[0]) - NUM(from[0]), duration),"," fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)"," ]);"," },"," get: function(anim) {"," return anim._node.getXY();"," }","};","","","","}, '3.7.1', {\"requires\": [\"anim-base\", \"node-screen\"]});"];
+_yuitest_coverage["build/anim-xy/anim-xy.js"].code=["YUI.add('anim-xy', function (Y, NAME) {","","/**"," * Adds support for the xy property in from and "," * to attributes."," * @module anim"," * @submodule anim-xy"," */","","var NUM = Number;","","Y.Anim.behaviors.xy = {"," set: function(anim, att, from, to, elapsed, duration, fn) {"," anim._node.setXY(["," fn(elapsed, NUM(from[0]), NUM(to[0]) - NUM(from[0]), duration),"," fn(elapsed, NUM(from[1]), NUM(to[1]) - NUM(from[1]), duration)"," ]);"," },"," get: function(anim) {"," return anim._node.getXY();"," }","};","","","","}, '3.7.2', {\"requires\": [\"anim-base\", \"node-screen\"]});"];
_yuitest_coverage["build/anim-xy/anim-xy.js"].lines = {"1":0,"10":0,"12":0,"14":0,"20":0};
_yuitest_coverage["build/anim-xy/anim-xy.js"].functions = {"set:13":0,"get:19":0,"(anonymous 1):1":0};
_yuitest_coverage["build/anim-xy/anim-xy.js"].coveredLines = 5;
@@ -70,4 +70,4 @@ return anim._node.getXY();
-}, '3.7.1', {"requires": ["anim-base", "node-screen"]});
+}, '3.7.2', {"requires": ["anim-base", "node-screen"]});
diff --git a/lib/yuilib/3.7.1/build/anim-xy/anim-xy-debug.js b/lib/yuilib/3.7.2/build/anim-xy/anim-xy-debug.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/anim-xy/anim-xy-debug.js
rename to lib/yuilib/3.7.2/build/anim-xy/anim-xy-debug.js
index 538a400ae9e..93c1aadbd30 100644
--- a/lib/yuilib/3.7.1/build/anim-xy/anim-xy-debug.js
+++ b/lib/yuilib/3.7.2/build/anim-xy/anim-xy-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -29,4 +29,4 @@ Y.Anim.behaviors.xy = {
-}, '3.7.1', {"requires": ["anim-base", "node-screen"]});
+}, '3.7.2', {"requires": ["anim-base", "node-screen"]});
diff --git a/lib/yuilib/3.7.1/build/anim-xy/anim-xy-min.js b/lib/yuilib/3.7.2/build/anim-xy/anim-xy-min.js
similarity index 78%
rename from lib/yuilib/3.7.1/build/anim-xy/anim-xy-min.js
rename to lib/yuilib/3.7.2/build/anim-xy/anim-xy-min.js
index 52d9f73e777..078d68ff6fb 100644
--- a/lib/yuilib/3.7.1/build/anim-xy/anim-xy-min.js
+++ b/lib/yuilib/3.7.2/build/anim-xy/anim-xy-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 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.7.1",{requires:["anim-base","node-screen"]});
+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.7.2",{requires:["anim-base","node-screen"]});
diff --git a/lib/yuilib/3.7.1/build/anim-xy/anim-xy.js b/lib/yuilib/3.7.2/build/anim-xy/anim-xy.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/anim-xy/anim-xy.js
rename to lib/yuilib/3.7.2/build/anim-xy/anim-xy.js
index 538a400ae9e..93c1aadbd30 100644
--- a/lib/yuilib/3.7.1/build/anim-xy/anim-xy.js
+++ b/lib/yuilib/3.7.2/build/anim-xy/anim-xy.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -29,4 +29,4 @@ Y.Anim.behaviors.xy = {
-}, '3.7.1', {"requires": ["anim-base", "node-screen"]});
+}, '3.7.2', {"requires": ["anim-base", "node-screen"]});
diff --git a/lib/yuilib/3.7.1/build/app-base/app-base-coverage.js b/lib/yuilib/3.7.2/build/app-base/app-base-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-base/app-base-coverage.js
rename to lib/yuilib/3.7.2/build/app-base/app-base-coverage.js
index 97255026a9a..e6cc58f6c30 100644
--- a/lib/yuilib/3.7.1/build/app-base/app-base-coverage.js
+++ b/lib/yuilib/3.7.2/build/app-base/app-base-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/app-base/app-base.js"] = {
path: "build/app-base/app-base.js",
code: []
};
-_yuitest_coverage["build/app-base/app-base.js"].code=["YUI.add('app-base', function (Y, NAME) {","","/**","The App Framework provides simple MVC-like building blocks (models, model lists,","views, and URL-based routing) for writing single-page JavaScript applications.","","@main app","@module app","@since 3.4.0","**/","","/**","Provides a top-level application component which manages navigation and views.","","@module app","@submodule app-base","@since 3.5.0","**/","","// TODO: Better handling of lifecycle for registered views:","//","// * [!] Just redo basically everything with view management so there are no","// pre-`activeViewChange` side effects and handle the rest of these things:","//","// * Seems like any view created via `createView` should listen for the view's","// `destroy` event and use that to remove it from the `_viewsInfoMap`. I","// should look at what ModelList does for Models as a reference.","//","// * Should we have a companion `destroyView()` method? Maybe this wouldn't be","// needed if we have a `getView(name, create)` method, and already doing the","// above? We could do `app.getView('foo').destroy()` and it would be removed","// from the `_viewsInfoMap` as well.","//","// * Should we wait to call a view's `render()` method inside of the","// `_attachView()` method?","//","// * Should named views support a collection of instances instead of just one?","//","","var Lang = Y.Lang,"," YObject = Y.Object,",""," PjaxBase = Y.PjaxBase,"," Router = Y.Router,"," View = Y.View,",""," getClassName = Y.ClassNameManager.getClassName,",""," win = Y.config.win,",""," AppBase;","","/**","Provides a top-level application component which manages navigation and views.","","This gives you a foundation and structure on which to build your application; it","combines robust URL navigation with powerful routing and flexible view","management.","","@class App.Base","@param {Object} [config] The following are configuration properties that can be"," specified _in addition_ to default attribute values and the non-attribute"," properties provided by `Y.Base`:"," @param {Object} [config.views] Hash of view-name to metadata used to"," declaratively describe an application's views and their relationship with"," the app and other views. The views specified here will override any defaults"," provided by the `views` object on the `prototype`.","@constructor","@extends Base","@uses View","@uses Router","@uses PjaxBase","@since 3.5.0","**/","AppBase = Y.Base.create('app', Y.Base, [View, Router, PjaxBase], {"," // -- Public Properties ----------------------------------------------------",""," /**"," Hash of view-name to metadata used to declaratively describe an"," application's views and their relationship with the app and its other views.",""," The view metadata is composed of Objects keyed to a view-name that can have"," any or all of the following properties:",""," * `type`: Function or a string representing the view constructor to use to"," create view instances. If a string is used, the constructor function is"," assumed to be on the `Y` object; e.g. `\"SomeView\"` -> `Y.SomeView`.",""," * `preserve`: Boolean for whether the view instance should be retained. By"," default, the view instance will be destroyed when it is no longer the"," `activeView`. If `true` the view instance will simply be `removed()`"," from the DOM when it is no longer active. This is useful when the view"," is frequently used and may be expensive to re-create.",""," * `parent`: String to another named view in this hash that represents the"," parent view within the application's view hierarchy; e.g. a `\"photo\"`"," view could have `\"album\"` has its `parent` view. This parent/child"," relationship is a useful cue for things like transitions.",""," * `instance`: Used internally to manage the current instance of this named"," view. This can be used if your view instance is created up-front, or if"," you would rather manage the View lifecycle, but you probably should just"," let this be handled for you.",""," If `views` are specified at instantiation time, the metadata in the `views`"," Object here will be used as defaults when creating the instance's `views`.",""," Every `Y.App` instance gets its own copy of a `views` object so this Object"," on the prototype will not be polluted.",""," @example"," // Imagine that `Y.UsersView` and `Y.UserView` have been defined."," var app = new Y.App({"," views: {"," users: {"," type : Y.UsersView,"," preserve: true"," },",""," user: {"," type : Y.UserView,"," parent: 'users'"," }"," }"," });",""," @property views"," @type Object"," @default {}"," @since 3.5.0"," **/"," views: {},",""," // -- Protected Properties -------------------------------------------------",""," /**"," Map of view instance id (via `Y.stamp()`) to view-info object in `views`.",""," This mapping is used to tie a specific view instance back to its metadata by"," adding a reference to the the related view info on the `views` object.",""," @property _viewInfoMap"," @type Object"," @default {}"," @protected"," @since 3.5.0"," **/",""," // -- Lifecycle Methods ----------------------------------------------------"," initializer: function (config) {"," config || (config = {});",""," var views = {};",""," // Merges-in specified view metadata into local `views` object."," function mergeViewConfig(view, name) {"," views[name] = Y.merge(views[name], view);"," }",""," // First, each view in the `views` prototype object gets its metadata"," // merged-in, providing the defaults."," YObject.each(this.views, mergeViewConfig);",""," // Then, each view in the specified `config.views` object gets its"," // metadata merged-in."," YObject.each(config.views, mergeViewConfig);",""," // The resulting hodgepodge of metadata is then stored as the instance's"," // `views` object, and no one's objects were harmed in the making."," this.views = views;"," this._viewInfoMap = {};",""," // Using `bind()` to aid extensibility."," this.after('activeViewChange', Y.bind('_afterActiveViewChange', this));",""," // PjaxBase will bind click events when `html5` is `true`, so this just"," // forces the binding when `serverRouting` and `html5` are both falsy."," if (!this.get('serverRouting')) {"," this._pjaxBindUI();"," }"," },",""," // TODO: `destructor` to destroy the `activeView`?",""," // -- Public Methods -------------------------------------------------------",""," /**"," Creates and returns a new view instance using the provided `name` to look up"," the view info metadata defined in the `views` object. The passed-in `config`"," object is passed to the view constructor function.",""," This function also maps a view instance back to its view info metadata.",""," @method createView"," @param {String} name The name of a view defined on the `views` object."," @param {Object} [config] The configuration object passed to the view"," constructor function when creating the new view instance."," @return {View} The new view instance."," @since 3.5.0"," **/"," createView: function (name, config) {"," var viewInfo = this.getViewInfo(name),"," type = (viewInfo && viewInfo.type) || View,"," ViewConstructor, view;",""," // Looks for a namespaced constructor function on `Y`."," ViewConstructor = Lang.isString(type) ?"," YObject.getValue(Y, type.split('.')) : type;",""," // Create the view instance and map it with its metadata."," view = new ViewConstructor(config);"," this._viewInfoMap[Y.stamp(view, true)] = viewInfo;",""," return view;"," },",""," /**"," Returns the metadata associated with a view instance or view name defined on"," the `views` object.",""," @method getViewInfo"," @param {View|String} view View instance, or name of a view defined on the"," `views` object."," @return {Object} The metadata for the view, or `undefined` if the view is"," not registered."," @since 3.5.0"," **/"," getViewInfo: function (view) {"," if (Lang.isString(view)) {"," return this.views[view];"," }",""," return view && this._viewInfoMap[Y.stamp(view, true)];"," },",""," /**"," Navigates to the specified URL if there is a route handler that matches. In"," browsers capable of using HTML5 history or when `serverRouting` is falsy,"," the navigation will be enhanced by firing the `navigate` event and having"," the app handle the \"request\". When `serverRouting` is `true`, non-HTML5"," browsers will navigate to the new URL via a full page reload.",""," When there is a route handler for the specified URL and it is being"," navigated to, this method will return `true`, otherwise it will return"," `false`.",""," **Note:** The specified URL _must_ be of the same origin as the current URL,"," otherwise an error will be logged and navigation will not occur. This is"," intended as both a security constraint and a purposely imposed limitation as"," it does not make sense to tell the app to navigate to a URL on a"," different scheme, host, or port.",""," @method navigate"," @param {String} url The URL to navigate to. This must be of the same origin"," as the current URL."," @param {Object} [options] Additional options to configure the navigation."," These are mixed into the `navigate` event facade."," @param {Boolean} [options.replace] Whether or not the current history"," entry will be replaced, or a new entry will be created. Will default"," to `true` if the specified `url` is the same as the current URL."," @param {Boolean} [options.force] Whether the enhanced navigation"," should occur even in browsers without HTML5 history. Will default to"," `true` when `serverRouting` is falsy."," @see PjaxBase.navigate()"," **/"," // Does not override `navigate()` but does use extra `options`.",""," /**"," Renders this application by appending the `viewContainer` node to the"," `container` node if it isn't already a child of the container, and the"," `activeView` will be appended the view container, if it isn't already.",""," You should call this method at least once, usually after the initialization"," of your app instance so the proper DOM structure is setup and optionally"," append the container to the DOM if it's not there already.",""," You may override this method to customize the app's rendering, but you"," should expect that the `viewContainer`'s contents will be modified by the"," app for the purpose of rendering the `activeView` when it changes.",""," @method render"," @chainable"," @see View.render()"," **/"," render: function () {"," var CLASS_NAMES = Y.App.CLASS_NAMES,"," container = this.get('container'),"," viewContainer = this.get('viewContainer'),"," activeView = this.get('activeView'),"," activeViewContainer = activeView && activeView.get('container'),"," areSame = container.compareTo(viewContainer);",""," container.addClass(CLASS_NAMES.app);"," viewContainer.addClass(CLASS_NAMES.views);",""," // Prevents needless shuffling around of nodes and maintains DOM order."," if (activeView && !viewContainer.contains(activeViewContainer)) {"," viewContainer.appendChild(activeViewContainer);"," }",""," // Prevents needless shuffling around of nodes and maintains DOM order."," if (!container.contains(viewContainer) && !areSame) {"," container.appendChild(viewContainer);"," }",""," return this;"," },",""," /**"," Sets which view is active/visible for the application. This will set the"," app's `activeView` attribute to the specified `view`.",""," The `view` will be \"attached\" to this app, meaning it will be both rendered"," into this app's `viewContainer` node and all of its events will bubble to"," the app. The previous `activeView` will be \"detached\" from this app.",""," When a string-name is provided for a view which has been registered on this"," app's `views` object, the referenced metadata will be used and the"," `activeView` will be set to either a preserved view instance, or a new"," instance of the registered view will be created using the specified `config`"," object passed-into this method.",""," A callback function can be specified as either the third or fourth argument,"," and this function will be called after the new `view` becomes the"," `activeView`, is rendered to the `viewContainer`, and is ready to use.",""," @example"," var app = new Y.App({"," views: {"," usersView: {"," // Imagine that `Y.UsersView` has been defined."," type: Y.UsersView"," }"," },",""," users: new Y.ModelList()"," });",""," app.route('/users/', function () {"," this.showView('usersView', {users: this.get('users')});"," });",""," app.render();"," app.navigate('/uses/'); // => Creates a new `Y.UsersView` and shows it.",""," @method showView"," @param {String|View} view The name of a view defined in the `views` object,"," or a view instance which should become this app's `activeView`."," @param {Object} [config] Optional configuration to use when creating a new"," view instance. This config object can also be used to update an existing"," or preserved view's attributes when `options.update` is `true`."," @param {Object} [options] Optional object containing any of the following"," properties:"," @param {Function} [options.callback] Optional callback function to call"," after new `activeView` is ready to use, the function will be passed:"," @param {View} options.callback.view A reference to the new"," `activeView`."," @param {Boolean} [options.prepend=false] Whether the `view` should be"," prepended instead of appended to the `viewContainer`."," @param {Boolean} [options.render] Whether the `view` should be rendered."," **Note:** If no value is specified, a view instance will only be"," rendered if it's newly created by this method."," @param {Boolean} [options.update=false] Whether an existing view should"," have its attributes updated by passing the `config` object to its"," `setAttrs()` method. **Note:** This option does not have an effect if"," the `view` instance is created as a result of calling this method."," @param {Function} [callback] Optional callback Function to call after the"," new `activeView` is ready to use. **Note:** this will override"," `options.callback` and it can be specified as either the third or fourth"," argument. The function will be passed the following:"," @param {View} callback.view A reference to the new `activeView`."," @chainable"," @since 3.5.0"," **/"," showView: function (view, config, options, callback) {"," var viewInfo, created;",""," options || (options = {});",""," // Support the callback function being either the third or fourth arg."," if (callback) {"," options = Y.merge(options, {callback: callback});"," } else if (Lang.isFunction(options)) {"," options = {callback: options};"," }",""," if (Lang.isString(view)) {"," viewInfo = this.getViewInfo(view);",""," // Use the preserved view instance, or create a new view."," // TODO: Maybe we can remove the strict check for `preserve` and"," // assume we'll use a View instance if it is there, and just check"," // `preserve` when detaching?"," if (viewInfo && viewInfo.preserve && viewInfo.instance) {"," view = viewInfo.instance;",""," // Make sure there's a mapping back to the view metadata."," this._viewInfoMap[Y.stamp(view, true)] = viewInfo;"," } else {"," // TODO: Add the app as a bubble target during construction, but"," // make sure to check that it isn't already in `bubbleTargets`!"," // This will allow the app to be notified for about _all_ of the"," // view's events. **Note:** This should _only_ happen if the"," // view is created _after_ `activeViewChange`.",""," view = this.createView(view, config);"," created = true;"," }"," }",""," // Update the specified or preserved `view` when signaled to do so."," // There's no need to updated a view if it was _just_ created."," if (options.update && !created) {"," view.setAttrs(config);"," }",""," // TODO: Hold off on rendering the view until after it has been"," // \"attached\", and move the call to render into `_attachView()`.",""," // When a value is specified for `options.render`, prefer it because it"," // represents the developer's intent. When no value is specified, the"," // `view` will only be rendered if it was just created."," if ('render' in options) {"," if (options.render) {"," view.render();"," }"," } else if (created) {"," view.render();"," }",""," return this._set('activeView', view, {options: options});"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Helper method to attach the view instance to the application by making the"," app a bubble target of the view, append the view to the `viewContainer`, and"," assign it to the `instance` property of the associated view info metadata.",""," @method _attachView"," @param {View} view View to attach."," @param {Boolean} prepend=false Whether the view should be prepended instead"," of appended to the `viewContainer`."," @protected"," @since 3.5.0"," **/"," _attachView: function (view, prepend) {"," if (!view) {"," return;"," }",""," var viewInfo = this.getViewInfo(view),"," viewContainer = this.get('viewContainer');",""," // Bubble the view's events to this app."," view.addTarget(this);",""," // Save the view instance in the `views` registry."," if (viewInfo) {"," viewInfo.instance = view;"," }",""," // TODO: Attach events here for persevered Views?"," // See related TODO in `_detachView`.",""," // TODO: Actually render the view here so that it gets \"attached\" before"," // it gets rendered?",""," // Insert view into the DOM."," viewContainer[prepend ? 'prepend' : 'append'](view.get('container'));"," },",""," /**"," Overrides View's container destruction to deal with the `viewContainer` and"," checks to make sure not to remove and purge the ``.",""," @method _destroyContainer"," @protected"," @see View._destroyContainer()"," **/"," _destroyContainer: function () {"," var CLASS_NAMES = Y.App.CLASS_NAMES,"," container = this.get('container'),"," viewContainer = this.get('viewContainer'),"," areSame = container.compareTo(viewContainer);",""," // We do not want to remove or destroy the ``."," if (Y.one('body').compareTo(container)) {"," // Just clean-up our events listeners."," this.detachEvents();",""," // Clean-up `yui3-app` CSS class on the `container`."," container.removeClass(CLASS_NAMES.app);",""," if (areSame) {"," // Clean-up `yui3-app-views` CSS class on the `container`."," container.removeClass(CLASS_NAMES.views);"," } else {"," // Destroy and purge the `viewContainer`."," viewContainer.remove(true);"," }",""," return;"," }",""," // Remove and purge events from both containers.",""," viewContainer.remove(true);",""," if (!areSame) {"," container.remove(true);"," }"," },",""," /**"," Helper method to detach the view instance from the application by removing"," the application as a bubble target of the view, and either just removing the"," view if it is intended to be preserved, or destroying the instance"," completely.",""," @method _detachView"," @param {View} view View to detach."," @protected"," @since 3.5.0"," **/"," _detachView: function (view) {"," if (!view) {"," return;"," }",""," var viewInfo = this.getViewInfo(view) || {};",""," if (viewInfo.preserve) {"," view.remove();"," // TODO: Detach events here for preserved Views? It is possible that"," // some event subscriptions are made on elements other than the"," // View's `container`."," } else {"," view.destroy({remove: true});",""," // TODO: The following should probably happen automagically from"," // `destroy()` being called! Possibly `removeTarget()` as well.",""," // Remove from view to view-info map."," delete this._viewInfoMap[Y.stamp(view, true)];",""," // Remove from view-info instance property."," if (view === viewInfo.instance) {"," delete viewInfo.instance;"," }"," }",""," view.removeTarget(this);"," },",""," /**"," Getter for the `viewContainer` attribute.",""," @method _getViewContainer"," @param {Node|null} value Current attribute value."," @return {Node} View container node."," @protected"," @since 3.5.0"," **/"," _getViewContainer: function (value) {"," // This wackiness is necessary to enable fully lazy creation of the"," // container node both when no container is specified and when one is"," // specified via a valueFn.",""," if (!value && !this._viewContainer) {"," // Create a default container and set that as the new attribute"," // value. The `this._viewContainer` property prevents infinite"," // recursion."," value = this._viewContainer = this.create();"," this._set('viewContainer', value);"," }",""," return value;"," },",""," /**"," Provides the default value for the `html5` attribute.",""," The value returned is dependent on the value of the `serverRouting`"," attribute. When `serverRouting` is explicit set to `false` (not just falsy),"," the default value for `html5` will be set to `false` for *all* browsers.",""," When `serverRouting` is `true` or `undefined` the returned value will be"," dependent on the browser's capability of using HTML5 history.",""," @method _initHtml5"," @return {Boolean} Whether or not HTML5 history should be used."," @protected"," @since 3.5.0"," **/"," _initHtml5: function () {"," // When `serverRouting` is explicitly set to `false` (not just falsy),"," // forcing hash-based URLs in all browsers."," if (this.get('serverRouting') === false) {"," return false;"," }",""," // Defaults to whether or not the browser supports HTML5 history."," return Router.html5;"," },",""," /**"," Determines if the specified `view` is configured as a child of the specified"," `parent` view. This requires both views to be either named-views, or view"," instances created using configuration data that exists in the `views`"," object, e.g. created by the `createView()` or `showView()` method.",""," @method _isChildView"," @param {View|String} view The name of a view defined in the `views` object,"," or a view instance."," @param {View|String} parent The name of a view defined in the `views`"," object, or a view instance."," @return {Boolean} Whether the view is configured as a child of the parent."," @protected"," @since 3.5.0"," **/"," _isChildView: function (view, parent) {"," var viewInfo = this.getViewInfo(view),"," parentInfo = this.getViewInfo(parent);",""," if (viewInfo && parentInfo) {"," return this.getViewInfo(viewInfo.parent) === parentInfo;"," }",""," return false;"," },",""," /**"," Determines if the specified `view` is configured as the parent of the"," specified `child` view. This requires both views to be either named-views,"," or view instances created using configuration data that exists in the"," `views` object, e.g. created by the `createView()` or `showView()` method.",""," @method _isParentView"," @param {View|String} view The name of a view defined in the `views` object,"," or a view instance."," @param {View|String} parent The name of a view defined in the `views`"," object, or a view instance."," @return {Boolean} Whether the view is configured as the parent of the child."," @protected"," @since 3.5.0"," **/"," _isParentView: function (view, child) {"," var viewInfo = this.getViewInfo(view),"," childInfo = this.getViewInfo(child);",""," if (viewInfo && childInfo) {"," return this.getViewInfo(childInfo.parent) === viewInfo;"," }",""," return false;"," },",""," /**"," Underlying implementation for `navigate()`.",""," @method _navigate"," @param {String} url The fully-resolved URL that the app should dispatch to"," its route handlers to fulfill the enhanced navigation \"request\", or use to"," update `window.location` in non-HTML5 history capable browsers when"," `serverRouting` is `true`."," @param {Object} [options] Additional options to configure the navigation."," These are mixed into the `navigate` event facade."," @param {Boolean} [options.replace] Whether or not the current history"," entry will be replaced, or a new entry will be created. Will default"," to `true` if the specified `url` is the same as the current URL."," @param {Boolean} [options.force] Whether the enhanced navigation"," should occur even in browsers without HTML5 history. Will default to"," `true` when `serverRouting` is falsy."," @protected"," @see PjaxBase._navigate()"," **/"," _navigate: function (url, options) {"," if (!this.get('serverRouting')) {"," // Force navigation to be enhanced and handled by the app when"," // `serverRouting` is falsy because the server might not be able to"," // properly handle the request."," options = Y.merge({force: true}, options);"," }",""," return PjaxBase.prototype._navigate.call(this, url, options);"," },",""," /**"," Will either save a history entry using `pushState()` or the location hash,"," or gracefully-degrade to sending a request to the server causing a full-page"," reload.",""," Overrides Router's `_save()` method to preform graceful-degradation when the"," app's `serverRouting` is `true` and `html5` is `false` by updating the full"," URL via standard assignment to `window.location` or by calling"," `window.location.replace()`; both of which will cause a request to the"," server resulting in a full-page reload.",""," Otherwise this will just delegate off to Router's `_save()` method allowing"," the client-side enhanced routing to occur.",""," @method _save"," @param {String} [url] URL for the history entry."," @param {Boolean} [replace=false] If `true`, the current history entry will"," be replaced instead of a new one being added."," @chainable"," @protected"," @see Router._save()"," **/"," _save: function (url, replace) {"," var path;",""," // Forces full-path URLs to always be used by modifying"," // `window.location` in non-HTML5 history capable browsers."," if (this.get('serverRouting') && !this.get('html5')) {"," // Perform same-origin check on the specified URL."," if (!this._hasSameOrigin(url)) {"," Y.error('Security error: The new URL must be of the same origin as the current URL.');"," return this;"," }",""," // Either replace the current history entry or create a new one"," // while navigating to the `url`."," if (win) {"," // Results in the URL's full path starting with '/'."," path = this._joinURL(url || '');",""," if (replace) {"," win.location.replace(path);"," } else {"," win.location = path;"," }"," }",""," return this;"," }",""," return Router.prototype._save.apply(this, arguments);"," },",""," /**"," Performs the actual change of this app's `activeView` by attaching the"," `newView` to this app, and detaching the `oldView` from this app using any"," specified `options`.",""," The `newView` is attached to the app by rendering it to the `viewContainer`,"," and making this app a bubble target of its events.",""," The `oldView` is detached from the app by removing it from the"," `viewContainer`, and removing this app as a bubble target for its events."," The `oldView` will either be preserved or properly destroyed.",""," **Note:** The `activeView` attribute is read-only and can be changed by"," calling the `showView()` method.",""," @method _uiSetActiveView"," @param {View} newView The View which is now this app's `activeView`."," @param {View} [oldView] The View which was this app's `activeView`."," @param {Object} [options] Optional object containing any of the following"," properties:"," @param {Function} [options.callback] Optional callback function to call"," after new `activeView` is ready to use, the function will be passed:"," @param {View} options.callback.view A reference to the new"," `activeView`."," @param {Boolean} [options.prepend=false] Whether the `view` should be"," prepended instead of appended to the `viewContainer`."," @param {Boolean} [options.render] Whether the `view` should be rendered."," **Note:** If no value is specified, a view instance will only be"," rendered if it's newly created by this method."," @param {Boolean} [options.update=false] Whether an existing view should"," have its attributes updated by passing the `config` object to its"," `setAttrs()` method. **Note:** This option does not have an effect if"," the `view` instance is created as a result of calling this method."," @protected"," @since 3.5.0"," **/"," _uiSetActiveView: function (newView, oldView, options) {"," options || (options = {});",""," var callback = options.callback,"," isChild = this._isChildView(newView, oldView),"," isParent = !isChild && this._isParentView(newView, oldView),"," prepend = !!options.prepend || isParent;",""," // Prevent detaching (thus removing) the view we want to show. Also hard"," // to animate out and in, the same view."," if (newView === oldView) {"," return callback && callback.call(this, newView);"," }",""," this._attachView(newView, prepend);"," this._detachView(oldView);",""," if (callback) {"," callback.call(this, newView);"," }"," },",""," // -- Protected Event Handlers ---------------------------------------------",""," /**"," Handles the application's `activeViewChange` event (which is fired when the"," `activeView` attribute changes) by detaching the old view, attaching the new"," view.",""," The `activeView` attribute is read-only, so the public API to change its"," value is through the `showView()` method.",""," @method _afterActiveViewChange"," @param {EventFacade} e"," @protected"," @since 3.5.0"," **/"," _afterActiveViewChange: function (e) {"," this._uiSetActiveView(e.newVal, e.prevVal, e.options);"," }","}, {"," ATTRS: {"," /**"," The application's active/visible view.",""," This attribute is read-only, to set the `activeView` use the"," `showView()` method.",""," @attribute activeView"," @type View"," @default null"," @readOnly"," @see App.Base.showView()"," @since 3.5.0"," **/"," activeView: {"," value : null,"," readOnly: true"," },",""," /**"," Container node which represents the application's bounding-box, into"," which this app's content will be rendered.",""," The container node serves as the host for all DOM events attached by the"," app. Delegation is used to handle events on children of the container,"," allowing the container's contents to be re-rendered at any time without"," losing event subscriptions.",""," The default container is the `` Node, but you can override this in"," a subclass, or by passing in a custom `container` config value at"," instantiation time.",""," When `container` is overridden by a subclass or passed as a config"," option at instantiation time, it may be provided as a selector string, a"," DOM element, or a `Y.Node` instance. During initialization, this app's"," `create()` method will be called to convert the container into a"," `Y.Node` instance if it isn't one already and stamp it with the CSS"," class: `\"yui3-app\"`.",""," The container is not added to the page automatically. This allows you to"," have full control over how and when your app is actually rendered to"," the page.",""," @attribute container"," @type HTMLElement|Node|String"," @default Y.one('body')"," @initOnly"," **/"," container: {"," valueFn: function () {"," return Y.one('body');"," }"," },",""," /**"," Whether or not this browser is capable of using HTML5 history.",""," This value is dependent on the value of `serverRouting` and will default"," accordingly.",""," Setting this to `false` will force the use of hash-based history even on"," HTML5 browsers, but please don't do this unless you understand the"," consequences.",""," @attribute html5"," @type Boolean"," @initOnly"," @see serverRouting"," **/"," html5: {"," valueFn: '_initHtml5'"," },",""," /**"," CSS selector string used to filter link click events so that only the"," links which match it will have the enhanced-navigation behavior of pjax"," applied.",""," When a link is clicked and that link matches this selector, navigating"," to the link's `href` URL using the enhanced, pjax, behavior will be"," attempted; and the browser's default way to navigate to new pages will"," be the fallback.",""," By default this selector will match _all_ links on the page.",""," @attribute linkSelector"," @type String|Function"," @default \"a\""," **/"," linkSelector: {"," value: 'a'"," },",""," /**"," Whether or not this application's server is capable of properly routing"," all requests and rendering the initial state in the HTML responses.",""," This can have three different values, each having particular"," implications on how the app will handle routing and navigation:",""," * `undefined`: The best form of URLs will be chosen based on the"," capabilities of the browser. Given no information about the server"," environmentm a balanced approach to routing and navigation is"," chosen.",""," The server should be capable of handling full-path requests, since"," full-URLs will be generated by browsers using HTML5 history. If this"," is a client-side-only app the server could handle full-URL requests"," by sending a redirect back to the root with a hash-based URL, e.g:",""," Request: http://example.com/users/1"," Redirect to: http://example.com/#/users/1",""," * `true`: The server is *fully* capable of properly handling requests"," to all full-path URLs the app can produce.",""," This is the best option for progressive-enhancement because it will"," cause **all URLs to always have full-paths**, which means the server"," will be able to accurately handle all URLs this app produces. e.g.",""," http://example.com/users/1",""," To meet this strict full-URL requirement, browsers which are not"," capable of using HTML5 history will make requests to the server"," resulting in full-page reloads.",""," * `false`: The server is *not* capable of properly handling requests"," to all full-path URLs the app can produce, therefore all routing"," will be handled by this App instance.",""," Be aware that this will cause **all URLs to always be hash-based**,"," even in browsers that are capable of using HTML5 history. e.g.",""," http://example.com/#/users/1",""," A single-page or client-side-only app where the server sends a"," \"shell\" page with JavaScript to the client might have this"," restriction. If you're setting this to `false`, read the following:",""," **Note:** When this is set to `false`, the server will *never* receive"," the full URL because browsers do not send the fragment-part to the"," server, that is everything after and including the \"#\".",""," Consider the following example:",""," URL shown in browser: http://example.com/#/users/1"," URL sent to server: http://example.com/",""," You should feel bad about hurting our precious web if you forcefully set"," either `serverRouting` or `html5` to `false`, because you're basically"," punching the web in the face here with your lossy URLs! Please make sure"," you know what you're doing and that you understand the implications.",""," Ideally you should always prefer full-path URLs (not /#/foo/), and want"," full-page reloads when the client's browser is not capable of enhancing"," the experience using the HTML5 history APIs. Setting this to `true` is"," the best option for progressive-enhancement (and graceful-degradation).",""," @attribute serverRouting"," @type Boolean"," @default undefined"," @initOnly"," @since 3.5.0"," **/"," serverRouting: {"," valueFn : function () { return Y.App.serverRouting; },"," writeOnce: 'initOnly'"," },",""," /**"," The node into which this app's `views` will be rendered when they become"," the `activeView`.",""," The view container node serves as the container to hold the app's"," `activeView`. Each time the `activeView` is set via `showView()`, the"," previous view will be removed from this node, and the new active view's"," `container` node will be appended.",""," The default view container is a `` Node, but you can override this"," in a subclass, or by passing in a custom `viewContainer` config value at"," instantiation time. The `viewContainer` may be provided as a selector"," string, DOM element, or a `Y.Node` instance (having the `viewContainer`"," and the `container` be the same node is also supported).",""," The app's `render()` method will stamp the view container with the CSS"," class `\"yui3-app-views\"` and append it to the app's `container` node if"," it isn't already, and any `activeView` will be appended to this node if"," it isn't already.",""," @attribute viewContainer"," @type HTMLElement|Node|String"," @default Y.Node.create(this.containerTemplate)"," @initOnly"," @since 3.5.0"," **/"," viewContainer: {"," getter : '_getViewContainer',"," setter : Y.one,"," writeOnce: true"," }"," },",""," /**"," Properties that shouldn't be turned into ad-hoc attributes when passed to"," App's constructor.",""," @property _NON_ATTRS_CFG"," @type Array"," @static"," @protected"," @since 3.5.0"," **/"," _NON_ATTRS_CFG: ['views']","});","","// -- Namespace ----------------------------------------------------------------","Y.namespace('App').Base = AppBase;","","/**","Provides a top-level application component which manages navigation and views.","","This gives you a foundation and structure on which to build your application; it","combines robust URL navigation with powerful routing and flexible view","management.","","`Y.App` is both a namespace and constructor function. The `Y.App` class is","special in that any `Y.App` class extensions that are included in the YUI","instance will be **auto-mixed** on to the `Y.App` class. Consider this example:",""," YUI().use('app-base', 'app-transitions', function (Y) {"," // This will create two YUI Apps, `basicApp` will not have transitions,"," // but `fancyApp` will have transitions support included and turn it on."," var basicApp = new Y.App.Base(),"," fancyApp = new Y.App({transitions: true});"," });","","@class App","@param {Object} [config] The following are configuration properties that can be"," specified _in addition_ to default attribute values and the non-attribute"," properties provided by `Y.Base`:"," @param {Object} [config.views] Hash of view-name to metadata used to"," declaratively describe an application's views and their relationship with"," the app and other views. The views specified here will override any defaults"," provided by the `views` object on the `prototype`.","@constructor","@extends App.Base","@uses App.Content","@uses App.Transitions","@uses PjaxContent","@since 3.5.0","**/","Y.App = Y.mix(Y.Base.create('app', AppBase, []), Y.App, true);","","/**","CSS classes used by `Y.App`.","","@property CLASS_NAMES","@type Object","@default {}","@static","@since 3.6.0","**/","Y.App.CLASS_NAMES = {"," app : getClassName('app'),"," views: getClassName('app', 'views')","};","","/**","Default `serverRouting` attribute value for all apps.","","@property serverRouting","@type Boolean","@default undefined","@static","@since 3.6.0","**/","","","}, '3.7.1', {\"requires\": [\"classnamemanager\", \"pjax-base\", \"router\", \"view\"]});"];
+_yuitest_coverage["build/app-base/app-base.js"].code=["YUI.add('app-base', function (Y, NAME) {","","/**","The App Framework provides simple MVC-like building blocks (models, model lists,","views, and URL-based routing) for writing single-page JavaScript applications.","","@main app","@module app","@since 3.4.0","**/","","/**","Provides a top-level application component which manages navigation and views.","","@module app","@submodule app-base","@since 3.5.0","**/","","// TODO: Better handling of lifecycle for registered views:","//","// * [!] Just redo basically everything with view management so there are no","// pre-`activeViewChange` side effects and handle the rest of these things:","//","// * Seems like any view created via `createView` should listen for the view's","// `destroy` event and use that to remove it from the `_viewsInfoMap`. I","// should look at what ModelList does for Models as a reference.","//","// * Should we have a companion `destroyView()` method? Maybe this wouldn't be","// needed if we have a `getView(name, create)` method, and already doing the","// above? We could do `app.getView('foo').destroy()` and it would be removed","// from the `_viewsInfoMap` as well.","//","// * Should we wait to call a view's `render()` method inside of the","// `_attachView()` method?","//","// * Should named views support a collection of instances instead of just one?","//","","var Lang = Y.Lang,"," YObject = Y.Object,",""," PjaxBase = Y.PjaxBase,"," Router = Y.Router,"," View = Y.View,",""," getClassName = Y.ClassNameManager.getClassName,",""," win = Y.config.win,",""," AppBase;","","/**","Provides a top-level application component which manages navigation and views.","","This gives you a foundation and structure on which to build your application; it","combines robust URL navigation with powerful routing and flexible view","management.","","@class App.Base","@param {Object} [config] The following are configuration properties that can be"," specified _in addition_ to default attribute values and the non-attribute"," properties provided by `Y.Base`:"," @param {Object} [config.views] Hash of view-name to metadata used to"," declaratively describe an application's views and their relationship with"," the app and other views. The views specified here will override any defaults"," provided by the `views` object on the `prototype`.","@constructor","@extends Base","@uses View","@uses Router","@uses PjaxBase","@since 3.5.0","**/","AppBase = Y.Base.create('app', Y.Base, [View, Router, PjaxBase], {"," // -- Public Properties ----------------------------------------------------",""," /**"," Hash of view-name to metadata used to declaratively describe an"," application's views and their relationship with the app and its other views.",""," The view metadata is composed of Objects keyed to a view-name that can have"," any or all of the following properties:",""," * `type`: Function or a string representing the view constructor to use to"," create view instances. If a string is used, the constructor function is"," assumed to be on the `Y` object; e.g. `\"SomeView\"` -> `Y.SomeView`.",""," * `preserve`: Boolean for whether the view instance should be retained. By"," default, the view instance will be destroyed when it is no longer the"," `activeView`. If `true` the view instance will simply be `removed()`"," from the DOM when it is no longer active. This is useful when the view"," is frequently used and may be expensive to re-create.",""," * `parent`: String to another named view in this hash that represents the"," parent view within the application's view hierarchy; e.g. a `\"photo\"`"," view could have `\"album\"` has its `parent` view. This parent/child"," relationship is a useful cue for things like transitions.",""," * `instance`: Used internally to manage the current instance of this named"," view. This can be used if your view instance is created up-front, or if"," you would rather manage the View lifecycle, but you probably should just"," let this be handled for you.",""," If `views` are specified at instantiation time, the metadata in the `views`"," Object here will be used as defaults when creating the instance's `views`.",""," Every `Y.App` instance gets its own copy of a `views` object so this Object"," on the prototype will not be polluted.",""," @example"," // Imagine that `Y.UsersView` and `Y.UserView` have been defined."," var app = new Y.App({"," views: {"," users: {"," type : Y.UsersView,"," preserve: true"," },",""," user: {"," type : Y.UserView,"," parent: 'users'"," }"," }"," });",""," @property views"," @type Object"," @default {}"," @since 3.5.0"," **/"," views: {},",""," // -- Protected Properties -------------------------------------------------",""," /**"," Map of view instance id (via `Y.stamp()`) to view-info object in `views`.",""," This mapping is used to tie a specific view instance back to its metadata by"," adding a reference to the the related view info on the `views` object.",""," @property _viewInfoMap"," @type Object"," @default {}"," @protected"," @since 3.5.0"," **/",""," // -- Lifecycle Methods ----------------------------------------------------"," initializer: function (config) {"," config || (config = {});",""," var views = {};",""," // Merges-in specified view metadata into local `views` object."," function mergeViewConfig(view, name) {"," views[name] = Y.merge(views[name], view);"," }",""," // First, each view in the `views` prototype object gets its metadata"," // merged-in, providing the defaults."," YObject.each(this.views, mergeViewConfig);",""," // Then, each view in the specified `config.views` object gets its"," // metadata merged-in."," YObject.each(config.views, mergeViewConfig);",""," // The resulting hodgepodge of metadata is then stored as the instance's"," // `views` object, and no one's objects were harmed in the making."," this.views = views;"," this._viewInfoMap = {};",""," // Using `bind()` to aid extensibility."," this.after('activeViewChange', Y.bind('_afterActiveViewChange', this));",""," // PjaxBase will bind click events when `html5` is `true`, so this just"," // forces the binding when `serverRouting` and `html5` are both falsy."," if (!this.get('serverRouting')) {"," this._pjaxBindUI();"," }"," },",""," // TODO: `destructor` to destroy the `activeView`?",""," // -- Public Methods -------------------------------------------------------",""," /**"," Creates and returns a new view instance using the provided `name` to look up"," the view info metadata defined in the `views` object. The passed-in `config`"," object is passed to the view constructor function.",""," This function also maps a view instance back to its view info metadata.",""," @method createView"," @param {String} name The name of a view defined on the `views` object."," @param {Object} [config] The configuration object passed to the view"," constructor function when creating the new view instance."," @return {View} The new view instance."," @since 3.5.0"," **/"," createView: function (name, config) {"," var viewInfo = this.getViewInfo(name),"," type = (viewInfo && viewInfo.type) || View,"," ViewConstructor, view;",""," // Looks for a namespaced constructor function on `Y`."," ViewConstructor = Lang.isString(type) ?"," YObject.getValue(Y, type.split('.')) : type;",""," // Create the view instance and map it with its metadata."," view = new ViewConstructor(config);"," this._viewInfoMap[Y.stamp(view, true)] = viewInfo;",""," return view;"," },",""," /**"," Returns the metadata associated with a view instance or view name defined on"," the `views` object.",""," @method getViewInfo"," @param {View|String} view View instance, or name of a view defined on the"," `views` object."," @return {Object} The metadata for the view, or `undefined` if the view is"," not registered."," @since 3.5.0"," **/"," getViewInfo: function (view) {"," if (Lang.isString(view)) {"," return this.views[view];"," }",""," return view && this._viewInfoMap[Y.stamp(view, true)];"," },",""," /**"," Navigates to the specified URL if there is a route handler that matches. In"," browsers capable of using HTML5 history or when `serverRouting` is falsy,"," the navigation will be enhanced by firing the `navigate` event and having"," the app handle the \"request\". When `serverRouting` is `true`, non-HTML5"," browsers will navigate to the new URL via a full page reload.",""," When there is a route handler for the specified URL and it is being"," navigated to, this method will return `true`, otherwise it will return"," `false`.",""," **Note:** The specified URL _must_ be of the same origin as the current URL,"," otherwise an error will be logged and navigation will not occur. This is"," intended as both a security constraint and a purposely imposed limitation as"," it does not make sense to tell the app to navigate to a URL on a"," different scheme, host, or port.",""," @method navigate"," @param {String} url The URL to navigate to. This must be of the same origin"," as the current URL."," @param {Object} [options] Additional options to configure the navigation."," These are mixed into the `navigate` event facade."," @param {Boolean} [options.replace] Whether or not the current history"," entry will be replaced, or a new entry will be created. Will default"," to `true` if the specified `url` is the same as the current URL."," @param {Boolean} [options.force] Whether the enhanced navigation"," should occur even in browsers without HTML5 history. Will default to"," `true` when `serverRouting` is falsy."," @see PjaxBase.navigate()"," **/"," // Does not override `navigate()` but does use extra `options`.",""," /**"," Renders this application by appending the `viewContainer` node to the"," `container` node if it isn't already a child of the container, and the"," `activeView` will be appended the view container, if it isn't already.",""," You should call this method at least once, usually after the initialization"," of your app instance so the proper DOM structure is setup and optionally"," append the container to the DOM if it's not there already.",""," You may override this method to customize the app's rendering, but you"," should expect that the `viewContainer`'s contents will be modified by the"," app for the purpose of rendering the `activeView` when it changes.",""," @method render"," @chainable"," @see View.render()"," **/"," render: function () {"," var CLASS_NAMES = Y.App.CLASS_NAMES,"," container = this.get('container'),"," viewContainer = this.get('viewContainer'),"," activeView = this.get('activeView'),"," activeViewContainer = activeView && activeView.get('container'),"," areSame = container.compareTo(viewContainer);",""," container.addClass(CLASS_NAMES.app);"," viewContainer.addClass(CLASS_NAMES.views);",""," // Prevents needless shuffling around of nodes and maintains DOM order."," if (activeView && !viewContainer.contains(activeViewContainer)) {"," viewContainer.appendChild(activeViewContainer);"," }",""," // Prevents needless shuffling around of nodes and maintains DOM order."," if (!container.contains(viewContainer) && !areSame) {"," container.appendChild(viewContainer);"," }",""," return this;"," },",""," /**"," Sets which view is active/visible for the application. This will set the"," app's `activeView` attribute to the specified `view`.",""," The `view` will be \"attached\" to this app, meaning it will be both rendered"," into this app's `viewContainer` node and all of its events will bubble to"," the app. The previous `activeView` will be \"detached\" from this app.",""," When a string-name is provided for a view which has been registered on this"," app's `views` object, the referenced metadata will be used and the"," `activeView` will be set to either a preserved view instance, or a new"," instance of the registered view will be created using the specified `config`"," object passed-into this method.",""," A callback function can be specified as either the third or fourth argument,"," and this function will be called after the new `view` becomes the"," `activeView`, is rendered to the `viewContainer`, and is ready to use.",""," @example"," var app = new Y.App({"," views: {"," usersView: {"," // Imagine that `Y.UsersView` has been defined."," type: Y.UsersView"," }"," },",""," users: new Y.ModelList()"," });",""," app.route('/users/', function () {"," this.showView('usersView', {users: this.get('users')});"," });",""," app.render();"," app.navigate('/uses/'); // => Creates a new `Y.UsersView` and shows it.",""," @method showView"," @param {String|View} view The name of a view defined in the `views` object,"," or a view instance which should become this app's `activeView`."," @param {Object} [config] Optional configuration to use when creating a new"," view instance. This config object can also be used to update an existing"," or preserved view's attributes when `options.update` is `true`."," @param {Object} [options] Optional object containing any of the following"," properties:"," @param {Function} [options.callback] Optional callback function to call"," after new `activeView` is ready to use, the function will be passed:"," @param {View} options.callback.view A reference to the new"," `activeView`."," @param {Boolean} [options.prepend=false] Whether the `view` should be"," prepended instead of appended to the `viewContainer`."," @param {Boolean} [options.render] Whether the `view` should be rendered."," **Note:** If no value is specified, a view instance will only be"," rendered if it's newly created by this method."," @param {Boolean} [options.update=false] Whether an existing view should"," have its attributes updated by passing the `config` object to its"," `setAttrs()` method. **Note:** This option does not have an effect if"," the `view` instance is created as a result of calling this method."," @param {Function} [callback] Optional callback Function to call after the"," new `activeView` is ready to use. **Note:** this will override"," `options.callback` and it can be specified as either the third or fourth"," argument. The function will be passed the following:"," @param {View} callback.view A reference to the new `activeView`."," @chainable"," @since 3.5.0"," **/"," showView: function (view, config, options, callback) {"," var viewInfo, created;",""," options || (options = {});",""," // Support the callback function being either the third or fourth arg."," if (callback) {"," options = Y.merge(options, {callback: callback});"," } else if (Lang.isFunction(options)) {"," options = {callback: options};"," }",""," if (Lang.isString(view)) {"," viewInfo = this.getViewInfo(view);",""," // Use the preserved view instance, or create a new view."," // TODO: Maybe we can remove the strict check for `preserve` and"," // assume we'll use a View instance if it is there, and just check"," // `preserve` when detaching?"," if (viewInfo && viewInfo.preserve && viewInfo.instance) {"," view = viewInfo.instance;",""," // Make sure there's a mapping back to the view metadata."," this._viewInfoMap[Y.stamp(view, true)] = viewInfo;"," } else {"," // TODO: Add the app as a bubble target during construction, but"," // make sure to check that it isn't already in `bubbleTargets`!"," // This will allow the app to be notified for about _all_ of the"," // view's events. **Note:** This should _only_ happen if the"," // view is created _after_ `activeViewChange`.",""," view = this.createView(view, config);"," created = true;"," }"," }",""," // Update the specified or preserved `view` when signaled to do so."," // There's no need to updated a view if it was _just_ created."," if (options.update && !created) {"," view.setAttrs(config);"," }",""," // TODO: Hold off on rendering the view until after it has been"," // \"attached\", and move the call to render into `_attachView()`.",""," // When a value is specified for `options.render`, prefer it because it"," // represents the developer's intent. When no value is specified, the"," // `view` will only be rendered if it was just created."," if ('render' in options) {"," if (options.render) {"," view.render();"," }"," } else if (created) {"," view.render();"," }",""," return this._set('activeView', view, {options: options});"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Helper method to attach the view instance to the application by making the"," app a bubble target of the view, append the view to the `viewContainer`, and"," assign it to the `instance` property of the associated view info metadata.",""," @method _attachView"," @param {View} view View to attach."," @param {Boolean} prepend=false Whether the view should be prepended instead"," of appended to the `viewContainer`."," @protected"," @since 3.5.0"," **/"," _attachView: function (view, prepend) {"," if (!view) {"," return;"," }",""," var viewInfo = this.getViewInfo(view),"," viewContainer = this.get('viewContainer');",""," // Bubble the view's events to this app."," view.addTarget(this);",""," // Save the view instance in the `views` registry."," if (viewInfo) {"," viewInfo.instance = view;"," }",""," // TODO: Attach events here for persevered Views?"," // See related TODO in `_detachView`.",""," // TODO: Actually render the view here so that it gets \"attached\" before"," // it gets rendered?",""," // Insert view into the DOM."," viewContainer[prepend ? 'prepend' : 'append'](view.get('container'));"," },",""," /**"," Overrides View's container destruction to deal with the `viewContainer` and"," checks to make sure not to remove and purge the ``.",""," @method _destroyContainer"," @protected"," @see View._destroyContainer()"," **/"," _destroyContainer: function () {"," var CLASS_NAMES = Y.App.CLASS_NAMES,"," container = this.get('container'),"," viewContainer = this.get('viewContainer'),"," areSame = container.compareTo(viewContainer);",""," // We do not want to remove or destroy the ``."," if (Y.one('body').compareTo(container)) {"," // Just clean-up our events listeners."," this.detachEvents();",""," // Clean-up `yui3-app` CSS class on the `container`."," container.removeClass(CLASS_NAMES.app);",""," if (areSame) {"," // Clean-up `yui3-app-views` CSS class on the `container`."," container.removeClass(CLASS_NAMES.views);"," } else {"," // Destroy and purge the `viewContainer`."," viewContainer.remove(true);"," }",""," return;"," }",""," // Remove and purge events from both containers.",""," viewContainer.remove(true);",""," if (!areSame) {"," container.remove(true);"," }"," },",""," /**"," Helper method to detach the view instance from the application by removing"," the application as a bubble target of the view, and either just removing the"," view if it is intended to be preserved, or destroying the instance"," completely.",""," @method _detachView"," @param {View} view View to detach."," @protected"," @since 3.5.0"," **/"," _detachView: function (view) {"," if (!view) {"," return;"," }",""," var viewInfo = this.getViewInfo(view) || {};",""," if (viewInfo.preserve) {"," view.remove();"," // TODO: Detach events here for preserved Views? It is possible that"," // some event subscriptions are made on elements other than the"," // View's `container`."," } else {"," view.destroy({remove: true});",""," // TODO: The following should probably happen automagically from"," // `destroy()` being called! Possibly `removeTarget()` as well.",""," // Remove from view to view-info map."," delete this._viewInfoMap[Y.stamp(view, true)];",""," // Remove from view-info instance property."," if (view === viewInfo.instance) {"," delete viewInfo.instance;"," }"," }",""," view.removeTarget(this);"," },",""," /**"," Getter for the `viewContainer` attribute.",""," @method _getViewContainer"," @param {Node|null} value Current attribute value."," @return {Node} View container node."," @protected"," @since 3.5.0"," **/"," _getViewContainer: function (value) {"," // This wackiness is necessary to enable fully lazy creation of the"," // container node both when no container is specified and when one is"," // specified via a valueFn.",""," if (!value && !this._viewContainer) {"," // Create a default container and set that as the new attribute"," // value. The `this._viewContainer` property prevents infinite"," // recursion."," value = this._viewContainer = this.create();"," this._set('viewContainer', value);"," }",""," return value;"," },",""," /**"," Provides the default value for the `html5` attribute.",""," The value returned is dependent on the value of the `serverRouting`"," attribute. When `serverRouting` is explicit set to `false` (not just falsy),"," the default value for `html5` will be set to `false` for *all* browsers.",""," When `serverRouting` is `true` or `undefined` the returned value will be"," dependent on the browser's capability of using HTML5 history.",""," @method _initHtml5"," @return {Boolean} Whether or not HTML5 history should be used."," @protected"," @since 3.5.0"," **/"," _initHtml5: function () {"," // When `serverRouting` is explicitly set to `false` (not just falsy),"," // forcing hash-based URLs in all browsers."," if (this.get('serverRouting') === false) {"," return false;"," }",""," // Defaults to whether or not the browser supports HTML5 history."," return Router.html5;"," },",""," /**"," Determines if the specified `view` is configured as a child of the specified"," `parent` view. This requires both views to be either named-views, or view"," instances created using configuration data that exists in the `views`"," object, e.g. created by the `createView()` or `showView()` method.",""," @method _isChildView"," @param {View|String} view The name of a view defined in the `views` object,"," or a view instance."," @param {View|String} parent The name of a view defined in the `views`"," object, or a view instance."," @return {Boolean} Whether the view is configured as a child of the parent."," @protected"," @since 3.5.0"," **/"," _isChildView: function (view, parent) {"," var viewInfo = this.getViewInfo(view),"," parentInfo = this.getViewInfo(parent);",""," if (viewInfo && parentInfo) {"," return this.getViewInfo(viewInfo.parent) === parentInfo;"," }",""," return false;"," },",""," /**"," Determines if the specified `view` is configured as the parent of the"," specified `child` view. This requires both views to be either named-views,"," or view instances created using configuration data that exists in the"," `views` object, e.g. created by the `createView()` or `showView()` method.",""," @method _isParentView"," @param {View|String} view The name of a view defined in the `views` object,"," or a view instance."," @param {View|String} parent The name of a view defined in the `views`"," object, or a view instance."," @return {Boolean} Whether the view is configured as the parent of the child."," @protected"," @since 3.5.0"," **/"," _isParentView: function (view, child) {"," var viewInfo = this.getViewInfo(view),"," childInfo = this.getViewInfo(child);",""," if (viewInfo && childInfo) {"," return this.getViewInfo(childInfo.parent) === viewInfo;"," }",""," return false;"," },",""," /**"," Underlying implementation for `navigate()`.",""," @method _navigate"," @param {String} url The fully-resolved URL that the app should dispatch to"," its route handlers to fulfill the enhanced navigation \"request\", or use to"," update `window.location` in non-HTML5 history capable browsers when"," `serverRouting` is `true`."," @param {Object} [options] Additional options to configure the navigation."," These are mixed into the `navigate` event facade."," @param {Boolean} [options.replace] Whether or not the current history"," entry will be replaced, or a new entry will be created. Will default"," to `true` if the specified `url` is the same as the current URL."," @param {Boolean} [options.force] Whether the enhanced navigation"," should occur even in browsers without HTML5 history. Will default to"," `true` when `serverRouting` is falsy."," @protected"," @see PjaxBase._navigate()"," **/"," _navigate: function (url, options) {"," if (!this.get('serverRouting')) {"," // Force navigation to be enhanced and handled by the app when"," // `serverRouting` is falsy because the server might not be able to"," // properly handle the request."," options = Y.merge({force: true}, options);"," }",""," return PjaxBase.prototype._navigate.call(this, url, options);"," },",""," /**"," Will either save a history entry using `pushState()` or the location hash,"," or gracefully-degrade to sending a request to the server causing a full-page"," reload.",""," Overrides Router's `_save()` method to preform graceful-degradation when the"," app's `serverRouting` is `true` and `html5` is `false` by updating the full"," URL via standard assignment to `window.location` or by calling"," `window.location.replace()`; both of which will cause a request to the"," server resulting in a full-page reload.",""," Otherwise this will just delegate off to Router's `_save()` method allowing"," the client-side enhanced routing to occur.",""," @method _save"," @param {String} [url] URL for the history entry."," @param {Boolean} [replace=false] If `true`, the current history entry will"," be replaced instead of a new one being added."," @chainable"," @protected"," @see Router._save()"," **/"," _save: function (url, replace) {"," var path;",""," // Forces full-path URLs to always be used by modifying"," // `window.location` in non-HTML5 history capable browsers."," if (this.get('serverRouting') && !this.get('html5')) {"," // Perform same-origin check on the specified URL."," if (!this._hasSameOrigin(url)) {"," Y.error('Security error: The new URL must be of the same origin as the current URL.');"," return this;"," }",""," // Either replace the current history entry or create a new one"," // while navigating to the `url`."," if (win) {"," // Results in the URL's full path starting with '/'."," path = this._joinURL(url || '');",""," if (replace) {"," win.location.replace(path);"," } else {"," win.location = path;"," }"," }",""," return this;"," }",""," return Router.prototype._save.apply(this, arguments);"," },",""," /**"," Performs the actual change of this app's `activeView` by attaching the"," `newView` to this app, and detaching the `oldView` from this app using any"," specified `options`.",""," The `newView` is attached to the app by rendering it to the `viewContainer`,"," and making this app a bubble target of its events.",""," The `oldView` is detached from the app by removing it from the"," `viewContainer`, and removing this app as a bubble target for its events."," The `oldView` will either be preserved or properly destroyed.",""," **Note:** The `activeView` attribute is read-only and can be changed by"," calling the `showView()` method.",""," @method _uiSetActiveView"," @param {View} newView The View which is now this app's `activeView`."," @param {View} [oldView] The View which was this app's `activeView`."," @param {Object} [options] Optional object containing any of the following"," properties:"," @param {Function} [options.callback] Optional callback function to call"," after new `activeView` is ready to use, the function will be passed:"," @param {View} options.callback.view A reference to the new"," `activeView`."," @param {Boolean} [options.prepend=false] Whether the `view` should be"," prepended instead of appended to the `viewContainer`."," @param {Boolean} [options.render] Whether the `view` should be rendered."," **Note:** If no value is specified, a view instance will only be"," rendered if it's newly created by this method."," @param {Boolean} [options.update=false] Whether an existing view should"," have its attributes updated by passing the `config` object to its"," `setAttrs()` method. **Note:** This option does not have an effect if"," the `view` instance is created as a result of calling this method."," @protected"," @since 3.5.0"," **/"," _uiSetActiveView: function (newView, oldView, options) {"," options || (options = {});",""," var callback = options.callback,"," isChild = this._isChildView(newView, oldView),"," isParent = !isChild && this._isParentView(newView, oldView),"," prepend = !!options.prepend || isParent;",""," // Prevent detaching (thus removing) the view we want to show. Also hard"," // to animate out and in, the same view."," if (newView === oldView) {"," return callback && callback.call(this, newView);"," }",""," this._attachView(newView, prepend);"," this._detachView(oldView);",""," if (callback) {"," callback.call(this, newView);"," }"," },",""," // -- Protected Event Handlers ---------------------------------------------",""," /**"," Handles the application's `activeViewChange` event (which is fired when the"," `activeView` attribute changes) by detaching the old view, attaching the new"," view.",""," The `activeView` attribute is read-only, so the public API to change its"," value is through the `showView()` method.",""," @method _afterActiveViewChange"," @param {EventFacade} e"," @protected"," @since 3.5.0"," **/"," _afterActiveViewChange: function (e) {"," this._uiSetActiveView(e.newVal, e.prevVal, e.options);"," }","}, {"," ATTRS: {"," /**"," The application's active/visible view.",""," This attribute is read-only, to set the `activeView` use the"," `showView()` method.",""," @attribute activeView"," @type View"," @default null"," @readOnly"," @see App.Base.showView()"," @since 3.5.0"," **/"," activeView: {"," value : null,"," readOnly: true"," },",""," /**"," Container node which represents the application's bounding-box, into"," which this app's content will be rendered.",""," The container node serves as the host for all DOM events attached by the"," app. Delegation is used to handle events on children of the container,"," allowing the container's contents to be re-rendered at any time without"," losing event subscriptions.",""," The default container is the `` Node, but you can override this in"," a subclass, or by passing in a custom `container` config value at"," instantiation time.",""," When `container` is overridden by a subclass or passed as a config"," option at instantiation time, it may be provided as a selector string, a"," DOM element, or a `Y.Node` instance. During initialization, this app's"," `create()` method will be called to convert the container into a"," `Y.Node` instance if it isn't one already and stamp it with the CSS"," class: `\"yui3-app\"`.",""," The container is not added to the page automatically. This allows you to"," have full control over how and when your app is actually rendered to"," the page.",""," @attribute container"," @type HTMLElement|Node|String"," @default Y.one('body')"," @initOnly"," **/"," container: {"," valueFn: function () {"," return Y.one('body');"," }"," },",""," /**"," Whether or not this browser is capable of using HTML5 history.",""," This value is dependent on the value of `serverRouting` and will default"," accordingly.",""," Setting this to `false` will force the use of hash-based history even on"," HTML5 browsers, but please don't do this unless you understand the"," consequences.",""," @attribute html5"," @type Boolean"," @initOnly"," @see serverRouting"," **/"," html5: {"," valueFn: '_initHtml5'"," },",""," /**"," CSS selector string used to filter link click events so that only the"," links which match it will have the enhanced-navigation behavior of pjax"," applied.",""," When a link is clicked and that link matches this selector, navigating"," to the link's `href` URL using the enhanced, pjax, behavior will be"," attempted; and the browser's default way to navigate to new pages will"," be the fallback.",""," By default this selector will match _all_ links on the page.",""," @attribute linkSelector"," @type String|Function"," @default \"a\""," **/"," linkSelector: {"," value: 'a'"," },",""," /**"," Whether or not this application's server is capable of properly routing"," all requests and rendering the initial state in the HTML responses.",""," This can have three different values, each having particular"," implications on how the app will handle routing and navigation:",""," * `undefined`: The best form of URLs will be chosen based on the"," capabilities of the browser. Given no information about the server"," environmentm a balanced approach to routing and navigation is"," chosen.",""," The server should be capable of handling full-path requests, since"," full-URLs will be generated by browsers using HTML5 history. If this"," is a client-side-only app the server could handle full-URL requests"," by sending a redirect back to the root with a hash-based URL, e.g:",""," Request: http://example.com/users/1"," Redirect to: http://example.com/#/users/1",""," * `true`: The server is *fully* capable of properly handling requests"," to all full-path URLs the app can produce.",""," This is the best option for progressive-enhancement because it will"," cause **all URLs to always have full-paths**, which means the server"," will be able to accurately handle all URLs this app produces. e.g.",""," http://example.com/users/1",""," To meet this strict full-URL requirement, browsers which are not"," capable of using HTML5 history will make requests to the server"," resulting in full-page reloads.",""," * `false`: The server is *not* capable of properly handling requests"," to all full-path URLs the app can produce, therefore all routing"," will be handled by this App instance.",""," Be aware that this will cause **all URLs to always be hash-based**,"," even in browsers that are capable of using HTML5 history. e.g.",""," http://example.com/#/users/1",""," A single-page or client-side-only app where the server sends a"," \"shell\" page with JavaScript to the client might have this"," restriction. If you're setting this to `false`, read the following:",""," **Note:** When this is set to `false`, the server will *never* receive"," the full URL because browsers do not send the fragment-part to the"," server, that is everything after and including the \"#\".",""," Consider the following example:",""," URL shown in browser: http://example.com/#/users/1"," URL sent to server: http://example.com/",""," You should feel bad about hurting our precious web if you forcefully set"," either `serverRouting` or `html5` to `false`, because you're basically"," punching the web in the face here with your lossy URLs! Please make sure"," you know what you're doing and that you understand the implications.",""," Ideally you should always prefer full-path URLs (not /#/foo/), and want"," full-page reloads when the client's browser is not capable of enhancing"," the experience using the HTML5 history APIs. Setting this to `true` is"," the best option for progressive-enhancement (and graceful-degradation).",""," @attribute serverRouting"," @type Boolean"," @default undefined"," @initOnly"," @since 3.5.0"," **/"," serverRouting: {"," valueFn : function () { return Y.App.serverRouting; },"," writeOnce: 'initOnly'"," },",""," /**"," The node into which this app's `views` will be rendered when they become"," the `activeView`.",""," The view container node serves as the container to hold the app's"," `activeView`. Each time the `activeView` is set via `showView()`, the"," previous view will be removed from this node, and the new active view's"," `container` node will be appended.",""," The default view container is a `` Node, but you can override this"," in a subclass, or by passing in a custom `viewContainer` config value at"," instantiation time. The `viewContainer` may be provided as a selector"," string, DOM element, or a `Y.Node` instance (having the `viewContainer`"," and the `container` be the same node is also supported).",""," The app's `render()` method will stamp the view container with the CSS"," class `\"yui3-app-views\"` and append it to the app's `container` node if"," it isn't already, and any `activeView` will be appended to this node if"," it isn't already.",""," @attribute viewContainer"," @type HTMLElement|Node|String"," @default Y.Node.create(this.containerTemplate)"," @initOnly"," @since 3.5.0"," **/"," viewContainer: {"," getter : '_getViewContainer',"," setter : Y.one,"," writeOnce: true"," }"," },",""," /**"," Properties that shouldn't be turned into ad-hoc attributes when passed to"," App's constructor.",""," @property _NON_ATTRS_CFG"," @type Array"," @static"," @protected"," @since 3.5.0"," **/"," _NON_ATTRS_CFG: ['views']","});","","// -- Namespace ----------------------------------------------------------------","Y.namespace('App').Base = AppBase;","","/**","Provides a top-level application component which manages navigation and views.","","This gives you a foundation and structure on which to build your application; it","combines robust URL navigation with powerful routing and flexible view","management.","","`Y.App` is both a namespace and constructor function. The `Y.App` class is","special in that any `Y.App` class extensions that are included in the YUI","instance will be **auto-mixed** on to the `Y.App` class. Consider this example:",""," YUI().use('app-base', 'app-transitions', function (Y) {"," // This will create two YUI Apps, `basicApp` will not have transitions,"," // but `fancyApp` will have transitions support included and turn it on."," var basicApp = new Y.App.Base(),"," fancyApp = new Y.App({transitions: true});"," });","","@class App","@param {Object} [config] The following are configuration properties that can be"," specified _in addition_ to default attribute values and the non-attribute"," properties provided by `Y.Base`:"," @param {Object} [config.views] Hash of view-name to metadata used to"," declaratively describe an application's views and their relationship with"," the app and other views. The views specified here will override any defaults"," provided by the `views` object on the `prototype`.","@constructor","@extends App.Base","@uses App.Content","@uses App.Transitions","@uses PjaxContent","@since 3.5.0","**/","Y.App = Y.mix(Y.Base.create('app', AppBase, []), Y.App, true);","","/**","CSS classes used by `Y.App`.","","@property CLASS_NAMES","@type Object","@default {}","@static","@since 3.6.0","**/","Y.App.CLASS_NAMES = {"," app : getClassName('app'),"," views: getClassName('app', 'views')","};","","/**","Default `serverRouting` attribute value for all apps.","","@property serverRouting","@type Boolean","@default undefined","@static","@since 3.6.0","**/","","","}, '3.7.2', {\"requires\": [\"classnamemanager\", \"pjax-base\", \"router\", \"view\"]});"];
_yuitest_coverage["build/app-base/app-base.js"].lines = {"1":0,"40":0,"75":0,"151":0,"153":0,"156":0,"157":0,"162":0,"166":0,"170":0,"171":0,"174":0,"178":0,"179":0,"202":0,"207":0,"211":0,"212":0,"214":0,"229":0,"230":0,"233":0,"286":0,"293":0,"294":0,"297":0,"298":0,"302":0,"303":0,"306":0,"376":0,"378":0,"381":0,"382":0,"383":0,"384":0,"387":0,"388":0,"394":0,"395":0,"398":0,"406":0,"407":0,"413":0,"414":0,"423":0,"424":0,"425":0,"427":0,"428":0,"431":0,"449":0,"450":0,"453":0,"457":0,"460":0,"461":0,"471":0,"483":0,"489":0,"491":0,"494":0,"496":0,"498":0,"501":0,"504":0,"509":0,"511":0,"512":0,"528":0,"529":0,"532":0,"534":0,"535":0,"540":0,"546":0,"549":0,"550":0,"554":0,"571":0,"575":0,"576":0,"579":0,"600":0,"601":0,"605":0,"624":0,"627":0,"628":0,"631":0,"650":0,"653":0,"654":0,"657":0,"680":0,"684":0,"687":0,"713":0,"717":0,"719":0,"720":0,"721":0,"726":0,"728":0,"730":0,"731":0,"733":0,"737":0,"740":0,"780":0,"782":0,"789":0,"790":0,"793":0,"794":0,"796":0,"797":0,"817":0,"870":0,"985":0,"1036":0,"1071":0,"1082":0};
_yuitest_coverage["build/app-base/app-base.js"].functions = {"mergeViewConfig:156":0,"initializer:150":0,"createView:201":0,"getViewInfo:228":0,"render:285":0,"showView:375":0,"_attachView:448":0,"_destroyContainer:482":0,"_detachView:527":0,"_getViewContainer:566":0,"_initHtml5:597":0,"_isChildView:623":0,"_isParentView:649":0,"_navigate:679":0,"_save:712":0,"_uiSetActiveView:779":0,"_afterActiveViewChange:816":0,"valueFn:869":0,"valueFn:985":0,"(anonymous 1):1":0};
_yuitest_coverage["build/app-base/app-base.js"].coveredLines = 123;
@@ -1277,4 +1277,4 @@ Default `serverRouting` attribute value for all apps.
**/
-}, '3.7.1', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
+}, '3.7.2', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
diff --git a/lib/yuilib/3.7.1/build/app-base/app-base-debug.js b/lib/yuilib/3.7.2/build/app-base/app-base-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-base/app-base-debug.js
rename to lib/yuilib/3.7.2/build/app-base/app-base-debug.js
index ab58ace5c90..bb577175f24 100644
--- a/lib/yuilib/3.7.1/build/app-base/app-base-debug.js
+++ b/lib/yuilib/3.7.2/build/app-base/app-base-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1101,4 +1101,4 @@ Default `serverRouting` attribute value for all apps.
**/
-}, '3.7.1', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
+}, '3.7.2', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
diff --git a/lib/yuilib/3.7.1/build/app-base/app-base-min.js b/lib/yuilib/3.7.2/build/app-base/app-base-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/app-base/app-base-min.js
rename to lib/yuilib/3.7.2/build/app-base/app-base-min.js
index 2d4fc4bb75b..34b378c508c 100644
--- a/lib/yuilib/3.7.1/build/app-base/app-base-min.js
+++ b/lib/yuilib/3.7.2/build/app-base/app-base-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 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.7.1",{requires:["classnamemanager","pjax-base","router","view"]});
+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.7.2",{requires:["classnamemanager","pjax-base","router","view"]});
diff --git a/lib/yuilib/3.7.1/build/app-base/app-base.js b/lib/yuilib/3.7.2/build/app-base/app-base.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-base/app-base.js
rename to lib/yuilib/3.7.2/build/app-base/app-base.js
index ab58ace5c90..bb577175f24 100644
--- a/lib/yuilib/3.7.1/build/app-base/app-base.js
+++ b/lib/yuilib/3.7.2/build/app-base/app-base.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1101,4 +1101,4 @@ Default `serverRouting` attribute value for all apps.
**/
-}, '3.7.1', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
+}, '3.7.2', {"requires": ["classnamemanager", "pjax-base", "router", "view"]});
diff --git a/lib/yuilib/3.7.1/build/app-content/app-content-coverage.js b/lib/yuilib/3.7.2/build/app-content/app-content-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-content/app-content-coverage.js
rename to lib/yuilib/3.7.2/build/app-content/app-content-coverage.js
index b2a27c70474..d6db522a2a8 100644
--- a/lib/yuilib/3.7.1/build/app-content/app-content-coverage.js
+++ b/lib/yuilib/3.7.2/build/app-content/app-content-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/app-content/app-content.js"] = {
path: "build/app-content/app-content.js",
code: []
};
-_yuitest_coverage["build/app-content/app-content.js"].code=["YUI.add('app-content', function (Y, NAME) {","","/**","`Y.App` extension that provides pjax-style content fetching and handling.","","@module app","@submodule app-content","@since 3.7.0","**/","","var PjaxContent = Y.PjaxContent;","","/**","`Y.App` extension that provides pjax-style content fetching and handling.","","This makes it easy to fetch server rendered content for URLs using Ajax. The","HTML content returned from the server will be view-ified and set as the app's","main content, making it seamless to use a mixture of server and client rendered","views.","","When the `\"app-content\"` module is used, it will automatically mix itself into","`Y.App`, and it provides three main features:",""," - **`Y.App.Content.route`**: A stack of middleware which forms a pjax-style"," content route.",""," - **`loadContent()`**: Route middleware which load content from a server. This"," makes an Ajax request for the requested URL, parses the returned content and"," puts it on the route's response object.",""," - **`showContent()`**: Method which provides an easy way to view-ify HTML"," content which should be shown as an app's active/visible view.","","The following is an example of how these features can be used:",""," // Creates a new app and registers the `\"post\"` view."," var app = new Y.App({"," views: {"," post: {type: Y.PostView}"," }"," });",""," // Uses a simple server rendered content route for the About page."," app.route('/about/', Y.App.Content.route);",""," // Uses the `loadContent()` middleware to fetch the contents of the post"," // from the server and shows that content in a `\"post\"` view."," app.route('/posts/:id/', 'loadContent', function (req, res, next) {"," this.showContent(res.content.node, {view: 'post'});"," });","","@class App.Content","@uses PjaxContent","@extensionfor App","@since 3.7.0","**/","function AppContent() {"," PjaxContent.apply(this, arguments);","}","","/**","A stack of middleware which forms a pjax-style content route.","","This route will load the rendered HTML content from the server, then create and","show a new view using those contents.","","@property route","@type Array","@static","@since 3.7.0","**/","AppContent.route = ['loadContent', '_contentRoute'];","","AppContent.prototype = {"," // -- Public Methods -------------------------------------------------------",""," /**"," Sets this app's `activeView` attribute using the specified `content`.",""," This provides an easy way to view-ify HTML content which should be shown as"," this app's active/visible view. This method will determine the appropriate"," view `container` node based on the specified `content`. By default, a new"," `Y.View` instance will be created unless `options.view` is specified.",""," Under the hood, this method calls the `showView()` method, so refer to its"," docs for more information.",""," @method showContent"," @param {HTMLElement|Node|String} content The content to show, it may be"," provided as a selector string, a DOM element, or a `Y.Node` instance."," @param {Object} [options] Optional objects containing any of the following"," properties in addition to any `showView()` options:",""," @param {Object|String} [options.view] The name of a view defined in this"," app's `views`, or an object with the following properties:",""," @param {String} options.view.name The name of a view defined in this"," app's `views`."," @param {Object} [options.view.config] Optional configuration to use when"," creating the new view instance. This config object can also be used"," to update an existing or preserved view's attributes when"," `options.update` is `true`. **Note:** If a `container` is specified,"," it will be overridden by the `content` specified in the first"," argument.",""," @param {Function} [callback] Optional callback function to call after the"," new `activeView` is ready to use. **Note:** this will override"," `options.callback` and it can be specified as either the second or third"," argument. The function will be passed the following:",""," @param {View} callback.view A reference to the new `activeView`.",""," @since 3.7.0"," @see App.showView()"," **/"," showContent: function (content, options, callback) {"," // Makes sure we have a node instance, and will query selector strings."," content = Y.one(content);",""," // Support the callback function being either the second or third arg."," if (typeof options === 'function') {"," options = {callback: options};"," callback = null;"," }",""," // Mix in default option to *not* render the view because presumably we"," // have pre-rendered content here. This also creates a copy so we can"," // modify the object."," options = Y.merge({render: false}, options);",""," var view = options.view || '',"," viewName = typeof view === 'string' ? view : view.name,"," viewConfig = typeof view !== 'string' ? view.config : {},"," viewInfo = this.getViewInfo(viewName),"," container, template, type, ViewConstructor;",""," // Remove `view` from the `options` which will be passed along to the"," // `showView()` method."," delete options.view;",""," // When the specified `content` is a document fragment, we want to see"," // if it only contains a single node, and use that as the content. This"," // checks `childNodes` which will include text nodes."," if (content && content.isFragment() &&"," content.get('childNodes').size() === 1) {",""," content = content.get('firstChild');"," }",""," // When the `content` is an element node (`nodeType` 1), we can use it"," // as-is for the `container`. Otherwise, we'll construct a new container"," // based on the `options.view`'s `containerTemplate`."," if (content && content.get('nodeType') === 1) {"," container = content;"," } else {"," type = (viewInfo && viewInfo.type) || Y.View;",""," // Looks for a namespaced constructor function on `Y`."," ViewConstructor = typeof type === 'string' ?"," Y.Object.getValue(Y, type.split('.')) : type;",""," // Find the correct node template for the view."," template = ViewConstructor.prototype.containerTemplate;"," container = Y.Node.create(template);",""," // Append the document fragment to the newly created `container`"," // node. This is the worst case where we have to create a wrapper"," // node around the `content`."," container.append(content);"," }",""," // Makes sure the view is created using _our_ `container` node."," viewConfig = Y.merge(viewConfig, {container: container});",""," // Finally switch to the new `activeView`. We want to make sure `view`"," // is a string if it's falsy, that way a new view will be created."," return this.showView(viewName, viewConfig, options, callback);"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Provides a default content route which will show a server rendered view.",""," **Note:** This route callback assumes that it's called after the"," `loadContent()` middleware.",""," @method _contentRoute"," @param {Object} req Request object."," @param {Object} res Response Object."," @param {Function} next Function to pass control to the next route callback."," @protected"," @since 3.7.0"," @see Y.App.Content.route"," **/"," _contentRoute: function (req, res, next) {"," var content = res.content,"," doc = Y.config.doc,"," activeViewHandle;",""," // We must have some content to work with."," if (!(content && content.node)) { return next(); }",""," if (content.title && doc) {"," // Make sure the `activeView` does actually change before we go"," // messing with the page title."," activeViewHandle = this.onceAfter('activeViewChange', function () {"," doc.title = content.title;"," });"," }",""," this.showContent(content.node);",""," // Detach the handle just in case."," if (activeViewHandle) {"," activeViewHandle.detach();"," }",""," next();"," }","};","","// Mix statics.","Y.mix(AppContent, PjaxContent);","// Mix prototype.","Y.mix(AppContent, PjaxContent, false, null, 1);","","// -- Namespace ----------------------------------------------------------------","Y.App.Content = AppContent;","Y.Base.mix(Y.App, [AppContent]);","","","}, '3.7.1', {\"requires\": [\"app-base\", \"pjax-content\"]});"];
+_yuitest_coverage["build/app-content/app-content.js"].code=["YUI.add('app-content', function (Y, NAME) {","","/**","`Y.App` extension that provides pjax-style content fetching and handling.","","@module app","@submodule app-content","@since 3.7.0","**/","","var PjaxContent = Y.PjaxContent;","","/**","`Y.App` extension that provides pjax-style content fetching and handling.","","This makes it easy to fetch server rendered content for URLs using Ajax. The","HTML content returned from the server will be view-ified and set as the app's","main content, making it seamless to use a mixture of server and client rendered","views.","","When the `\"app-content\"` module is used, it will automatically mix itself into","`Y.App`, and it provides three main features:",""," - **`Y.App.Content.route`**: A stack of middleware which forms a pjax-style"," content route.",""," - **`loadContent()`**: Route middleware which load content from a server. This"," makes an Ajax request for the requested URL, parses the returned content and"," puts it on the route's response object.",""," - **`showContent()`**: Method which provides an easy way to view-ify HTML"," content which should be shown as an app's active/visible view.","","The following is an example of how these features can be used:",""," // Creates a new app and registers the `\"post\"` view."," var app = new Y.App({"," views: {"," post: {type: Y.PostView}"," }"," });",""," // Uses a simple server rendered content route for the About page."," app.route('/about/', Y.App.Content.route);",""," // Uses the `loadContent()` middleware to fetch the contents of the post"," // from the server and shows that content in a `\"post\"` view."," app.route('/posts/:id/', 'loadContent', function (req, res, next) {"," this.showContent(res.content.node, {view: 'post'});"," });","","@class App.Content","@uses PjaxContent","@extensionfor App","@since 3.7.0","**/","function AppContent() {"," PjaxContent.apply(this, arguments);","}","","/**","A stack of middleware which forms a pjax-style content route.","","This route will load the rendered HTML content from the server, then create and","show a new view using those contents.","","@property route","@type Array","@static","@since 3.7.0","**/","AppContent.route = ['loadContent', '_contentRoute'];","","AppContent.prototype = {"," // -- Public Methods -------------------------------------------------------",""," /**"," Sets this app's `activeView` attribute using the specified `content`.",""," This provides an easy way to view-ify HTML content which should be shown as"," this app's active/visible view. This method will determine the appropriate"," view `container` node based on the specified `content`. By default, a new"," `Y.View` instance will be created unless `options.view` is specified.",""," Under the hood, this method calls the `showView()` method, so refer to its"," docs for more information.",""," @method showContent"," @param {HTMLElement|Node|String} content The content to show, it may be"," provided as a selector string, a DOM element, or a `Y.Node` instance."," @param {Object} [options] Optional objects containing any of the following"," properties in addition to any `showView()` options:",""," @param {Object|String} [options.view] The name of a view defined in this"," app's `views`, or an object with the following properties:",""," @param {String} options.view.name The name of a view defined in this"," app's `views`."," @param {Object} [options.view.config] Optional configuration to use when"," creating the new view instance. This config object can also be used"," to update an existing or preserved view's attributes when"," `options.update` is `true`. **Note:** If a `container` is specified,"," it will be overridden by the `content` specified in the first"," argument.",""," @param {Function} [callback] Optional callback function to call after the"," new `activeView` is ready to use. **Note:** this will override"," `options.callback` and it can be specified as either the second or third"," argument. The function will be passed the following:",""," @param {View} callback.view A reference to the new `activeView`.",""," @since 3.7.0"," @see App.showView()"," **/"," showContent: function (content, options, callback) {"," // Makes sure we have a node instance, and will query selector strings."," content = Y.one(content);",""," // Support the callback function being either the second or third arg."," if (typeof options === 'function') {"," options = {callback: options};"," callback = null;"," }",""," // Mix in default option to *not* render the view because presumably we"," // have pre-rendered content here. This also creates a copy so we can"," // modify the object."," options = Y.merge({render: false}, options);",""," var view = options.view || '',"," viewName = typeof view === 'string' ? view : view.name,"," viewConfig = typeof view !== 'string' ? view.config : {},"," viewInfo = this.getViewInfo(viewName),"," container, template, type, ViewConstructor;",""," // Remove `view` from the `options` which will be passed along to the"," // `showView()` method."," delete options.view;",""," // When the specified `content` is a document fragment, we want to see"," // if it only contains a single node, and use that as the content. This"," // checks `childNodes` which will include text nodes."," if (content && content.isFragment() &&"," content.get('childNodes').size() === 1) {",""," content = content.get('firstChild');"," }",""," // When the `content` is an element node (`nodeType` 1), we can use it"," // as-is for the `container`. Otherwise, we'll construct a new container"," // based on the `options.view`'s `containerTemplate`."," if (content && content.get('nodeType') === 1) {"," container = content;"," } else {"," type = (viewInfo && viewInfo.type) || Y.View;",""," // Looks for a namespaced constructor function on `Y`."," ViewConstructor = typeof type === 'string' ?"," Y.Object.getValue(Y, type.split('.')) : type;",""," // Find the correct node template for the view."," template = ViewConstructor.prototype.containerTemplate;"," container = Y.Node.create(template);",""," // Append the document fragment to the newly created `container`"," // node. This is the worst case where we have to create a wrapper"," // node around the `content`."," container.append(content);"," }",""," // Makes sure the view is created using _our_ `container` node."," viewConfig = Y.merge(viewConfig, {container: container});",""," // Finally switch to the new `activeView`. We want to make sure `view`"," // is a string if it's falsy, that way a new view will be created."," return this.showView(viewName, viewConfig, options, callback);"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Provides a default content route which will show a server rendered view.",""," **Note:** This route callback assumes that it's called after the"," `loadContent()` middleware.",""," @method _contentRoute"," @param {Object} req Request object."," @param {Object} res Response Object."," @param {Function} next Function to pass control to the next route callback."," @protected"," @since 3.7.0"," @see Y.App.Content.route"," **/"," _contentRoute: function (req, res, next) {"," var content = res.content,"," doc = Y.config.doc,"," activeViewHandle;",""," // We must have some content to work with."," if (!(content && content.node)) { return next(); }",""," if (content.title && doc) {"," // Make sure the `activeView` does actually change before we go"," // messing with the page title."," activeViewHandle = this.onceAfter('activeViewChange', function () {"," doc.title = content.title;"," });"," }",""," this.showContent(content.node);",""," // Detach the handle just in case."," if (activeViewHandle) {"," activeViewHandle.detach();"," }",""," next();"," }","};","","// Mix statics.","Y.mix(AppContent, PjaxContent);","// Mix prototype.","Y.mix(AppContent, PjaxContent, false, null, 1);","","// -- Namespace ----------------------------------------------------------------","Y.App.Content = AppContent;","Y.Base.mix(Y.App, [AppContent]);","","","}, '3.7.2', {\"requires\": [\"app-base\", \"pjax-content\"]});"];
_yuitest_coverage["build/app-content/app-content.js"].lines = {"1":0,"11":0,"57":0,"58":0,"72":0,"74":0,"118":0,"121":0,"122":0,"123":0,"129":0,"131":0,"139":0,"144":0,"147":0,"153":0,"154":0,"156":0,"159":0,"163":0,"164":0,"169":0,"173":0,"177":0,"197":0,"202":0,"204":0,"207":0,"208":0,"212":0,"215":0,"216":0,"219":0,"224":0,"226":0,"229":0,"230":0};
_yuitest_coverage["build/app-content/app-content.js"].functions = {"AppContent:57":0,"showContent:116":0,"(anonymous 2):207":0,"_contentRoute:196":0,"(anonymous 1):1":0};
_yuitest_coverage["build/app-content/app-content.js"].coveredLines = 37;
@@ -311,4 +311,4 @@ _yuitest_coverline("build/app-content/app-content.js", 230);
Y.Base.mix(Y.App, [AppContent]);
-}, '3.7.1', {"requires": ["app-base", "pjax-content"]});
+}, '3.7.2', {"requires": ["app-base", "pjax-content"]});
diff --git a/lib/yuilib/3.7.1/build/app-content/app-content-debug.js b/lib/yuilib/3.7.2/build/app-content/app-content-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-content/app-content-debug.js
rename to lib/yuilib/3.7.2/build/app-content/app-content-debug.js
index c7003e7339d..79da7ffe18d 100644
--- a/lib/yuilib/3.7.1/build/app-content/app-content-debug.js
+++ b/lib/yuilib/3.7.2/build/app-content/app-content-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -236,4 +236,4 @@ Y.App.Content = AppContent;
Y.Base.mix(Y.App, [AppContent]);
-}, '3.7.1', {"requires": ["app-base", "pjax-content"]});
+}, '3.7.2', {"requires": ["app-base", "pjax-content"]});
diff --git a/lib/yuilib/3.7.1/build/app-content/app-content-min.js b/lib/yuilib/3.7.2/build/app-content/app-content-min.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/app-content/app-content-min.js
rename to lib/yuilib/3.7.2/build/app-content/app-content-min.js
index 97070dfc548..62fa8d45345 100644
--- a/lib/yuilib/3.7.1/build/app-content/app-content-min.js
+++ b/lib/yuilib/3.7.2/build/app-content/app-content-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 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()}},e.mix(r,n),e.mix(r,n,!1,null,1),e.App.Content=r,e.Base.mix(e.App,[r])},"3.7.1",{requires:["app-base","pjax-content"]});
+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()}},e.mix(r,n),e.mix(r,n,!1,null,1),e.App.Content=r,e.Base.mix(e.App,[r])},"3.7.2",{requires:["app-base","pjax-content"]});
diff --git a/lib/yuilib/3.7.1/build/app-content/app-content.js b/lib/yuilib/3.7.2/build/app-content/app-content.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-content/app-content.js
rename to lib/yuilib/3.7.2/build/app-content/app-content.js
index c7003e7339d..79da7ffe18d 100644
--- a/lib/yuilib/3.7.1/build/app-content/app-content.js
+++ b/lib/yuilib/3.7.2/build/app-content/app-content.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -236,4 +236,4 @@ Y.App.Content = AppContent;
Y.Base.mix(Y.App, [AppContent]);
-}, '3.7.1', {"requires": ["app-base", "pjax-content"]});
+}, '3.7.2', {"requires": ["app-base", "pjax-content"]});
diff --git a/lib/yuilib/3.7.1/build/app-transitions-css/app-transitions-css-min.css b/lib/yuilib/3.7.2/build/app-transitions-css/app-transitions-css-min.css
similarity index 96%
rename from lib/yuilib/3.7.1/build/app-transitions-css/app-transitions-css-min.css
rename to lib/yuilib/3.7.2/build/app-transitions-css/app-transitions-css-min.css
index caf1b1e8450..546e5151675 100644
--- a/lib/yuilib/3.7.1/build/app-transitions-css/app-transitions-css-min.css
+++ b/lib/yuilib/3.7.2/build/app-transitions-css/app-transitions-css-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/app-transitions-css/app-transitions-css.css b/lib/yuilib/3.7.2/build/app-transitions-css/app-transitions-css.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/app-transitions-css/app-transitions-css.css
rename to lib/yuilib/3.7.2/build/app-transitions-css/app-transitions-css.css
index 6db1477338d..4c6917d7fb7 100644
--- a/lib/yuilib/3.7.1/build/app-transitions-css/app-transitions-css.css
+++ b/lib/yuilib/3.7.2/build/app-transitions-css/app-transitions-css.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native-coverage.js b/lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native-coverage.js
rename to lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native-coverage.js
index e708e9512ba..46fade8a02c 100644
--- a/lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native-coverage.js
+++ b/lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/app-transitions-native/app-transitions-native.js"] = {
path: "build/app-transitions-native/app-transitions-native.js",
code: []
};
-_yuitest_coverage["build/app-transitions-native/app-transitions-native.js"].code=["YUI.add('app-transitions-native', function (Y, NAME) {","","/**","Provides the implementation of view transitions for `Y.App.Transitions` in","browsers which support native CSS3 transitions.","","@module app","@submodule app-transitions-native","@since 3.5.0","**/","","var AppTransitions = Y.App.Transitions;","","/**","Provides the implementation of view transitions for `Y.App.Transitions` in","browsers which support native CSS3 transitions.","","When this module is used, `Y.App.TransitionsNative` will automatically mix","itself in to `Y.App`.","","@class App.TransitionsNative","@extensionfor App","@since 3.5.0","**/","function AppTransitionsNative() {}","","AppTransitionsNative.prototype = {"," // -- Protected Properties -------------------------------------------------",""," /**"," Whether this app is currently transitioning its `activeView`.",""," @property _transitioning"," @type Boolean"," @default false"," @protected"," @since 3.5.0"," **/",""," /**"," A queue that holds pending calls to this app's `_uiTransitionActiveView()`"," method.",""," @property _viewTransitionQueue"," @type Array"," @default []"," @protected"," @since 3.5.0"," **/",""," // -- Lifecycle Methods ----------------------------------------------------",""," initializer: function () {"," this._transitioning = false;"," this._viewTransitionQueue = [];",""," // TODO: Consider the AOP approach that `Plugin.WidgetAnim` uses."," Y.Do.before(this._queueActiveView, this, '_uiSetActiveView');"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Dequeues any pending calls to `_uiTransitionActiveView()`.",""," **Note:** When there is more than one queued transition, only the most"," recent `activeView` change will be visually transitioned, while the others"," will have their `transition` option overridden to `false`.",""," @method _dequeueActiveView"," @protected"," @since 3.5.0"," **/"," _dequeueActiveView: function () {"," var queue = this._viewTransitionQueue,"," transition = queue.shift(),"," options;",""," if (transition) {"," // When items are still left in the queue, override the transition"," // so it does not run."," if (queue.length) {"," // Overrides `transition` option and splices in the new options."," options = Y.merge(transition[2], {transition: false});"," transition.splice(2, 1, options);"," }",""," this._uiTransitionActiveView.apply(this, transition);"," }"," },",""," /**"," Returns an object containing a named fx for both `viewIn` and `viewOut`"," based on the relationship between the specified `newView` and `oldView`.",""," @method _getFx"," @param {View} newView The view being transitioned-in."," @param {View} oldView The view being transitioned-out."," @param {String} [transition] The preferred transition to use."," @return {Object} An object containing a named fx for both `viewIn` and"," `viewOut`."," @protected"," @since 3.5.0"," **/"," _getFx: function (newView, oldView, transition) {"," var fx = AppTransitions.FX,"," transitions = this.get('transitions');",""," if (transition === false || !transitions) {"," return null;"," }",""," if (transition) {"," return fx[transition];"," }",""," if (this._isChildView(newView, oldView)) {"," return fx[transitions.toChild];"," }",""," if (this._isParentView(newView, oldView)) {"," return fx[transitions.toParent];"," }",""," return fx[transitions.navigate];"," },",""," /**"," Queues calls to `_uiTransitionActiveView()` to make sure a currently running"," transition isn't interrupted.",""," **Note:** This method prevents the default `_uiSetActiveView()` method from"," running.",""," @method _queueActiveView"," @protected"," @since 3.5.0"," **/"," _queueActiveView: function () {"," var args = Y.Array(arguments, 0, true);",""," this._viewTransitionQueue.push(args);",""," if (!this._transitioning) {"," this._dequeueActiveView();"," }",""," return new Y.Do.Prevent();"," },",""," /**"," Performs the actual change of this app's `activeView` by visually"," transitioning between the `newView` and `oldView` using any specified"," `options`.",""," The `newView` is attached to the app by rendering it to the `viewContainer`,"," and making this app a bubble target of its events.",""," The `oldView` is detached from the app by removing it from the"," `viewContainer`, and removing this app as a bubble target for its events."," The `oldView` will either be preserved or properly destroyed.",""," **Note:** This method overrides `_uiSetActiveView()` and provides all of its"," functionality plus supports visual transitions. Also, the `activeView`"," attribute is read-only and can be changed by calling the `showView()`"," method.",""," @method _uiTransitionActiveView"," @param {View} newView The View which is now this app's `activeView`."," @param {View} [oldView] The View which was this app's `activeView`."," @param {Object} [options] Optional object containing any of the following"," properties:"," @param {Function} [options.callback] Optional callback function to call"," after new `activeView` is ready to use, the function will be passed:"," @param {View} options.callback.view A reference to the new"," `activeView`."," @param {Boolean} [options.prepend=false] Whether the `view` should be"," prepended instead of appended to the `viewContainer`."," @param {Boolean} [options.render] Whether the `view` should be rendered."," **Note:** If no value is specified, a view instance will only be"," rendered if it's newly created by this method."," @param {Boolean|String} [options.transition] Optional transition override."," A transition can be specified which will override the default, or"," `false` for no transition."," @param {Boolean} [options.update=false] Whether an existing view should"," have its attributes updated by passing the `config` object to its"," `setAttrs()` method. **Note:** This option does not have an effect if"," the `view` instance is created as a result of calling this method."," @protected"," @since 3.5.0"," **/"," _uiTransitionActiveView: function (newView, oldView, options) {"," options || (options = {});",""," var callback = options.callback,"," container, transitioning, isChild, isParent, prepend,"," fx, fxConfig, transitions;",""," // Quits early when to new and old views are the same."," if (newView === oldView) {"," callback && callback.call(this, newView);",""," this._transitioning = false;"," return this._dequeueActiveView();"," }",""," fx = this._getFx(newView, oldView, options.transition);"," isChild = this._isChildView(newView, oldView);"," isParent = !isChild && this._isParentView(newView, oldView);"," prepend = !!options.prepend || isParent;",""," // Preforms simply attach/detach of the new and old view respectively"," // when there's no transition to perform."," if (!fx) {"," this._attachView(newView, prepend);"," this._detachView(oldView);"," callback && callback.call(this, newView);",""," this._transitioning = false;"," return this._dequeueActiveView();"," }",""," this._transitioning = true;",""," container = this.get('container');"," transitioning = Y.App.CLASS_NAMES.transitioning;",""," container.addClass(transitioning);",""," this._attachView(newView, prepend);",""," // Called when view transitions completed, if none were added this will"," // run right away."," function complete() {"," this._detachView(oldView);"," container.removeClass(transitioning);"," callback && callback.call(this, newView);",""," this._transitioning = false;"," return this._dequeueActiveView();"," }",""," // Setup a new stack to run the view transitions in parallel."," transitions = new Y.Parallel({context: this});"," fxConfig = {"," crossView: !!oldView && !!newView,"," prepended: prepend"," };",""," // Transition the new view first to prevent a gap when sliding."," if (newView && fx.viewIn) {"," newView.get('container')"," .transition(fx.viewIn, fxConfig, transitions.add());"," }",""," if (oldView && fx.viewOut) {"," oldView.get('container')"," .transition(fx.viewOut, fxConfig, transitions.add());"," }",""," transitions.done(complete);"," }","};","","// -- Transition fx ------------------------------------------------------------","Y.mix(Y.Transition.fx, {"," 'app:fadeIn': {"," opacity : 1,"," duration: 0.3,",""," on: {"," start: function (data) {"," var styles = {opacity: 0},"," config = data.config;",""," if (config.crossView && !config.prepended) {"," styles.transform = 'translateX(-100%)';"," }",""," this.setStyles(styles);"," },",""," end: function () {"," this.setStyle('transform', 'translateX(0)');"," }"," }"," },",""," 'app:fadeOut': {"," opacity : 0,"," duration: 0.3,",""," on: {"," start: function (data) {"," var styles = {opacity: 1},"," config = data.config;",""," if (config.crossView && config.prepended) {"," styles.transform = 'translateX(-100%)';"," }",""," this.setStyles(styles);"," },",""," end: function () {"," this.setStyle('transform', 'translateX(0)');"," }"," }"," },",""," 'app:slideLeft': {"," duration : 0.3,"," transform: 'translateX(-100%)',",""," on: {"," start: function () {"," this.setStyles({"," opacity : 1,"," transform: 'translateX(0%)'"," });"," },",""," end: function () {"," this.setStyle('transform', 'translateX(0)');"," }"," }"," },",""," 'app:slideRight': {"," duration : 0.3,"," transform: 'translateX(0)',",""," on: {"," start: function () {"," this.setStyles({"," opacity : 1,"," transform: 'translateX(-100%)'"," });"," },",""," end: function () {"," this.setStyle('transform', 'translateX(0)');"," }"," }"," }","});","","// -- Namespacae ---------------------------------------------------------------","Y.App.TransitionsNative = AppTransitionsNative;","Y.Base.mix(Y.App, [AppTransitionsNative]);","","","}, '3.7.1', {\"requires\": [\"app-transitions\", \"app-transitions-css\", \"parallel\", \"transition\"]});"];
+_yuitest_coverage["build/app-transitions-native/app-transitions-native.js"].code=["YUI.add('app-transitions-native', function (Y, NAME) {","","/**","Provides the implementation of view transitions for `Y.App.Transitions` in","browsers which support native CSS3 transitions.","","@module app","@submodule app-transitions-native","@since 3.5.0","**/","","var AppTransitions = Y.App.Transitions;","","/**","Provides the implementation of view transitions for `Y.App.Transitions` in","browsers which support native CSS3 transitions.","","When this module is used, `Y.App.TransitionsNative` will automatically mix","itself in to `Y.App`.","","@class App.TransitionsNative","@extensionfor App","@since 3.5.0","**/","function AppTransitionsNative() {}","","AppTransitionsNative.prototype = {"," // -- Protected Properties -------------------------------------------------",""," /**"," Whether this app is currently transitioning its `activeView`.",""," @property _transitioning"," @type Boolean"," @default false"," @protected"," @since 3.5.0"," **/",""," /**"," A queue that holds pending calls to this app's `_uiTransitionActiveView()`"," method.",""," @property _viewTransitionQueue"," @type Array"," @default []"," @protected"," @since 3.5.0"," **/",""," // -- Lifecycle Methods ----------------------------------------------------",""," initializer: function () {"," this._transitioning = false;"," this._viewTransitionQueue = [];",""," // TODO: Consider the AOP approach that `Plugin.WidgetAnim` uses."," Y.Do.before(this._queueActiveView, this, '_uiSetActiveView');"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Dequeues any pending calls to `_uiTransitionActiveView()`.",""," **Note:** When there is more than one queued transition, only the most"," recent `activeView` change will be visually transitioned, while the others"," will have their `transition` option overridden to `false`.",""," @method _dequeueActiveView"," @protected"," @since 3.5.0"," **/"," _dequeueActiveView: function () {"," var queue = this._viewTransitionQueue,"," transition = queue.shift(),"," options;",""," if (transition) {"," // When items are still left in the queue, override the transition"," // so it does not run."," if (queue.length) {"," // Overrides `transition` option and splices in the new options."," options = Y.merge(transition[2], {transition: false});"," transition.splice(2, 1, options);"," }",""," this._uiTransitionActiveView.apply(this, transition);"," }"," },",""," /**"," Returns an object containing a named fx for both `viewIn` and `viewOut`"," based on the relationship between the specified `newView` and `oldView`.",""," @method _getFx"," @param {View} newView The view being transitioned-in."," @param {View} oldView The view being transitioned-out."," @param {String} [transition] The preferred transition to use."," @return {Object} An object containing a named fx for both `viewIn` and"," `viewOut`."," @protected"," @since 3.5.0"," **/"," _getFx: function (newView, oldView, transition) {"," var fx = AppTransitions.FX,"," transitions = this.get('transitions');",""," if (transition === false || !transitions) {"," return null;"," }",""," if (transition) {"," return fx[transition];"," }",""," if (this._isChildView(newView, oldView)) {"," return fx[transitions.toChild];"," }",""," if (this._isParentView(newView, oldView)) {"," return fx[transitions.toParent];"," }",""," return fx[transitions.navigate];"," },",""," /**"," Queues calls to `_uiTransitionActiveView()` to make sure a currently running"," transition isn't interrupted.",""," **Note:** This method prevents the default `_uiSetActiveView()` method from"," running.",""," @method _queueActiveView"," @protected"," @since 3.5.0"," **/"," _queueActiveView: function () {"," var args = Y.Array(arguments, 0, true);",""," this._viewTransitionQueue.push(args);",""," if (!this._transitioning) {"," this._dequeueActiveView();"," }",""," return new Y.Do.Prevent();"," },",""," /**"," Performs the actual change of this app's `activeView` by visually"," transitioning between the `newView` and `oldView` using any specified"," `options`.",""," The `newView` is attached to the app by rendering it to the `viewContainer`,"," and making this app a bubble target of its events.",""," The `oldView` is detached from the app by removing it from the"," `viewContainer`, and removing this app as a bubble target for its events."," The `oldView` will either be preserved or properly destroyed.",""," **Note:** This method overrides `_uiSetActiveView()` and provides all of its"," functionality plus supports visual transitions. Also, the `activeView`"," attribute is read-only and can be changed by calling the `showView()`"," method.",""," @method _uiTransitionActiveView"," @param {View} newView The View which is now this app's `activeView`."," @param {View} [oldView] The View which was this app's `activeView`."," @param {Object} [options] Optional object containing any of the following"," properties:"," @param {Function} [options.callback] Optional callback function to call"," after new `activeView` is ready to use, the function will be passed:"," @param {View} options.callback.view A reference to the new"," `activeView`."," @param {Boolean} [options.prepend=false] Whether the `view` should be"," prepended instead of appended to the `viewContainer`."," @param {Boolean} [options.render] Whether the `view` should be rendered."," **Note:** If no value is specified, a view instance will only be"," rendered if it's newly created by this method."," @param {Boolean|String} [options.transition] Optional transition override."," A transition can be specified which will override the default, or"," `false` for no transition."," @param {Boolean} [options.update=false] Whether an existing view should"," have its attributes updated by passing the `config` object to its"," `setAttrs()` method. **Note:** This option does not have an effect if"," the `view` instance is created as a result of calling this method."," @protected"," @since 3.5.0"," **/"," _uiTransitionActiveView: function (newView, oldView, options) {"," options || (options = {});",""," var callback = options.callback,"," container, transitioning, isChild, isParent, prepend,"," fx, fxConfig, transitions;",""," // Quits early when to new and old views are the same."," if (newView === oldView) {"," callback && callback.call(this, newView);",""," this._transitioning = false;"," return this._dequeueActiveView();"," }",""," fx = this._getFx(newView, oldView, options.transition);"," isChild = this._isChildView(newView, oldView);"," isParent = !isChild && this._isParentView(newView, oldView);"," prepend = !!options.prepend || isParent;",""," // Preforms simply attach/detach of the new and old view respectively"," // when there's no transition to perform."," if (!fx) {"," this._attachView(newView, prepend);"," this._detachView(oldView);"," callback && callback.call(this, newView);",""," this._transitioning = false;"," return this._dequeueActiveView();"," }",""," this._transitioning = true;",""," container = this.get('container');"," transitioning = Y.App.CLASS_NAMES.transitioning;",""," container.addClass(transitioning);",""," this._attachView(newView, prepend);",""," // Called when view transitions completed, if none were added this will"," // run right away."," function complete() {"," this._detachView(oldView);"," container.removeClass(transitioning);"," callback && callback.call(this, newView);",""," this._transitioning = false;"," return this._dequeueActiveView();"," }",""," // Setup a new stack to run the view transitions in parallel."," transitions = new Y.Parallel({context: this});"," fxConfig = {"," crossView: !!oldView && !!newView,"," prepended: prepend"," };",""," // Transition the new view first to prevent a gap when sliding."," if (newView && fx.viewIn) {"," newView.get('container')"," .transition(fx.viewIn, fxConfig, transitions.add());"," }",""," if (oldView && fx.viewOut) {"," oldView.get('container')"," .transition(fx.viewOut, fxConfig, transitions.add());"," }",""," transitions.done(complete);"," }","};","","// -- Transition fx ------------------------------------------------------------","Y.mix(Y.Transition.fx, {"," 'app:fadeIn': {"," opacity : 1,"," duration: 0.3,",""," on: {"," start: function (data) {"," var styles = {opacity: 0},"," config = data.config;",""," if (config.crossView && !config.prepended) {"," styles.transform = 'translateX(-100%)';"," }",""," this.setStyles(styles);"," },",""," end: function () {"," this.setStyle('transform', 'translateX(0)');"," }"," }"," },",""," 'app:fadeOut': {"," opacity : 0,"," duration: 0.3,",""," on: {"," start: function (data) {"," var styles = {opacity: 1},"," config = data.config;",""," if (config.crossView && config.prepended) {"," styles.transform = 'translateX(-100%)';"," }",""," this.setStyles(styles);"," },",""," end: function () {"," this.setStyle('transform', 'translateX(0)');"," }"," }"," },",""," 'app:slideLeft': {"," duration : 0.3,"," transform: 'translateX(-100%)',",""," on: {"," start: function () {"," this.setStyles({"," opacity : 1,"," transform: 'translateX(0%)'"," });"," },",""," end: function () {"," this.setStyle('transform', 'translateX(0)');"," }"," }"," },",""," 'app:slideRight': {"," duration : 0.3,"," transform: 'translateX(0)',",""," on: {"," start: function () {"," this.setStyles({"," opacity : 1,"," transform: 'translateX(-100%)'"," });"," },",""," end: function () {"," this.setStyle('transform', 'translateX(0)');"," }"," }"," }","});","","// -- Namespacae ---------------------------------------------------------------","Y.App.TransitionsNative = AppTransitionsNative;","Y.Base.mix(Y.App, [AppTransitionsNative]);","","","}, '3.7.2', {\"requires\": [\"app-transitions\", \"app-transitions-css\", \"parallel\", \"transition\"]});"];
_yuitest_coverage["build/app-transitions-native/app-transitions-native.js"].lines = {"1":0,"12":0,"25":0,"27":0,"54":0,"55":0,"58":0,"75":0,"79":0,"82":0,"84":0,"85":0,"88":0,"106":0,"109":0,"110":0,"113":0,"114":0,"117":0,"118":0,"121":0,"122":0,"125":0,"140":0,"142":0,"144":0,"145":0,"148":0,"193":0,"195":0,"200":0,"201":0,"203":0,"204":0,"207":0,"208":0,"209":0,"210":0,"214":0,"215":0,"216":0,"217":0,"219":0,"220":0,"223":0,"225":0,"226":0,"228":0,"230":0,"234":0,"235":0,"236":0,"237":0,"239":0,"240":0,"244":0,"245":0,"251":0,"252":0,"256":0,"257":0,"261":0,"266":0,"273":0,"276":0,"277":0,"280":0,"284":0,"295":0,"298":0,"299":0,"302":0,"306":0,"317":0,"324":0,"335":0,"342":0,"349":0,"350":0};
_yuitest_coverage["build/app-transitions-native/app-transitions-native.js"].functions = {"AppTransitionsNative:25":0,"initializer:53":0,"_dequeueActiveView:74":0,"_getFx:105":0,"_queueActiveView:139":0,"complete:234":0,"_uiTransitionActiveView:192":0,"start:272":0,"end:283":0,"start:294":0,"end:305":0,"start:316":0,"end:323":0,"start:334":0,"end:341":0,"(anonymous 1):1":0};
_yuitest_coverage["build/app-transitions-native/app-transitions-native.js"].coveredLines = 79;
@@ -483,4 +483,4 @@ _yuitest_coverline("build/app-transitions-native/app-transitions-native.js", 350
Y.Base.mix(Y.App, [AppTransitionsNative]);
-}, '3.7.1', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
+}, '3.7.2', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
diff --git a/lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native-debug.js b/lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native-debug.js
rename to lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native-debug.js
index ccf84ebe0bb..acbad37da93 100644
--- a/lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native-debug.js
+++ b/lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -356,4 +356,4 @@ Y.App.TransitionsNative = AppTransitionsNative;
Y.Base.mix(Y.App, [AppTransitionsNative]);
-}, '3.7.1', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
+}, '3.7.2', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
diff --git a/lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native-min.js b/lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native-min.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native-min.js
rename to lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native-min.js
index 421407995a7..8cf213dde00 100644
--- a/lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native-min.js
+++ b/lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 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.7.1",{requires:["app-transitions","app-transitions-css","parallel","transition"]});
+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.7.2",{requires:["app-transitions","app-transitions-css","parallel","transition"]});
diff --git a/lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native.js b/lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native.js
rename to lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native.js
index ccf84ebe0bb..acbad37da93 100644
--- a/lib/yuilib/3.7.1/build/app-transitions-native/app-transitions-native.js
+++ b/lib/yuilib/3.7.2/build/app-transitions-native/app-transitions-native.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -356,4 +356,4 @@ Y.App.TransitionsNative = AppTransitionsNative;
Y.Base.mix(Y.App, [AppTransitionsNative]);
-}, '3.7.1', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
+}, '3.7.2', {"requires": ["app-transitions", "app-transitions-css", "parallel", "transition"]});
diff --git a/lib/yuilib/3.7.1/build/app-transitions/app-transitions-coverage.js b/lib/yuilib/3.7.2/build/app-transitions/app-transitions-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-transitions/app-transitions-coverage.js
rename to lib/yuilib/3.7.2/build/app-transitions/app-transitions-coverage.js
index 5e08bdf94be..7af2fae8401 100644
--- a/lib/yuilib/3.7.1/build/app-transitions/app-transitions-coverage.js
+++ b/lib/yuilib/3.7.2/build/app-transitions/app-transitions-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/app-transitions/app-transitions.js"] = {
path: "build/app-transitions/app-transitions.js",
code: []
};
-_yuitest_coverage["build/app-transitions/app-transitions.js"].code=["YUI.add('app-transitions', function (Y, NAME) {","","/**","`Y.App` extension that provides view transitions in browsers which support","native CSS3 transitions.","","@module app","@submodule app-transitions","@since 3.5.0","**/","","/**","`Y.App` extension that provides view transitions in browsers which support","native CSS3 transitions.","","View transitions provide an nice way to move from one \"page\" to the next that is","both pleasant to the user and helps to communicate a hierarchy between sections","of an application.","","When the `\"app-transitions\"` module is used, it will automatically mix itself","into `Y.App` and transition between `activeView` changes using the following","effects:",""," - **`fade`**: Cross-fades between the old an new active views.",""," - **`slideLeft`**: The old and new active views are positioned next to each"," other and both slide to the left.",""," - **`slideRight`**: The old and new active views are positioned next to each"," other and both slide to the right.","","**Note:** Transitions are an opt-in feature and are enabled via an app's","`transitions` attribute.","","@class App.Transitions","@uses App.TransitionsNative","@extensionfor App","@since 3.5.0","**/","function AppTransitions() {}","","AppTransitions.ATTRS = {"," /**"," Whether or not this application should use view transitions, and if so then"," which ones or `true` for the defaults which are specified by the"," `transitions` prototype property.",""," **Note:** Transitions are an opt-in feature and will only be used in"," browsers which support native CSS3 transitions.",""," @attribute transitions"," @type Boolean|Object"," @default false"," @since 3.5.0"," **/"," transitions: {"," setter: '_setTransitions',"," value : false"," }","};","","/**","Collect of transitions -> fx.","","A transition (e.g. \"fade\") is a simple name given to a configuration of fx to","apply, consisting of `viewIn` and `viewOut` properties who's values are names of","fx registered on `Y.Transition.fx`.","","By default transitions: `fade`, `slideLeft`, and `slideRight` have fx defined.","","@property FX","@type Object","@static","@since 3.5.0","**/","AppTransitions.FX = {"," fade: {"," viewIn : 'app:fadeIn',"," viewOut: 'app:fadeOut'"," },",""," slideLeft: {"," viewIn : 'app:slideLeft',"," viewOut: 'app:slideLeft'"," },",""," slideRight: {"," viewIn : 'app:slideRight',"," viewOut: 'app:slideRight'"," }","};","","AppTransitions.prototype = {"," // -- Public Properties ----------------------------------------------------",""," /**"," Default transitions to use when the `activeView` changes.",""," The following are types of changes for which transitions can be defined that"," correspond to the relationship between the new and previous `activeView`:",""," * `navigate`: The default transition to use when changing the `activeView`"," of the application.",""," * `toChild`: The transition to use when the new `activeView` is configured"," as a child of the previously active view via its `parent` property as"," defined in this app's `views`.",""," * `toParent`: The transition to use when the new `activeView` is"," configured as the `parent` of the previously active view as defined in"," this app's `views`.",""," **Note:** Transitions are an opt-in feature and will only be used in"," browsers which support native CSS3 transitions.",""," @property transitions"," @type Object"," @default"," {"," navigate: 'fade',"," toChild : 'slideLeft',"," toParent: 'slideRight'"," }"," @since 3.5.0"," **/"," transitions: {"," navigate: 'fade',"," toChild : 'slideLeft',"," toParent: 'slideRight'"," },",""," // -- Public Methods -------------------------------------------------------",""," /**"," Sets which view is active/visible for the application. This will set the"," app's `activeView` attribute to the specified `view`.",""," The `view` will be \"attached\" to this app, meaning it will be both rendered"," into this app's `viewContainer` node and all of its events will bubble to"," the app. The previous `activeView` will be \"detached\" from this app.",""," When a string-name is provided for a view which has been registered on this"," app's `views` object, the referenced metadata will be used and the"," `activeView` will be set to either a preserved view instance, or a new"," instance of the registered view will be created using the specified `config`"," object passed-into this method.",""," A callback function can be specified as either the third or fourth argument,"," and this function will be called after the new `view` becomes the"," `activeView`, is rendered to the `viewContainer`, and is ready to use.",""," @example"," var app = new Y.App({"," views: {"," usersView: {"," // Imagine that `Y.UsersView` has been defined."," type: Y.UsersView"," }"," },",""," transitions: true,"," users : new Y.ModelList()"," });",""," app.route('/users/', function () {"," this.showView('usersView', {users: this.get('users')});"," });",""," app.render();"," app.navigate('/uses/');"," // => Creates a new `Y.UsersView` and transitions to it.",""," @method showView"," @param {String|View} view The name of a view defined in the `views` object,"," or a view instance which should become this app's `activeView`."," @param {Object} [config] Optional configuration to use when creating a new"," view instance. This config object can also be used to update an existing"," or preserved view's attributes when `options.update` is `true`."," @param {Object} [options] Optional object containing any of the following"," properties:"," @param {Function} [options.callback] Optional callback function to call"," after new `activeView` is ready to use, the function will be passed:"," @param {View} options.callback.view A reference to the new"," `activeView`."," @param {Boolean} [options.prepend=false] Whether the `view` should be"," prepended instead of appended to the `viewContainer`."," @param {Boolean} [options.render] Whether the `view` should be rendered."," **Note:** If no value is specified, a view instance will only be"," rendered if it's newly created by this method."," @param {Boolean|String} [options.transition] Optional transition override."," A transition can be specified which will override the default, or"," `false` for no transition."," @param {Boolean} [options.update=false] Whether an existing view should"," have its attributes updated by passing the `config` object to its"," `setAttrs()` method. **Note:** This option does not have an effect if"," the `view` instance is created as a result of calling this method."," @param {Function} [callback] Optional callback Function to call after the"," new `activeView` is ready to use. **Note:** this will override"," `options.callback` and it can be specified as either the third or fourth"," argument. The function will be passed the following:"," @param {View} callback.view A reference to the new `activeView`."," @chainable"," @since 3.5.0"," **/"," // Does not override `showView()` but does use `options.transitions`.",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Setter for `transitions` attribute.",""," When specified as `true`, the defaults will be use as specified by the"," `transitions` prototype property.",""," @method _setTransitions"," @param {Boolean|Object} transitions The new `transitions` attribute value."," @return {Mixed} The processed value which represents the new state."," @protected"," @see App.Base.showView()"," @since 3.5.0"," **/"," _setTransitions: function (transitions) {"," var defTransitions = this.transitions;",""," if (transitions && transitions === true) {"," return Y.merge(defTransitions);"," }",""," return transitions;"," }","};","","// -- Namespace ----------------------------------------------------------------","Y.App.Transitions = AppTransitions;","Y.Base.mix(Y.App, [AppTransitions]);","","Y.mix(Y.App.CLASS_NAMES, {"," transitioning: Y.ClassNameManager.getClassName('app', 'transitioning')","});","","","}, '3.7.1', {\"requires\": [\"app-base\"]});"];
+_yuitest_coverage["build/app-transitions/app-transitions.js"].code=["YUI.add('app-transitions', function (Y, NAME) {","","/**","`Y.App` extension that provides view transitions in browsers which support","native CSS3 transitions.","","@module app","@submodule app-transitions","@since 3.5.0","**/","","/**","`Y.App` extension that provides view transitions in browsers which support","native CSS3 transitions.","","View transitions provide an nice way to move from one \"page\" to the next that is","both pleasant to the user and helps to communicate a hierarchy between sections","of an application.","","When the `\"app-transitions\"` module is used, it will automatically mix itself","into `Y.App` and transition between `activeView` changes using the following","effects:",""," - **`fade`**: Cross-fades between the old an new active views.",""," - **`slideLeft`**: The old and new active views are positioned next to each"," other and both slide to the left.",""," - **`slideRight`**: The old and new active views are positioned next to each"," other and both slide to the right.","","**Note:** Transitions are an opt-in feature and are enabled via an app's","`transitions` attribute.","","@class App.Transitions","@uses App.TransitionsNative","@extensionfor App","@since 3.5.0","**/","function AppTransitions() {}","","AppTransitions.ATTRS = {"," /**"," Whether or not this application should use view transitions, and if so then"," which ones or `true` for the defaults which are specified by the"," `transitions` prototype property.",""," **Note:** Transitions are an opt-in feature and will only be used in"," browsers which support native CSS3 transitions.",""," @attribute transitions"," @type Boolean|Object"," @default false"," @since 3.5.0"," **/"," transitions: {"," setter: '_setTransitions',"," value : false"," }","};","","/**","Collect of transitions -> fx.","","A transition (e.g. \"fade\") is a simple name given to a configuration of fx to","apply, consisting of `viewIn` and `viewOut` properties who's values are names of","fx registered on `Y.Transition.fx`.","","By default transitions: `fade`, `slideLeft`, and `slideRight` have fx defined.","","@property FX","@type Object","@static","@since 3.5.0","**/","AppTransitions.FX = {"," fade: {"," viewIn : 'app:fadeIn',"," viewOut: 'app:fadeOut'"," },",""," slideLeft: {"," viewIn : 'app:slideLeft',"," viewOut: 'app:slideLeft'"," },",""," slideRight: {"," viewIn : 'app:slideRight',"," viewOut: 'app:slideRight'"," }","};","","AppTransitions.prototype = {"," // -- Public Properties ----------------------------------------------------",""," /**"," Default transitions to use when the `activeView` changes.",""," The following are types of changes for which transitions can be defined that"," correspond to the relationship between the new and previous `activeView`:",""," * `navigate`: The default transition to use when changing the `activeView`"," of the application.",""," * `toChild`: The transition to use when the new `activeView` is configured"," as a child of the previously active view via its `parent` property as"," defined in this app's `views`.",""," * `toParent`: The transition to use when the new `activeView` is"," configured as the `parent` of the previously active view as defined in"," this app's `views`.",""," **Note:** Transitions are an opt-in feature and will only be used in"," browsers which support native CSS3 transitions.",""," @property transitions"," @type Object"," @default"," {"," navigate: 'fade',"," toChild : 'slideLeft',"," toParent: 'slideRight'"," }"," @since 3.5.0"," **/"," transitions: {"," navigate: 'fade',"," toChild : 'slideLeft',"," toParent: 'slideRight'"," },",""," // -- Public Methods -------------------------------------------------------",""," /**"," Sets which view is active/visible for the application. This will set the"," app's `activeView` attribute to the specified `view`.",""," The `view` will be \"attached\" to this app, meaning it will be both rendered"," into this app's `viewContainer` node and all of its events will bubble to"," the app. The previous `activeView` will be \"detached\" from this app.",""," When a string-name is provided for a view which has been registered on this"," app's `views` object, the referenced metadata will be used and the"," `activeView` will be set to either a preserved view instance, or a new"," instance of the registered view will be created using the specified `config`"," object passed-into this method.",""," A callback function can be specified as either the third or fourth argument,"," and this function will be called after the new `view` becomes the"," `activeView`, is rendered to the `viewContainer`, and is ready to use.",""," @example"," var app = new Y.App({"," views: {"," usersView: {"," // Imagine that `Y.UsersView` has been defined."," type: Y.UsersView"," }"," },",""," transitions: true,"," users : new Y.ModelList()"," });",""," app.route('/users/', function () {"," this.showView('usersView', {users: this.get('users')});"," });",""," app.render();"," app.navigate('/uses/');"," // => Creates a new `Y.UsersView` and transitions to it.",""," @method showView"," @param {String|View} view The name of a view defined in the `views` object,"," or a view instance which should become this app's `activeView`."," @param {Object} [config] Optional configuration to use when creating a new"," view instance. This config object can also be used to update an existing"," or preserved view's attributes when `options.update` is `true`."," @param {Object} [options] Optional object containing any of the following"," properties:"," @param {Function} [options.callback] Optional callback function to call"," after new `activeView` is ready to use, the function will be passed:"," @param {View} options.callback.view A reference to the new"," `activeView`."," @param {Boolean} [options.prepend=false] Whether the `view` should be"," prepended instead of appended to the `viewContainer`."," @param {Boolean} [options.render] Whether the `view` should be rendered."," **Note:** If no value is specified, a view instance will only be"," rendered if it's newly created by this method."," @param {Boolean|String} [options.transition] Optional transition override."," A transition can be specified which will override the default, or"," `false` for no transition."," @param {Boolean} [options.update=false] Whether an existing view should"," have its attributes updated by passing the `config` object to its"," `setAttrs()` method. **Note:** This option does not have an effect if"," the `view` instance is created as a result of calling this method."," @param {Function} [callback] Optional callback Function to call after the"," new `activeView` is ready to use. **Note:** this will override"," `options.callback` and it can be specified as either the third or fourth"," argument. The function will be passed the following:"," @param {View} callback.view A reference to the new `activeView`."," @chainable"," @since 3.5.0"," **/"," // Does not override `showView()` but does use `options.transitions`.",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Setter for `transitions` attribute.",""," When specified as `true`, the defaults will be use as specified by the"," `transitions` prototype property.",""," @method _setTransitions"," @param {Boolean|Object} transitions The new `transitions` attribute value."," @return {Mixed} The processed value which represents the new state."," @protected"," @see App.Base.showView()"," @since 3.5.0"," **/"," _setTransitions: function (transitions) {"," var defTransitions = this.transitions;",""," if (transitions && transitions === true) {"," return Y.merge(defTransitions);"," }",""," return transitions;"," }","};","","// -- Namespace ----------------------------------------------------------------","Y.App.Transitions = AppTransitions;","Y.Base.mix(Y.App, [AppTransitions]);","","Y.mix(Y.App.CLASS_NAMES, {"," transitioning: Y.ClassNameManager.getClassName('app', 'transitioning')","});","","","}, '3.7.2', {\"requires\": [\"app-base\"]});"];
_yuitest_coverage["build/app-transitions/app-transitions.js"].lines = {"1":0,"40":0,"42":0,"76":0,"93":0,"223":0,"225":0,"226":0,"229":0,"234":0,"235":0,"237":0};
_yuitest_coverage["build/app-transitions/app-transitions.js"].functions = {"AppTransitions:40":0,"_setTransitions:222":0,"(anonymous 1):1":0};
_yuitest_coverage["build/app-transitions/app-transitions.js"].coveredLines = 12;
@@ -292,4 +292,4 @@ Y.mix(Y.App.CLASS_NAMES, {
});
-}, '3.7.1', {"requires": ["app-base"]});
+}, '3.7.2', {"requires": ["app-base"]});
diff --git a/lib/yuilib/3.7.1/build/app-transitions/app-transitions-debug.js b/lib/yuilib/3.7.2/build/app-transitions/app-transitions-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-transitions/app-transitions-debug.js
rename to lib/yuilib/3.7.2/build/app-transitions/app-transitions-debug.js
index 25551fef1cc..32c6c0f67a7 100644
--- a/lib/yuilib/3.7.1/build/app-transitions/app-transitions-debug.js
+++ b/lib/yuilib/3.7.2/build/app-transitions/app-transitions-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -245,4 +245,4 @@ Y.mix(Y.App.CLASS_NAMES, {
});
-}, '3.7.1', {"requires": ["app-base"]});
+}, '3.7.2', {"requires": ["app-base"]});
diff --git a/lib/yuilib/3.7.1/build/app-transitions/app-transitions-min.js b/lib/yuilib/3.7.2/build/app-transitions/app-transitions-min.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/app-transitions/app-transitions-min.js
rename to lib/yuilib/3.7.2/build/app-transitions/app-transitions-min.js
index 2966859c913..d7000404009 100644
--- a/lib/yuilib/3.7.1/build/app-transitions/app-transitions-min.js
+++ b/lib/yuilib/3.7.2/build/app-transitions/app-transitions-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 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.7.1",{requires:["app-base"]});
+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.7.2",{requires:["app-base"]});
diff --git a/lib/yuilib/3.7.1/build/app-transitions/app-transitions.js b/lib/yuilib/3.7.2/build/app-transitions/app-transitions.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/app-transitions/app-transitions.js
rename to lib/yuilib/3.7.2/build/app-transitions/app-transitions.js
index 25551fef1cc..32c6c0f67a7 100644
--- a/lib/yuilib/3.7.1/build/app-transitions/app-transitions.js
+++ b/lib/yuilib/3.7.2/build/app-transitions/app-transitions.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -245,4 +245,4 @@ Y.mix(Y.App.CLASS_NAMES, {
});
-}, '3.7.1', {"requires": ["app-base"]});
+}, '3.7.2', {"requires": ["app-base"]});
diff --git a/lib/yuilib/3.7.1/build/array-extras/array-extras-coverage.js b/lib/yuilib/3.7.2/build/array-extras/array-extras-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/array-extras/array-extras-coverage.js
rename to lib/yuilib/3.7.2/build/array-extras/array-extras-coverage.js
index 63e2b6a79a9..7385980ffba 100644
--- a/lib/yuilib/3.7.1/build/array-extras/array-extras-coverage.js
+++ b/lib/yuilib/3.7.2/build/array-extras/array-extras-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/array-extras/array-extras.js"] = {
path: "build/array-extras/array-extras.js",
code: []
};
-_yuitest_coverage["build/array-extras/array-extras.js"].code=["YUI.add('array-extras', function (Y, NAME) {","","/**","Adds additional utility methods to the `Y.Array` class.","","@module collection","@submodule array-extras","**/","","var A = Y.Array,"," L = Y.Lang,"," ArrayProto = Array.prototype;","","/**","Returns the index of the last item in the array that contains the specified","value, or `-1` if the value isn't found.","","@method lastIndexOf","@param {Array} a Array to search in.","@param {Any} val Value to search for.","@param {Number} [fromIndex] Index at which to start searching backwards."," Defaults to the array's length - 1. If negative, it will be taken as an offset"," from the end of the array. If the calculated index is less than 0, the array"," will not be searched and `-1` will be returned.","@return {Number} Index of the item that contains the value, or `-1` if not"," found.","@static","@for Array","**/","A.lastIndexOf = L._isNative(ArrayProto.lastIndexOf) ?"," function(a, val, fromIndex) {"," // An undefined fromIndex is still considered a value by some (all?)"," // native implementations, so we can't pass it unless it's actually"," // specified."," return fromIndex || fromIndex === 0 ? a.lastIndexOf(val, fromIndex) :"," a.lastIndexOf(val);"," } :"," function(a, val, fromIndex) {"," var len = a.length,"," i = len - 1;",""," if (fromIndex || fromIndex === 0) {"," i = Math.min(fromIndex < 0 ? len + fromIndex : fromIndex, len);"," }",""," if (i > -1 && len > 0) {"," for (; i > -1; --i) {"," if (i in a && a[i] === val) {"," return i;"," }"," }"," }",""," return -1;"," };","","/**","Returns a copy of the input array with duplicate items removed.","","Note: If the input array only contains strings, the `Y.Array.dedupe()` method is","a much faster alternative.","","@method unique","@param {Array} array Array to dedupe.","@param {Function} [testFn] Custom function to use to test the equality of two"," values. A truthy return value indicates that the values are equal. A falsy"," return value indicates that the values are not equal.",""," @param {Any} testFn.a First value to compare."," @param {Any} testFn.b Second value to compare."," @param {Number} testFn.index Index of the current item in the original"," array."," @param {Array} testFn.array The original array."," @return {Boolean} _true_ if the items are equal, _false_ otherwise.","","@return {Array} Copy of the input array with duplicate items removed.","@static","**/","A.unique = function (array, testFn) {"," var i = 0,"," len = array.length,"," results = [],"," j, result, resultLen, value;",""," // Note the label here. It's used to jump out of the inner loop when a value"," // is not unique."," outerLoop: for (; i < len; i++) {"," value = array[i];",""," // For each value in the input array, iterate through the result array"," // and check for uniqueness against each result value."," for (j = 0, resultLen = results.length; j < resultLen; j++) {"," result = results[j];",""," // If the test function returns true or there's no test function and"," // the value equals the current result item, stop iterating over the"," // results and continue to the next value in the input array."," if (testFn) {"," if (testFn.call(array, value, result, i, array)) {"," continue outerLoop;"," }"," } else if (value === result) {"," continue outerLoop;"," }"," }",""," // If we get this far, that means the current value is not already in"," // the result array, so add it."," results.push(value);"," }",""," return results;","};","","/**","Executes the supplied function on each item in the array. Returns a new array","containing the items for which the supplied function returned a truthy value.","","@method filter","@param {Array} a Array to filter.","@param {Function} f Function to execute on each item.","@param {Object} [o] Optional context object.","@return {Array} Array of items for which the supplied function returned a"," truthy value (empty if it never returned a truthy value).","@static","*/","A.filter = L._isNative(ArrayProto.filter) ?"," function(a, f, o) {"," return ArrayProto.filter.call(a, f, o);"," } :"," function(a, f, o) {"," var i = 0,"," len = a.length,"," results = [],"," item;",""," for (; i < len; ++i) {"," if (i in a) {"," item = a[i];",""," if (f.call(o, item, i, a)) {"," results.push(item);"," }"," }"," }",""," return results;"," };","","/**","The inverse of `Array.filter()`. Executes the supplied function on each item.","Returns a new array containing the items for which the supplied function","returned `false`.","","@method reject","@param {Array} a the array to iterate.","@param {Function} f the function to execute on each item.","@param {object} [o] Optional context object.","@return {Array} The items for which the supplied function returned `false`.","@static","*/","A.reject = function(a, f, o) {"," return A.filter(a, function(item, i, a) {"," return !f.call(o, item, i, a);"," });","};","","/**","Executes the supplied function on each item in the array. Iteration stops if the","supplied function does not return a truthy value.","","@method every","@param {Array} a the array to iterate.","@param {Function} f the function to execute on each item.","@param {Object} [o] Optional context object.","@return {Boolean} `true` if every item in the array returns `true` from the"," supplied function, `false` otherwise.","@static","*/","A.every = L._isNative(ArrayProto.every) ?"," function(a, f, o) {"," return ArrayProto.every.call(a, f, o);"," } :"," function(a, f, o) {"," for (var i = 0, l = a.length; i < l; ++i) {"," if (i in a && !f.call(o, a[i], i, a)) {"," return false;"," }"," }",""," return true;"," };","","/**","Executes the supplied function on each item in the array and returns a new array","containing all the values returned by the supplied function.","","@example",""," // Convert an array of numbers into an array of strings."," Y.Array.map([1, 2, 3, 4], function (item) {"," return '' + item;"," });"," // => ['1', '2', '3', '4']","","@method map","@param {Array} a the array to iterate.","@param {Function} f the function to execute on each item.","@param {object} [o] Optional context object.","@return {Array} A new array containing the return value of the supplied function"," for each item in the original array.","@static","*/","A.map = L._isNative(ArrayProto.map) ?"," function(a, f, o) {"," return ArrayProto.map.call(a, f, o);"," } :"," function(a, f, o) {"," var i = 0,"," len = a.length,"," results = ArrayProto.concat.call(a);",""," for (; i < len; ++i) {"," if (i in a) {"," results[i] = f.call(o, a[i], i, a);"," }"," }",""," return results;"," };","","","/**","Executes the supplied function on each item in the array, \"folding\" the array","into a single value.","","@method reduce","@param {Array} a Array to iterate.","@param {Any} init Initial value to start with.","@param {Function} f Function to execute on each item. This function should"," update and return the value of the computation. It will receive the following"," arguments:"," @param {Any} f.previousValue Value returned from the previous iteration,"," or the initial value if this is the first iteration."," @param {Any} f.currentValue Value of the current item being iterated."," @param {Number} f.index Index of the current item."," @param {Array} f.array Array being iterated.","@param {Object} [o] Optional context object.","@return {Any} Final result from iteratively applying the given function to each"," element in the array.","@static","*/","A.reduce = L._isNative(ArrayProto.reduce) ?"," function(a, init, f, o) {"," // ES5 Array.reduce doesn't support a thisObject, so we need to"," // implement it manually."," return ArrayProto.reduce.call(a, function(init, item, i, a) {"," return f.call(o, init, item, i, a);"," }, init);"," } :"," function(a, init, f, o) {"," var i = 0,"," len = a.length,"," result = init;",""," for (; i < len; ++i) {"," if (i in a) {"," result = f.call(o, result, a[i], i, a);"," }"," }",""," return result;"," };","","/**","Executes the supplied function on each item in the array, searching for the","first item that matches the supplied function.","","@method find","@param {Array} a the array to search.","@param {Function} f the function to execute on each item. Iteration is stopped"," as soon as this function returns `true`.","@param {Object} [o] Optional context object.","@return {Object} the first item that the supplied function returns `true` for,"," or `null` if it never returns `true`.","@static","*/","A.find = function(a, f, o) {"," for (var i = 0, l = a.length; i < l; i++) {"," if (i in a && f.call(o, a[i], i, a)) {"," return a[i];"," }"," }"," return null;","};","","/**","Iterates over an array, returning a new array of all the elements that match the","supplied regular expression.","","@method grep","@param {Array} a Array to iterate over.","@param {RegExp} pattern Regular expression to test against each item.","@return {Array} All the items in the array that produce a match against the"," supplied regular expression. If no items match, an empty array is returned.","@static","*/","A.grep = function(a, pattern) {"," return A.filter(a, function(item, index) {"," return pattern.test(item);"," });","};","","/**","Partitions an array into two new arrays, one with the items for which the","supplied function returns `true`, and one with the items for which the function","returns `false`.","","@method partition","@param {Array} a Array to iterate over.","@param {Function} f Function to execute for each item in the array. It will"," receive the following arguments:"," @param {Any} f.item Current item."," @param {Number} f.index Index of the current item."," @param {Array} f.array The array being iterated.","@param {Object} [o] Optional execution context.","@return {Object} An object with two properties: `matches` and `rejects`. Each is"," an array containing the items that were selected or rejected by the test"," function (or an empty array if none).","@static","*/","A.partition = function(a, f, o) {"," var results = {"," matches: [],"," rejects: []"," };",""," A.each(a, function(item, index) {"," var set = f.call(o, item, index, a) ? results.matches : results.rejects;"," set.push(item);"," });",""," return results;","};","","/**","Creates an array of arrays by pairing the corresponding elements of two arrays","together into a new array.","","@method zip","@param {Array} a Array to iterate over.","@param {Array} a2 Another array whose values will be paired with values of the"," first array.","@return {Array} An array of arrays formed by pairing each element of the first"," array with an item in the second array having the corresponding index.","@static","*/","A.zip = function(a, a2) {"," var results = [];"," A.each(a, function(item, index) {"," results.push([item, a2[index]]);"," });"," return results;","};","","/**","Flattens an array of nested arrays at any abitrary depth into a single, flat","array.","","@method flatten","@param {Array} a Array with nested arrays to flatten.","@return {Array} An array whose nested arrays have been flattened.","@static","@since 3.7.0","**/","A.flatten = function(a) {"," var result = [],"," i, len, val;",""," // Always return an array."," if (!a) {"," return result;"," }",""," for (i = 0, len = a.length; i < len; ++i) {"," val = a[i];",""," if (L.isArray(val)) {"," // Recusively flattens any nested arrays."," result.push.apply(result, A.flatten(val));"," } else {"," result.push(val);"," }"," }",""," return result;","};","","","}, '3.7.1', {\"requires\": [\"yui-base\"]});"];
+_yuitest_coverage["build/array-extras/array-extras.js"].code=["YUI.add('array-extras', function (Y, NAME) {","","/**","Adds additional utility methods to the `Y.Array` class.","","@module collection","@submodule array-extras","**/","","var A = Y.Array,"," L = Y.Lang,"," ArrayProto = Array.prototype;","","/**","Returns the index of the last item in the array that contains the specified","value, or `-1` if the value isn't found.","","@method lastIndexOf","@param {Array} a Array to search in.","@param {Any} val Value to search for.","@param {Number} [fromIndex] Index at which to start searching backwards."," Defaults to the array's length - 1. If negative, it will be taken as an offset"," from the end of the array. If the calculated index is less than 0, the array"," will not be searched and `-1` will be returned.","@return {Number} Index of the item that contains the value, or `-1` if not"," found.","@static","@for Array","**/","A.lastIndexOf = L._isNative(ArrayProto.lastIndexOf) ?"," function(a, val, fromIndex) {"," // An undefined fromIndex is still considered a value by some (all?)"," // native implementations, so we can't pass it unless it's actually"," // specified."," return fromIndex || fromIndex === 0 ? a.lastIndexOf(val, fromIndex) :"," a.lastIndexOf(val);"," } :"," function(a, val, fromIndex) {"," var len = a.length,"," i = len - 1;",""," if (fromIndex || fromIndex === 0) {"," i = Math.min(fromIndex < 0 ? len + fromIndex : fromIndex, len);"," }",""," if (i > -1 && len > 0) {"," for (; i > -1; --i) {"," if (i in a && a[i] === val) {"," return i;"," }"," }"," }",""," return -1;"," };","","/**","Returns a copy of the input array with duplicate items removed.","","Note: If the input array only contains strings, the `Y.Array.dedupe()` method is","a much faster alternative.","","@method unique","@param {Array} array Array to dedupe.","@param {Function} [testFn] Custom function to use to test the equality of two"," values. A truthy return value indicates that the values are equal. A falsy"," return value indicates that the values are not equal.",""," @param {Any} testFn.a First value to compare."," @param {Any} testFn.b Second value to compare."," @param {Number} testFn.index Index of the current item in the original"," array."," @param {Array} testFn.array The original array."," @return {Boolean} _true_ if the items are equal, _false_ otherwise.","","@return {Array} Copy of the input array with duplicate items removed.","@static","**/","A.unique = function (array, testFn) {"," var i = 0,"," len = array.length,"," results = [],"," j, result, resultLen, value;",""," // Note the label here. It's used to jump out of the inner loop when a value"," // is not unique."," outerLoop: for (; i < len; i++) {"," value = array[i];",""," // For each value in the input array, iterate through the result array"," // and check for uniqueness against each result value."," for (j = 0, resultLen = results.length; j < resultLen; j++) {"," result = results[j];",""," // If the test function returns true or there's no test function and"," // the value equals the current result item, stop iterating over the"," // results and continue to the next value in the input array."," if (testFn) {"," if (testFn.call(array, value, result, i, array)) {"," continue outerLoop;"," }"," } else if (value === result) {"," continue outerLoop;"," }"," }",""," // If we get this far, that means the current value is not already in"," // the result array, so add it."," results.push(value);"," }",""," return results;","};","","/**","Executes the supplied function on each item in the array. Returns a new array","containing the items for which the supplied function returned a truthy value.","","@method filter","@param {Array} a Array to filter.","@param {Function} f Function to execute on each item.","@param {Object} [o] Optional context object.","@return {Array} Array of items for which the supplied function returned a"," truthy value (empty if it never returned a truthy value).","@static","*/","A.filter = L._isNative(ArrayProto.filter) ?"," function(a, f, o) {"," return ArrayProto.filter.call(a, f, o);"," } :"," function(a, f, o) {"," var i = 0,"," len = a.length,"," results = [],"," item;",""," for (; i < len; ++i) {"," if (i in a) {"," item = a[i];",""," if (f.call(o, item, i, a)) {"," results.push(item);"," }"," }"," }",""," return results;"," };","","/**","The inverse of `Array.filter()`. Executes the supplied function on each item.","Returns a new array containing the items for which the supplied function","returned `false`.","","@method reject","@param {Array} a the array to iterate.","@param {Function} f the function to execute on each item.","@param {object} [o] Optional context object.","@return {Array} The items for which the supplied function returned `false`.","@static","*/","A.reject = function(a, f, o) {"," return A.filter(a, function(item, i, a) {"," return !f.call(o, item, i, a);"," });","};","","/**","Executes the supplied function on each item in the array. Iteration stops if the","supplied function does not return a truthy value.","","@method every","@param {Array} a the array to iterate.","@param {Function} f the function to execute on each item.","@param {Object} [o] Optional context object.","@return {Boolean} `true` if every item in the array returns `true` from the"," supplied function, `false` otherwise.","@static","*/","A.every = L._isNative(ArrayProto.every) ?"," function(a, f, o) {"," return ArrayProto.every.call(a, f, o);"," } :"," function(a, f, o) {"," for (var i = 0, l = a.length; i < l; ++i) {"," if (i in a && !f.call(o, a[i], i, a)) {"," return false;"," }"," }",""," return true;"," };","","/**","Executes the supplied function on each item in the array and returns a new array","containing all the values returned by the supplied function.","","@example",""," // Convert an array of numbers into an array of strings."," Y.Array.map([1, 2, 3, 4], function (item) {"," return '' + item;"," });"," // => ['1', '2', '3', '4']","","@method map","@param {Array} a the array to iterate.","@param {Function} f the function to execute on each item.","@param {object} [o] Optional context object.","@return {Array} A new array containing the return value of the supplied function"," for each item in the original array.","@static","*/","A.map = L._isNative(ArrayProto.map) ?"," function(a, f, o) {"," return ArrayProto.map.call(a, f, o);"," } :"," function(a, f, o) {"," var i = 0,"," len = a.length,"," results = ArrayProto.concat.call(a);",""," for (; i < len; ++i) {"," if (i in a) {"," results[i] = f.call(o, a[i], i, a);"," }"," }",""," return results;"," };","","","/**","Executes the supplied function on each item in the array, \"folding\" the array","into a single value.","","@method reduce","@param {Array} a Array to iterate.","@param {Any} init Initial value to start with.","@param {Function} f Function to execute on each item. This function should"," update and return the value of the computation. It will receive the following"," arguments:"," @param {Any} f.previousValue Value returned from the previous iteration,"," or the initial value if this is the first iteration."," @param {Any} f.currentValue Value of the current item being iterated."," @param {Number} f.index Index of the current item."," @param {Array} f.array Array being iterated.","@param {Object} [o] Optional context object.","@return {Any} Final result from iteratively applying the given function to each"," element in the array.","@static","*/","A.reduce = L._isNative(ArrayProto.reduce) ?"," function(a, init, f, o) {"," // ES5 Array.reduce doesn't support a thisObject, so we need to"," // implement it manually."," return ArrayProto.reduce.call(a, function(init, item, i, a) {"," return f.call(o, init, item, i, a);"," }, init);"," } :"," function(a, init, f, o) {"," var i = 0,"," len = a.length,"," result = init;",""," for (; i < len; ++i) {"," if (i in a) {"," result = f.call(o, result, a[i], i, a);"," }"," }",""," return result;"," };","","/**","Executes the supplied function on each item in the array, searching for the","first item that matches the supplied function.","","@method find","@param {Array} a the array to search.","@param {Function} f the function to execute on each item. Iteration is stopped"," as soon as this function returns `true`.","@param {Object} [o] Optional context object.","@return {Object} the first item that the supplied function returns `true` for,"," or `null` if it never returns `true`.","@static","*/","A.find = function(a, f, o) {"," for (var i = 0, l = a.length; i < l; i++) {"," if (i in a && f.call(o, a[i], i, a)) {"," return a[i];"," }"," }"," return null;","};","","/**","Iterates over an array, returning a new array of all the elements that match the","supplied regular expression.","","@method grep","@param {Array} a Array to iterate over.","@param {RegExp} pattern Regular expression to test against each item.","@return {Array} All the items in the array that produce a match against the"," supplied regular expression. If no items match, an empty array is returned.","@static","*/","A.grep = function(a, pattern) {"," return A.filter(a, function(item, index) {"," return pattern.test(item);"," });","};","","/**","Partitions an array into two new arrays, one with the items for which the","supplied function returns `true`, and one with the items for which the function","returns `false`.","","@method partition","@param {Array} a Array to iterate over.","@param {Function} f Function to execute for each item in the array. It will"," receive the following arguments:"," @param {Any} f.item Current item."," @param {Number} f.index Index of the current item."," @param {Array} f.array The array being iterated.","@param {Object} [o] Optional execution context.","@return {Object} An object with two properties: `matches` and `rejects`. Each is"," an array containing the items that were selected or rejected by the test"," function (or an empty array if none).","@static","*/","A.partition = function(a, f, o) {"," var results = {"," matches: [],"," rejects: []"," };",""," A.each(a, function(item, index) {"," var set = f.call(o, item, index, a) ? results.matches : results.rejects;"," set.push(item);"," });",""," return results;","};","","/**","Creates an array of arrays by pairing the corresponding elements of two arrays","together into a new array.","","@method zip","@param {Array} a Array to iterate over.","@param {Array} a2 Another array whose values will be paired with values of the"," first array.","@return {Array} An array of arrays formed by pairing each element of the first"," array with an item in the second array having the corresponding index.","@static","*/","A.zip = function(a, a2) {"," var results = [];"," A.each(a, function(item, index) {"," results.push([item, a2[index]]);"," });"," return results;","};","","/**","Flattens an array of nested arrays at any abitrary depth into a single, flat","array.","","@method flatten","@param {Array} a Array with nested arrays to flatten.","@return {Array} An array whose nested arrays have been flattened.","@static","@since 3.7.0","**/","A.flatten = function(a) {"," var result = [],"," i, len, val;",""," // Always return an array."," if (!a) {"," return result;"," }",""," for (i = 0, len = a.length; i < len; ++i) {"," val = a[i];",""," if (L.isArray(val)) {"," // Recusively flattens any nested arrays."," result.push.apply(result, A.flatten(val));"," } else {"," result.push(val);"," }"," }",""," return result;","};","","","}, '3.7.2', {\"requires\": [\"yui-base\"]});"];
_yuitest_coverage["build/array-extras/array-extras.js"].lines = {"1":0,"10":0,"30":0,"35":0,"39":0,"42":0,"43":0,"46":0,"47":0,"48":0,"49":0,"54":0,"79":0,"80":0,"87":0,"88":0,"92":0,"93":0,"98":0,"99":0,"100":0,"102":0,"103":0,"109":0,"112":0,"127":0,"129":0,"132":0,"137":0,"138":0,"139":0,"141":0,"142":0,"147":0,"162":0,"163":0,"164":0,"180":0,"182":0,"185":0,"186":0,"187":0,"191":0,"214":0,"216":0,"219":0,"223":0,"224":0,"225":0,"229":0,"253":0,"257":0,"258":0,"262":0,"266":0,"267":0,"268":0,"272":0,"288":0,"289":0,"290":0,"291":0,"294":0,"308":0,"309":0,"310":0,"332":0,"333":0,"338":0,"339":0,"340":0,"343":0,"358":0,"359":0,"360":0,"361":0,"363":0,"376":0,"377":0,"381":0,"382":0,"385":0,"386":0,"388":0,"390":0,"392":0,"396":0};
_yuitest_coverage["build/array-extras/array-extras.js"].functions = {"(anonymous 2):31":0,"}:38":0,"unique:79":0,"(anonymous 3):128":0,"}:131":0,"(anonymous 4):163":0,"reject:162":0,"(anonymous 5):181":0,"}:184":0,"(anonymous 6):215":0,"}:218":0,"(anonymous 8):257":0,"(anonymous 7):254":0,"}:261":0,"find:288":0,"(anonymous 9):309":0,"grep:308":0,"(anonymous 10):338":0,"partition:332":0,"(anonymous 11):360":0,"zip:358":0,"flatten:376":0,"(anonymous 1):1":0};
_yuitest_coverage["build/array-extras/array-extras.js"].coveredLines = 87;
@@ -546,4 +546,4 @@ return result;
};
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/array-extras/array-extras-debug.js b/lib/yuilib/3.7.2/build/array-extras/array-extras-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/array-extras/array-extras-debug.js
rename to lib/yuilib/3.7.2/build/array-extras/array-extras-debug.js
index cc5c961db25..0e5aae76b1d 100644
--- a/lib/yuilib/3.7.1/build/array-extras/array-extras-debug.js
+++ b/lib/yuilib/3.7.2/build/array-extras/array-extras-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -403,4 +403,4 @@ A.flatten = function(a) {
};
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/array-extras/array-extras-min.js b/lib/yuilib/3.7.2/build/array-extras/array-extras-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/array-extras/array-extras-min.js
rename to lib/yuilib/3.7.2/build/array-extras/array-extras-min.js
index ad6633ae8a3..db83e0baccf 100644
--- a/lib/yuilib/3.7.1/build/array-extras/array-extras-min.js
+++ b/lib/yuilib/3.7.2/build/array-extras/array-extras-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
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(;n-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(;n= 0; --i) {"," if (comparator.call(this, needle, this.item(i))) {"," this._items.splice(i, 1);"," if (!all) {"," break;"," }"," }"," }",""," return this;"," },",""," /**"," * Default comparator for items stored in this list. Used by remove()."," *"," * @method itemsAreEqual"," * @param { mixed } a item to test equivalence with."," * @param { mixed } b other item to test equivalance."," * @return { Boolean } true if items are deemed equivalent."," * @for ArrayList"," * @deprecated Use ModelList or a custom ArrayList subclass"," */"," itemsAreEqual: function(a, b) {"," return a === b;"," }","","});","","","}, '3.7.1', {\"requires\": [\"arraylist\"]});"];
+_yuitest_coverage["build/arraylist-add/arraylist-add.js"].code=["YUI.add('arraylist-add', function (Y, NAME) {","","/**"," * Collection utilities beyond what is provided in the YUI core"," * @module collection"," * @submodule arraylist-add"," * @deprecated Use ModelList or a custom ArrayList subclass"," */","","/*"," * Adds methods add and remove to Y.ArrayList"," */","Y.mix(Y.ArrayList.prototype, {",""," /**"," * Add a single item to the ArrayList. Does not prevent duplicates."," *"," * @method add"," * @param { mixed } item Item presumably of the same type as others in the"," * ArrayList."," * @param {Number} index (Optional.) Number representing the position at"," * which the item should be inserted."," * @return {ArrayList} the instance."," * @for ArrayList"," * @deprecated Use ModelList or a custom ArrayList subclass"," * @chainable"," */"," add: function(item, index) {"," var items = this._items;",""," if (Y.Lang.isNumber(index)) {"," items.splice(index, 0, item);"," }"," else {"," items.push(item);"," }",""," return this;"," },",""," /**"," * Removes first or all occurrences of an item to the ArrayList. If a"," * comparator is not provided, uses itemsAreEqual method to determine"," * matches."," *"," * @method remove"," * @param { mixed } needle Item to find and remove from the list."," * @param { Boolean } all If true, remove all occurrences."," * @param { Function } comparator optional a/b function to test equivalence."," * @return {ArrayList} the instance."," * @for ArrayList"," * @deprecated Use ModelList or a custom ArrayList subclass"," * @chainable"," */"," remove: function(needle, all, comparator) {"," comparator = comparator || this.itemsAreEqual;",""," for (var i = this._items.length - 1; i >= 0; --i) {"," if (comparator.call(this, needle, this.item(i))) {"," this._items.splice(i, 1);"," if (!all) {"," break;"," }"," }"," }",""," return this;"," },",""," /**"," * Default comparator for items stored in this list. Used by remove()."," *"," * @method itemsAreEqual"," * @param { mixed } a item to test equivalence with."," * @param { mixed } b other item to test equivalance."," * @return { Boolean } true if items are deemed equivalent."," * @for ArrayList"," * @deprecated Use ModelList or a custom ArrayList subclass"," */"," itemsAreEqual: function(a, b) {"," return a === b;"," }","","});","","","}, '3.7.2', {\"requires\": [\"arraylist\"]});"];
_yuitest_coverage["build/arraylist-add/arraylist-add.js"].lines = {"1":0,"13":0,"29":0,"31":0,"32":0,"35":0,"38":0,"56":0,"58":0,"59":0,"60":0,"61":0,"62":0,"67":0,"81":0};
_yuitest_coverage["build/arraylist-add/arraylist-add.js"].functions = {"add:28":0,"remove:55":0,"itemsAreEqual:80":0,"(anonymous 1):1":0};
_yuitest_coverage["build/arraylist-add/arraylist-add.js"].coveredLines = 15;
@@ -142,4 +142,4 @@ return a === b;
});
-}, '3.7.1', {"requires": ["arraylist"]});
+}, '3.7.2', {"requires": ["arraylist"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist-add/arraylist-add-debug.js b/lib/yuilib/3.7.2/build/arraylist-add/arraylist-add-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/arraylist-add/arraylist-add-debug.js
rename to lib/yuilib/3.7.2/build/arraylist-add/arraylist-add-debug.js
index 35476ec90e4..5ed4e67f64f 100644
--- a/lib/yuilib/3.7.1/build/arraylist-add/arraylist-add-debug.js
+++ b/lib/yuilib/3.7.2/build/arraylist-add/arraylist-add-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -90,4 +90,4 @@ Y.mix(Y.ArrayList.prototype, {
});
-}, '3.7.1', {"requires": ["arraylist"]});
+}, '3.7.2', {"requires": ["arraylist"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist-add/arraylist-add-min.js b/lib/yuilib/3.7.2/build/arraylist-add/arraylist-add-min.js
similarity index 84%
rename from lib/yuilib/3.7.1/build/arraylist-add/arraylist-add-min.js
rename to lib/yuilib/3.7.2/build/arraylist-add/arraylist-add-min.js
index 9ce62c4a253..4d8cd496856 100644
--- a/lib/yuilib/3.7.1/build/arraylist-add/arraylist-add-min.js
+++ b/lib/yuilib/3.7.2/build/arraylist-add/arraylist-add-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("arraylist-add",function(e,t){e.mix(e.ArrayList.prototype,{add:function(t,n){var r=this._items;return e.Lang.isNumber(n)?r.splice(n,0,t):r.push(t),this},remove:function(e,t,n){n=n||this.itemsAreEqual;for(var r=this._items.length-1;r>=0;--r)if(n.call(this,e,this.item(r))){this._items.splice(r,1);if(!t)break}return this},itemsAreEqual:function(e,t){return e===t}})},"3.7.1",{requires:["arraylist"]});
+YUI.add("arraylist-add",function(e,t){e.mix(e.ArrayList.prototype,{add:function(t,n){var r=this._items;return e.Lang.isNumber(n)?r.splice(n,0,t):r.push(t),this},remove:function(e,t,n){n=n||this.itemsAreEqual;for(var r=this._items.length-1;r>=0;--r)if(n.call(this,e,this.item(r))){this._items.splice(r,1);if(!t)break}return this},itemsAreEqual:function(e,t){return e===t}})},"3.7.2",{requires:["arraylist"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist-add/arraylist-add.js b/lib/yuilib/3.7.2/build/arraylist-add/arraylist-add.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/arraylist-add/arraylist-add.js
rename to lib/yuilib/3.7.2/build/arraylist-add/arraylist-add.js
index 35476ec90e4..5ed4e67f64f 100644
--- a/lib/yuilib/3.7.1/build/arraylist-add/arraylist-add.js
+++ b/lib/yuilib/3.7.2/build/arraylist-add/arraylist-add.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -90,4 +90,4 @@ Y.mix(Y.ArrayList.prototype, {
});
-}, '3.7.1', {"requires": ["arraylist"]});
+}, '3.7.2', {"requires": ["arraylist"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter-coverage.js b/lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter-coverage.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter-coverage.js
rename to lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter-coverage.js
index 1dc8a41a5a6..d780928f1de 100644
--- a/lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter-coverage.js
+++ b/lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/arraylist-filter/arraylist-filter.js"] = {
path: "build/arraylist-filter/arraylist-filter.js",
code: []
};
-_yuitest_coverage["build/arraylist-filter/arraylist-filter.js"].code=["YUI.add('arraylist-filter', function (Y, NAME) {","","/**"," * Collection utilities beyond what is provided in the YUI core"," * @module collection"," * @submodule arraylist-filter"," * @deprecated Use ModelList or a custom subclass implementation"," */","","/*"," * Adds filter method to ArrayList prototype"," */","Y.mix(Y.ArrayList.prototype, {",""," /**"," * Create a new ArrayList (or augmenting class instance) from a subset"," * of items as determined by the boolean function passed as the"," * argument. The original ArrayList is unchanged.
"," *"," * The validator signature is validator( item ).
"," *"," * @method filter"," * @param { Function } validator Boolean function to determine in or out."," * @return { ArrayList } New instance based on who passed the validator."," * @for ArrayList"," * @deprecated Use ModelList or a custom subclass implementation"," */"," filter: function(validator) {"," var items = [];",""," Y.Array.each(this._items, function(item, i) {"," item = this.item(i);",""," if (validator(item)) {"," items.push(item);"," }"," }, this);",""," return new this.constructor(items);"," }","","});","","","}, '3.7.1', {\"requires\": [\"arraylist\"]});"];
+_yuitest_coverage["build/arraylist-filter/arraylist-filter.js"].code=["YUI.add('arraylist-filter', function (Y, NAME) {","","/**"," * Collection utilities beyond what is provided in the YUI core"," * @module collection"," * @submodule arraylist-filter"," * @deprecated Use ModelList or a custom subclass implementation"," */","","/*"," * Adds filter method to ArrayList prototype"," */","Y.mix(Y.ArrayList.prototype, {",""," /**"," * Create a new ArrayList (or augmenting class instance) from a subset"," * of items as determined by the boolean function passed as the"," * argument. The original ArrayList is unchanged.
"," *"," * The validator signature is validator( item ).
"," *"," * @method filter"," * @param { Function } validator Boolean function to determine in or out."," * @return { ArrayList } New instance based on who passed the validator."," * @for ArrayList"," * @deprecated Use ModelList or a custom subclass implementation"," */"," filter: function(validator) {"," var items = [];",""," Y.Array.each(this._items, function(item, i) {"," item = this.item(i);",""," if (validator(item)) {"," items.push(item);"," }"," }, this);",""," return new this.constructor(items);"," }","","});","","","}, '3.7.2', {\"requires\": [\"arraylist\"]});"];
_yuitest_coverage["build/arraylist-filter/arraylist-filter.js"].lines = {"1":0,"13":0,"29":0,"31":0,"32":0,"34":0,"35":0,"39":0};
_yuitest_coverage["build/arraylist-filter/arraylist-filter.js"].functions = {"(anonymous 2):31":0,"filter:28":0,"(anonymous 1):1":0};
_yuitest_coverage["build/arraylist-filter/arraylist-filter.js"].coveredLines = 8;
@@ -92,4 +92,4 @@ return new this.constructor(items);
});
-}, '3.7.1', {"requires": ["arraylist"]});
+}, '3.7.2', {"requires": ["arraylist"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter-debug.js b/lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter-debug.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter-debug.js
rename to lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter-debug.js
index 4bbe04afdad..8d1d7442979 100644
--- a/lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter-debug.js
+++ b/lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -48,4 +48,4 @@ Y.mix(Y.ArrayList.prototype, {
});
-}, '3.7.1', {"requires": ["arraylist"]});
+}, '3.7.2', {"requires": ["arraylist"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter-min.js b/lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter-min.js
similarity index 80%
rename from lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter-min.js
rename to lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter-min.js
index 5eb67344411..88b08fe4a4c 100644
--- a/lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter-min.js
+++ b/lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("arraylist-filter",function(e,t){e.mix(e.ArrayList.prototype,{filter:function(t){var n=[];return e.Array.each(this._items,function(e,r){e=this.item(r),t(e)&&n.push(e)},this),new this.constructor(n)}})},"3.7.1",{requires:["arraylist"]});
+YUI.add("arraylist-filter",function(e,t){e.mix(e.ArrayList.prototype,{filter:function(t){var n=[];return e.Array.each(this._items,function(e,r){e=this.item(r),t(e)&&n.push(e)},this),new this.constructor(n)}})},"3.7.2",{requires:["arraylist"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter.js b/lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter.js
rename to lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter.js
index 4bbe04afdad..8d1d7442979 100644
--- a/lib/yuilib/3.7.1/build/arraylist-filter/arraylist-filter.js
+++ b/lib/yuilib/3.7.2/build/arraylist-filter/arraylist-filter.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -48,4 +48,4 @@ Y.mix(Y.ArrayList.prototype, {
});
-}, '3.7.1', {"requires": ["arraylist"]});
+}, '3.7.2', {"requires": ["arraylist"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist/arraylist-coverage.js b/lib/yuilib/3.7.2/build/arraylist/arraylist-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/arraylist/arraylist-coverage.js
rename to lib/yuilib/3.7.2/build/arraylist/arraylist-coverage.js
index a68068ba84c..ef5ae7161b7 100644
--- a/lib/yuilib/3.7.1/build/arraylist/arraylist-coverage.js
+++ b/lib/yuilib/3.7.2/build/arraylist/arraylist-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/arraylist/arraylist.js"] = {
path: "build/arraylist/arraylist.js",
code: []
};
-_yuitest_coverage["build/arraylist/arraylist.js"].code=["YUI.add('arraylist', function (Y, NAME) {","","/**"," * Collection utilities beyond what is provided in the YUI core"," * @module collection"," * @submodule arraylist"," */","","var YArray = Y.Array,"," YArray_each = YArray.each,"," ArrayListProto;","","/**"," * Generic ArrayList class for managing lists of items and iterating operations"," * over them. The targeted use for this class is for augmentation onto a"," * class that is responsible for managing multiple instances of another class"," * (e.g. NodeList for Nodes). The recommended use is to augment your class with"," * ArrayList, then use ArrayList.addMethod to mirror the API of the constituent"," * items on the list's API."," *"," * The default implementation creates immutable lists, but mutability can be"," * provided via the arraylist-add submodule or by implementing mutation methods"," * directly on the augmented class's prototype."," *"," * @class ArrayList"," * @constructor"," * @param items { Array } array of items this list will be responsible for"," */","function ArrayList( items ) {"," if ( items !== undefined ) {"," this._items = Y.Lang.isArray( items ) ? items : YArray( items );"," } else {"," // ||= to support lazy initialization from augment"," this._items = this._items || [];"," }","}","","ArrayListProto = {"," /**"," * Get an item by index from the list. Override this method if managing a"," * list of objects that have a different public representation (e.g. Node"," * instances vs DOM nodes). The iteration methods that accept a user"," * function will use this method for access list items for operation."," *"," * @method item"," * @param i { Integer } index to fetch"," * @return { mixed } the item at the requested index"," */"," item: function ( i ) {"," return this._items[i];"," },",""," /**"," * Execute a function on each item of the list, optionally providing a"," * custom execution context. Default context is the item.
"," *"," * The callback signature is callback( item, index ).
"," *"," * @method each"," * @param fn { Function } the function to execute"," * @param context { mixed } optional override 'this' in the function"," * @return { ArrayList } this instance"," * @chainable"," */"," each: function ( fn, context ) {"," YArray_each( this._items, function ( item, i ) {"," item = this.item( i );",""," fn.call( context || item, item, i, this );"," }, this);",""," return this;"," },",""," /**"," * Execute a function on each item of the list, optionally providing a"," * custom execution context. Default context is the item.
"," *"," * The callback signature is callback( item, index ).
"," *"," * Unlike each, if the callback returns true, the"," * iteratation will stop.
"," *"," * @method some"," * @param fn { Function } the function to execute"," * @param context { mixed } optional override 'this' in the function"," * @return { Boolean } True if the function returned true on an item"," */"," some: function ( fn, context ) {"," return YArray.some( this._items, function ( item, i ) {"," item = this.item( i );",""," return fn.call( context || item, item, i, this );"," }, this);"," },",""," /**"," * Finds the first index of the needle in the managed array of items."," *"," * @method indexOf"," * @param needle { mixed } The item to search for"," * @return { Integer } Array index if found. Otherwise -1"," */"," indexOf: function ( needle ) {"," return YArray.indexOf( this._items, needle );"," },",""," /**"," * How many items are in this list?"," *"," * @method size"," * @return { Integer } Number of items in the list"," */"," size: function () {"," return this._items.length;"," },",""," /**"," * Is this instance managing any items?"," *"," * @method isEmpty"," * @return { Boolean } true if 1 or more items are being managed"," */"," isEmpty: function () {"," return !this.size();"," },",""," /**"," * Provides an array-like representation for JSON.stringify."," *"," * @method toJSON"," * @return { Array } an array representation of the ArrayList"," */"," toJSON: function () {"," return this._items;"," }","};","// Default implementation does not distinguish between public and private","// item getter","/**"," * Protected method for optimizations that may be appropriate for API"," * mirroring. Similar in functionality to item, but is used by"," * methods added with ArrayList.addMethod()."," *"," * @method _item"," * @protected"," * @param i { Integer } Index of item to fetch"," * @return { mixed } The item appropriate for pass through API methods"," */","ArrayListProto._item = ArrayListProto.item;","","// Mixed onto existing proto to preserve constructor NOT being an own property.","// This has bitten me when composing classes by enumerating, copying prototypes.","Y.mix(ArrayList.prototype, ArrayListProto);","","Y.mix( ArrayList, {",""," /**"," * Adds a pass through method to dest (typically the prototype of a list"," * class) that calls the named method on each item in the list with"," * whatever parameters are passed in. Allows for API indirection via list"," * instances.
"," *"," * Accepts a single string name or an array of string names.
"," *"," * list.each( function ( item ) {"," * item.methodName( 1, 2, 3 );"," * } );"," * // becomes"," * list.methodName( 1, 2, 3 );
"," *"," * Additionally, the pass through methods use the item retrieved by the"," * _item method in case there is any special behavior that is"," * appropriate for API mirroring.
"," *"," * If the iterated method returns a value, the return value from the"," * added method will be an array of values with each value being at the"," * corresponding index for that item. If the iterated method does not"," * return a value, the added method will be chainable."," *"," * @method addMethod"," * @static"," * @param dest {Object} Object or prototype to receive the iterator method"," * @param name {String|String[]} Name of method of methods to create"," */"," addMethod: function ( dest, names ) {",""," names = YArray( names );",""," YArray_each( names, function ( name ) {"," dest[ name ] = function () {"," var args = YArray( arguments, 0, true ),"," ret = [];",""," YArray_each( this._items, function ( item, i ) {"," item = this._item( i );",""," var result = item[ name ].apply( item, args );",""," if ( result !== undefined && result !== item ) {"," ret[i] = result;"," }"," }, this);",""," return ret.length ? ret : this;"," };"," } );"," }","} );","","Y.ArrayList = ArrayList;","","","}, '3.7.1', {\"requires\": [\"yui-base\"]});"];
+_yuitest_coverage["build/arraylist/arraylist.js"].code=["YUI.add('arraylist', function (Y, NAME) {","","/**"," * Collection utilities beyond what is provided in the YUI core"," * @module collection"," * @submodule arraylist"," */","","var YArray = Y.Array,"," YArray_each = YArray.each,"," ArrayListProto;","","/**"," * Generic ArrayList class for managing lists of items and iterating operations"," * over them. The targeted use for this class is for augmentation onto a"," * class that is responsible for managing multiple instances of another class"," * (e.g. NodeList for Nodes). The recommended use is to augment your class with"," * ArrayList, then use ArrayList.addMethod to mirror the API of the constituent"," * items on the list's API."," *"," * The default implementation creates immutable lists, but mutability can be"," * provided via the arraylist-add submodule or by implementing mutation methods"," * directly on the augmented class's prototype."," *"," * @class ArrayList"," * @constructor"," * @param items { Array } array of items this list will be responsible for"," */","function ArrayList( items ) {"," if ( items !== undefined ) {"," this._items = Y.Lang.isArray( items ) ? items : YArray( items );"," } else {"," // ||= to support lazy initialization from augment"," this._items = this._items || [];"," }","}","","ArrayListProto = {"," /**"," * Get an item by index from the list. Override this method if managing a"," * list of objects that have a different public representation (e.g. Node"," * instances vs DOM nodes). The iteration methods that accept a user"," * function will use this method for access list items for operation."," *"," * @method item"," * @param i { Integer } index to fetch"," * @return { mixed } the item at the requested index"," */"," item: function ( i ) {"," return this._items[i];"," },",""," /**"," *
Execute a function on each item of the list, optionally providing a"," * custom execution context. Default context is the item.
"," *"," * The callback signature is callback( item, index ).
"," *"," * @method each"," * @param fn { Function } the function to execute"," * @param context { mixed } optional override 'this' in the function"," * @return { ArrayList } this instance"," * @chainable"," */"," each: function ( fn, context ) {"," YArray_each( this._items, function ( item, i ) {"," item = this.item( i );",""," fn.call( context || item, item, i, this );"," }, this);",""," return this;"," },",""," /**"," * Execute a function on each item of the list, optionally providing a"," * custom execution context. Default context is the item.
"," *"," * The callback signature is callback( item, index ).
"," *"," * Unlike each, if the callback returns true, the"," * iteratation will stop.
"," *"," * @method some"," * @param fn { Function } the function to execute"," * @param context { mixed } optional override 'this' in the function"," * @return { Boolean } True if the function returned true on an item"," */"," some: function ( fn, context ) {"," return YArray.some( this._items, function ( item, i ) {"," item = this.item( i );",""," return fn.call( context || item, item, i, this );"," }, this);"," },",""," /**"," * Finds the first index of the needle in the managed array of items."," *"," * @method indexOf"," * @param needle { mixed } The item to search for"," * @return { Integer } Array index if found. Otherwise -1"," */"," indexOf: function ( needle ) {"," return YArray.indexOf( this._items, needle );"," },",""," /**"," * How many items are in this list?"," *"," * @method size"," * @return { Integer } Number of items in the list"," */"," size: function () {"," return this._items.length;"," },",""," /**"," * Is this instance managing any items?"," *"," * @method isEmpty"," * @return { Boolean } true if 1 or more items are being managed"," */"," isEmpty: function () {"," return !this.size();"," },",""," /**"," * Provides an array-like representation for JSON.stringify."," *"," * @method toJSON"," * @return { Array } an array representation of the ArrayList"," */"," toJSON: function () {"," return this._items;"," }","};","// Default implementation does not distinguish between public and private","// item getter","/**"," * Protected method for optimizations that may be appropriate for API"," * mirroring. Similar in functionality to item, but is used by"," * methods added with ArrayList.addMethod()."," *"," * @method _item"," * @protected"," * @param i { Integer } Index of item to fetch"," * @return { mixed } The item appropriate for pass through API methods"," */","ArrayListProto._item = ArrayListProto.item;","","// Mixed onto existing proto to preserve constructor NOT being an own property.","// This has bitten me when composing classes by enumerating, copying prototypes.","Y.mix(ArrayList.prototype, ArrayListProto);","","Y.mix( ArrayList, {",""," /**"," * Adds a pass through method to dest (typically the prototype of a list"," * class) that calls the named method on each item in the list with"," * whatever parameters are passed in. Allows for API indirection via list"," * instances.
"," *"," * Accepts a single string name or an array of string names.
"," *"," * list.each( function ( item ) {"," * item.methodName( 1, 2, 3 );"," * } );"," * // becomes"," * list.methodName( 1, 2, 3 );
"," *"," * Additionally, the pass through methods use the item retrieved by the"," * _item method in case there is any special behavior that is"," * appropriate for API mirroring.
"," *"," * If the iterated method returns a value, the return value from the"," * added method will be an array of values with each value being at the"," * corresponding index for that item. If the iterated method does not"," * return a value, the added method will be chainable."," *"," * @method addMethod"," * @static"," * @param dest {Object} Object or prototype to receive the iterator method"," * @param name {String|String[]} Name of method of methods to create"," */"," addMethod: function ( dest, names ) {",""," names = YArray( names );",""," YArray_each( names, function ( name ) {"," dest[ name ] = function () {"," var args = YArray( arguments, 0, true ),"," ret = [];",""," YArray_each( this._items, function ( item, i ) {"," item = this._item( i );",""," var result = item[ name ].apply( item, args );",""," if ( result !== undefined && result !== item ) {"," ret[i] = result;"," }"," }, this);",""," return ret.length ? ret : this;"," };"," } );"," }","} );","","Y.ArrayList = ArrayList;","","","}, '3.7.2', {\"requires\": [\"yui-base\"]});"];
_yuitest_coverage["build/arraylist/arraylist.js"].lines = {"1":0,"9":0,"29":0,"30":0,"31":0,"34":0,"38":0,"50":0,"66":0,"67":0,"69":0,"72":0,"90":0,"91":0,"93":0,"105":0,"115":0,"125":0,"135":0,"150":0,"154":0,"156":0,"188":0,"190":0,"191":0,"192":0,"195":0,"196":0,"198":0,"200":0,"201":0,"205":0,"211":0};
_yuitest_coverage["build/arraylist/arraylist.js"].functions = {"ArrayList:29":0,"item:49":0,"(anonymous 2):66":0,"each:65":0,"(anonymous 3):90":0,"some:89":0,"indexOf:104":0,"size:114":0,"isEmpty:124":0,"toJSON:134":0,"(anonymous 5):195":0,"]:191":0,"(anonymous 4):190":0,"addMethod:186":0,"(anonymous 1):1":0};
_yuitest_coverage["build/arraylist/arraylist.js"].coveredLines = 33;
@@ -298,4 +298,4 @@ _yuitest_coverline("build/arraylist/arraylist.js", 211);
Y.ArrayList = ArrayList;
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist/arraylist-debug.js b/lib/yuilib/3.7.2/build/arraylist/arraylist-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/arraylist/arraylist-debug.js
rename to lib/yuilib/3.7.2/build/arraylist/arraylist-debug.js
index 53215474995..7c2e65fe18c 100644
--- a/lib/yuilib/3.7.1/build/arraylist/arraylist-debug.js
+++ b/lib/yuilib/3.7.2/build/arraylist/arraylist-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -217,4 +217,4 @@ Y.mix( ArrayList, {
Y.ArrayList = ArrayList;
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist/arraylist-min.js b/lib/yuilib/3.7.2/build/arraylist/arraylist-min.js
similarity index 91%
rename from lib/yuilib/3.7.1/build/arraylist/arraylist-min.js
rename to lib/yuilib/3.7.2/build/arraylist/arraylist-min.js
index fe2b9d289e9..4e03bf0e51f 100644
--- a/lib/yuilib/3.7.1/build/arraylist/arraylist-min.js
+++ b/lib/yuilib/3.7.2/build/arraylist/arraylist-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("arraylist",function(e,t){function s(t){t!==undefined?this._items=e.Lang.isArray(t)?t:n(t):this._items=this._items||[]}var n=e.Array,r=n.each,i;i={item:function(e){return this._items[e]},each:function(e,t){return r(this._items,function(n,r){n=this.item(r),e.call(t||n,n,r,this)},this),this},some:function(e,t){return n.some(this._items,function(n,r){return n=this.item(r),e.call(t||n,n,r,this)},this)},indexOf:function(e){return n.indexOf(this._items,e)},size:function(){return this._items.length},isEmpty:function(){return!this.size()},toJSON:function(){return this._items}},i._item=i.item,e.mix(s.prototype,i),e.mix(s,{addMethod:function(e,t){t=n(t),r(t,function(t){e[t]=function(){var e=n(arguments,0,!0),i=[];return r(this._items,function(n,r){n=this._item(r);var s=n[t].apply(n,e);s!==undefined&&s!==n&&(i[r]=s)},this),i.length?i:this}})}}),e.ArrayList=s},"3.7.1",{requires:["yui-base"]});
+YUI.add("arraylist",function(e,t){function s(t){t!==undefined?this._items=e.Lang.isArray(t)?t:n(t):this._items=this._items||[]}var n=e.Array,r=n.each,i;i={item:function(e){return this._items[e]},each:function(e,t){return r(this._items,function(n,r){n=this.item(r),e.call(t||n,n,r,this)},this),this},some:function(e,t){return n.some(this._items,function(n,r){return n=this.item(r),e.call(t||n,n,r,this)},this)},indexOf:function(e){return n.indexOf(this._items,e)},size:function(){return this._items.length},isEmpty:function(){return!this.size()},toJSON:function(){return this._items}},i._item=i.item,e.mix(s.prototype,i),e.mix(s,{addMethod:function(e,t){t=n(t),r(t,function(t){e[t]=function(){var e=n(arguments,0,!0),i=[];return r(this._items,function(n,r){n=this._item(r);var s=n[t].apply(n,e);s!==undefined&&s!==n&&(i[r]=s)},this),i.length?i:this}})}}),e.ArrayList=s},"3.7.2",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/arraylist/arraylist.js b/lib/yuilib/3.7.2/build/arraylist/arraylist.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/arraylist/arraylist.js
rename to lib/yuilib/3.7.2/build/arraylist/arraylist.js
index 53215474995..7c2e65fe18c 100644
--- a/lib/yuilib/3.7.1/build/arraylist/arraylist.js
+++ b/lib/yuilib/3.7.2/build/arraylist/arraylist.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -217,4 +217,4 @@ Y.mix( ArrayList, {
Y.ArrayList = ArrayList;
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/arraysort/arraysort-coverage.js b/lib/yuilib/3.7.2/build/arraysort/arraysort-coverage.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/arraysort/arraysort-coverage.js
rename to lib/yuilib/3.7.2/build/arraysort/arraysort-coverage.js
index c2b7e2cdd94..ff8f11b5687 100644
--- a/lib/yuilib/3.7.1/build/arraysort/arraysort-coverage.js
+++ b/lib/yuilib/3.7.2/build/arraysort/arraysort-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/arraysort/arraysort.js"] = {
path: "build/arraysort/arraysort.js",
code: []
};
-_yuitest_coverage["build/arraysort/arraysort.js"].code=["YUI.add('arraysort', function (Y, NAME) {","","/**","Provides a case-insenstive comparator which can be used for array sorting.","","@module arraysort","*/","","var LANG = Y.Lang,"," ISVALUE = LANG.isValue,"," ISSTRING = LANG.isString;","","/**","Provides a case-insenstive comparator which can be used for array sorting.","","@class ArraySort","*/","","Y.ArraySort = {",""," /**"," Comparator function for simple case-insensitive sorting of an array of"," strings.",""," @method compare"," @param a {Object} First sort argument."," @param b {Object} Second sort argument."," @param desc {Boolean} `true` if sort direction is descending, `false` if"," sort direction is ascending."," @return {Boolean} -1 when a < b. 0 when a == b. 1 when a > b."," */"," compare: function(a, b, desc) {"," if(!ISVALUE(a)) {"," if(!ISVALUE(b)) {"," return 0;"," }"," else {"," return 1;"," }"," }"," else if(!ISVALUE(b)) {"," return -1;"," }",""," if(ISSTRING(a)) {"," a = a.toLowerCase();"," }"," if(ISSTRING(b)) {"," b = b.toLowerCase();"," }"," if(a < b) {"," return (desc) ? 1 : -1;"," }"," else if (a > b) {"," return (desc) ? -1 : 1;"," }"," else {"," return 0;"," }"," }","","};","","","}, '3.7.1', {\"requires\": [\"yui-base\"]});"];
+_yuitest_coverage["build/arraysort/arraysort.js"].code=["YUI.add('arraysort', function (Y, NAME) {","","/**","Provides a case-insenstive comparator which can be used for array sorting.","","@module arraysort","*/","","var LANG = Y.Lang,"," ISVALUE = LANG.isValue,"," ISSTRING = LANG.isString;","","/**","Provides a case-insenstive comparator which can be used for array sorting.","","@class ArraySort","*/","","Y.ArraySort = {",""," /**"," Comparator function for simple case-insensitive sorting of an array of"," strings.",""," @method compare"," @param a {Object} First sort argument."," @param b {Object} Second sort argument."," @param desc {Boolean} `true` if sort direction is descending, `false` if"," sort direction is ascending."," @return {Boolean} -1 when a < b. 0 when a == b. 1 when a > b."," */"," compare: function(a, b, desc) {"," if(!ISVALUE(a)) {"," if(!ISVALUE(b)) {"," return 0;"," }"," else {"," return 1;"," }"," }"," else if(!ISVALUE(b)) {"," return -1;"," }",""," if(ISSTRING(a)) {"," a = a.toLowerCase();"," }"," if(ISSTRING(b)) {"," b = b.toLowerCase();"," }"," if(a < b) {"," return (desc) ? 1 : -1;"," }"," else if (a > b) {"," return (desc) ? -1 : 1;"," }"," else {"," return 0;"," }"," }","","};","","","}, '3.7.2', {\"requires\": [\"yui-base\"]});"];
_yuitest_coverage["build/arraysort/arraysort.js"].lines = {"1":0,"9":0,"19":0,"33":0,"34":0,"35":0,"38":0,"41":0,"42":0,"45":0,"46":0,"48":0,"49":0,"51":0,"52":0,"54":0,"55":0,"58":0};
_yuitest_coverage["build/arraysort/arraysort.js"].functions = {"compare:32":0,"(anonymous 1):1":0};
_yuitest_coverage["build/arraysort/arraysort.js"].coveredLines = 18;
@@ -121,4 +121,4 @@ return 0;
};
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/arraysort/arraysort-debug.js b/lib/yuilib/3.7.2/build/arraysort/arraysort-debug.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/arraysort/arraysort-debug.js
rename to lib/yuilib/3.7.2/build/arraysort/arraysort-debug.js
index 0dff300ef62..9359f378fe1 100644
--- a/lib/yuilib/3.7.1/build/arraysort/arraysort-debug.js
+++ b/lib/yuilib/3.7.2/build/arraysort/arraysort-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -68,4 +68,4 @@ Y.ArraySort = {
};
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/arraysort/arraysort-min.js b/lib/yuilib/3.7.2/build/arraysort/arraysort-min.js
similarity index 78%
rename from lib/yuilib/3.7.1/build/arraysort/arraysort-min.js
rename to lib/yuilib/3.7.2/build/arraysort/arraysort-min.js
index 369426b940a..329b1e4456e 100644
--- a/lib/yuilib/3.7.1/build/arraysort/arraysort-min.js
+++ b/lib/yuilib/3.7.2/build/arraysort/arraysort-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("arraysort",function(e,t){var n=e.Lang,r=n.isValue,i=n.isString;e.ArraySort={compare:function(e,t,n){return r(e)?r(t)?(i(e)&&(e=e.toLowerCase()),i(t)&&(t=t.toLowerCase()),et?n?-1:1:0):-1:r(t)?1:0}}},"3.7.1",{requires:["yui-base"]});
+YUI.add("arraysort",function(e,t){var n=e.Lang,r=n.isValue,i=n.isString;e.ArraySort={compare:function(e,t,n){return r(e)?r(t)?(i(e)&&(e=e.toLowerCase()),i(t)&&(t=t.toLowerCase()),et?n?-1:1:0):-1:r(t)?1:0}}},"3.7.2",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/arraysort/arraysort.js b/lib/yuilib/3.7.2/build/arraysort/arraysort.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/arraysort/arraysort.js
rename to lib/yuilib/3.7.2/build/arraysort/arraysort.js
index 0dff300ef62..9359f378fe1 100644
--- a/lib/yuilib/3.7.1/build/arraysort/arraysort.js
+++ b/lib/yuilib/3.7.2/build/arraysort/arraysort.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -68,4 +68,4 @@ Y.ArraySort = {
};
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/arrows.png b/lib/yuilib/3.7.2/build/assets/skins/sam/arrows.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/arrows.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/arrows.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/autocomplete-list.css b/lib/yuilib/3.7.2/build/assets/skins/sam/autocomplete-list.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/autocomplete-list.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/autocomplete-list.css
index 9a958b5053f..d6a84d1852a 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/autocomplete-list.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/autocomplete-list.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/bg.png b/lib/yuilib/3.7.2/build/assets/skins/sam/bg.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/bg.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/bg.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/calendar-base.css b/lib/yuilib/3.7.2/build/assets/skins/sam/calendar-base.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/calendar-base.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/calendar-base.css
index 795b207d09d..ca0fd6237a6 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/calendar-base.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/calendar-base.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/calendar/assets/skins/sam/calendar.css b/lib/yuilib/3.7.2/build/assets/skins/sam/calendar.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/calendar/assets/skins/sam/calendar.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/calendar.css
index 303794fa6ca..6a55d0ce4c9 100644
--- a/lib/yuilib/3.7.1/build/calendar/assets/skins/sam/calendar.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/calendar.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/calendarnavigator/assets/skins/sam/calendarnavigator.css b/lib/yuilib/3.7.2/build/assets/skins/sam/calendarnavigator.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/calendarnavigator/assets/skins/sam/calendarnavigator.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/calendarnavigator.css
index eff08e234a6..9c7f02ac4a6 100644
--- a/lib/yuilib/3.7.1/build/calendarnavigator/assets/skins/sam/calendarnavigator.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/calendarnavigator.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/console-filters.css b/lib/yuilib/3.7.2/build/assets/skins/sam/console-filters.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/console-filters.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/console-filters.css
index fcf4ebbeba9..c515c6b6e67 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/console-filters.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/console-filters.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/console.css b/lib/yuilib/3.7.2/build/assets/skins/sam/console.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/console.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/console.css
index 4fff2aa36a5..5e8b06742ba 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/console.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/console.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-base-deprecated.css b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-base-deprecated.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/datatable-base-deprecated.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/datatable-base-deprecated.css
index 90cf87018c0..ad38b5e15cc 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-base-deprecated.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-base-deprecated.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-base.css b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-base.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/datatable-base.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/datatable-base.css
index 064f5fd418e..9553b0ad5b7 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-base.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-base.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-message.css b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-message.css
similarity index 94%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/datatable-message.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/datatable-message.css
index 6fa54e45e16..ffa18899175 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-message.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-message.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/sam/datatable-scroll.css b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-scroll.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/sam/datatable-scroll.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/datatable-scroll.css
index f56ab31bfb2..1a69fba3b06 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/sam/datatable-scroll.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-scroll.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-sort.css b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-sort.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/datatable-sort.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/datatable-sort.css
index add9eb79ccc..54c2fab1e9b 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-sort.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/datatable-sort.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/dial.css b/lib/yuilib/3.7.2/build/assets/skins/sam/dial.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/dial.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/dial.css
index 7e9f14b7aff..b7e8871462e 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/dial.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/dial.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/dt-arrow-dn.png b/lib/yuilib/3.7.2/build/assets/skins/sam/dt-arrow-dn.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/dt-arrow-dn.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/dt-arrow-dn.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/dt-arrow-up.png b/lib/yuilib/3.7.2/build/assets/skins/sam/dt-arrow-up.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/dt-arrow-up.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/dt-arrow-up.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/horizontal-menu-submenu-indicator.png b/lib/yuilib/3.7.2/build/assets/skins/sam/horizontal-menu-submenu-indicator.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/horizontal-menu-submenu-indicator.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/horizontal-menu-submenu-indicator.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/horizontal-menu-submenu-toggle.png b/lib/yuilib/3.7.2/build/assets/skins/sam/horizontal-menu-submenu-toggle.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/horizontal-menu-submenu-toggle.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/horizontal-menu-submenu-toggle.png
diff --git a/lib/yuilib/3.7.1/build/node-flick/assets/skins/sam/node-flick.css b/lib/yuilib/3.7.2/build/assets/skins/sam/node-flick.css
similarity index 91%
rename from lib/yuilib/3.7.1/build/node-flick/assets/skins/sam/node-flick.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/node-flick.css
index d40260d2f36..41d5d4dcf17 100644
--- a/lib/yuilib/3.7.1/build/node-flick/assets/skins/sam/node-flick.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/node-flick.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/node-menunav.css b/lib/yuilib/3.7.2/build/assets/skins/sam/node-menunav.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/node-menunav.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/node-menunav.css
index c762c5a7595..5769dba5611 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/node-menunav.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/node-menunav.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/overlay/assets/skins/sam/overlay.css b/lib/yuilib/3.7.2/build/assets/skins/sam/overlay.css
similarity index 93%
rename from lib/yuilib/3.7.1/build/overlay/assets/skins/sam/overlay.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/overlay.css
index 7be37957f6c..222ebdeb2a4 100644
--- a/lib/yuilib/3.7.1/build/overlay/assets/skins/sam/overlay.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/overlay.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/panel.css b/lib/yuilib/3.7.2/build/assets/skins/sam/panel.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/panel.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/panel.css
index b08f53a3879..12168cd90de 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/panel.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/panel.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/rail-x-lines.png b/lib/yuilib/3.7.2/build/assets/skins/sam/rail-x-lines.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/rail-x-lines.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/rail-x-lines.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/rail-x.png b/lib/yuilib/3.7.2/build/assets/skins/sam/rail-x.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/rail-x.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/rail-x.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/rail-y-lines.png b/lib/yuilib/3.7.2/build/assets/skins/sam/rail-y-lines.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/rail-y-lines.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/rail-y-lines.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/rail-y.png b/lib/yuilib/3.7.2/build/assets/skins/sam/rail-y.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/rail-y.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/rail-y.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/resize-base.css b/lib/yuilib/3.7.2/build/assets/skins/sam/resize-base.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/resize-base.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/resize-base.css
index 1c2d80118b4..5255af04f75 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/resize-base.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/resize-base.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/scrollview-base/assets/skins/sam/scrollview-base.css b/lib/yuilib/3.7.2/build/assets/skins/sam/scrollview-base.css
similarity index 94%
rename from lib/yuilib/3.7.1/build/scrollview-base/assets/skins/sam/scrollview-base.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/scrollview-base.css
index 10d49e4147e..ca21a3424ee 100644
--- a/lib/yuilib/3.7.1/build/scrollview-base/assets/skins/sam/scrollview-base.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/scrollview-base.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/scrollview-list/assets/skins/sam/scrollview-list.css b/lib/yuilib/3.7.2/build/assets/skins/sam/scrollview-list.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/scrollview-list/assets/skins/sam/scrollview-list.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/scrollview-list.css
index 53193fafeb0..0ee636e65ea 100644
--- a/lib/yuilib/3.7.1/build/scrollview-list/assets/skins/sam/scrollview-list.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/scrollview-list.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/scrollview-scrollbars.css b/lib/yuilib/3.7.2/build/assets/skins/sam/scrollview-scrollbars.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/scrollview-scrollbars.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/scrollview-scrollbars.css
index 950aa3febfb..16a6ceb404d 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/scrollview-scrollbars.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/scrollview-scrollbars.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/skin.css b/lib/yuilib/3.7.2/build/assets/skins/sam/skin.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/skin.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/skin.css
index 96f44de5757..9ae69192c89 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/skin.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/slider-base.css b/lib/yuilib/3.7.2/build/assets/skins/sam/slider-base.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/slider-base.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/slider-base.css
index c52b7122785..5965282ff1e 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/slider-base.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/slider-base.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/sort-arrow-sprite-ie.png b/lib/yuilib/3.7.2/build/assets/skins/sam/sort-arrow-sprite-ie.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/sort-arrow-sprite-ie.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/sort-arrow-sprite-ie.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/sort-arrow-sprite.png b/lib/yuilib/3.7.2/build/assets/skins/sam/sort-arrow-sprite.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/sort-arrow-sprite.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/sort-arrow-sprite.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/sprite.png b/lib/yuilib/3.7.2/build/assets/skins/sam/sprite.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/sprite.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/sprite.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/sprite_icons.gif b/lib/yuilib/3.7.2/build/assets/skins/sam/sprite_icons.gif
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/sprite_icons.gif
rename to lib/yuilib/3.7.2/build/assets/skins/sam/sprite_icons.gif
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/sprite_icons.png b/lib/yuilib/3.7.2/build/assets/skins/sam/sprite_icons.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/sprite_icons.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/sprite_icons.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/tabview.css b/lib/yuilib/3.7.2/build/assets/skins/sam/tabview.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/tabview.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/tabview.css
index 4232a67d561..419e996e4bd 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/tabview.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/tabview.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/test-console.css b/lib/yuilib/3.7.2/build/assets/skins/sam/test-console.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/test-console.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/test-console.css
index 958bef98f89..b9f87c7ed2a 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/test-console.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/test-console.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/thumb-x.png b/lib/yuilib/3.7.2/build/assets/skins/sam/thumb-x.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/thumb-x.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/thumb-x.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/thumb-y.png b/lib/yuilib/3.7.2/build/assets/skins/sam/thumb-y.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/thumb-y.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/thumb-y.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/vertical-menu-submenu-indicator.png b/lib/yuilib/3.7.2/build/assets/skins/sam/vertical-menu-submenu-indicator.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/vertical-menu-submenu-indicator.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/vertical-menu-submenu-indicator.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/warn_error.png b/lib/yuilib/3.7.2/build/assets/skins/sam/warn_error.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/warn_error.png
rename to lib/yuilib/3.7.2/build/assets/skins/sam/warn_error.png
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/widget-base.css b/lib/yuilib/3.7.2/build/assets/skins/sam/widget-base.css
similarity index 95%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/widget-base.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/widget-base.css
index ed1a244d5d1..763273c20c1 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/widget-base.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/widget-base.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/widget-buttons.css b/lib/yuilib/3.7.2/build/assets/skins/sam/widget-buttons.css
similarity index 96%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/widget-buttons.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/widget-buttons.css
index 8716bdc575d..3615cc6ab54 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/widget-buttons.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/widget-buttons.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/widget-modality/assets/skins/sam/widget-modality.css b/lib/yuilib/3.7.2/build/assets/skins/sam/widget-modality.css
similarity index 92%
rename from lib/yuilib/3.7.1/build/widget-modality/assets/skins/sam/widget-modality.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/widget-modality.css
index d696fc58f56..035661b53ac 100644
--- a/lib/yuilib/3.7.1/build/widget-modality/assets/skins/sam/widget-modality.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/widget-modality.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/widget-stack.css b/lib/yuilib/3.7.2/build/assets/skins/sam/widget-stack.css
similarity index 93%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/widget-stack.css
rename to lib/yuilib/3.7.2/build/assets/skins/sam/widget-stack.css
index c0cea5bbe8d..c9298c4385c 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/widget-stack.css
+++ b/lib/yuilib/3.7.2/build/assets/skins/sam/widget-stack.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/async-queue/async-queue-coverage.js b/lib/yuilib/3.7.2/build/async-queue/async-queue-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/async-queue/async-queue-coverage.js
rename to lib/yuilib/3.7.2/build/async-queue/async-queue-coverage.js
index c305dae05c7..ce2db2e6fc1 100644
--- a/lib/yuilib/3.7.1/build/async-queue/async-queue-coverage.js
+++ b/lib/yuilib/3.7.2/build/async-queue/async-queue-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/async-queue/async-queue.js"] = {
path: "build/async-queue/async-queue.js",
code: []
};
-_yuitest_coverage["build/async-queue/async-queue.js"].code=["YUI.add('async-queue', function (Y, NAME) {","","/**"," * AsyncQueue allows you create a chain of function callbacks executed"," * via setTimeout (or synchronously) that are guaranteed to run in order."," * Items in the queue can be promoted or removed. Start or resume the"," * execution chain with run(). pause() to temporarily delay execution, or"," * stop() to halt and clear the queue.
"," *"," * @module async-queue"," */","","/**"," * A specialized queue class that supports scheduling callbacks to execute"," * sequentially, iteratively, even asynchronously.
"," *"," * Callbacks can be function refs or objects with the following keys. Only"," * the fn key is required.
"," *"," * "," * fn -- The callback function "," * context -- The execution context for the callbackFn. "," * args -- Arguments to pass to callbackFn. "," * timeout -- Millisecond delay before executing callbackFn."," * (Applies to each iterative execution of callback) "," * iterations -- Number of times to repeat the callback."," * until -- Repeat the callback until this function returns"," * true. This setting trumps iterations. "," * autoContinue -- Set to false to prevent the AsyncQueue from"," * executing the next callback in the Queue after"," * the callback completes. "," * id -- Name that can be used to get, promote, get the"," * indexOf, or delete this callback. "," *
"," *"," * @class AsyncQueue"," * @extends EventTarget"," * @constructor"," * @param callback* {Function|Object} 0..n callbacks to seed the queue"," */","Y.AsyncQueue = function() {"," this._init();"," this.add.apply(this, arguments);","};","","var Queue = Y.AsyncQueue,"," EXECUTE = 'execute',"," SHIFT = 'shift',"," PROMOTE = 'promote',"," REMOVE = 'remove',",""," isObject = Y.Lang.isObject,"," isFunction = Y.Lang.isFunction;","","/**"," * Static default values used to populate callback configuration properties."," * Preconfigured defaults include:
"," *"," * "," * autoContinue: true "," * iterations: 1 "," * timeout: 10 (10ms between callbacks) "," * until: (function to run until iterations <= 0) "," *
"," *"," * @property defaults"," * @type {Object}"," * @static"," */","Queue.defaults = Y.mix({"," autoContinue : true,"," iterations : 1,"," timeout : 10,"," until : function () {"," this.iterations |= 0;"," return this.iterations <= 0;"," }","}, Y.config.queueDefaults || {});","","Y.extend(Queue, Y.EventTarget, {"," /**"," * Used to indicate the queue is currently executing a callback."," *"," * @property _running"," * @type {Boolean|Object} true for synchronous callback execution, the"," * return handle from Y.later for async callbacks."," * Otherwise false."," * @protected"," */"," _running : false,",""," /**"," * Initializes the AsyncQueue instance properties and events."," *"," * @method _init"," * @protected"," */"," _init : function () {"," Y.EventTarget.call(this, { prefix: 'queue', emitFacade: true });",""," this._q = [];",""," /** "," * Callback defaults for this instance. Static defaults that are not"," * overridden are also included."," *"," * @property defaults"," * @type {Object}"," */"," this.defaults = {};",""," this._initEvents();"," },",""," /**"," * Initializes the instance events."," *"," * @method _initEvents"," * @protected"," */"," _initEvents : function () {"," this.publish({"," 'execute' : { defaultFn : this._defExecFn, emitFacade: true },"," 'shift' : { defaultFn : this._defShiftFn, emitFacade: true },"," 'add' : { defaultFn : this._defAddFn, emitFacade: true },"," 'promote' : { defaultFn : this._defPromoteFn, emitFacade: true },"," 'remove' : { defaultFn : this._defRemoveFn, emitFacade: true }"," });"," },",""," /**"," * Returns the next callback needing execution. If a callback is"," * configured to repeat via iterations or until, it will be returned until"," * the completion criteria is met."," *"," * When the queue is empty, null is returned."," *"," * @method next"," * @return {Function} the callback to execute"," */"," next : function () {"," var callback;",""," while (this._q.length) {"," callback = this._q[0] = this._prepare(this._q[0]);"," if (callback && callback.until()) {"," this.fire(SHIFT, { callback: callback });"," callback = null;"," } else {"," break;"," }"," }",""," return callback || null;"," },",""," /**"," * Default functionality for the "shift" event. Shifts the"," * callback stored in the event object's callback property from"," * the queue if it is the first item."," *"," * @method _defShiftFn"," * @param e {Event} The event object"," * @protected"," */"," _defShiftFn : function (e) {"," if (this.indexOf(e.callback) === 0) {"," this._q.shift();"," }"," },",""," /**"," * Creates a wrapper function to execute the callback using the aggregated "," * configuration generated by combining the static AsyncQueue.defaults, the"," * instance defaults, and the specified callback settings."," *"," * The wrapper function is decorated with the callback configuration as"," * properties for runtime modification."," *"," * @method _prepare"," * @param callback {Object|Function} the raw callback"," * @return {Function} a decorated function wrapper to execute the callback"," * @protected"," */"," _prepare: function (callback) {"," if (isFunction(callback) && callback._prepared) {"," return callback;"," }",""," var config = Y.merge("," Queue.defaults,"," { context : this, args: [], _prepared: true },"," this.defaults,"," (isFunction(callback) ? { fn: callback } : callback)),"," "," wrapper = Y.bind(function () {"," if (!wrapper._running) {"," wrapper.iterations--;"," }"," if (isFunction(wrapper.fn)) {"," wrapper.fn.apply(wrapper.context || Y,"," Y.Array(wrapper.args));"," }"," }, this);"," "," return Y.mix(wrapper, config);"," },",""," /**"," * Sets the queue in motion. All queued callbacks will be executed in"," * order unless pause() or stop() is called or if one of the callbacks is"," * configured with autoContinue: false."," *"," * @method run"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," run : function () {"," var callback,"," cont = true;",""," for (callback = this.next();"," cont && callback && !this.isRunning();"," callback = this.next())"," {"," cont = (callback.timeout < 0) ?"," this._execute(callback) :"," this._schedule(callback);"," }",""," if (!callback) {"," /**"," * Event fired after the last queued callback is executed."," * @event complete"," */"," this.fire('complete');"," }",""," return this;"," },",""," /**"," * Handles the execution of callbacks. Returns a boolean indicating"," * whether it is appropriate to continue running."," *"," * @method _execute"," * @param callback {Object} the callback object to execute"," * @return {Boolean} whether the run loop should continue"," * @protected"," */"," _execute : function (callback) {"," this._running = callback._running = true;",""," callback.iterations--;"," this.fire(EXECUTE, { callback: callback });",""," var cont = this._running && callback.autoContinue;",""," this._running = callback._running = false;",""," return cont;"," },",""," /**"," * Schedules the execution of asynchronous callbacks."," *"," * @method _schedule"," * @param callback {Object} the callback object to execute"," * @return {Boolean} whether the run loop should continue"," * @protected"," */"," _schedule : function (callback) {"," this._running = Y.later(callback.timeout, this, function () {"," if (this._execute(callback)) {"," this.run();"," }"," });",""," return false;"," },",""," /**"," * Determines if the queue is waiting for a callback to complete execution."," *"," * @method isRunning"," * @return {Boolean} true if queue is waiting for a "," * from any initiated transactions"," */"," isRunning : function () {"," return !!this._running;"," },",""," /**"," * Default functionality for the "execute" event. Executes the"," * callback function"," *"," * @method _defExecFn"," * @param e {Event} the event object"," * @protected"," */"," _defExecFn : function (e) {"," e.callback();"," },",""," /**"," * Add any number of callbacks to the end of the queue. Callbacks may be"," * provided as functions or objects."," *"," * @method add"," * @param callback* {Function|Object} 0..n callbacks"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," add : function () {"," this.fire('add', { callbacks: Y.Array(arguments,0,true) });",""," return this;"," },",""," /**"," * Default functionality for the "add" event. Adds the callbacks"," * in the event facade to the queue. Callbacks successfully added to the"," * queue are present in the event's added property in the"," * after phase."," *"," * @method _defAddFn"," * @param e {Event} the event object"," * @protected"," */"," _defAddFn : function(e) {"," var _q = this._q,"," added = [];",""," Y.Array.each(e.callbacks, function (c) {"," if (isObject(c)) {"," _q.push(c);"," added.push(c);"," }"," });",""," e.added = added;"," },",""," /**"," * Pause the execution of the queue after the execution of the current"," * callback completes. If called from code outside of a queued callback,"," * clears the timeout for the pending callback. Paused queue can be"," * restarted with q.run()"," *"," * @method pause"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," pause: function () {"," if (isObject(this._running)) {"," this._running.cancel();"," }",""," this._running = false;",""," return this;"," },",""," /**"," * Stop and clear the queue after the current execution of the"," * current callback completes."," *"," * @method stop"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," stop : function () { "," this._q = [];",""," return this.pause();"," },",""," /** "," * Returns the current index of a callback. Pass in either the id or"," * callback function from getCallback."," *"," * @method indexOf"," * @param callback {String|Function} the callback or its specified id"," * @return {Number} index of the callback or -1 if not found"," */"," indexOf : function (callback) {"," var i = 0, len = this._q.length, c;",""," for (; i < len; ++i) {"," c = this._q[i];"," if (c === callback || c.id === callback) {"," return i;"," }"," }",""," return -1;"," },",""," /**"," * Retrieve a callback by its id. Useful to modify the configuration"," * while the queue is running."," *"," * @method getCallback"," * @param id {String} the id assigned to the callback"," * @return {Object} the callback object"," */"," getCallback : function (id) {"," var i = this.indexOf(id);",""," return (i > -1) ? this._q[i] : null;"," },",""," /**"," * Promotes the named callback to the top of the queue. If a callback is"," * currently executing or looping (via until or iterations), the promotion"," * is scheduled to occur after the current callback has completed."," *"," * @method promote"," * @param callback {String|Object} the callback object or a callback's id"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," promote : function (callback) {"," var payload = { callback : callback },e;",""," if (this.isRunning()) {"," e = this.after(SHIFT, function () {"," this.fire(PROMOTE, payload);"," e.detach();"," }, this);"," } else {"," this.fire(PROMOTE, payload);"," }",""," return this;"," },",""," /**"," * Default functionality for the "promote" event. Promotes the"," * named callback to the head of the queue.
"," *"," * The event object will contain a property "callback", which"," * holds the id of a callback or the callback object itself.
"," *"," * @method _defPromoteFn"," * @param e {Event} the custom event"," * @protected"," */"," _defPromoteFn : function (e) {"," var i = this.indexOf(e.callback),"," promoted = (i > -1) ? this._q.splice(i,1)[0] : null;",""," e.promoted = promoted;",""," if (promoted) {"," this._q.unshift(promoted);"," }"," },",""," /**"," * Removes the callback from the queue. If the queue is active, the"," * removal is scheduled to occur after the current callback has completed."," *"," * @method remove"," * @param callback {String|Object} the callback object or a callback's id"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," remove : function (callback) {"," var payload = { callback : callback },e;",""," // Can't return the removed callback because of the deferral until"," // current callback is complete"," if (this.isRunning()) {"," e = this.after(SHIFT, function () {"," this.fire(REMOVE, payload);"," e.detach();"," },this);"," } else {"," this.fire(REMOVE, payload);"," }",""," return this;"," },",""," /**"," * Default functionality for the "remove" event. Removes the"," * callback from the queue.
"," *"," * The event object will contain a property "callback", which"," * holds the id of a callback or the callback object itself.
"," *"," * @method _defRemoveFn"," * @param e {Event} the custom event"," * @protected"," */"," _defRemoveFn : function (e) {"," var i = this.indexOf(e.callback);",""," e.removed = (i > -1) ? this._q.splice(i,1)[0] : null;"," },",""," /**"," * Returns the number of callbacks in the queue."," *"," * @method size"," * @return {Number}"," */"," size : function () {"," // next() flushes callbacks that have met their until() criteria and"," // therefore shouldn't count since they wouldn't execute anyway."," if (!this.isRunning()) {"," this.next();"," }",""," return this._q.length;"," }","});","","","","}, '3.7.1', {\"requires\": [\"event-custom\"]});"];
+_yuitest_coverage["build/async-queue/async-queue.js"].code=["YUI.add('async-queue', function (Y, NAME) {","","/**"," * AsyncQueue allows you create a chain of function callbacks executed"," * via setTimeout (or synchronously) that are guaranteed to run in order."," * Items in the queue can be promoted or removed. Start or resume the"," * execution chain with run(). pause() to temporarily delay execution, or"," * stop() to halt and clear the queue.
"," *"," * @module async-queue"," */","","/**"," * A specialized queue class that supports scheduling callbacks to execute"," * sequentially, iteratively, even asynchronously.
"," *"," * Callbacks can be function refs or objects with the following keys. Only"," * the fn key is required.
"," *"," * "," * fn -- The callback function "," * context -- The execution context for the callbackFn. "," * args -- Arguments to pass to callbackFn. "," * timeout -- Millisecond delay before executing callbackFn."," * (Applies to each iterative execution of callback) "," * iterations -- Number of times to repeat the callback."," * until -- Repeat the callback until this function returns"," * true. This setting trumps iterations. "," * autoContinue -- Set to false to prevent the AsyncQueue from"," * executing the next callback in the Queue after"," * the callback completes. "," * id -- Name that can be used to get, promote, get the"," * indexOf, or delete this callback. "," *
"," *"," * @class AsyncQueue"," * @extends EventTarget"," * @constructor"," * @param callback* {Function|Object} 0..n callbacks to seed the queue"," */","Y.AsyncQueue = function() {"," this._init();"," this.add.apply(this, arguments);","};","","var Queue = Y.AsyncQueue,"," EXECUTE = 'execute',"," SHIFT = 'shift',"," PROMOTE = 'promote',"," REMOVE = 'remove',",""," isObject = Y.Lang.isObject,"," isFunction = Y.Lang.isFunction;","","/**"," * Static default values used to populate callback configuration properties."," * Preconfigured defaults include:
"," *"," * "," * autoContinue: true "," * iterations: 1 "," * timeout: 10 (10ms between callbacks) "," * until: (function to run until iterations <= 0) "," *
"," *"," * @property defaults"," * @type {Object}"," * @static"," */","Queue.defaults = Y.mix({"," autoContinue : true,"," iterations : 1,"," timeout : 10,"," until : function () {"," this.iterations |= 0;"," return this.iterations <= 0;"," }","}, Y.config.queueDefaults || {});","","Y.extend(Queue, Y.EventTarget, {"," /**"," * Used to indicate the queue is currently executing a callback."," *"," * @property _running"," * @type {Boolean|Object} true for synchronous callback execution, the"," * return handle from Y.later for async callbacks."," * Otherwise false."," * @protected"," */"," _running : false,",""," /**"," * Initializes the AsyncQueue instance properties and events."," *"," * @method _init"," * @protected"," */"," _init : function () {"," Y.EventTarget.call(this, { prefix: 'queue', emitFacade: true });",""," this._q = [];",""," /** "," * Callback defaults for this instance. Static defaults that are not"," * overridden are also included."," *"," * @property defaults"," * @type {Object}"," */"," this.defaults = {};",""," this._initEvents();"," },",""," /**"," * Initializes the instance events."," *"," * @method _initEvents"," * @protected"," */"," _initEvents : function () {"," this.publish({"," 'execute' : { defaultFn : this._defExecFn, emitFacade: true },"," 'shift' : { defaultFn : this._defShiftFn, emitFacade: true },"," 'add' : { defaultFn : this._defAddFn, emitFacade: true },"," 'promote' : { defaultFn : this._defPromoteFn, emitFacade: true },"," 'remove' : { defaultFn : this._defRemoveFn, emitFacade: true }"," });"," },",""," /**"," * Returns the next callback needing execution. If a callback is"," * configured to repeat via iterations or until, it will be returned until"," * the completion criteria is met."," *"," * When the queue is empty, null is returned."," *"," * @method next"," * @return {Function} the callback to execute"," */"," next : function () {"," var callback;",""," while (this._q.length) {"," callback = this._q[0] = this._prepare(this._q[0]);"," if (callback && callback.until()) {"," this.fire(SHIFT, { callback: callback });"," callback = null;"," } else {"," break;"," }"," }",""," return callback || null;"," },",""," /**"," * Default functionality for the "shift" event. Shifts the"," * callback stored in the event object's callback property from"," * the queue if it is the first item."," *"," * @method _defShiftFn"," * @param e {Event} The event object"," * @protected"," */"," _defShiftFn : function (e) {"," if (this.indexOf(e.callback) === 0) {"," this._q.shift();"," }"," },",""," /**"," * Creates a wrapper function to execute the callback using the aggregated "," * configuration generated by combining the static AsyncQueue.defaults, the"," * instance defaults, and the specified callback settings."," *"," * The wrapper function is decorated with the callback configuration as"," * properties for runtime modification."," *"," * @method _prepare"," * @param callback {Object|Function} the raw callback"," * @return {Function} a decorated function wrapper to execute the callback"," * @protected"," */"," _prepare: function (callback) {"," if (isFunction(callback) && callback._prepared) {"," return callback;"," }",""," var config = Y.merge("," Queue.defaults,"," { context : this, args: [], _prepared: true },"," this.defaults,"," (isFunction(callback) ? { fn: callback } : callback)),"," "," wrapper = Y.bind(function () {"," if (!wrapper._running) {"," wrapper.iterations--;"," }"," if (isFunction(wrapper.fn)) {"," wrapper.fn.apply(wrapper.context || Y,"," Y.Array(wrapper.args));"," }"," }, this);"," "," return Y.mix(wrapper, config);"," },",""," /**"," * Sets the queue in motion. All queued callbacks will be executed in"," * order unless pause() or stop() is called or if one of the callbacks is"," * configured with autoContinue: false."," *"," * @method run"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," run : function () {"," var callback,"," cont = true;",""," for (callback = this.next();"," cont && callback && !this.isRunning();"," callback = this.next())"," {"," cont = (callback.timeout < 0) ?"," this._execute(callback) :"," this._schedule(callback);"," }",""," if (!callback) {"," /**"," * Event fired after the last queued callback is executed."," * @event complete"," */"," this.fire('complete');"," }",""," return this;"," },",""," /**"," * Handles the execution of callbacks. Returns a boolean indicating"," * whether it is appropriate to continue running."," *"," * @method _execute"," * @param callback {Object} the callback object to execute"," * @return {Boolean} whether the run loop should continue"," * @protected"," */"," _execute : function (callback) {"," this._running = callback._running = true;",""," callback.iterations--;"," this.fire(EXECUTE, { callback: callback });",""," var cont = this._running && callback.autoContinue;",""," this._running = callback._running = false;",""," return cont;"," },",""," /**"," * Schedules the execution of asynchronous callbacks."," *"," * @method _schedule"," * @param callback {Object} the callback object to execute"," * @return {Boolean} whether the run loop should continue"," * @protected"," */"," _schedule : function (callback) {"," this._running = Y.later(callback.timeout, this, function () {"," if (this._execute(callback)) {"," this.run();"," }"," });",""," return false;"," },",""," /**"," * Determines if the queue is waiting for a callback to complete execution."," *"," * @method isRunning"," * @return {Boolean} true if queue is waiting for a "," * from any initiated transactions"," */"," isRunning : function () {"," return !!this._running;"," },",""," /**"," * Default functionality for the "execute" event. Executes the"," * callback function"," *"," * @method _defExecFn"," * @param e {Event} the event object"," * @protected"," */"," _defExecFn : function (e) {"," e.callback();"," },",""," /**"," * Add any number of callbacks to the end of the queue. Callbacks may be"," * provided as functions or objects."," *"," * @method add"," * @param callback* {Function|Object} 0..n callbacks"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," add : function () {"," this.fire('add', { callbacks: Y.Array(arguments,0,true) });",""," return this;"," },",""," /**"," * Default functionality for the "add" event. Adds the callbacks"," * in the event facade to the queue. Callbacks successfully added to the"," * queue are present in the event's added property in the"," * after phase."," *"," * @method _defAddFn"," * @param e {Event} the event object"," * @protected"," */"," _defAddFn : function(e) {"," var _q = this._q,"," added = [];",""," Y.Array.each(e.callbacks, function (c) {"," if (isObject(c)) {"," _q.push(c);"," added.push(c);"," }"," });",""," e.added = added;"," },",""," /**"," * Pause the execution of the queue after the execution of the current"," * callback completes. If called from code outside of a queued callback,"," * clears the timeout for the pending callback. Paused queue can be"," * restarted with q.run()"," *"," * @method pause"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," pause: function () {"," if (isObject(this._running)) {"," this._running.cancel();"," }",""," this._running = false;",""," return this;"," },",""," /**"," * Stop and clear the queue after the current execution of the"," * current callback completes."," *"," * @method stop"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," stop : function () { "," this._q = [];",""," return this.pause();"," },",""," /** "," * Returns the current index of a callback. Pass in either the id or"," * callback function from getCallback."," *"," * @method indexOf"," * @param callback {String|Function} the callback or its specified id"," * @return {Number} index of the callback or -1 if not found"," */"," indexOf : function (callback) {"," var i = 0, len = this._q.length, c;",""," for (; i < len; ++i) {"," c = this._q[i];"," if (c === callback || c.id === callback) {"," return i;"," }"," }",""," return -1;"," },",""," /**"," * Retrieve a callback by its id. Useful to modify the configuration"," * while the queue is running."," *"," * @method getCallback"," * @param id {String} the id assigned to the callback"," * @return {Object} the callback object"," */"," getCallback : function (id) {"," var i = this.indexOf(id);",""," return (i > -1) ? this._q[i] : null;"," },",""," /**"," * Promotes the named callback to the top of the queue. If a callback is"," * currently executing or looping (via until or iterations), the promotion"," * is scheduled to occur after the current callback has completed."," *"," * @method promote"," * @param callback {String|Object} the callback object or a callback's id"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," promote : function (callback) {"," var payload = { callback : callback },e;",""," if (this.isRunning()) {"," e = this.after(SHIFT, function () {"," this.fire(PROMOTE, payload);"," e.detach();"," }, this);"," } else {"," this.fire(PROMOTE, payload);"," }",""," return this;"," },",""," /**"," * Default functionality for the "promote" event. Promotes the"," * named callback to the head of the queue.
"," *"," * The event object will contain a property "callback", which"," * holds the id of a callback or the callback object itself.
"," *"," * @method _defPromoteFn"," * @param e {Event} the custom event"," * @protected"," */"," _defPromoteFn : function (e) {"," var i = this.indexOf(e.callback),"," promoted = (i > -1) ? this._q.splice(i,1)[0] : null;",""," e.promoted = promoted;",""," if (promoted) {"," this._q.unshift(promoted);"," }"," },",""," /**"," * Removes the callback from the queue. If the queue is active, the"," * removal is scheduled to occur after the current callback has completed."," *"," * @method remove"," * @param callback {String|Object} the callback object or a callback's id"," * @return {AsyncQueue} the AsyncQueue instance"," * @chainable"," */"," remove : function (callback) {"," var payload = { callback : callback },e;",""," // Can't return the removed callback because of the deferral until"," // current callback is complete"," if (this.isRunning()) {"," e = this.after(SHIFT, function () {"," this.fire(REMOVE, payload);"," e.detach();"," },this);"," } else {"," this.fire(REMOVE, payload);"," }",""," return this;"," },",""," /**"," * Default functionality for the "remove" event. Removes the"," * callback from the queue.
"," *"," * The event object will contain a property "callback", which"," * holds the id of a callback or the callback object itself.
"," *"," * @method _defRemoveFn"," * @param e {Event} the custom event"," * @protected"," */"," _defRemoveFn : function (e) {"," var i = this.indexOf(e.callback);",""," e.removed = (i > -1) ? this._q.splice(i,1)[0] : null;"," },",""," /**"," * Returns the number of callbacks in the queue."," *"," * @method size"," * @return {Number}"," */"," size : function () {"," // next() flushes callbacks that have met their until() criteria and"," // therefore shouldn't count since they wouldn't execute anyway."," if (!this.isRunning()) {"," this.next();"," }",""," return this._q.length;"," }","});","","","","}, '3.7.2', {\"requires\": [\"event-custom\"]});"];
_yuitest_coverage["build/async-queue/async-queue.js"].lines = {"1":0,"41":0,"42":0,"43":0,"46":0,"70":0,"75":0,"76":0,"80":0,"99":0,"101":0,"110":0,"112":0,"122":0,"142":0,"144":0,"145":0,"146":0,"147":0,"148":0,"150":0,"154":0,"167":0,"168":0,"186":0,"187":0,"190":0,"197":0,"198":0,"200":0,"201":0,"206":0,"219":0,"222":0,"226":0,"231":0,"236":0,"239":0,"252":0,"254":0,"255":0,"257":0,"259":0,"261":0,"273":0,"274":0,"275":0,"279":0,"290":0,"302":0,"315":0,"317":0,"331":0,"334":0,"335":0,"336":0,"337":0,"341":0,"355":0,"356":0,"359":0,"361":0,"373":0,"375":0,"387":0,"389":0,"390":0,"391":0,"392":0,"396":0,"408":0,"410":0,"424":0,"426":0,"427":0,"428":0,"429":0,"432":0,"435":0,"450":0,"453":0,"455":0,"456":0,"470":0,"474":0,"475":0,"476":0,"477":0,"480":0,"483":0,"498":0,"500":0,"512":0,"513":0,"516":0};
_yuitest_coverage["build/async-queue/async-queue.js"].functions = {"AsyncQueue:41":0,"until:74":0,"_init:98":0,"_initEvents:121":0,"next:141":0,"_defShiftFn:166":0,"(anonymous 2):196":0,"_prepare:185":0,"run:218":0,"_execute:251":0,"(anonymous 3):273":0,"_schedule:272":0,"isRunning:289":0,"_defExecFn:301":0,"add:314":0,"(anonymous 4):334":0,"_defAddFn:330":0,"pause:354":0,"stop:372":0,"indexOf:386":0,"getCallback:407":0,"(anonymous 5):427":0,"promote:423":0,"_defPromoteFn:449":0,"(anonymous 6):475":0,"remove:469":0,"_defRemoveFn:497":0,"size:509":0,"(anonymous 1):1":0};
_yuitest_coverage["build/async-queue/async-queue.js"].coveredLines = 95;
@@ -682,4 +682,4 @@ return this._q.length;
-}, '3.7.1', {"requires": ["event-custom"]});
+}, '3.7.2', {"requires": ["event-custom"]});
diff --git a/lib/yuilib/3.7.1/build/async-queue/async-queue-debug.js b/lib/yuilib/3.7.2/build/async-queue/async-queue-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/async-queue/async-queue-debug.js
rename to lib/yuilib/3.7.2/build/async-queue/async-queue-debug.js
index 6ff8b124306..65daccc4bcd 100644
--- a/lib/yuilib/3.7.1/build/async-queue/async-queue-debug.js
+++ b/lib/yuilib/3.7.2/build/async-queue/async-queue-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -525,4 +525,4 @@ Y.extend(Queue, Y.EventTarget, {
-}, '3.7.1', {"requires": ["event-custom"]});
+}, '3.7.2', {"requires": ["event-custom"]});
diff --git a/lib/yuilib/3.7.1/build/async-queue/async-queue-min.js b/lib/yuilib/3.7.2/build/async-queue/async-queue-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/async-queue/async-queue-min.js
rename to lib/yuilib/3.7.2/build/async-queue/async-queue-min.js
index df7d3fc4612..8c6542af742 100644
--- a/lib/yuilib/3.7.1/build/async-queue/async-queue-min.js
+++ b/lib/yuilib/3.7.2/build/async-queue/async-queue-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("async-queue",function(e,t){e.AsyncQueue=function(){this._init(),this.add.apply(this,arguments)};var n=e.AsyncQueue,r="execute",i="shift",s="promote",o="remove",u=e.Lang.isObject,a=e.Lang.isFunction;n.defaults=e.mix({autoContinue:!0,iterations:1,timeout:10,until:function(){return this.iterations|=0,this.iterations<=0}},e.config.queueDefaults||{}),e.extend(n,e.EventTarget,{_running:!1,_init:function(){e.EventTarget.call(this,{prefix:"queue",emitFacade:!0}),this._q=[],this.defaults={},this._initEvents()},_initEvents:function(){this.publish({execute:{defaultFn:this._defExecFn,emitFacade:!0},shift:{defaultFn:this._defShiftFn,emitFacade:!0},add:{defaultFn:this._defAddFn,emitFacade:!0},promote:{defaultFn:this._defPromoteFn,emitFacade:!0},remove:{defaultFn:this._defRemoveFn,emitFacade:!0}})},next:function(){var e;while(this._q.length){e=this._q[0]=this._prepare(this._q[0]);if(!e||!e.until())break;this.fire(i,{callback:e}),e=null}return e||null},_defShiftFn:function(e){this.indexOf(e.callback)===0&&this._q.shift()},_prepare:function(t){if(a(t)&&t._prepared)return t;var r=e.merge(n.defaults,{context:this,args:[],_prepared:!0},this.defaults,a(t)?{fn:t}:t),i=e.bind(function(){i._running||i.iterations--,a(i.fn)&&i.fn.apply(i.context||e,e.Array(i.args))},this);return e.mix(i,r)},run:function(){var e,t=!0;for(e=this.next();t&&e&&!this.isRunning();e=this.next())t=e.timeout<0?this._execute(e):this._schedule(e);return e||this.fire("complete"),this},_execute:function(e){this._running=e._running=!0,e.iterations--,this.fire(r,{callback:e});var t=this._running&&e.autoContinue;return this._running=e._running=!1,t},_schedule:function(t){return this._running=e.later(t.timeout,this,function(){this._execute(t)&&this.run()}),!1},isRunning:function(){return!!this._running},_defExecFn:function(e){e.callback()},add:function(){return this.fire("add",{callbacks:e.Array(arguments,0,!0)}),this},_defAddFn:function(t){var n=this._q,r=[];e.Array.each(t.callbacks,function(e){u(e)&&(n.push(e),r.push(e))}),t.added=r},pause:function(){return u(this._running)&&this._running.cancel(),this._running=!1,this},stop:function(){return this._q=[],this.pause()},indexOf:function(e){var t=0,n=this._q.length,r;for(;t-1?this._q[t]:null},promote:function(e){var t={callback:e},n;return this.isRunning()?n=this.after(i,function(){this.fire(s,t),n.detach()},this):this.fire(s,t),this},_defPromoteFn:function(e){var t=this.indexOf(e.callback),n=t>-1?this._q.splice(t,1)[0]:null;e.promoted=n,n&&this._q.unshift(n)},remove:function(e){var t={callback:e},n;return this.isRunning()?n=this.after(i,function(){this.fire(o,t),n.detach()},this):this.fire(o,t),this},_defRemoveFn:function(e){var t=this.indexOf(e.callback);e.removed=t>-1?this._q.splice(t,1)[0]:null},size:function(){return this.isRunning()||this.next(),this._q.length}})},"3.7.1",{requires:["event-custom"]});
+YUI.add("async-queue",function(e,t){e.AsyncQueue=function(){this._init(),this.add.apply(this,arguments)};var n=e.AsyncQueue,r="execute",i="shift",s="promote",o="remove",u=e.Lang.isObject,a=e.Lang.isFunction;n.defaults=e.mix({autoContinue:!0,iterations:1,timeout:10,until:function(){return this.iterations|=0,this.iterations<=0}},e.config.queueDefaults||{}),e.extend(n,e.EventTarget,{_running:!1,_init:function(){e.EventTarget.call(this,{prefix:"queue",emitFacade:!0}),this._q=[],this.defaults={},this._initEvents()},_initEvents:function(){this.publish({execute:{defaultFn:this._defExecFn,emitFacade:!0},shift:{defaultFn:this._defShiftFn,emitFacade:!0},add:{defaultFn:this._defAddFn,emitFacade:!0},promote:{defaultFn:this._defPromoteFn,emitFacade:!0},remove:{defaultFn:this._defRemoveFn,emitFacade:!0}})},next:function(){var e;while(this._q.length){e=this._q[0]=this._prepare(this._q[0]);if(!e||!e.until())break;this.fire(i,{callback:e}),e=null}return e||null},_defShiftFn:function(e){this.indexOf(e.callback)===0&&this._q.shift()},_prepare:function(t){if(a(t)&&t._prepared)return t;var r=e.merge(n.defaults,{context:this,args:[],_prepared:!0},this.defaults,a(t)?{fn:t}:t),i=e.bind(function(){i._running||i.iterations--,a(i.fn)&&i.fn.apply(i.context||e,e.Array(i.args))},this);return e.mix(i,r)},run:function(){var e,t=!0;for(e=this.next();t&&e&&!this.isRunning();e=this.next())t=e.timeout<0?this._execute(e):this._schedule(e);return e||this.fire("complete"),this},_execute:function(e){this._running=e._running=!0,e.iterations--,this.fire(r,{callback:e});var t=this._running&&e.autoContinue;return this._running=e._running=!1,t},_schedule:function(t){return this._running=e.later(t.timeout,this,function(){this._execute(t)&&this.run()}),!1},isRunning:function(){return!!this._running},_defExecFn:function(e){e.callback()},add:function(){return this.fire("add",{callbacks:e.Array(arguments,0,!0)}),this},_defAddFn:function(t){var n=this._q,r=[];e.Array.each(t.callbacks,function(e){u(e)&&(n.push(e),r.push(e))}),t.added=r},pause:function(){return u(this._running)&&this._running.cancel(),this._running=!1,this},stop:function(){return this._q=[],this.pause()},indexOf:function(e){var t=0,n=this._q.length,r;for(;t-1?this._q[t]:null},promote:function(e){var t={callback:e},n;return this.isRunning()?n=this.after(i,function(){this.fire(s,t),n.detach()},this):this.fire(s,t),this},_defPromoteFn:function(e){var t=this.indexOf(e.callback),n=t>-1?this._q.splice(t,1)[0]:null;e.promoted=n,n&&this._q.unshift(n)},remove:function(e){var t={callback:e},n;return this.isRunning()?n=this.after(i,function(){this.fire(o,t),n.detach()},this):this.fire(o,t),this},_defRemoveFn:function(e){var t=this.indexOf(e.callback);e.removed=t>-1?this._q.splice(t,1)[0]:null},size:function(){return this.isRunning()||this.next(),this._q.length}})},"3.7.2",{requires:["event-custom"]});
diff --git a/lib/yuilib/3.7.1/build/async-queue/async-queue.js b/lib/yuilib/3.7.2/build/async-queue/async-queue.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/async-queue/async-queue.js
rename to lib/yuilib/3.7.2/build/async-queue/async-queue.js
index 6ff8b124306..65daccc4bcd 100644
--- a/lib/yuilib/3.7.1/build/async-queue/async-queue.js
+++ b/lib/yuilib/3.7.2/build/async-queue/async-queue.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -525,4 +525,4 @@ Y.extend(Queue, Y.EventTarget, {
-}, '3.7.1', {"requires": ["event-custom"]});
+}, '3.7.2', {"requires": ["event-custom"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-base/attribute-base-coverage.js b/lib/yuilib/3.7.2/build/attribute-base/attribute-base-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/attribute-base/attribute-base-coverage.js
rename to lib/yuilib/3.7.2/build/attribute-base/attribute-base-coverage.js
index e046b838f43..b7a0198df11 100644
--- a/lib/yuilib/3.7.1/build/attribute-base/attribute-base-coverage.js
+++ b/lib/yuilib/3.7.2/build/attribute-base/attribute-base-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/attribute-base/attribute-base.js"] = {
path: "build/attribute-base/attribute-base.js",
code: []
};
-_yuitest_coverage["build/attribute-base/attribute-base.js"].code=["YUI.add('attribute-base', function (Y, NAME) {",""," /**"," * The attribute module provides an augmentable Attribute implementation, which "," * adds configurable attributes and attribute change events to the class being "," * augmented. It also provides a State class, which is used internally by Attribute,"," * but can also be used independently to provide a name/property/value data structure to"," * store state."," *"," * @module attribute"," */",""," /**"," * The attribute-base submodule provides core attribute handling support, with everything"," * aside from complex attribute handling in the provider's constructor."," *"," * @module attribute"," * @submodule attribute-base"," */"," "," /**"," * "," * Attribute provides configurable attribute support along with attribute change events. It is designed to be "," * augmented on to a host class, and provides the host with the ability to configure attributes to store and retrieve state, "," * along with attribute change events."," *
"," * For example, attributes added to the host can be configured:
"," * "," * - As read only.
"," * - As write once.
"," * - With a setter function, which can be used to manipulate"," * values passed to Attribute's set method, before they are stored.
"," * - With a getter function, which can be used to manipulate stored values,"," * before they are returned by Attribute's get method.
"," * - With a validator function, to validate values before they are stored.
"," *
"," *"," * See the addAttr method, for the complete set of configuration"," * options available for attributes.
"," *"," * NOTE: Most implementations will be better off extending the Base class, "," * instead of augmenting Attribute directly. Base augments Attribute and will handle the initial configuration "," * of attributes for derived classes, accounting for values passed into the constructor.
"," *"," * @class Attribute"," * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor."," * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required."," * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs)."," * @uses AttributeCore"," * @uses AttributeEvents"," * @uses EventTarget"," * @uses AttributeExtras"," */"," var Attribute = function() {",""," // Fix #2531929 "," // Complete hack, to make sure the first clone of a node value in IE doesn't doesn't hurt state - maintains 3.4.1 behavior."," // Too late in the release cycle to do anything about the core problem."," // The root issue is that cloning a Y.Node instance results in an object which barfs in IE, when you access it's properties (since 3.3.0)."," this._ATTR_E_FACADE = null;"," this._yuievt = null;",""," Y.AttributeCore.apply(this, arguments);"," Y.AttributeEvents.apply(this, arguments);"," Y.AttributeExtras.apply(this, arguments);"," };",""," Y.mix(Attribute, Y.AttributeCore, false, null, 1);"," Y.mix(Attribute, Y.AttributeExtras, false, null, 1);",""," // Needs to be \"true\", to overwrite methods from AttributeCore"," Y.mix(Attribute, Y.AttributeEvents, true, null, 1);",""," /**"," * The value to return from an attribute setter in order to prevent the set from going through.
"," *"," * You can return this value from your setter if you wish to combine validator and setter "," * functionality into a single setter function, which either returns the massaged value to be stored or "," * AttributeCore.INVALID_VALUE to prevent invalid values from being stored.
"," *"," * @property INVALID_VALUE"," * @type Object"," * @static"," * @final"," */"," Attribute.INVALID_VALUE = Y.AttributeCore.INVALID_VALUE;",""," /**"," * The list of properties which can be configured for "," * each attribute (e.g. setter, getter, writeOnce etc.)."," *"," * This property is used internally as a whitelist for faster"," * Y.mix operations."," *"," * @property _ATTR_CFG"," * @type Array"," * @static"," * @protected"," */"," Attribute._ATTR_CFG = Y.AttributeCore._ATTR_CFG.concat(Y.AttributeEvents._ATTR_CFG);",""," Y.Attribute = Attribute;","","}, '3.7.1', {\"requires\": [\"attribute-core\", \"attribute-events\", \"attribute-extras\"]});"];
+_yuitest_coverage["build/attribute-base/attribute-base.js"].code=["YUI.add('attribute-base', function (Y, NAME) {",""," /**"," * The attribute module provides an augmentable Attribute implementation, which "," * adds configurable attributes and attribute change events to the class being "," * augmented. It also provides a State class, which is used internally by Attribute,"," * but can also be used independently to provide a name/property/value data structure to"," * store state."," *"," * @module attribute"," */",""," /**"," * The attribute-base submodule provides core attribute handling support, with everything"," * aside from complex attribute handling in the provider's constructor."," *"," * @module attribute"," * @submodule attribute-base"," */"," "," /**"," * "," * Attribute provides configurable attribute support along with attribute change events. It is designed to be "," * augmented on to a host class, and provides the host with the ability to configure attributes to store and retrieve state, "," * along with attribute change events."," *
"," * For example, attributes added to the host can be configured:
"," * "," * - As read only.
"," * - As write once.
"," * - With a setter function, which can be used to manipulate"," * values passed to Attribute's set method, before they are stored.
"," * - With a getter function, which can be used to manipulate stored values,"," * before they are returned by Attribute's get method.
"," * - With a validator function, to validate values before they are stored.
"," *
"," *"," * See the addAttr method, for the complete set of configuration"," * options available for attributes.
"," *"," * NOTE: Most implementations will be better off extending the Base class, "," * instead of augmenting Attribute directly. Base augments Attribute and will handle the initial configuration "," * of attributes for derived classes, accounting for values passed into the constructor.
"," *"," * @class Attribute"," * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor."," * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required."," * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs)."," * @uses AttributeCore"," * @uses AttributeEvents"," * @uses EventTarget"," * @uses AttributeExtras"," */"," var Attribute = function() {",""," // Fix #2531929 "," // Complete hack, to make sure the first clone of a node value in IE doesn't doesn't hurt state - maintains 3.4.1 behavior."," // Too late in the release cycle to do anything about the core problem."," // The root issue is that cloning a Y.Node instance results in an object which barfs in IE, when you access it's properties (since 3.3.0)."," this._ATTR_E_FACADE = null;"," this._yuievt = null;",""," Y.AttributeCore.apply(this, arguments);"," Y.AttributeEvents.apply(this, arguments);"," Y.AttributeExtras.apply(this, arguments);"," };",""," Y.mix(Attribute, Y.AttributeCore, false, null, 1);"," Y.mix(Attribute, Y.AttributeExtras, false, null, 1);",""," // Needs to be \"true\", to overwrite methods from AttributeCore"," Y.mix(Attribute, Y.AttributeEvents, true, null, 1);",""," /**"," * The value to return from an attribute setter in order to prevent the set from going through.
"," *"," * You can return this value from your setter if you wish to combine validator and setter "," * functionality into a single setter function, which either returns the massaged value to be stored or "," * AttributeCore.INVALID_VALUE to prevent invalid values from being stored.
"," *"," * @property INVALID_VALUE"," * @type Object"," * @static"," * @final"," */"," Attribute.INVALID_VALUE = Y.AttributeCore.INVALID_VALUE;",""," /**"," * The list of properties which can be configured for "," * each attribute (e.g. setter, getter, writeOnce etc.)."," *"," * This property is used internally as a whitelist for faster"," * Y.mix operations."," *"," * @property _ATTR_CFG"," * @type Array"," * @static"," * @protected"," */"," Attribute._ATTR_CFG = Y.AttributeCore._ATTR_CFG.concat(Y.AttributeEvents._ATTR_CFG);",""," Y.Attribute = Attribute;","","}, '3.7.2', {\"requires\": [\"attribute-core\", \"attribute-events\", \"attribute-extras\"]});"];
_yuitest_coverage["build/attribute-base/attribute-base.js"].lines = {"1":0,"54":0,"60":0,"61":0,"63":0,"64":0,"65":0,"68":0,"69":0,"72":0,"86":0,"100":0,"102":0};
_yuitest_coverage["build/attribute-base/attribute-base.js"].functions = {"Attribute:54":0,"(anonymous 1):1":0};
_yuitest_coverage["build/attribute-base/attribute-base.js"].coveredLines = 13;
@@ -155,4 +155,4 @@ Attribute._ATTR_CFG = Y.AttributeCore._ATTR_CFG.concat(Y.AttributeEvents._ATTR_C
_yuitest_coverline("build/attribute-base/attribute-base.js", 102);
Y.Attribute = Attribute;
-}, '3.7.1', {"requires": ["attribute-core", "attribute-events", "attribute-extras"]});
+}, '3.7.2', {"requires": ["attribute-core", "attribute-events", "attribute-extras"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-base/attribute-base-debug.js b/lib/yuilib/3.7.2/build/attribute-base/attribute-base-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/attribute-base/attribute-base-debug.js
rename to lib/yuilib/3.7.2/build/attribute-base/attribute-base-debug.js
index 5bd0314a63f..85229c31061 100644
--- a/lib/yuilib/3.7.1/build/attribute-base/attribute-base-debug.js
+++ b/lib/yuilib/3.7.2/build/attribute-base/attribute-base-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -107,4 +107,4 @@ YUI.add('attribute-base', function (Y, NAME) {
Y.Attribute = Attribute;
-}, '3.7.1', {"requires": ["attribute-core", "attribute-events", "attribute-extras"]});
+}, '3.7.2', {"requires": ["attribute-core", "attribute-events", "attribute-extras"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-base/attribute-base-min.js b/lib/yuilib/3.7.2/build/attribute-base/attribute-base-min.js
similarity index 87%
rename from lib/yuilib/3.7.1/build/attribute-base/attribute-base-min.js
rename to lib/yuilib/3.7.2/build/attribute-base/attribute-base-min.js
index 8ba03cd7ffa..3d2225987ec 100644
--- a/lib/yuilib/3.7.1/build/attribute-base/attribute-base-min.js
+++ b/lib/yuilib/3.7.2/build/attribute-base/attribute-base-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("attribute-base",function(e,t){var n=function(){this._ATTR_E_FACADE=null,this._yuievt=null,e.AttributeCore.apply(this,arguments),e.AttributeEvents.apply(this,arguments),e.AttributeExtras.apply(this,arguments)};e.mix(n,e.AttributeCore,!1,null,1),e.mix(n,e.AttributeExtras,!1,null,1),e.mix(n,e.AttributeEvents,!0,null,1),n.INVALID_VALUE=e.AttributeCore.INVALID_VALUE,n._ATTR_CFG=e.AttributeCore._ATTR_CFG.concat(e.AttributeEvents._ATTR_CFG),e.Attribute=n},"3.7.1",{requires:["attribute-core","attribute-events","attribute-extras"]});
+YUI.add("attribute-base",function(e,t){var n=function(){this._ATTR_E_FACADE=null,this._yuievt=null,e.AttributeCore.apply(this,arguments),e.AttributeEvents.apply(this,arguments),e.AttributeExtras.apply(this,arguments)};e.mix(n,e.AttributeCore,!1,null,1),e.mix(n,e.AttributeExtras,!1,null,1),e.mix(n,e.AttributeEvents,!0,null,1),n.INVALID_VALUE=e.AttributeCore.INVALID_VALUE,n._ATTR_CFG=e.AttributeCore._ATTR_CFG.concat(e.AttributeEvents._ATTR_CFG),e.Attribute=n},"3.7.2",{requires:["attribute-core","attribute-events","attribute-extras"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-base/attribute-base.js b/lib/yuilib/3.7.2/build/attribute-base/attribute-base.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/attribute-base/attribute-base.js
rename to lib/yuilib/3.7.2/build/attribute-base/attribute-base.js
index 5bd0314a63f..85229c31061 100644
--- a/lib/yuilib/3.7.1/build/attribute-base/attribute-base.js
+++ b/lib/yuilib/3.7.2/build/attribute-base/attribute-base.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -107,4 +107,4 @@ YUI.add('attribute-base', function (Y, NAME) {
Y.Attribute = Attribute;
-}, '3.7.1', {"requires": ["attribute-core", "attribute-events", "attribute-extras"]});
+}, '3.7.2', {"requires": ["attribute-core", "attribute-events", "attribute-extras"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-complex/attribute-complex-coverage.js b/lib/yuilib/3.7.2/build/attribute-complex/attribute-complex-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/attribute-complex/attribute-complex-coverage.js
rename to lib/yuilib/3.7.2/build/attribute-complex/attribute-complex-coverage.js
index ad99a4753b1..78011c469ca 100644
--- a/lib/yuilib/3.7.1/build/attribute-complex/attribute-complex-coverage.js
+++ b/lib/yuilib/3.7.2/build/attribute-complex/attribute-complex-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/attribute-complex/attribute-complex.js"] = {
path: "build/attribute-complex/attribute-complex.js",
code: []
};
-_yuitest_coverage["build/attribute-complex/attribute-complex.js"].code=["YUI.add('attribute-complex', function (Y, NAME) {",""," /**"," * Adds support for attribute providers to handle complex attributes in the constructor"," *"," * @module attribute"," * @submodule attribute-complex"," * @for Attribute"," */",""," var O = Y.Object,"," DOT = \".\";",""," Y.Attribute.Complex = function() {};"," Y.Attribute.Complex.prototype = {",""," /**"," * Utility method to split out simple attribute name/value pairs (\"x\") "," * from complex attribute name/value pairs (\"x.y.z\"), so that complex"," * attributes can be keyed by the top level attribute name."," *"," * @method _normAttrVals"," * @param {Object} valueHash An object with attribute name/value pairs"," *"," * @return {Object} An object literal with 2 properties - \"simple\" and \"complex\","," * containing simple and complex attribute values respectively keyed "," * by the top level attribute name, or null, if valueHash is falsey."," *"," * @private"," */"," _normAttrVals : function(valueHash) {"," var vals = {},"," subvals = {},"," path,"," attr,"," v, k;",""," if (valueHash) {"," for (k in valueHash) {"," if (valueHash.hasOwnProperty(k)) {"," if (k.indexOf(DOT) !== -1) {"," path = k.split(DOT);"," attr = path.shift();"," v = subvals[attr] = subvals[attr] || [];"," v[v.length] = {"," path : path,"," value: valueHash[k]"," };"," } else {"," vals[k] = valueHash[k];"," }"," }"," }"," return { simple:vals, complex:subvals };"," } else {"," return null;"," }"," },",""," /**"," * Returns the initial value of the given attribute from"," * either the default configuration provided, or the "," * over-ridden value if it exists in the set of initValues "," * provided and the attribute is not read-only."," *"," * @param {String} attr The name of the attribute"," * @param {Object} cfg The attribute configuration object"," * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals"," *"," * @return {Any} The initial value of the attribute."," *"," * @method _getAttrInitVal"," * @private"," */"," _getAttrInitVal : function(attr, cfg, initValues) {",""," var val = cfg.value,"," valFn = cfg.valueFn,"," tmpVal,"," initValSet = false,"," simple,"," complex,"," i,"," l,"," path,"," subval,"," subvals;",""," if (!cfg.readOnly && initValues) {"," // Simple Attributes"," simple = initValues.simple;"," if (simple && simple.hasOwnProperty(attr)) {"," val = simple[attr];"," initValSet = true;"," }"," }",""," if (valFn && !initValSet) {"," if (!valFn.call) {"," valFn = this[valFn];"," }"," if (valFn) {"," tmpVal = valFn.call(this, attr);"," val = tmpVal;"," }"," }",""," if (!cfg.readOnly && initValues) {",""," // Complex Attributes (complex values applied, after simple, in case both are set)"," complex = initValues.complex;",""," if (complex && complex.hasOwnProperty(attr) && (val !== undefined) && (val !== null)) {"," subvals = complex[attr];"," for (i = 0, l = subvals.length; i < l; ++i) {"," path = subvals[i].path;"," subval = subvals[i].value;"," O.setValue(val, path, subval);"," }"," }"," }",""," return val;"," }"," };",""," Y.mix(Y.Attribute, Y.Attribute.Complex, true, null, 1);",""," // Consistency with the rest of the Attribute addons for now. "," Y.AttributeComplex = Y.Attribute.Complex;","","","}, '3.7.1', {\"requires\": [\"attribute-base\"]});"];
+_yuitest_coverage["build/attribute-complex/attribute-complex.js"].code=["YUI.add('attribute-complex', function (Y, NAME) {",""," /**"," * Adds support for attribute providers to handle complex attributes in the constructor"," *"," * @module attribute"," * @submodule attribute-complex"," * @for Attribute"," */",""," var O = Y.Object,"," DOT = \".\";",""," Y.Attribute.Complex = function() {};"," Y.Attribute.Complex.prototype = {",""," /**"," * Utility method to split out simple attribute name/value pairs (\"x\") "," * from complex attribute name/value pairs (\"x.y.z\"), so that complex"," * attributes can be keyed by the top level attribute name."," *"," * @method _normAttrVals"," * @param {Object} valueHash An object with attribute name/value pairs"," *"," * @return {Object} An object literal with 2 properties - \"simple\" and \"complex\","," * containing simple and complex attribute values respectively keyed "," * by the top level attribute name, or null, if valueHash is falsey."," *"," * @private"," */"," _normAttrVals : function(valueHash) {"," var vals = {},"," subvals = {},"," path,"," attr,"," v, k;",""," if (valueHash) {"," for (k in valueHash) {"," if (valueHash.hasOwnProperty(k)) {"," if (k.indexOf(DOT) !== -1) {"," path = k.split(DOT);"," attr = path.shift();"," v = subvals[attr] = subvals[attr] || [];"," v[v.length] = {"," path : path,"," value: valueHash[k]"," };"," } else {"," vals[k] = valueHash[k];"," }"," }"," }"," return { simple:vals, complex:subvals };"," } else {"," return null;"," }"," },",""," /**"," * Returns the initial value of the given attribute from"," * either the default configuration provided, or the "," * over-ridden value if it exists in the set of initValues "," * provided and the attribute is not read-only."," *"," * @param {String} attr The name of the attribute"," * @param {Object} cfg The attribute configuration object"," * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals"," *"," * @return {Any} The initial value of the attribute."," *"," * @method _getAttrInitVal"," * @private"," */"," _getAttrInitVal : function(attr, cfg, initValues) {",""," var val = cfg.value,"," valFn = cfg.valueFn,"," tmpVal,"," initValSet = false,"," simple,"," complex,"," i,"," l,"," path,"," subval,"," subvals;",""," if (!cfg.readOnly && initValues) {"," // Simple Attributes"," simple = initValues.simple;"," if (simple && simple.hasOwnProperty(attr)) {"," val = simple[attr];"," initValSet = true;"," }"," }",""," if (valFn && !initValSet) {"," if (!valFn.call) {"," valFn = this[valFn];"," }"," if (valFn) {"," tmpVal = valFn.call(this, attr);"," val = tmpVal;"," }"," }",""," if (!cfg.readOnly && initValues) {",""," // Complex Attributes (complex values applied, after simple, in case both are set)"," complex = initValues.complex;",""," if (complex && complex.hasOwnProperty(attr) && (val !== undefined) && (val !== null)) {"," subvals = complex[attr];"," for (i = 0, l = subvals.length; i < l; ++i) {"," path = subvals[i].path;"," subval = subvals[i].value;"," O.setValue(val, path, subval);"," }"," }"," }",""," return val;"," }"," };",""," Y.mix(Y.Attribute, Y.Attribute.Complex, true, null, 1);",""," // Consistency with the rest of the Attribute addons for now. "," Y.AttributeComplex = Y.Attribute.Complex;","","","}, '3.7.2', {\"requires\": [\"attribute-base\"]});"];
_yuitest_coverage["build/attribute-complex/attribute-complex.js"].lines = {"1":0,"11":0,"14":0,"15":0,"32":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"50":0,"54":0,"56":0,"77":0,"89":0,"91":0,"92":0,"93":0,"94":0,"98":0,"99":0,"100":0,"102":0,"103":0,"104":0,"108":0,"111":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"123":0,"127":0,"130":0};
_yuitest_coverage["build/attribute-complex/attribute-complex.js"].functions = {"_normAttrVals:31":0,"_getAttrInitVal:75":0,"(anonymous 1):1":0};
_yuitest_coverage["build/attribute-complex/attribute-complex.js"].coveredLines = 39;
@@ -211,4 +211,4 @@ Y.mix(Y.Attribute, Y.Attribute.Complex, true, null, 1);
Y.AttributeComplex = Y.Attribute.Complex;
-}, '3.7.1', {"requires": ["attribute-base"]});
+}, '3.7.2', {"requires": ["attribute-base"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-complex/attribute-complex-debug.js b/lib/yuilib/3.7.2/build/attribute-complex/attribute-complex-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/attribute-complex/attribute-complex-debug.js
rename to lib/yuilib/3.7.2/build/attribute-complex/attribute-complex-debug.js
index d72d184383e..958cb39b72f 100644
--- a/lib/yuilib/3.7.1/build/attribute-complex/attribute-complex-debug.js
+++ b/lib/yuilib/3.7.2/build/attribute-complex/attribute-complex-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -136,4 +136,4 @@ YUI.add('attribute-complex', function (Y, NAME) {
Y.AttributeComplex = Y.Attribute.Complex;
-}, '3.7.1', {"requires": ["attribute-base"]});
+}, '3.7.2', {"requires": ["attribute-base"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-complex/attribute-complex-min.js b/lib/yuilib/3.7.2/build/attribute-complex/attribute-complex-min.js
similarity index 91%
rename from lib/yuilib/3.7.1/build/attribute-complex/attribute-complex-min.js
rename to lib/yuilib/3.7.2/build/attribute-complex/attribute-complex-min.js
index e1546cb1c0b..6b548152c00 100644
--- a/lib/yuilib/3.7.1/build/attribute-complex/attribute-complex-min.js
+++ b/lib/yuilib/3.7.2/build/attribute-complex/attribute-complex-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("attribute-complex",function(e,t){var n=e.Object,r=".";e.Attribute.Complex=function(){},e.Attribute.Complex.prototype={_normAttrVals:function(e){var t={},n={},i,s,o,u;if(e){for(u in e)e.hasOwnProperty(u)&&(u.indexOf(r)!==-1?(i=u.split(r),s=i.shift(),o=n[s]=n[s]||[],o[o.length]={path:i,value:e[u]}):t[u]=e[u]);return{simple:t,complex:n}}return null},_getAttrInitVal:function(e,t,r){var i=t.value,s=t.valueFn,o,u=!1,a,f,l,c,h,p,d;!t.readOnly&&r&&(a=r.simple,a&&a.hasOwnProperty(e)&&(i=a[e],u=!0)),s&&!u&&(s.call||(s=this[s]),s&&(o=s.call(this,e),i=o));if(!t.readOnly&&r){f=r.complex;if(f&&f.hasOwnProperty(e)&&i!==undefined&&i!==null){d=f[e];for(l=0,c=d.length;l"," * AttributeCore provides the lightest level of configurable attribute support. It is designed to be "," * augmented on to a host class, and provides the host with the ability to configure "," * attributes to store and retrieve state, but without support for attribute change events."," *
"," * For example, attributes added to the host can be configured:
"," * "," * - As read only.
"," * - As write once.
"," * - With a setter function, which can be used to manipulate"," * values passed to Attribute's set method, before they are stored.
"," * - With a getter function, which can be used to manipulate stored values,"," * before they are returned by Attribute's get method.
"," * - With a validator function, to validate values before they are stored.
"," *
"," *"," * See the addAttr method, for the complete set of configuration"," * options available for attributes.
"," * "," * Object/Classes based on AttributeCore can augment AttributeEvents "," * (with true for overwrite) and AttributeExtras to add attribute event and "," * additional, less commonly used attribute methods, such as `modifyAttr`, `removeAttr` and `reset`.
"," *"," * @class AttributeCore"," * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor."," * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required."," * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs)."," */"," function AttributeCore(attrs, values, lazy) {"," this._initAttrHost(attrs, values, lazy); "," }",""," /**"," * The value to return from an attribute setter in order to prevent the set from going through.
"," *"," * You can return this value from your setter if you wish to combine validator and setter "," * functionality into a single setter function, which either returns the massaged value to be stored or "," * AttributeCore.INVALID_VALUE to prevent invalid values from being stored.
"," *"," * @property INVALID_VALUE"," * @type Object"," * @static"," * @final"," */"," AttributeCore.INVALID_VALUE = {};"," INVALID_VALUE = AttributeCore.INVALID_VALUE;",""," /**"," * The list of properties which can be configured for "," * each attribute (e.g. setter, getter, writeOnce etc.)."," *"," * This property is used internally as a whitelist for faster"," * Y.mix operations."," *"," * @property _ATTR_CFG"," * @type Array"," * @static"," * @protected"," */"," AttributeCore._ATTR_CFG = [SETTER, GETTER, VALIDATOR, VALUE, VALUE_FN, WRITE_ONCE, READ_ONLY, LAZY_ADD, BYPASS_PROXY];",""," AttributeCore.prototype = {",""," /**"," * Constructor logic for attributes. Initializes the host state, and sets up the inital attributes passed to the "," * constructor."," *"," * @method _initAttrHost"," * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor."," * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required."," * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs)."," * @private"," */"," _initAttrHost : function(attrs, values, lazy) {"," this._state = new Y.State();"," this._initAttrs(attrs, values, lazy);"," },",""," /**"," * "," * Adds an attribute with the provided configuration to the host object."," *
"," * "," * The config argument object supports the following properties:"," *
"," * "," * "," * - value <Any>
"," * - The initial value to set on the attribute
"," *"," * - valueFn <Function | String>
"," * - "," *
A function, which will return the initial value to set on the attribute. This is useful"," * for cases where the attribute configuration is defined statically, but needs to "," * reference the host instance (\"this\") to obtain an initial value. If both the value and valueFn properties are defined, "," * the value returned by the valueFn has precedence over the value property, unless it returns undefined, in which "," * case the value property is used.
"," *"," * valueFn can also be set to a string, representing the name of the instance method to be used to retrieve the value.
"," * "," *"," * - readOnly <boolean>
"," * - Whether or not the attribute is read only. Attributes having readOnly set to true"," * cannot be modified by invoking the set method.
"," *"," * - writeOnce <boolean> or <string>
"," * - "," * Whether or not the attribute is \"write once\". Attributes having writeOnce set to true, "," * can only have their values set once, be it through the default configuration, "," * constructor configuration arguments, or by invoking set."," *
The writeOnce attribute can also be set to the string \"initOnly\", in which case the attribute can only be set during initialization"," * (when used with Base, this means it can only be set during construction)
"," * "," *"," * - setter <Function | String>
"," * - "," *
The setter function used to massage or normalize the value passed to the set method for the attribute. "," * The value returned by the setter will be the final stored value. Returning"," * Attribute.INVALID_VALUE, from the setter will prevent"," * the value from being stored."," *
"," * "," * setter can also be set to a string, representing the name of the instance method to be used as the setter function.
"," * "," * "," * - getter <Function | String>
"," * - "," *
"," * The getter function used to massage or normalize the value returned by the get method for the attribute."," * The value returned by the getter function is the value which will be returned to the user when they "," * invoke get."," *
"," *"," * getter can also be set to a string, representing the name of the instance method to be used as the getter function.
"," * "," *"," * - validator <Function | String>
"," * - "," *
"," * The validator function invoked prior to setting the stored value. Returning"," * false from the validator function will prevent the value from being stored."," *
"," * "," * validator can also be set to a string, representing the name of the instance method to be used as the validator function.
"," * "," *"," * - lazyAdd <boolean>
"," * - Whether or not to delay initialization of the attribute until the first call to get/set it. "," * This flag can be used to over-ride lazy initialization on a per attribute basis, when adding multiple attributes through "," * the addAttrs method.
"," *"," *
"," *"," * The setter, getter and validator are invoked with the value and name passed in as the first and second arguments, and with"," * the context (\"this\") set to the host object.
"," *"," * Configuration properties outside of the list mentioned above are considered private properties used internally by attribute, "," * and are not intended for public use.
"," * "," * @method addAttr"," *"," * @param {String} name The name of the attribute."," * @param {Object} config An object with attribute configuration property/value pairs, specifying the configuration for the attribute."," *"," * "," * NOTE: The configuration object is modified when adding an attribute, so if you need "," * to protect the original values, you will need to merge the object."," *
"," *"," * @param {boolean} lazy (optional) Whether or not to add this attribute lazily (on the first call to get/set). "," *"," * @return {Object} A reference to the host object."," *"," * @chainable"," */"," addAttr: function(name, config, lazy) {","",""," var host = this, // help compression"," state = host._state,"," value,"," hasValue;",""," config = config || {};",""," lazy = (LAZY_ADD in config) ? config[LAZY_ADD] : lazy;",""," if (lazy && !host.attrAdded(name)) {"," state.addAll(name, {"," lazy : config,"," added : true"," });"," } else {","",""," if (!host.attrAdded(name) || state.get(name, IS_LAZY_ADD)) {",""," hasValue = (VALUE in config);","",""," if (hasValue) {"," // We'll go through set, don't want to set value in config directly"," value = config.value;"," delete config.value;"," }",""," config.added = true;"," config.initializing = true;",""," state.addAll(name, config);",""," if (hasValue) {"," // Go through set, so that raw values get normalized/validated"," host.set(name, value);"," }",""," state.remove(name, INITIALIZING);"," }"," }",""," return host;"," },",""," /**"," * Checks if the given attribute has been added to the host"," *"," * @method attrAdded"," * @param {String} name The name of the attribute to check."," * @return {boolean} true if an attribute with the given name has been added, false if it hasn't. This method will return true for lazily added attributes."," */"," attrAdded: function(name) {"," return !!this._state.get(name, ADDED);"," },",""," /**"," * Returns the current value of the attribute. If the attribute"," * has been configured with a 'getter' function, this method will delegate"," * to the 'getter' to obtain the value of the attribute."," *"," * @method get"," *"," * @param {String} name The name of the attribute. If the value of the attribute is an Object, "," * dot notation can be used to obtain the value of a property of the object (e.g. get(\"x.y.z\"))"," *"," * @return {Any} The value of the attribute"," */"," get : function(name) {"," return this._getAttr(name);"," },",""," /**"," * Checks whether or not the attribute is one which has been"," * added lazily and still requires initialization."," *"," * @method _isLazyAttr"," * @private"," * @param {String} name The name of the attribute"," * @return {boolean} true if it's a lazily added attribute, false otherwise."," */"," _isLazyAttr: function(name) {"," return this._state.get(name, LAZY);"," },",""," /**"," * Finishes initializing an attribute which has been lazily added."," *"," * @method _addLazyAttr"," * @private"," * @param {Object} name The name of the attribute"," */"," _addLazyAttr: function(name, cfg) {"," var state = this._state,"," lazyCfg = state.get(name, LAZY);",""," state.add(name, IS_LAZY_ADD, true);"," state.remove(name, LAZY);"," this.addAttr(name, lazyCfg);"," },",""," /**"," * Sets the value of an attribute."," *"," * @method set"," * @chainable"," *"," * @param {String} name The name of the attribute. If the "," * current value of the attribute is an Object, dot notation can be used"," * to set the value of a property within the object (e.g. set(\"x.y.z\", 5))."," *"," * @param {Any} value The value to set the attribute to."," *"," * @return {Object} A reference to the host object."," */"," set : function(name, val) {"," return this._setAttr(name, val);"," },",""," /**"," * Allows setting of readOnly/writeOnce attributes. See set for argument details."," *"," * @method _set"," * @protected"," * @chainable"," * "," * @param {String} name The name of the attribute."," * @param {Any} val The value to set the attribute to."," * @return {Object} A reference to the host object."," */"," _set : function(name, val) {"," return this._setAttr(name, val, null, true);"," },",""," /**"," * Provides the common implementation for the public set and protected _set methods."," *"," * See set for argument details."," *"," * @method _setAttr"," * @protected"," * @chainable"," *"," * @param {String} name The name of the attribute."," * @param {Any} value The value to set the attribute to."," * @param {Object} opts (Optional) Optional event data to be mixed into"," * the event facade passed to subscribers of the attribute's change event."," * This is currently a hack. There's no real need for the AttributeCore implementation"," * to support this parameter, but breaking it out into AttributeEvents, results in"," * additional function hops for the critical path."," * @param {boolean} force If true, allows the caller to set values for "," * readOnly or writeOnce attributes which have already been set."," *"," * @return {Object} A reference to the host object."," */"," _setAttr : function(name, val, opts, force) {"," "," // HACK - no real reason core needs to know about opts, but "," // it adds fn hops if we want to break it out. "," // Not sure it's worth it for this critical path"," "," var allowSet = true,"," state = this._state,"," stateProxy = this._stateProxy,"," cfg,"," initialSet,"," strPath,"," path,"," currVal,"," writeOnce,"," initializing;",""," if (name.indexOf(DOT) !== -1) {"," strPath = name;"," path = name.split(DOT);"," name = path.shift();"," }",""," if (this._isLazyAttr(name)) {"," this._addLazyAttr(name);"," }",""," cfg = state.getAll(name, true) || {}; ",""," initialSet = (!(VALUE in cfg));",""," if (stateProxy && name in stateProxy && !cfg._bypassProxy) {"," // TODO: Value is always set for proxy. Can we do any better? Maybe take a snapshot as the initial value for the first call to set? "," initialSet = false;"," }",""," writeOnce = cfg.writeOnce;"," initializing = cfg.initializing;",""," if (!initialSet && !force) {",""," if (writeOnce) {"," allowSet = false;"," }",""," if (cfg.readOnly) {"," allowSet = false;"," }"," }",""," if (!initializing && !force && writeOnce === INIT_ONLY) {"," allowSet = false;"," }",""," if (allowSet) {"," // Don't need currVal if initialSet (might fail in custom getter if it always expects a non-undefined/non-null value)"," if (!initialSet) {"," currVal = this.get(name);"," }",""," if (path) {"," val = O.setValue(Y.clone(currVal), path, val);",""," if (val === undefined) {"," allowSet = false;"," }"," }",""," if (allowSet) {"," if (!this._fireAttrChange || initializing) {"," this._setAttrVal(name, strPath, currVal, val);"," } else {"," // HACK - no real reason core needs to know about _fireAttrChange, but "," // it adds fn hops if we want to break it out. Not sure it's worth it for this critical path"," this._fireAttrChange(name, strPath, currVal, val, opts);"," }"," }"," }",""," return this;"," },",""," /**"," * Provides the common implementation for the public get method,"," * allowing Attribute hosts to over-ride either method."," *"," * See get for argument details."," *"," * @method _getAttr"," * @protected"," * @chainable"," *"," * @param {String} name The name of the attribute."," * @return {Any} The value of the attribute."," */"," _getAttr : function(name) {"," var host = this, // help compression"," fullName = name,"," state = host._state,"," path,"," getter,"," val,"," cfg;",""," if (name.indexOf(DOT) !== -1) {"," path = name.split(DOT);"," name = path.shift();"," }",""," // On Demand - Should be rare - handles out of order valueFn references"," if (host._tCfgs && host._tCfgs[name]) {"," cfg = {};"," cfg[name] = host._tCfgs[name];"," delete host._tCfgs[name];"," host._addAttrs(cfg, host._tVals);"," }"," "," // Lazy Init"," if (host._isLazyAttr(name)) {"," host._addLazyAttr(name);"," }",""," val = host._getStateVal(name);"," "," getter = state.get(name, GETTER);",""," if (getter && !getter.call) {"," getter = this[getter];"," }",""," val = (getter) ? getter.call(host, val, fullName) : val;"," val = (path) ? O.getValue(val, path) : val;",""," return val;"," },",""," /**"," * Gets the stored value for the attribute, from either the "," * internal state object, or the state proxy if it exits"," * "," * @method _getStateVal"," * @private"," * @param {String} name The name of the attribute"," * @return {Any} The stored value of the attribute"," */"," _getStateVal : function(name) {"," var stateProxy = this._stateProxy;"," return stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY) ? stateProxy[name] : this._state.get(name, VALUE);"," },",""," /**"," * Sets the stored value for the attribute, in either the "," * internal state object, or the state proxy if it exits"," *"," * @method _setStateVal"," * @private"," * @param {String} name The name of the attribute"," * @param {Any} value The value of the attribute"," */"," _setStateVal : function(name, value) {"," var stateProxy = this._stateProxy;"," if (stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY)) {"," stateProxy[name] = value;"," } else {"," this._state.add(name, VALUE, value);"," }"," },",""," /**"," * Updates the stored value of the attribute in the privately held State object,"," * if validation and setter passes."," *"," * @method _setAttrVal"," * @private"," * @param {String} attrName The attribute name."," * @param {String} subAttrName The sub-attribute name, if setting a sub-attribute property (\"x.y.z\")."," * @param {Any} prevVal The currently stored value of the attribute."," * @param {Any} newVal The value which is going to be stored."," * "," * @return {booolean} true if the new attribute value was stored, false if not."," */"," _setAttrVal : function(attrName, subAttrName, prevVal, newVal) {",""," var host = this,"," allowSet = true,"," cfg = this._state.getAll(attrName, true) || {},"," validator = cfg.validator,"," setter = cfg.setter,"," initializing = cfg.initializing,"," prevRawVal = this._getStateVal(attrName),"," name = subAttrName || attrName,"," retVal,"," valid;",""," if (validator) {"," if (!validator.call) { "," // Assume string - trying to keep critical path tight, so avoiding Lang check"," validator = this[validator];"," }"," if (validator) {"," valid = validator.call(host, newVal, name);",""," if (!valid && initializing) {"," newVal = cfg.defaultValue;"," valid = true; // Assume it's valid, for perf."," }"," }"," }",""," if (!validator || valid) {"," if (setter) {"," if (!setter.call) {"," // Assume string - trying to keep critical path tight, so avoiding Lang check"," setter = this[setter];"," }"," if (setter) {"," retVal = setter.call(host, newVal, name);",""," if (retVal === INVALID_VALUE) {"," allowSet = false;"," } else if (retVal !== undefined){"," newVal = retVal;"," }"," }"," }",""," if (allowSet) {"," if(!subAttrName && (newVal === prevRawVal) && !Lang.isObject(newVal)) {"," allowSet = false;"," } else {"," // Store value"," if (!(INIT_VALUE in cfg)) {"," cfg.initValue = newVal;"," }"," host._setStateVal(attrName, newVal);"," }"," }",""," } else {"," allowSet = false;"," }",""," return allowSet;"," },",""," /**"," * Sets multiple attribute values."," *"," * @method setAttrs"," * @param {Object} attrs An object with attributes name/value pairs."," * @return {Object} A reference to the host object."," * @chainable"," */"," setAttrs : function(attrs) {"," return this._setAttrs(attrs);"," },",""," /**"," * Implementation behind the public setAttrs method, to set multiple attribute values."," *"," * @method _setAttrs"," * @protected"," * @param {Object} attrs An object with attributes name/value pairs."," * @return {Object} A reference to the host object."," * @chainable"," */"," _setAttrs : function(attrs) {"," var attr;"," for (attr in attrs) {"," if ( attrs.hasOwnProperty(attr) ) {"," this.set(attr, attrs[attr]);"," }"," }"," return this;"," },",""," /**"," * Gets multiple attribute values."," *"," * @method getAttrs"," * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are"," * returned. If set to true, all attributes modified from their initial values are returned."," * @return {Object} An object with attribute name/value pairs."," */"," getAttrs : function(attrs) {"," return this._getAttrs(attrs);"," },",""," /**"," * Implementation behind the public getAttrs method, to get multiple attribute values."," *"," * @method _getAttrs"," * @protected"," * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are"," * returned. If set to true, all attributes modified from their initial values are returned."," * @return {Object} An object with attribute name/value pairs."," */"," _getAttrs : function(attrs) {"," var obj = {},"," attr, i, len,"," modifiedOnly = (attrs === true);",""," // TODO - figure out how to get all \"added\""," if (!attrs || modifiedOnly) {"," attrs = O.keys(this._state.data);"," }",""," for (i = 0, len = attrs.length; i < len; i++) {"," attr = attrs[i];",""," if (!modifiedOnly || this._getStateVal(attr) != this._state.get(attr, INIT_VALUE)) {"," // Go through get, to honor cloning/normalization"," obj[attr] = this.get(attr);"," }"," }",""," return obj;"," },",""," /**"," * Configures a group of attributes, and sets initial values."," *"," * "," * NOTE: This method does not isolate the configuration object by merging/cloning. "," * The caller is responsible for merging/cloning the configuration object if required."," *
"," *"," * @method addAttrs"," * @chainable"," *"," * @param {Object} cfgs An object with attribute name/configuration pairs."," * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply."," * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only."," * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set."," * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration."," * See addAttr."," * "," * @return {Object} A reference to the host object."," */"," addAttrs : function(cfgs, values, lazy) {"," var host = this; // help compression"," if (cfgs) {"," host._tCfgs = cfgs;"," host._tVals = host._normAttrVals(values);"," host._addAttrs(cfgs, host._tVals, lazy);"," host._tCfgs = host._tVals = null;"," }",""," return host;"," },",""," /**"," * Implementation behind the public addAttrs method. "," * "," * This method is invoked directly by get if it encounters a scenario "," * in which an attribute's valueFn attempts to obtain the "," * value an attribute in the same group of attributes, which has not yet "," * been added (on demand initialization)."," *"," * @method _addAttrs"," * @private"," * @param {Object} cfgs An object with attribute name/configuration pairs."," * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply."," * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only."," * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set."," * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration."," * See addAttr."," */"," _addAttrs : function(cfgs, values, lazy) {"," var host = this, // help compression"," attr,"," attrCfg,"," value;",""," for (attr in cfgs) {"," if (cfgs.hasOwnProperty(attr)) {",""," // Not Merging. Caller is responsible for isolating configs"," attrCfg = cfgs[attr];"," attrCfg.defaultValue = attrCfg.value;",""," // Handle simple, complex and user values, accounting for read-only"," value = host._getAttrInitVal(attr, attrCfg, host._tVals);",""," if (value !== undefined) {"," attrCfg.value = value;"," }",""," if (host._tCfgs[attr]) {"," delete host._tCfgs[attr];"," }",""," host.addAttr(attr, attrCfg, lazy);"," }"," }"," },",""," /**"," * Utility method to protect an attribute configuration"," * hash, by merging the entire object and the individual "," * attr config objects. "," *"," * @method _protectAttrs"," * @protected"," * @param {Object} attrs A hash of attribute to configuration object pairs."," * @return {Object} A protected version of the attrs argument."," */"," _protectAttrs : function(attrs) {"," if (attrs) {"," attrs = Y.merge(attrs);"," for (var attr in attrs) {"," if (attrs.hasOwnProperty(attr)) {"," attrs[attr] = Y.merge(attrs[attr]);"," }"," }"," }"," return attrs;"," },",""," /**"," * Utility method to normalize attribute values. The base implementation "," * simply merges the hash to protect the original."," *"," * @method _normAttrVals"," * @param {Object} valueHash An object with attribute name/value pairs"," *"," * @return {Object}"," *"," * @private"," */"," _normAttrVals : function(valueHash) {"," return (valueHash) ? Y.merge(valueHash) : null;"," },",""," /**"," * Returns the initial value of the given attribute from"," * either the default configuration provided, or the "," * over-ridden value if it exists in the set of initValues "," * provided and the attribute is not read-only."," *"," * @param {String} attr The name of the attribute"," * @param {Object} cfg The attribute configuration object"," * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals"," *"," * @return {Any} The initial value of the attribute."," *"," * @method _getAttrInitVal"," * @private"," */"," _getAttrInitVal : function(attr, cfg, initValues) {"," var val, valFn;"," // init value is provided by the user if it exists, else, provided by the config"," if (!cfg.readOnly && initValues && initValues.hasOwnProperty(attr)) {"," val = initValues[attr];"," } else {"," val = cfg.value;"," valFn = cfg.valueFn;"," "," if (valFn) {"," if (!valFn.call) {"," valFn = this[valFn];"," }"," if (valFn) {"," val = valFn.call(this, attr);"," }"," }"," }","",""," return val;"," },",""," /**"," * Utility method to set up initial attributes defined during construction, either through the constructor.ATTRS property, or explicitly passed in."," * "," * @method _initAttrs"," * @protected"," * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor."," * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required."," * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs)."," */"," _initAttrs : function(attrs, values, lazy) {"," // ATTRS support for Node, which is not Base based"," attrs = attrs || this.constructor.ATTRS;"," "," var Base = Y.Base,"," BaseCore = Y.BaseCore,"," baseInst = (Base && Y.instanceOf(this, Base)),"," baseCoreInst = (!baseInst && BaseCore && Y.instanceOf(this, BaseCore));",""," if ( attrs && !baseInst && !baseCoreInst) {"," this.addAttrs(this._protectAttrs(attrs), values, lazy);"," }"," }"," };",""," Y.AttributeCore = AttributeCore;","","","}, '3.7.1', {\"requires\": [\"oop\"]});"];
+_yuitest_coverage["build/attribute-core/attribute-core.js"].code=["YUI.add('attribute-core', function (Y, NAME) {",""," /**"," * The State class maintains state for a collection of named items, with"," * a varying number of properties defined."," *"," * It avoids the need to create a separate class for the item, and separate instances"," * of these classes for each item, by storing the state in a 2 level hash table,"," * improving performance when the number of items is likely to be large."," *"," * @constructor"," * @class State"," */"," Y.State = function() {"," /**"," * Hash of attributes"," * @property data"," */"," this.data = {};"," };",""," Y.State.prototype = {",""," /**"," * Adds a property to an item."," *"," * @method add"," * @param name {String} The name of the item."," * @param key {String} The name of the property."," * @param val {Any} The value of the property."," */"," add: function(name, key, val) {"," var item = this.data[name];",""," if (!item) {"," item = this.data[name] = {};"," }",""," item[key] = val;"," },",""," /**"," * Adds multiple properties to an item."," *"," * @method addAll"," * @param name {String} The name of the item."," * @param obj {Object} A hash of property/value pairs."," */"," addAll: function(name, obj) {"," var item = this.data[name],"," key;",""," if (!item) {"," item = this.data[name] = {};"," }",""," for (key in obj) {"," if (obj.hasOwnProperty(key)) {"," item[key] = obj[key];"," }"," }"," },",""," /**"," * Removes a property from an item."," *"," * @method remove"," * @param name {String} The name of the item."," * @param key {String} The property to remove."," */"," remove: function(name, key) {"," var item = this.data[name];",""," if (item) {"," delete item[key];"," }"," },",""," /**"," * Removes multiple properties from an item, or removes the item completely."," *"," * @method removeAll"," * @param name {String} The name of the item."," * @param obj {Object|Array} Collection of properties to delete. If not provided, the entire item is removed."," */"," removeAll: function(name, obj) {"," var data;",""," if (!obj) {"," data = this.data;",""," if (name in data) {"," delete data[name];"," }"," } else {"," Y.each(obj, function(value, key) {"," this.remove(name, typeof key === 'string' ? key : value);"," }, this);"," }"," },",""," /**"," * For a given item, returns the value of the property requested, or undefined if not found."," *"," * @method get"," * @param name {String} The name of the item"," * @param key {String} Optional. The property value to retrieve."," * @return {Any} The value of the supplied property."," */"," get: function(name, key) {"," var item = this.data[name];",""," if (item) {"," return item[key];"," }"," },",""," /**"," * For the given item, returns an object with all of the"," * item's property/value pairs. By default the object returned"," * is a shallow copy of the stored data, but passing in true"," * as the second parameter will return a reference to the stored"," * data."," *"," * @method getAll"," * @param name {String} The name of the item"," * @param reference {boolean} true, if you want a reference to the stored"," * object"," * @return {Object} An object with property/value pairs for the item."," */"," getAll : function(name, reference) {"," var item = this.data[name],"," key, obj;",""," if (reference) {"," obj = item;"," } else if (item) {"," obj = {};",""," for (key in item) {"," if (item.hasOwnProperty(key)) {"," obj[key] = item[key];"," }"," }"," }",""," return obj;"," }"," };"," /**"," * The attribute module provides an augmentable Attribute implementation, which "," * adds configurable attributes and attribute change events to the class being "," * augmented. It also provides a State class, which is used internally by Attribute,"," * but can also be used independently to provide a name/property/value data structure to"," * store state."," *"," * @module attribute"," */",""," /**"," * The attribute-core submodule provides the lightest level of attribute handling support "," * without Attribute change events, or lesser used methods such as reset(), modifyAttrs(),"," * and removeAttr()."," *"," * @module attribute"," * @submodule attribute-core"," */"," var O = Y.Object,"," Lang = Y.Lang,",""," DOT = \".\",",""," // Externally configurable props"," GETTER = \"getter\","," SETTER = \"setter\","," READ_ONLY = \"readOnly\","," WRITE_ONCE = \"writeOnce\","," INIT_ONLY = \"initOnly\","," VALIDATOR = \"validator\","," VALUE = \"value\","," VALUE_FN = \"valueFn\","," LAZY_ADD = \"lazyAdd\",",""," // Used for internal state management"," ADDED = \"added\","," BYPASS_PROXY = \"_bypassProxy\","," INITIALIZING = \"initializing\","," INIT_VALUE = \"initValue\","," LAZY = \"lazy\","," IS_LAZY_ADD = \"isLazyAdd\",",""," INVALID_VALUE;",""," /**"," * "," * AttributeCore provides the lightest level of configurable attribute support. It is designed to be "," * augmented on to a host class, and provides the host with the ability to configure "," * attributes to store and retrieve state, but without support for attribute change events."," *
"," * For example, attributes added to the host can be configured:
"," * "," * - As read only.
"," * - As write once.
"," * - With a setter function, which can be used to manipulate"," * values passed to Attribute's set method, before they are stored.
"," * - With a getter function, which can be used to manipulate stored values,"," * before they are returned by Attribute's get method.
"," * - With a validator function, to validate values before they are stored.
"," *
"," *"," * See the addAttr method, for the complete set of configuration"," * options available for attributes.
"," * "," * Object/Classes based on AttributeCore can augment AttributeEvents "," * (with true for overwrite) and AttributeExtras to add attribute event and "," * additional, less commonly used attribute methods, such as `modifyAttr`, `removeAttr` and `reset`.
"," *"," * @class AttributeCore"," * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor."," * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required."," * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs)."," */"," function AttributeCore(attrs, values, lazy) {"," this._initAttrHost(attrs, values, lazy); "," }",""," /**"," * The value to return from an attribute setter in order to prevent the set from going through.
"," *"," * You can return this value from your setter if you wish to combine validator and setter "," * functionality into a single setter function, which either returns the massaged value to be stored or "," * AttributeCore.INVALID_VALUE to prevent invalid values from being stored.
"," *"," * @property INVALID_VALUE"," * @type Object"," * @static"," * @final"," */"," AttributeCore.INVALID_VALUE = {};"," INVALID_VALUE = AttributeCore.INVALID_VALUE;",""," /**"," * The list of properties which can be configured for "," * each attribute (e.g. setter, getter, writeOnce etc.)."," *"," * This property is used internally as a whitelist for faster"," * Y.mix operations."," *"," * @property _ATTR_CFG"," * @type Array"," * @static"," * @protected"," */"," AttributeCore._ATTR_CFG = [SETTER, GETTER, VALIDATOR, VALUE, VALUE_FN, WRITE_ONCE, READ_ONLY, LAZY_ADD, BYPASS_PROXY];",""," AttributeCore.prototype = {",""," /**"," * Constructor logic for attributes. Initializes the host state, and sets up the inital attributes passed to the "," * constructor."," *"," * @method _initAttrHost"," * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor."," * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required."," * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs)."," * @private"," */"," _initAttrHost : function(attrs, values, lazy) {"," this._state = new Y.State();"," this._initAttrs(attrs, values, lazy);"," },",""," /**"," * "," * Adds an attribute with the provided configuration to the host object."," *
"," * "," * The config argument object supports the following properties:"," *
"," * "," * "," * - value <Any>
"," * - The initial value to set on the attribute
"," *"," * - valueFn <Function | String>
"," * - "," *
A function, which will return the initial value to set on the attribute. This is useful"," * for cases where the attribute configuration is defined statically, but needs to "," * reference the host instance (\"this\") to obtain an initial value. If both the value and valueFn properties are defined, "," * the value returned by the valueFn has precedence over the value property, unless it returns undefined, in which "," * case the value property is used.
"," *"," * valueFn can also be set to a string, representing the name of the instance method to be used to retrieve the value.
"," * "," *"," * - readOnly <boolean>
"," * - Whether or not the attribute is read only. Attributes having readOnly set to true"," * cannot be modified by invoking the set method.
"," *"," * - writeOnce <boolean> or <string>
"," * - "," * Whether or not the attribute is \"write once\". Attributes having writeOnce set to true, "," * can only have their values set once, be it through the default configuration, "," * constructor configuration arguments, or by invoking set."," *
The writeOnce attribute can also be set to the string \"initOnly\", in which case the attribute can only be set during initialization"," * (when used with Base, this means it can only be set during construction)
"," * "," *"," * - setter <Function | String>
"," * - "," *
The setter function used to massage or normalize the value passed to the set method for the attribute. "," * The value returned by the setter will be the final stored value. Returning"," * Attribute.INVALID_VALUE, from the setter will prevent"," * the value from being stored."," *
"," * "," * setter can also be set to a string, representing the name of the instance method to be used as the setter function.
"," * "," * "," * - getter <Function | String>
"," * - "," *
"," * The getter function used to massage or normalize the value returned by the get method for the attribute."," * The value returned by the getter function is the value which will be returned to the user when they "," * invoke get."," *
"," *"," * getter can also be set to a string, representing the name of the instance method to be used as the getter function.
"," * "," *"," * - validator <Function | String>
"," * - "," *
"," * The validator function invoked prior to setting the stored value. Returning"," * false from the validator function will prevent the value from being stored."," *
"," * "," * validator can also be set to a string, representing the name of the instance method to be used as the validator function.
"," * "," *"," * - lazyAdd <boolean>
"," * - Whether or not to delay initialization of the attribute until the first call to get/set it. "," * This flag can be used to over-ride lazy initialization on a per attribute basis, when adding multiple attributes through "," * the addAttrs method.
"," *"," *
"," *"," * The setter, getter and validator are invoked with the value and name passed in as the first and second arguments, and with"," * the context (\"this\") set to the host object.
"," *"," * Configuration properties outside of the list mentioned above are considered private properties used internally by attribute, "," * and are not intended for public use.
"," * "," * @method addAttr"," *"," * @param {String} name The name of the attribute."," * @param {Object} config An object with attribute configuration property/value pairs, specifying the configuration for the attribute."," *"," * "," * NOTE: The configuration object is modified when adding an attribute, so if you need "," * to protect the original values, you will need to merge the object."," *
"," *"," * @param {boolean} lazy (optional) Whether or not to add this attribute lazily (on the first call to get/set). "," *"," * @return {Object} A reference to the host object."," *"," * @chainable"," */"," addAttr: function(name, config, lazy) {","",""," var host = this, // help compression"," state = host._state,"," value,"," hasValue;",""," config = config || {};",""," lazy = (LAZY_ADD in config) ? config[LAZY_ADD] : lazy;",""," if (lazy && !host.attrAdded(name)) {"," state.addAll(name, {"," lazy : config,"," added : true"," });"," } else {","",""," if (!host.attrAdded(name) || state.get(name, IS_LAZY_ADD)) {",""," hasValue = (VALUE in config);","",""," if (hasValue) {"," // We'll go through set, don't want to set value in config directly"," value = config.value;"," delete config.value;"," }",""," config.added = true;"," config.initializing = true;",""," state.addAll(name, config);",""," if (hasValue) {"," // Go through set, so that raw values get normalized/validated"," host.set(name, value);"," }",""," state.remove(name, INITIALIZING);"," }"," }",""," return host;"," },",""," /**"," * Checks if the given attribute has been added to the host"," *"," * @method attrAdded"," * @param {String} name The name of the attribute to check."," * @return {boolean} true if an attribute with the given name has been added, false if it hasn't. This method will return true for lazily added attributes."," */"," attrAdded: function(name) {"," return !!this._state.get(name, ADDED);"," },",""," /**"," * Returns the current value of the attribute. If the attribute"," * has been configured with a 'getter' function, this method will delegate"," * to the 'getter' to obtain the value of the attribute."," *"," * @method get"," *"," * @param {String} name The name of the attribute. If the value of the attribute is an Object, "," * dot notation can be used to obtain the value of a property of the object (e.g. get(\"x.y.z\"))"," *"," * @return {Any} The value of the attribute"," */"," get : function(name) {"," return this._getAttr(name);"," },",""," /**"," * Checks whether or not the attribute is one which has been"," * added lazily and still requires initialization."," *"," * @method _isLazyAttr"," * @private"," * @param {String} name The name of the attribute"," * @return {boolean} true if it's a lazily added attribute, false otherwise."," */"," _isLazyAttr: function(name) {"," return this._state.get(name, LAZY);"," },",""," /**"," * Finishes initializing an attribute which has been lazily added."," *"," * @method _addLazyAttr"," * @private"," * @param {Object} name The name of the attribute"," */"," _addLazyAttr: function(name, cfg) {"," var state = this._state,"," lazyCfg = state.get(name, LAZY);",""," state.add(name, IS_LAZY_ADD, true);"," state.remove(name, LAZY);"," this.addAttr(name, lazyCfg);"," },",""," /**"," * Sets the value of an attribute."," *"," * @method set"," * @chainable"," *"," * @param {String} name The name of the attribute. If the "," * current value of the attribute is an Object, dot notation can be used"," * to set the value of a property within the object (e.g. set(\"x.y.z\", 5))."," *"," * @param {Any} value The value to set the attribute to."," *"," * @return {Object} A reference to the host object."," */"," set : function(name, val) {"," return this._setAttr(name, val);"," },",""," /**"," * Allows setting of readOnly/writeOnce attributes. See set for argument details."," *"," * @method _set"," * @protected"," * @chainable"," * "," * @param {String} name The name of the attribute."," * @param {Any} val The value to set the attribute to."," * @return {Object} A reference to the host object."," */"," _set : function(name, val) {"," return this._setAttr(name, val, null, true);"," },",""," /**"," * Provides the common implementation for the public set and protected _set methods."," *"," * See set for argument details."," *"," * @method _setAttr"," * @protected"," * @chainable"," *"," * @param {String} name The name of the attribute."," * @param {Any} value The value to set the attribute to."," * @param {Object} opts (Optional) Optional event data to be mixed into"," * the event facade passed to subscribers of the attribute's change event."," * This is currently a hack. There's no real need for the AttributeCore implementation"," * to support this parameter, but breaking it out into AttributeEvents, results in"," * additional function hops for the critical path."," * @param {boolean} force If true, allows the caller to set values for "," * readOnly or writeOnce attributes which have already been set."," *"," * @return {Object} A reference to the host object."," */"," _setAttr : function(name, val, opts, force) {"," "," // HACK - no real reason core needs to know about opts, but "," // it adds fn hops if we want to break it out. "," // Not sure it's worth it for this critical path"," "," var allowSet = true,"," state = this._state,"," stateProxy = this._stateProxy,"," cfg,"," initialSet,"," strPath,"," path,"," currVal,"," writeOnce,"," initializing;",""," if (name.indexOf(DOT) !== -1) {"," strPath = name;"," path = name.split(DOT);"," name = path.shift();"," }",""," if (this._isLazyAttr(name)) {"," this._addLazyAttr(name);"," }",""," cfg = state.getAll(name, true) || {}; ",""," initialSet = (!(VALUE in cfg));",""," if (stateProxy && name in stateProxy && !cfg._bypassProxy) {"," // TODO: Value is always set for proxy. Can we do any better? Maybe take a snapshot as the initial value for the first call to set? "," initialSet = false;"," }",""," writeOnce = cfg.writeOnce;"," initializing = cfg.initializing;",""," if (!initialSet && !force) {",""," if (writeOnce) {"," allowSet = false;"," }",""," if (cfg.readOnly) {"," allowSet = false;"," }"," }",""," if (!initializing && !force && writeOnce === INIT_ONLY) {"," allowSet = false;"," }",""," if (allowSet) {"," // Don't need currVal if initialSet (might fail in custom getter if it always expects a non-undefined/non-null value)"," if (!initialSet) {"," currVal = this.get(name);"," }",""," if (path) {"," val = O.setValue(Y.clone(currVal), path, val);",""," if (val === undefined) {"," allowSet = false;"," }"," }",""," if (allowSet) {"," if (!this._fireAttrChange || initializing) {"," this._setAttrVal(name, strPath, currVal, val);"," } else {"," // HACK - no real reason core needs to know about _fireAttrChange, but "," // it adds fn hops if we want to break it out. Not sure it's worth it for this critical path"," this._fireAttrChange(name, strPath, currVal, val, opts);"," }"," }"," }",""," return this;"," },",""," /**"," * Provides the common implementation for the public get method,"," * allowing Attribute hosts to over-ride either method."," *"," * See get for argument details."," *"," * @method _getAttr"," * @protected"," * @chainable"," *"," * @param {String} name The name of the attribute."," * @return {Any} The value of the attribute."," */"," _getAttr : function(name) {"," var host = this, // help compression"," fullName = name,"," state = host._state,"," path,"," getter,"," val,"," cfg;",""," if (name.indexOf(DOT) !== -1) {"," path = name.split(DOT);"," name = path.shift();"," }",""," // On Demand - Should be rare - handles out of order valueFn references"," if (host._tCfgs && host._tCfgs[name]) {"," cfg = {};"," cfg[name] = host._tCfgs[name];"," delete host._tCfgs[name];"," host._addAttrs(cfg, host._tVals);"," }"," "," // Lazy Init"," if (host._isLazyAttr(name)) {"," host._addLazyAttr(name);"," }",""," val = host._getStateVal(name);"," "," getter = state.get(name, GETTER);",""," if (getter && !getter.call) {"," getter = this[getter];"," }",""," val = (getter) ? getter.call(host, val, fullName) : val;"," val = (path) ? O.getValue(val, path) : val;",""," return val;"," },",""," /**"," * Gets the stored value for the attribute, from either the "," * internal state object, or the state proxy if it exits"," * "," * @method _getStateVal"," * @private"," * @param {String} name The name of the attribute"," * @return {Any} The stored value of the attribute"," */"," _getStateVal : function(name) {"," var stateProxy = this._stateProxy;"," return stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY) ? stateProxy[name] : this._state.get(name, VALUE);"," },",""," /**"," * Sets the stored value for the attribute, in either the "," * internal state object, or the state proxy if it exits"," *"," * @method _setStateVal"," * @private"," * @param {String} name The name of the attribute"," * @param {Any} value The value of the attribute"," */"," _setStateVal : function(name, value) {"," var stateProxy = this._stateProxy;"," if (stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY)) {"," stateProxy[name] = value;"," } else {"," this._state.add(name, VALUE, value);"," }"," },",""," /**"," * Updates the stored value of the attribute in the privately held State object,"," * if validation and setter passes."," *"," * @method _setAttrVal"," * @private"," * @param {String} attrName The attribute name."," * @param {String} subAttrName The sub-attribute name, if setting a sub-attribute property (\"x.y.z\")."," * @param {Any} prevVal The currently stored value of the attribute."," * @param {Any} newVal The value which is going to be stored."," * "," * @return {booolean} true if the new attribute value was stored, false if not."," */"," _setAttrVal : function(attrName, subAttrName, prevVal, newVal) {",""," var host = this,"," allowSet = true,"," cfg = this._state.getAll(attrName, true) || {},"," validator = cfg.validator,"," setter = cfg.setter,"," initializing = cfg.initializing,"," prevRawVal = this._getStateVal(attrName),"," name = subAttrName || attrName,"," retVal,"," valid;",""," if (validator) {"," if (!validator.call) { "," // Assume string - trying to keep critical path tight, so avoiding Lang check"," validator = this[validator];"," }"," if (validator) {"," valid = validator.call(host, newVal, name);",""," if (!valid && initializing) {"," newVal = cfg.defaultValue;"," valid = true; // Assume it's valid, for perf."," }"," }"," }",""," if (!validator || valid) {"," if (setter) {"," if (!setter.call) {"," // Assume string - trying to keep critical path tight, so avoiding Lang check"," setter = this[setter];"," }"," if (setter) {"," retVal = setter.call(host, newVal, name);",""," if (retVal === INVALID_VALUE) {"," allowSet = false;"," } else if (retVal !== undefined){"," newVal = retVal;"," }"," }"," }",""," if (allowSet) {"," if(!subAttrName && (newVal === prevRawVal) && !Lang.isObject(newVal)) {"," allowSet = false;"," } else {"," // Store value"," if (!(INIT_VALUE in cfg)) {"," cfg.initValue = newVal;"," }"," host._setStateVal(attrName, newVal);"," }"," }",""," } else {"," allowSet = false;"," }",""," return allowSet;"," },",""," /**"," * Sets multiple attribute values."," *"," * @method setAttrs"," * @param {Object} attrs An object with attributes name/value pairs."," * @return {Object} A reference to the host object."," * @chainable"," */"," setAttrs : function(attrs) {"," return this._setAttrs(attrs);"," },",""," /**"," * Implementation behind the public setAttrs method, to set multiple attribute values."," *"," * @method _setAttrs"," * @protected"," * @param {Object} attrs An object with attributes name/value pairs."," * @return {Object} A reference to the host object."," * @chainable"," */"," _setAttrs : function(attrs) {"," var attr;"," for (attr in attrs) {"," if ( attrs.hasOwnProperty(attr) ) {"," this.set(attr, attrs[attr]);"," }"," }"," return this;"," },",""," /**"," * Gets multiple attribute values."," *"," * @method getAttrs"," * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are"," * returned. If set to true, all attributes modified from their initial values are returned."," * @return {Object} An object with attribute name/value pairs."," */"," getAttrs : function(attrs) {"," return this._getAttrs(attrs);"," },",""," /**"," * Implementation behind the public getAttrs method, to get multiple attribute values."," *"," * @method _getAttrs"," * @protected"," * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are"," * returned. If set to true, all attributes modified from their initial values are returned."," * @return {Object} An object with attribute name/value pairs."," */"," _getAttrs : function(attrs) {"," var obj = {},"," attr, i, len,"," modifiedOnly = (attrs === true);",""," // TODO - figure out how to get all \"added\""," if (!attrs || modifiedOnly) {"," attrs = O.keys(this._state.data);"," }",""," for (i = 0, len = attrs.length; i < len; i++) {"," attr = attrs[i];",""," if (!modifiedOnly || this._getStateVal(attr) != this._state.get(attr, INIT_VALUE)) {"," // Go through get, to honor cloning/normalization"," obj[attr] = this.get(attr);"," }"," }",""," return obj;"," },",""," /**"," * Configures a group of attributes, and sets initial values."," *"," * "," * NOTE: This method does not isolate the configuration object by merging/cloning. "," * The caller is responsible for merging/cloning the configuration object if required."," *
"," *"," * @method addAttrs"," * @chainable"," *"," * @param {Object} cfgs An object with attribute name/configuration pairs."," * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply."," * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only."," * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set."," * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration."," * See addAttr."," * "," * @return {Object} A reference to the host object."," */"," addAttrs : function(cfgs, values, lazy) {"," var host = this; // help compression"," if (cfgs) {"," host._tCfgs = cfgs;"," host._tVals = host._normAttrVals(values);"," host._addAttrs(cfgs, host._tVals, lazy);"," host._tCfgs = host._tVals = null;"," }",""," return host;"," },",""," /**"," * Implementation behind the public addAttrs method. "," * "," * This method is invoked directly by get if it encounters a scenario "," * in which an attribute's valueFn attempts to obtain the "," * value an attribute in the same group of attributes, which has not yet "," * been added (on demand initialization)."," *"," * @method _addAttrs"," * @private"," * @param {Object} cfgs An object with attribute name/configuration pairs."," * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply."," * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only."," * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set."," * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration."," * See addAttr."," */"," _addAttrs : function(cfgs, values, lazy) {"," var host = this, // help compression"," attr,"," attrCfg,"," value;",""," for (attr in cfgs) {"," if (cfgs.hasOwnProperty(attr)) {",""," // Not Merging. Caller is responsible for isolating configs"," attrCfg = cfgs[attr];"," attrCfg.defaultValue = attrCfg.value;",""," // Handle simple, complex and user values, accounting for read-only"," value = host._getAttrInitVal(attr, attrCfg, host._tVals);",""," if (value !== undefined) {"," attrCfg.value = value;"," }",""," if (host._tCfgs[attr]) {"," delete host._tCfgs[attr];"," }",""," host.addAttr(attr, attrCfg, lazy);"," }"," }"," },",""," /**"," * Utility method to protect an attribute configuration"," * hash, by merging the entire object and the individual "," * attr config objects. "," *"," * @method _protectAttrs"," * @protected"," * @param {Object} attrs A hash of attribute to configuration object pairs."," * @return {Object} A protected version of the attrs argument."," */"," _protectAttrs : function(attrs) {"," if (attrs) {"," attrs = Y.merge(attrs);"," for (var attr in attrs) {"," if (attrs.hasOwnProperty(attr)) {"," attrs[attr] = Y.merge(attrs[attr]);"," }"," }"," }"," return attrs;"," },",""," /**"," * Utility method to normalize attribute values. The base implementation "," * simply merges the hash to protect the original."," *"," * @method _normAttrVals"," * @param {Object} valueHash An object with attribute name/value pairs"," *"," * @return {Object}"," *"," * @private"," */"," _normAttrVals : function(valueHash) {"," return (valueHash) ? Y.merge(valueHash) : null;"," },",""," /**"," * Returns the initial value of the given attribute from"," * either the default configuration provided, or the "," * over-ridden value if it exists in the set of initValues "," * provided and the attribute is not read-only."," *"," * @param {String} attr The name of the attribute"," * @param {Object} cfg The attribute configuration object"," * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals"," *"," * @return {Any} The initial value of the attribute."," *"," * @method _getAttrInitVal"," * @private"," */"," _getAttrInitVal : function(attr, cfg, initValues) {"," var val, valFn;"," // init value is provided by the user if it exists, else, provided by the config"," if (!cfg.readOnly && initValues && initValues.hasOwnProperty(attr)) {"," val = initValues[attr];"," } else {"," val = cfg.value;"," valFn = cfg.valueFn;"," "," if (valFn) {"," if (!valFn.call) {"," valFn = this[valFn];"," }"," if (valFn) {"," val = valFn.call(this, attr);"," }"," }"," }","",""," return val;"," },",""," /**"," * Utility method to set up initial attributes defined during construction, either through the constructor.ATTRS property, or explicitly passed in."," * "," * @method _initAttrs"," * @protected"," * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor."," * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required."," * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs)."," */"," _initAttrs : function(attrs, values, lazy) {"," // ATTRS support for Node, which is not Base based"," attrs = attrs || this.constructor.ATTRS;"," "," var Base = Y.Base,"," BaseCore = Y.BaseCore,"," baseInst = (Base && Y.instanceOf(this, Base)),"," baseCoreInst = (!baseInst && BaseCore && Y.instanceOf(this, BaseCore));",""," if ( attrs && !baseInst && !baseCoreInst) {"," this.addAttrs(this._protectAttrs(attrs), values, lazy);"," }"," }"," };",""," Y.AttributeCore = AttributeCore;","","","}, '3.7.2', {\"requires\": [\"oop\"]});"];
_yuitest_coverage["build/attribute-core/attribute-core.js"].lines = {"1":0,"14":0,"19":0,"22":0,"33":0,"35":0,"36":0,"39":0,"50":0,"53":0,"54":0,"57":0,"58":0,"59":0,"72":0,"74":0,"75":0,"87":0,"89":0,"90":0,"92":0,"93":0,"96":0,"97":0,"111":0,"113":0,"114":0,"132":0,"135":0,"136":0,"137":0,"138":0,"140":0,"141":0,"142":0,"147":0,"168":0,"223":0,"224":0,"239":0,"240":0,"254":0,"256":0,"269":0,"270":0,"373":0,"378":0,"380":0,"382":0,"383":0,"390":0,"392":0,"395":0,"397":0,"398":0,"401":0,"402":0,"404":0,"406":0,"408":0,"411":0,"415":0,"426":0,"442":0,"455":0,"466":0,"469":0,"470":0,"471":0,"489":0,"504":0,"534":0,"545":0,"546":0,"547":0,"548":0,"551":0,"552":0,"555":0,"557":0,"559":0,"561":0,"564":0,"565":0,"567":0,"569":0,"570":0,"573":0,"574":0,"578":0,"579":0,"582":0,"584":0,"585":0,"588":0,"589":0,"591":0,"592":0,"596":0,"597":0,"598":0,"602":0,"607":0,"624":0,"632":0,"633":0,"634":0,"638":0,"639":0,"640":0,"641":0,"642":0,"646":0,"647":0,"650":0,"652":0,"654":0,"655":0,"658":0,"659":0,"661":0,"674":0,"675":0,"688":0,"689":0,"690":0,"692":0,"711":0,"722":0,"723":0,"725":0,"727":0,"728":0,"730":0,"731":0,"732":0,"737":0,"738":0,"739":0,"741":0,"743":0,"744":0,"746":0,"747":0,"748":0,"749":0,"754":0,"755":0,"756":0,"759":0,"760":0,"762":0,"767":0,"770":0,"782":0,"795":0,"796":0,"797":0,"798":0,"801":0,"813":0,"826":0,"831":0,"832":0,"835":0,"836":0,"838":0,"840":0,"844":0,"868":0,"869":0,"870":0,"871":0,"872":0,"873":0,"876":0,"897":0,"902":0,"903":0,"906":0,"907":0,"910":0,"912":0,"913":0,"916":0,"917":0,"920":0,"936":0,"937":0,"938":0,"939":0,"940":0,"944":0,"959":0,"978":0,"980":0,"981":0,"983":0,"984":0,"986":0,"987":0,"988":0,"990":0,"991":0,"997":0,"1011":0,"1013":0,"1018":0,"1019":0,"1024":0};
_yuitest_coverage["build/attribute-core/attribute-core.js"].functions = {"State:14":0,"add:32":0,"addAll:49":0,"remove:71":0,"(anonymous 2):96":0,"removeAll:86":0,"get:110":0,"getAll:131":0,"AttributeCore:223":0,"_initAttrHost:268":0,"addAttr:370":0,"attrAdded:425":0,"get:441":0,"_isLazyAttr:454":0,"_addLazyAttr:465":0,"set:488":0,"_set:503":0,"_setAttr:528":0,"_getAttr:623":0,"_getStateVal:673":0,"_setStateVal:687":0,"_setAttrVal:709":0,"setAttrs:781":0,"_setAttrs:794":0,"getAttrs:812":0,"_getAttrs:825":0,"addAttrs:867":0,"_addAttrs:896":0,"_protectAttrs:935":0,"_normAttrVals:958":0,"_getAttrInitVal:977":0,"_initAttrs:1009":0,"(anonymous 1):1":0};
_yuitest_coverage["build/attribute-core/attribute-core.js"].coveredLines = 210;
@@ -1306,4 +1306,4 @@ this.addAttrs(this._protectAttrs(attrs), values, lazy);
Y.AttributeCore = AttributeCore;
-}, '3.7.1', {"requires": ["oop"]});
+}, '3.7.2', {"requires": ["oop"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-core/attribute-core-debug.js b/lib/yuilib/3.7.2/build/attribute-core/attribute-core-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/attribute-core/attribute-core-debug.js
rename to lib/yuilib/3.7.2/build/attribute-core/attribute-core-debug.js
index f7e37ad18a6..4a6ac2b12fe 100644
--- a/lib/yuilib/3.7.1/build/attribute-core/attribute-core-debug.js
+++ b/lib/yuilib/3.7.2/build/attribute-core/attribute-core-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1042,4 +1042,4 @@ YUI.add('attribute-core', function (Y, NAME) {
Y.AttributeCore = AttributeCore;
-}, '3.7.1', {"requires": ["oop"]});
+}, '3.7.2', {"requires": ["oop"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-core/attribute-core-min.js b/lib/yuilib/3.7.2/build/attribute-core/attribute-core-min.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/attribute-core/attribute-core-min.js
rename to lib/yuilib/3.7.2/build/attribute-core/attribute-core-min.js
index 1d6c19ad396..572c58789bd 100644
--- a/lib/yuilib/3.7.1/build/attribute-core/attribute-core-min.js
+++ b/lib/yuilib/3.7.2/build/attribute-core/attribute-core-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("attribute-core",function(e,t){function E(e,t,n){this._initAttrHost(e,t,n)}e.State=function(){this.data={}},e.State.prototype={add:function(e,t,n){var r=this.data[e];r||(r=this.data[e]={}),r[t]=n},addAll:function(e,t){var n=this.data[e],r;n||(n=this.data[e]={});for(r in t)t.hasOwnProperty(r)&&(n[r]=t[r])},remove:function(e,t){var n=this.data[e];n&&delete n[t]},removeAll:function(t,n){var r;n?e.each(n,function(e,n){this.remove(t,typeof n=="string"?n:e)},this):(r=this.data,t in r&&delete r[t])},get:function(e,t){var n=this.data[e];if(n)return n[t]},getAll:function(e,t){var n=this.data[e],r,i;if(t)i=n;else if(n){i={};for(r in n)n.hasOwnProperty(r)&&(i[r]=n[r])}return i}};var n=e.Object,r=e.Lang,i=".",s="getter",o="setter",u="readOnly",a="writeOnce",f="initOnly",l="validator",c="value",h="valueFn",p="lazyAdd",d="added",v="_bypassProxy",m="initializing",g="initValue",y="lazy",b="isLazyAdd",w;E.INVALID_VALUE={},w=E.INVALID_VALUE,E._ATTR_CFG=[o,s,l,c,h,a,u,p,v],E.prototype={_initAttrHost:function(t,n,r){this._state=new e.State,this._initAttrs(t,n,r)},addAttr:function(e,t,n){var r=this,i=r._state,s,o;t=t||{},n=p in t?t[p]:n;if(n&&!r.attrAdded(e))i.addAll(e,{lazy:t,added:!0});else if(!r.attrAdded(e)||i.get(e,b))o=c in t,o&&(s=t.value,delete t.value),t.added=!0,t.initializing=!0,i.addAll(e,t),o&&r.set(e,s),i.remove(e,m);return r},attrAdded:function(e){return!!this._state.get(e,d)},get:function(e){return this._getAttr(e)},_isLazyAttr:function(e){return this._state.get(e,y)},_addLazyAttr:function(e,t){var n=this._state,r=n.get(e,y);n.add(e,b,!0),n.remove(e,y),this.addAttr(e,r)},set:function(e,t){return this._setAttr(e,t)},_set:function(e,t){return this._setAttr(e,t,null,!0)},_setAttr:function(t,r,s,o){var u=!0,a=this._state,l=this._stateProxy,h,p,d,v,m,g,y;return t.indexOf(i)!==-1&&(d=t,v=t.split(i),t=v.shift()),this._isLazyAttr(t)&&this._addLazyAttr(t),h=a.getAll(t,!0)||{},p=!(c in h),l&&t in l&&!h._bypassProxy&&(p=!1),g=h.writeOnce,y=h.initializing,!p&&!o&&(g&&(u=!1),h.readOnly&&(u=!1)),!y&&!o&&g===f&&(u=!1),u&&(p||(m=this.get(t)),v&&(r=n.setValue(e.clone(m),v,r),r===undefined&&(u=!1)),u&&(!this._fireAttrChange||y?this._setAttrVal(t,d,m,r):this._fireAttrChange(t,d,m,r,s))),this},_getAttr:function(e){var t=this,r=e,o=t._state,u,a,f,l;return e.indexOf(i)!==-1&&(u=e.split(i),e=u.shift()),t._tCfgs&&t._tCfgs[e]&&(l={},l[e]=t._tCfgs[e],delete t._tCfgs[e],t._addAttrs(l,t._tVals)),t._isLazyAttr(e)&&t._addLazyAttr(e),f=t._getStateVal(e),a=o.get(e,s),a&&!a.call&&(a=this[a]),f=a?a.call(t,f,r):f,f=u?n.getValue(f,u):f,f},_getStateVal:function(e){var t=this._stateProxy;return t&&e in t&&!this._state.get(e,v)?t[e]:this._state.get(e,c)},_setStateVal:function(e,t){var n=this._stateProxy;n&&e in n&&!this._state.get(e,v)?n[e]=t:this._state.add(e,c,t)},_setAttrVal:function(e,t,n,i){var s=this,o=!0,u=this._state.getAll(e,!0)||{},a=u.validator,f=u.setter,l=u.initializing,c=this._getStateVal(e),h=t||e,p,d;return a&&(a.call||(a=this[a]),a&&(d=a.call(s,i,h),!d&&l&&(i=u.defaultValue,d=!0))),!a||d?(f&&(f.call||(f=this[f]),f&&(p=f.call(s,i,h),p===w?o=!1:p!==undefined&&(i=p))),o&&(!t&&i===c&&!r.isObject(i)?o=!1:(g in u||(u.initValue=i),s._setStateVal(e,i)))):o=!1,o},setAttrs:function(e){return this._setAttrs(e)},_setAttrs:function(e){var t;for(t in e)e.hasOwnProperty(t)&&this.set(t,e[t]);return this},getAttrs:function(e){return this._getAttrs(e)},_getAttrs:function(e){var t={},r,i,s,o=e===!0;if(!e||o)e=n.keys(this._state.data);for(i=0,s=e.length;iset(\"x.y.z\", 5))."," *"," * @param {Any} value The value to set the attribute to."," *"," * @param {Object} opts (Optional) Optional event data to be mixed into"," * the event facade passed to subscribers of the attribute's change event. This "," * can be used as a flexible way to identify the source of a call to set, allowing "," * the developer to distinguish between set called internally by the host, vs. "," * set called externally by the application developer."," *"," * @return {Object} A reference to the host object."," */"," set : function(name, val, opts) {"," return this._setAttr(name, val, opts);"," },",""," /**"," * Allows setting of readOnly/writeOnce attributes. See set for argument details."," *"," * @method _set"," * @protected"," * @chainable"," * "," * @param {String} name The name of the attribute."," * @param {Any} val The value to set the attribute to."," * @param {Object} opts (Optional) Optional event data to be mixed into"," * the event facade passed to subscribers of the attribute's change event."," * @return {Object} A reference to the host object."," */"," _set : function(name, val, opts) {"," return this._setAttr(name, val, opts, true);"," },",""," /**"," * Sets multiple attribute values."," *"," * @method setAttrs"," * @param {Object} attrs An object with attributes name/value pairs."," * @param {Object} opts Properties to mix into the event payload. These are shared and mixed into each set "," * @return {Object} A reference to the host object."," * @chainable"," */"," setAttrs : function(attrs, opts) {"," return this._setAttrs(attrs, opts);"," },",""," /**"," * Implementation behind the public setAttrs method, to set multiple attribute values."," *"," * @method _setAttrs"," * @protected"," * @param {Object} attrs An object with attributes name/value pairs."," * @param {Object} opts Properties to mix into the event payload. These are shared and mixed into each set "," * @return {Object} A reference to the host object."," * @chainable"," */"," _setAttrs : function(attrs, opts) {"," var attr;"," for (attr in attrs) {"," if ( attrs.hasOwnProperty(attr) ) {"," this.set(attr, attrs[attr], opts);"," }"," }"," return this;"," },",""," /**"," * Utility method to help setup the event payload and fire the attribute change event."," * "," * @method _fireAttrChange"," * @private"," * @param {String} attrName The name of the attribute"," * @param {String} subAttrName The full path of the property being changed, "," * if this is a sub-attribute value being change. Otherwise null."," * @param {Any} currVal The current value of the attribute"," * @param {Any} newVal The new value of the attribute"," * @param {Object} opts Any additional event data to mix into the attribute change event's event facade."," */"," _fireAttrChange : function(attrName, subAttrName, currVal, newVal, opts) {"," var host = this,"," eventName = attrName + CHANGE,"," state = host._state,"," facade,"," broadcast,"," evtCfg;",""," if (!state.get(attrName, PUBLISHED)) {"," "," evtCfg = {"," queuable:false,"," defaultTargetOnly: true, "," defaultFn:host._defAttrChangeFn, "," silent:true"," };",""," broadcast = state.get(attrName, BROADCAST);"," if (broadcast !== undefined) {"," evtCfg.broadcast = broadcast;"," }",""," host.publish(eventName, evtCfg);"," "," state.add(attrName, PUBLISHED, true);"," }",""," facade = (opts) ? Y.merge(opts) : host._ATTR_E_FACADE;",""," // Not using the single object signature for fire({type:..., newVal:...}), since "," // we don't want to override type. Changed to the fire(type, {newVal:...}) signature.",""," // facade.type = eventName;"," facade.attrName = attrName;"," facade.subAttrName = subAttrName;"," facade.prevVal = currVal;"," facade.newVal = newVal;",""," // host.fire(facade);"," host.fire(eventName, facade);"," },",""," /**"," * Default function for attribute change events."," *"," * @private"," * @method _defAttrChangeFn"," * @param {EventFacade} e The event object for attribute change events."," */"," _defAttrChangeFn : function(e) {"," if (!this._setAttrVal(e.attrName, e.subAttrName, e.prevVal, e.newVal)) {"," // Prevent \"after\" listeners from being invoked since nothing changed."," e.stopImmediatePropagation();"," } else {"," e.newVal = this.get(e.attrName);"," }"," }"," };",""," // Basic prototype augment - no lazy constructor invocation."," Y.mix(AttributeEvents, EventTarget, false, null, 1);",""," Y.AttributeEvents = AttributeEvents;","","","}, '3.7.1', {\"requires\": [\"event-custom\"]});"];
+_yuitest_coverage["build/attribute-events/attribute-events.js"].code=["YUI.add('attribute-events', function (Y, NAME) {",""," /**"," * The attribute module provides an augmentable Attribute implementation, which "," * adds configurable attributes and attribute change events to the class being "," * augmented. It also provides a State class, which is used internally by Attribute,"," * but can also be used independently to provide a name/property/value data structure to"," * store state."," *"," * @module attribute"," */",""," /**"," * The attribute-events submodule provides augmentable attribute change event support "," * for AttributeCore based implementations."," *"," * @module attribute"," * @submodule attribute-events"," */"," var EventTarget = Y.EventTarget,",""," CHANGE = \"Change\","," BROADCAST = \"broadcast\","," PUBLISHED = \"published\";",""," /**"," * Provides an augmentable implementation of attribute change events for "," * AttributeCore. "," *"," * @class AttributeEvents"," * @uses EventTarget"," */"," function AttributeEvents() {"," // Perf tweak - avoid creating event literals if not required."," this._ATTR_E_FACADE = {};"," EventTarget.call(this, {emitFacade:true});"," }",""," AttributeEvents._ATTR_CFG = [BROADCAST];",""," AttributeEvents.prototype = {",""," /**"," * Sets the value of an attribute."," *"," * @method set"," * @chainable"," *"," * @param {String} name The name of the attribute. If the "," * current value of the attribute is an Object, dot notation can be used"," * to set the value of a property within the object (e.g. set(\"x.y.z\", 5))."," *"," * @param {Any} value The value to set the attribute to."," *"," * @param {Object} opts (Optional) Optional event data to be mixed into"," * the event facade passed to subscribers of the attribute's change event. This "," * can be used as a flexible way to identify the source of a call to set, allowing "," * the developer to distinguish between set called internally by the host, vs. "," * set called externally by the application developer."," *"," * @return {Object} A reference to the host object."," */"," set : function(name, val, opts) {"," return this._setAttr(name, val, opts);"," },",""," /**"," * Allows setting of readOnly/writeOnce attributes. See set for argument details."," *"," * @method _set"," * @protected"," * @chainable"," * "," * @param {String} name The name of the attribute."," * @param {Any} val The value to set the attribute to."," * @param {Object} opts (Optional) Optional event data to be mixed into"," * the event facade passed to subscribers of the attribute's change event."," * @return {Object} A reference to the host object."," */"," _set : function(name, val, opts) {"," return this._setAttr(name, val, opts, true);"," },",""," /**"," * Sets multiple attribute values."," *"," * @method setAttrs"," * @param {Object} attrs An object with attributes name/value pairs."," * @param {Object} opts Properties to mix into the event payload. These are shared and mixed into each set "," * @return {Object} A reference to the host object."," * @chainable"," */"," setAttrs : function(attrs, opts) {"," return this._setAttrs(attrs, opts);"," },",""," /**"," * Implementation behind the public setAttrs method, to set multiple attribute values."," *"," * @method _setAttrs"," * @protected"," * @param {Object} attrs An object with attributes name/value pairs."," * @param {Object} opts Properties to mix into the event payload. These are shared and mixed into each set "," * @return {Object} A reference to the host object."," * @chainable"," */"," _setAttrs : function(attrs, opts) {"," var attr;"," for (attr in attrs) {"," if ( attrs.hasOwnProperty(attr) ) {"," this.set(attr, attrs[attr], opts);"," }"," }"," return this;"," },",""," /**"," * Utility method to help setup the event payload and fire the attribute change event."," * "," * @method _fireAttrChange"," * @private"," * @param {String} attrName The name of the attribute"," * @param {String} subAttrName The full path of the property being changed, "," * if this is a sub-attribute value being change. Otherwise null."," * @param {Any} currVal The current value of the attribute"," * @param {Any} newVal The new value of the attribute"," * @param {Object} opts Any additional event data to mix into the attribute change event's event facade."," */"," _fireAttrChange : function(attrName, subAttrName, currVal, newVal, opts) {"," var host = this,"," eventName = attrName + CHANGE,"," state = host._state,"," facade,"," broadcast,"," evtCfg;",""," if (!state.get(attrName, PUBLISHED)) {"," "," evtCfg = {"," queuable:false,"," defaultTargetOnly: true, "," defaultFn:host._defAttrChangeFn, "," silent:true"," };",""," broadcast = state.get(attrName, BROADCAST);"," if (broadcast !== undefined) {"," evtCfg.broadcast = broadcast;"," }",""," host.publish(eventName, evtCfg);"," "," state.add(attrName, PUBLISHED, true);"," }",""," facade = (opts) ? Y.merge(opts) : host._ATTR_E_FACADE;",""," // Not using the single object signature for fire({type:..., newVal:...}), since "," // we don't want to override type. Changed to the fire(type, {newVal:...}) signature.",""," // facade.type = eventName;"," facade.attrName = attrName;"," facade.subAttrName = subAttrName;"," facade.prevVal = currVal;"," facade.newVal = newVal;",""," // host.fire(facade);"," host.fire(eventName, facade);"," },",""," /**"," * Default function for attribute change events."," *"," * @private"," * @method _defAttrChangeFn"," * @param {EventFacade} e The event object for attribute change events."," */"," _defAttrChangeFn : function(e) {"," if (!this._setAttrVal(e.attrName, e.subAttrName, e.prevVal, e.newVal)) {"," // Prevent \"after\" listeners from being invoked since nothing changed."," e.stopImmediatePropagation();"," } else {"," e.newVal = this.get(e.attrName);"," }"," }"," };",""," // Basic prototype augment - no lazy constructor invocation."," Y.mix(AttributeEvents, EventTarget, false, null, 1);",""," Y.AttributeEvents = AttributeEvents;","","","}, '3.7.2', {\"requires\": [\"event-custom\"]});"];
_yuitest_coverage["build/attribute-events/attribute-events.js"].lines = {"1":0,"20":0,"33":0,"35":0,"36":0,"39":0,"41":0,"64":0,"81":0,"94":0,"108":0,"109":0,"110":0,"111":0,"114":0,"130":0,"137":0,"139":0,"146":0,"147":0,"148":0,"151":0,"153":0,"156":0,"162":0,"163":0,"164":0,"165":0,"168":0,"179":0,"181":0,"183":0,"189":0,"191":0};
_yuitest_coverage["build/attribute-events/attribute-events.js"].functions = {"AttributeEvents:33":0,"set:63":0,"_set:80":0,"setAttrs:93":0,"_setAttrs:107":0,"_fireAttrChange:129":0,"_defAttrChangeFn:178":0,"(anonymous 1):1":0};
_yuitest_coverage["build/attribute-events/attribute-events.js"].coveredLines = 34;
@@ -272,4 +272,4 @@ Y.mix(AttributeEvents, EventTarget, false, null, 1);
Y.AttributeEvents = AttributeEvents;
-}, '3.7.1', {"requires": ["event-custom"]});
+}, '3.7.2', {"requires": ["event-custom"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-events/attribute-events-debug.js b/lib/yuilib/3.7.2/build/attribute-events/attribute-events-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/attribute-events/attribute-events-debug.js
rename to lib/yuilib/3.7.2/build/attribute-events/attribute-events-debug.js
index 2967cb0f13e..8adad425fbd 100644
--- a/lib/yuilib/3.7.1/build/attribute-events/attribute-events-debug.js
+++ b/lib/yuilib/3.7.2/build/attribute-events/attribute-events-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -198,4 +198,4 @@ YUI.add('attribute-events', function (Y, NAME) {
Y.AttributeEvents = AttributeEvents;
-}, '3.7.1', {"requires": ["event-custom"]});
+}, '3.7.2', {"requires": ["event-custom"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-events/attribute-events-min.js b/lib/yuilib/3.7.2/build/attribute-events/attribute-events-min.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/attribute-events/attribute-events-min.js
rename to lib/yuilib/3.7.2/build/attribute-events/attribute-events-min.js
index 522428d4318..615884ef975 100644
--- a/lib/yuilib/3.7.1/build/attribute-events/attribute-events-min.js
+++ b/lib/yuilib/3.7.2/build/attribute-events/attribute-events-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("attribute-events",function(e,t){function o(){this._ATTR_E_FACADE={},n.call(this,{emitFacade:!0})}var n=e.EventTarget,r="Change",i="broadcast",s="published";o._ATTR_CFG=[i],o.prototype={set:function(e,t,n){return this._setAttr(e,t,n)},_set:function(e,t,n){return this._setAttr(e,t,n,!0)},setAttrs:function(e,t){return this._setAttrs(e,t)},_setAttrs:function(e,t){var n;for(n in e)e.hasOwnProperty(n)&&this.set(n,e[n],t);return this},_fireAttrChange:function(t,n,o,u,a){var f=this,l=t+r,c=f._state,h,p,d;c.get(t,s)||(d={queuable:!1,defaultTargetOnly:!0,defaultFn:f._defAttrChangeFn,silent:!0},p=c.get(t,i),p!==undefined&&(d.broadcast=p),f.publish(l,d),c.add(t,s,!0)),h=a?e.merge(a):f._ATTR_E_FACADE,h.attrName=t,h.subAttrName=n,h.prevVal=o,h.newVal=u,f.fire(l,h)},_defAttrChangeFn:function(e){this._setAttrVal(e.attrName,e.subAttrName,e.prevVal,e.newVal)?e.newVal=this.get(e.attrName):e.stopImmediatePropagation()}},e.mix(o,n,!1,null,1),e.AttributeEvents=o},"3.7.1",{requires:["event-custom"]});
+YUI.add("attribute-events",function(e,t){function o(){this._ATTR_E_FACADE={},n.call(this,{emitFacade:!0})}var n=e.EventTarget,r="Change",i="broadcast",s="published";o._ATTR_CFG=[i],o.prototype={set:function(e,t,n){return this._setAttr(e,t,n)},_set:function(e,t,n){return this._setAttr(e,t,n,!0)},setAttrs:function(e,t){return this._setAttrs(e,t)},_setAttrs:function(e,t){var n;for(n in e)e.hasOwnProperty(n)&&this.set(n,e[n],t);return this},_fireAttrChange:function(t,n,o,u,a){var f=this,l=t+r,c=f._state,h,p,d;c.get(t,s)||(d={queuable:!1,defaultTargetOnly:!0,defaultFn:f._defAttrChangeFn,silent:!0},p=c.get(t,i),p!==undefined&&(d.broadcast=p),f.publish(l,d),c.add(t,s,!0)),h=a?e.merge(a):f._ATTR_E_FACADE,h.attrName=t,h.subAttrName=n,h.prevVal=o,h.newVal=u,f.fire(l,h)},_defAttrChangeFn:function(e){this._setAttrVal(e.attrName,e.subAttrName,e.prevVal,e.newVal)?e.newVal=this.get(e.attrName):e.stopImmediatePropagation()}},e.mix(o,n,!1,null,1),e.AttributeEvents=o},"3.7.2",{requires:["event-custom"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-events/attribute-events.js b/lib/yuilib/3.7.2/build/attribute-events/attribute-events.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/attribute-events/attribute-events.js
rename to lib/yuilib/3.7.2/build/attribute-events/attribute-events.js
index b4eb88bca1c..29302c4c834 100644
--- a/lib/yuilib/3.7.1/build/attribute-events/attribute-events.js
+++ b/lib/yuilib/3.7.2/build/attribute-events/attribute-events.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -197,4 +197,4 @@ YUI.add('attribute-events', function (Y, NAME) {
Y.AttributeEvents = AttributeEvents;
-}, '3.7.1', {"requires": ["event-custom"]});
+}, '3.7.2', {"requires": ["event-custom"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-extras/attribute-extras-coverage.js b/lib/yuilib/3.7.2/build/attribute-extras/attribute-extras-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/attribute-extras/attribute-extras-coverage.js
rename to lib/yuilib/3.7.2/build/attribute-extras/attribute-extras-coverage.js
index 08b20cc8f99..0d4c433e337 100644
--- a/lib/yuilib/3.7.1/build/attribute-extras/attribute-extras-coverage.js
+++ b/lib/yuilib/3.7.2/build/attribute-extras/attribute-extras-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/attribute-extras/attribute-extras.js"] = {
path: "build/attribute-extras/attribute-extras.js",
code: []
};
-_yuitest_coverage["build/attribute-extras/attribute-extras.js"].code=["YUI.add('attribute-extras', function (Y, NAME) {",""," /**"," * The attribute module provides an augmentable Attribute implementation, which "," * adds configurable attributes and attribute change events to the class being "," * augmented. It also provides a State class, which is used internally by Attribute,"," * but can also be used independently to provide a name/property/value data structure to"," * store state."," *"," * @module attribute"," */",""," /**"," * The attribute-extras submodule provides less commonly used attribute methods, and can "," * be augmented/mixed into an implemention which used attribute-core."," *"," * @module attribute"," * @submodule attribute-extras"," */"," var BROADCAST = \"broadcast\","," PUBLISHED = \"published\","," INIT_VALUE = \"initValue\",",""," MODIFIABLE = {"," readOnly:1,"," writeOnce:1,"," getter:1,"," broadcast:1"," };",""," /**"," * A augmentable implementation for AttributeCore, providing less frequently used "," * methods for Attribute management such as modifyAttrs(), removeAttr and reset() "," *"," * @class AttributeExtras"," */"," function AttributeExtras() {}",""," AttributeExtras.prototype = {",""," /**"," * Updates the configuration of an attribute which has already been added."," * "," * The properties which can be modified through this interface are limited"," * to the following subset of attributes, which can be safely modified"," * after a value has already been set on the attribute: readOnly, writeOnce, "," * broadcast and getter."," *
"," * @method modifyAttr"," * @param {String} name The name of the attribute whose configuration is to be updated."," * @param {Object} config An object with configuration property/value pairs, specifying the configuration properties to modify."," */"," modifyAttr: function(name, config) {"," var host = this, // help compression"," prop, state;",""," if (host.attrAdded(name)) {",""," if (host._isLazyAttr(name)) {"," host._addLazyAttr(name);"," }",""," state = host._state;"," for (prop in config) {"," if (MODIFIABLE[prop] && config.hasOwnProperty(prop)) {"," state.add(name, prop, config[prop]);",""," // If we reconfigured broadcast, need to republish"," if (prop === BROADCAST) {"," state.remove(name, PUBLISHED);"," }"," }"," }"," }",""," },",""," /**"," * Removes an attribute from the host object"," *"," * @method removeAttr"," * @param {String} name The name of the attribute to be removed."," */"," removeAttr: function(name) {"," this._state.removeAll(name);"," },",""," /**"," * Resets the attribute (or all attributes) to its initial value, as long as"," * the attribute is not readOnly, or writeOnce."," *"," * @method reset"," * @param {String} name Optional. The name of the attribute to reset. If omitted, all attributes are reset."," * @return {Object} A reference to the host object."," * @chainable"," */"," reset : function(name) {"," var host = this; // help compression",""," if (name) {"," if (host._isLazyAttr(name)) {"," host._addLazyAttr(name);"," }"," host.set(name, host._state.get(name, INIT_VALUE));"," } else {"," Y.each(host._state.data, function(v, n) {"," host.reset(n);"," });"," }"," return host;"," },",""," /**"," * Returns an object with the configuration properties (and value)"," * for the given attribute. If attrName is not provided, returns the"," * configuration properties for all attributes."," *"," * @method _getAttrCfg"," * @protected"," * @param {String} name Optional. The attribute name. If not provided, the method will return the configuration for all attributes."," * @return {Object} The configuration properties for the given attribute, or all attributes."," */"," _getAttrCfg : function(name) {"," var o,"," state = this._state;",""," if (name) {"," o = state.getAll(name) || {};"," } else {"," o = {};"," Y.each(state.data, function(v, n) {"," o[n] = state.getAll(n);"," }); "," }",""," return o;"," }"," };",""," Y.AttributeExtras = AttributeExtras;","","","}, '3.7.1', {\"requires\": [\"oop\"]});"];
+_yuitest_coverage["build/attribute-extras/attribute-extras.js"].code=["YUI.add('attribute-extras', function (Y, NAME) {",""," /**"," * The attribute module provides an augmentable Attribute implementation, which "," * adds configurable attributes and attribute change events to the class being "," * augmented. It also provides a State class, which is used internally by Attribute,"," * but can also be used independently to provide a name/property/value data structure to"," * store state."," *"," * @module attribute"," */",""," /**"," * The attribute-extras submodule provides less commonly used attribute methods, and can "," * be augmented/mixed into an implemention which used attribute-core."," *"," * @module attribute"," * @submodule attribute-extras"," */"," var BROADCAST = \"broadcast\","," PUBLISHED = \"published\","," INIT_VALUE = \"initValue\",",""," MODIFIABLE = {"," readOnly:1,"," writeOnce:1,"," getter:1,"," broadcast:1"," };",""," /**"," * A augmentable implementation for AttributeCore, providing less frequently used "," * methods for Attribute management such as modifyAttrs(), removeAttr and reset() "," *"," * @class AttributeExtras"," */"," function AttributeExtras() {}",""," AttributeExtras.prototype = {",""," /**"," * Updates the configuration of an attribute which has already been added."," * "," * The properties which can be modified through this interface are limited"," * to the following subset of attributes, which can be safely modified"," * after a value has already been set on the attribute: readOnly, writeOnce, "," * broadcast and getter."," *
"," * @method modifyAttr"," * @param {String} name The name of the attribute whose configuration is to be updated."," * @param {Object} config An object with configuration property/value pairs, specifying the configuration properties to modify."," */"," modifyAttr: function(name, config) {"," var host = this, // help compression"," prop, state;",""," if (host.attrAdded(name)) {",""," if (host._isLazyAttr(name)) {"," host._addLazyAttr(name);"," }",""," state = host._state;"," for (prop in config) {"," if (MODIFIABLE[prop] && config.hasOwnProperty(prop)) {"," state.add(name, prop, config[prop]);",""," // If we reconfigured broadcast, need to republish"," if (prop === BROADCAST) {"," state.remove(name, PUBLISHED);"," }"," }"," }"," }",""," },",""," /**"," * Removes an attribute from the host object"," *"," * @method removeAttr"," * @param {String} name The name of the attribute to be removed."," */"," removeAttr: function(name) {"," this._state.removeAll(name);"," },",""," /**"," * Resets the attribute (or all attributes) to its initial value, as long as"," * the attribute is not readOnly, or writeOnce."," *"," * @method reset"," * @param {String} name Optional. The name of the attribute to reset. If omitted, all attributes are reset."," * @return {Object} A reference to the host object."," * @chainable"," */"," reset : function(name) {"," var host = this; // help compression",""," if (name) {"," if (host._isLazyAttr(name)) {"," host._addLazyAttr(name);"," }"," host.set(name, host._state.get(name, INIT_VALUE));"," } else {"," Y.each(host._state.data, function(v, n) {"," host.reset(n);"," });"," }"," return host;"," },",""," /**"," * Returns an object with the configuration properties (and value)"," * for the given attribute. If attrName is not provided, returns the"," * configuration properties for all attributes."," *"," * @method _getAttrCfg"," * @protected"," * @param {String} name Optional. The attribute name. If not provided, the method will return the configuration for all attributes."," * @return {Object} The configuration properties for the given attribute, or all attributes."," */"," _getAttrCfg : function(name) {"," var o,"," state = this._state;",""," if (name) {"," o = state.getAll(name) || {};"," } else {"," o = {};"," Y.each(state.data, function(v, n) {"," o[n] = state.getAll(n);"," }); "," }",""," return o;"," }"," };",""," Y.AttributeExtras = AttributeExtras;","","","}, '3.7.2', {\"requires\": [\"oop\"]});"];
_yuitest_coverage["build/attribute-extras/attribute-extras.js"].lines = {"1":0,"20":0,"37":0,"39":0,"54":0,"57":0,"59":0,"60":0,"63":0,"64":0,"65":0,"66":0,"69":0,"70":0,"85":0,"98":0,"100":0,"101":0,"102":0,"104":0,"106":0,"107":0,"110":0,"124":0,"127":0,"128":0,"130":0,"131":0,"132":0,"136":0,"140":0};
_yuitest_coverage["build/attribute-extras/attribute-extras.js"].functions = {"AttributeExtras:37":0,"modifyAttr:53":0,"removeAttr:84":0,"(anonymous 2):106":0,"reset:97":0,"(anonymous 3):131":0,"_getAttrCfg:123":0,"(anonymous 1):1":0};
_yuitest_coverage["build/attribute-extras/attribute-extras.js"].coveredLines = 31;
@@ -217,4 +217,4 @@ return o;
Y.AttributeExtras = AttributeExtras;
-}, '3.7.1', {"requires": ["oop"]});
+}, '3.7.2', {"requires": ["oop"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-extras/attribute-extras-debug.js b/lib/yuilib/3.7.2/build/attribute-extras/attribute-extras-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/attribute-extras/attribute-extras-debug.js
rename to lib/yuilib/3.7.2/build/attribute-extras/attribute-extras-debug.js
index a515b6e3005..de7dbd51769 100644
--- a/lib/yuilib/3.7.1/build/attribute-extras/attribute-extras-debug.js
+++ b/lib/yuilib/3.7.2/build/attribute-extras/attribute-extras-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -147,4 +147,4 @@ YUI.add('attribute-extras', function (Y, NAME) {
Y.AttributeExtras = AttributeExtras;
-}, '3.7.1', {"requires": ["oop"]});
+}, '3.7.2', {"requires": ["oop"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-extras/attribute-extras-min.js b/lib/yuilib/3.7.2/build/attribute-extras/attribute-extras-min.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/attribute-extras/attribute-extras-min.js
rename to lib/yuilib/3.7.2/build/attribute-extras/attribute-extras-min.js
index d5165719270..a1344809f30 100644
--- a/lib/yuilib/3.7.1/build/attribute-extras/attribute-extras-min.js
+++ b/lib/yuilib/3.7.2/build/attribute-extras/attribute-extras-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("attribute-extras",function(e,t){function o(){}var n="broadcast",r="published",i="initValue",s={readOnly:1,writeOnce:1,getter:1,broadcast:1};o.prototype={modifyAttr:function(e,t){var i=this,o,u;if(i.attrAdded(e)){i._isLazyAttr(e)&&i._addLazyAttr(e),u=i._state;for(o in t)s[o]&&t.hasOwnProperty(o)&&(u.add(e,o,t[o]),o===n&&u.remove(e,r))}},removeAttr:function(e){this._state.removeAll(e)},reset:function(t){var n=this;return t?(n._isLazyAttr(t)&&n._addLazyAttr(t),n.set(t,n._state.get(t,i))):e.each(n._state.data,function(e,t){n.reset(t)}),n},_getAttrCfg:function(t){var n,r=this._state;return t?n=r.getAll(t)||{}:(n={},e.each(r.data,function(e,t){n[t]=r.getAll(t)})),n}},e.AttributeExtras=o},"3.7.1",{requires:["oop"]});
+YUI.add("attribute-extras",function(e,t){function o(){}var n="broadcast",r="published",i="initValue",s={readOnly:1,writeOnce:1,getter:1,broadcast:1};o.prototype={modifyAttr:function(e,t){var i=this,o,u;if(i.attrAdded(e)){i._isLazyAttr(e)&&i._addLazyAttr(e),u=i._state;for(o in t)s[o]&&t.hasOwnProperty(o)&&(u.add(e,o,t[o]),o===n&&u.remove(e,r))}},removeAttr:function(e){this._state.removeAll(e)},reset:function(t){var n=this;return t?(n._isLazyAttr(t)&&n._addLazyAttr(t),n.set(t,n._state.get(t,i))):e.each(n._state.data,function(e,t){n.reset(t)}),n},_getAttrCfg:function(t){var n,r=this._state;return t?n=r.getAll(t)||{}:(n={},e.each(r.data,function(e,t){n[t]=r.getAll(t)})),n}},e.AttributeExtras=o},"3.7.2",{requires:["oop"]});
diff --git a/lib/yuilib/3.7.1/build/attribute-extras/attribute-extras.js b/lib/yuilib/3.7.2/build/attribute-extras/attribute-extras.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/attribute-extras/attribute-extras.js
rename to lib/yuilib/3.7.2/build/attribute-extras/attribute-extras.js
index dcada24b308..2ea40b7437e 100644
--- a/lib/yuilib/3.7.1/build/attribute-extras/attribute-extras.js
+++ b/lib/yuilib/3.7.2/build/attribute-extras/attribute-extras.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -146,4 +146,4 @@ YUI.add('attribute-extras', function (Y, NAME) {
Y.AttributeExtras = AttributeExtras;
-}, '3.7.1', {"requires": ["oop"]});
+}, '3.7.2', {"requires": ["oop"]});
diff --git a/lib/yuilib/3.7.1/build/autocomplete-base/autocomplete-base-coverage.js b/lib/yuilib/3.7.2/build/autocomplete-base/autocomplete-base-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/autocomplete-base/autocomplete-base-coverage.js
rename to lib/yuilib/3.7.2/build/autocomplete-base/autocomplete-base-coverage.js
index b1ef2e926ac..9b4310bea43 100644
--- a/lib/yuilib/3.7.1/build/autocomplete-base/autocomplete-base-coverage.js
+++ b/lib/yuilib/3.7.2/build/autocomplete-base/autocomplete-base-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/autocomplete-base/autocomplete-base.js"] = {
path: "build/autocomplete-base/autocomplete-base.js",
code: []
};
-_yuitest_coverage["build/autocomplete-base/autocomplete-base.js"].code=["YUI.add('autocomplete-base', function (Y, NAME) {","","/**","Provides automatic input completion or suggestions for text input fields and","textareas.","","@module autocomplete","@main autocomplete","@since 3.3.0","**/","","/**","`Y.Base` extension that provides core autocomplete logic (but no UI","implementation) for a text input field or textarea. Must be mixed into a","`Y.Base`-derived class to be useful.","","@module autocomplete","@submodule autocomplete-base","**/","","/**","Extension that provides core autocomplete logic (but no UI implementation) for a","text input field or textarea.","","The `AutoCompleteBase` class provides events and attributes that abstract away","core autocomplete logic and configuration, but does not provide a widget","implementation or suggestion UI. For a prepackaged autocomplete widget, see","`AutoCompleteList`.","","This extension cannot be instantiated directly, since it doesn't provide an","actual implementation. It's intended to be mixed into a `Y.Base`-based class or","widget.","","`Y.Widget`-based example:",""," YUI().use('autocomplete-base', 'widget', function (Y) {"," var MyAC = Y.Base.create('myAC', Y.Widget, [Y.AutoCompleteBase], {"," // Custom prototype methods and properties."," }, {"," // Custom static methods and properties."," });",""," // Custom implementation code."," });","","`Y.Base`-based example:",""," YUI().use('autocomplete-base', function (Y) {"," var MyAC = Y.Base.create('myAC', Y.Base, [Y.AutoCompleteBase], {"," initializer: function () {"," this._bindUIACBase();"," this._syncUIACBase();"," },",""," // Custom prototype methods and properties."," }, {"," // Custom static methods and properties."," });",""," // Custom implementation code."," });","","@class AutoCompleteBase","**/","","var Escape = Y.Escape,"," Lang = Y.Lang,"," YArray = Y.Array,"," YObject = Y.Object,",""," isFunction = Lang.isFunction,"," isString = Lang.isString,"," trim = Lang.trim,",""," INVALID_VALUE = Y.Attribute.INVALID_VALUE,",""," _FUNCTION_VALIDATOR = '_functionValidator',"," _SOURCE_SUCCESS = '_sourceSuccess',",""," ALLOW_BROWSER_AC = 'allowBrowserAutocomplete',"," INPUT_NODE = 'inputNode',"," QUERY = 'query',"," QUERY_DELIMITER = 'queryDelimiter',"," REQUEST_TEMPLATE = 'requestTemplate',"," RESULTS = 'results',"," RESULT_LIST_LOCATOR = 'resultListLocator',"," VALUE = 'value',"," VALUE_CHANGE = 'valueChange',",""," EVT_CLEAR = 'clear',"," EVT_QUERY = QUERY,"," EVT_RESULTS = RESULTS;","","function AutoCompleteBase() {}","","AutoCompleteBase.prototype = {"," // -- Lifecycle Methods ----------------------------------------------------"," initializer: function () {"," // AOP bindings."," Y.before(this._bindUIACBase, this, 'bindUI');"," Y.before(this._syncUIACBase, this, 'syncUI');",""," // -- Public Events ----------------------------------------------------",""," /**"," Fires after the query has been completely cleared or no longer meets the"," minimum query length requirement.",""," @event clear"," @param {String} prevVal Value of the query before it was cleared."," @param {String} src Source of the event."," @preventable _defClearFn"," **/"," this.publish(EVT_CLEAR, {"," defaultFn: this._defClearFn"," });",""," /**"," Fires when the contents of the input field have changed and the input"," value meets the criteria necessary to generate an autocomplete query.",""," @event query"," @param {String} inputValue Full contents of the text input field or"," textarea that generated the query."," @param {String} query AutoComplete query. This is the string that will"," be used to request completion results. It may or may not be the same"," as `inputValue`."," @param {String} src Source of the event."," @preventable _defQueryFn"," **/"," this.publish(EVT_QUERY, {"," defaultFn: this._defQueryFn"," });",""," /**"," Fires after query results are received from the source. If no source has"," been set, this event will not fire.",""," @event results"," @param {Array|Object} data Raw, unfiltered result data (if available)."," @param {String} query Query that generated these results."," @param {Object[]} results Array of filtered, formatted, and highlighted"," results. Each item in the array is an object with the following"," properties:",""," @param {Node|HTMLElement|String} results.display Formatted result"," HTML suitable for display to the user. If no custom formatter is"," set, this will be an HTML-escaped version of the string in the"," `text` property."," @param {String} [results.highlighted] Highlighted (but not"," formatted) result text. This property will only be set if a"," highlighter is in use."," @param {Any} results.raw Raw, unformatted result in whatever form it"," was provided by the source."," @param {String} results.text Plain text version of the result,"," suitable for being inserted into the value of a text input field"," or textarea when the result is selected by a user. This value is"," not HTML-escaped and should not be inserted into the page using"," `innerHTML` or `Node#setContent()`.",""," @preventable _defResultsFn"," **/"," this.publish(EVT_RESULTS, {"," defaultFn: this._defResultsFn"," });"," },",""," destructor: function () {"," this._acBaseEvents && this._acBaseEvents.detach();",""," delete this._acBaseEvents;"," delete this._cache;"," delete this._inputNode;"," delete this._rawSource;"," },",""," // -- Public Prototype Methods ---------------------------------------------",""," /**"," Clears the result cache.",""," @method clearCache"," @chainable"," @since 3.5.0"," **/"," clearCache: function () {"," this._cache && (this._cache = {});"," return this;"," },",""," /**"," Sends a request to the configured source. If no source is configured, this"," method won't do anything.",""," Usually there's no reason to call this method manually; it will be called"," automatically when user input causes a `query` event to be fired. The only"," time you'll need to call this method manually is if you want to force a"," request to be sent when no user input has occurred.",""," @method sendRequest"," @param {String} [query] Query to send. If specified, the `query` attribute"," will be set to this query. If not specified, the current value of the"," `query` attribute will be used."," @param {Function} [requestTemplate] Request template function. If not"," specified, the current value of the `requestTemplate` attribute will be"," used."," @chainable"," **/"," sendRequest: function (query, requestTemplate) {"," var request,"," source = this.get('source');",""," if (query || query === '') {"," this._set(QUERY, query);"," } else {"," query = this.get(QUERY) || '';"," }",""," if (source) {"," if (!requestTemplate) {"," requestTemplate = this.get(REQUEST_TEMPLATE);"," }",""," request = requestTemplate ?"," requestTemplate.call(this, query) : query;","",""," source.sendRequest({"," query : query,"," request: request,",""," callback: {"," success: Y.bind(this._onResponse, this, query)"," }"," });"," }",""," return this;"," },",""," // -- Protected Lifecycle Methods ------------------------------------------",""," /**"," Attaches event listeners and behaviors.",""," @method _bindUIACBase"," @protected"," **/"," _bindUIACBase: function () {"," var inputNode = this.get(INPUT_NODE),"," tokenInput = inputNode && inputNode.tokenInput;",""," // If the inputNode has a node-tokeninput plugin attached, bind to the"," // plugin's inputNode instead."," if (tokenInput) {"," inputNode = tokenInput.get(INPUT_NODE);"," this._set('tokenInput', tokenInput);"," }",""," if (!inputNode) {"," Y.error('No inputNode specified.');"," return;"," }",""," this._inputNode = inputNode;",""," this._acBaseEvents = new Y.EventHandle(["," // This is the valueChange event on the inputNode, provided by the"," // event-valuechange module, not our own valueChange."," inputNode.on(VALUE_CHANGE, this._onInputValueChange, this),"," inputNode.on('blur', this._onInputBlur, this),",""," this.after(ALLOW_BROWSER_AC + 'Change', this._syncBrowserAutocomplete),"," this.after('sourceTypeChange', this._afterSourceTypeChange),"," this.after(VALUE_CHANGE, this._afterValueChange)"," ]);"," },",""," /**"," Synchronizes the UI state of the `inputNode`.",""," @method _syncUIACBase"," @protected"," **/"," _syncUIACBase: function () {"," this._syncBrowserAutocomplete();"," this.set(VALUE, this.get(INPUT_NODE).get(VALUE));"," },",""," // -- Protected Prototype Methods ------------------------------------------",""," /**"," Creates a DataSource-like object that simply returns the specified array as"," a response. See the `source` attribute for more details.",""," @method _createArraySource"," @param {Array} source"," @return {Object} DataSource-like object."," @protected"," **/"," _createArraySource: function (source) {"," var that = this;",""," return {"," type: 'array',"," sendRequest: function (request) {"," that[_SOURCE_SUCCESS](source.concat(), request);"," }"," };"," },",""," /**"," Creates a DataSource-like object that passes the query to a custom-defined"," function, which is expected to call the provided callback with an array of"," results. See the `source` attribute for more details.",""," @method _createFunctionSource"," @param {Function} source Function that accepts a query and a callback as"," parameters, and calls the callback with an array of results."," @return {Object} DataSource-like object."," @protected"," **/"," _createFunctionSource: function (source) {"," var that = this;",""," return {"," type: 'function',"," sendRequest: function (request) {"," var value;",""," function afterResults(results) {"," that[_SOURCE_SUCCESS](results || [], request);"," }",""," // Allow both synchronous and asynchronous functions. If we get"," // a truthy return value, assume the function is synchronous."," if ((value = source(request.query, afterResults))) {"," afterResults(value);"," }"," }"," };"," },",""," /**"," Creates a DataSource-like object that looks up queries as properties on the"," specified object, and returns the found value (if any) as a response. See"," the `source` attribute for more details.",""," @method _createObjectSource"," @param {Object} source"," @return {Object} DataSource-like object."," @protected"," **/"," _createObjectSource: function (source) {"," var that = this;",""," return {"," type: 'object',"," sendRequest: function (request) {"," var query = request.query;",""," that[_SOURCE_SUCCESS]("," YObject.owns(source, query) ? source[query] : [],"," request"," );"," }"," };"," },",""," /**"," Returns `true` if _value_ is either a function or `null`.",""," @method _functionValidator"," @param {Function|null} value Value to validate."," @protected"," **/"," _functionValidator: function (value) {"," return value === null || isFunction(value);"," },",""," /**"," Faster and safer alternative to `Y.Object.getValue()`. Doesn't bother"," casting the path to an array (since we already know it's an array) and"," doesn't throw an error if a value in the middle of the object hierarchy is"," neither `undefined` nor an object.",""," @method _getObjectValue"," @param {Object} obj"," @param {Array} path"," @return {Any} Located value, or `undefined` if the value was"," not found at the specified path."," @protected"," **/"," _getObjectValue: function (obj, path) {"," if (!obj) {"," return;"," }",""," for (var i = 0, len = path.length; obj && i < len; i++) {"," obj = obj[path[i]];"," }",""," return obj;"," },",""," /**"," Parses result responses, performs filtering and highlighting, and fires the"," `results` event.",""," @method _parseResponse"," @param {String} query Query that generated these results."," @param {Object} response Response containing results."," @param {Object} data Raw response data."," @protected"," **/"," _parseResponse: function (query, response, data) {"," var facade = {"," data : data,"," query : query,"," results: []"," },",""," listLocator = this.get(RESULT_LIST_LOCATOR),"," results = [],"," unfiltered = response && response.results,",""," filters,"," formatted,"," formatter,"," highlighted,"," highlighter,"," i,"," len,"," maxResults,"," result,"," text,"," textLocator;",""," if (unfiltered && listLocator) {"," unfiltered = listLocator.call(this, unfiltered);"," }",""," if (unfiltered && unfiltered.length) {"," filters = this.get('resultFilters');"," textLocator = this.get('resultTextLocator');",""," // Create a lightweight result object for each result to make them"," // easier to work with. The various properties on the object"," // represent different formats of the result, and will be populated"," // as we go."," for (i = 0, len = unfiltered.length; i < len; ++i) {"," result = unfiltered[i];",""," text = textLocator ?"," textLocator.call(this, result) :"," result.toString();",""," results.push({"," display: Escape.html(text),"," raw : result,"," text : text"," });"," }",""," // Run the results through all configured result filters. Each"," // filter returns an array of (potentially fewer) result objects,"," // which is then passed to the next filter, and so on."," for (i = 0, len = filters.length; i < len; ++i) {"," results = filters[i].call(this, query, results.concat());",""," if (!results) {"," return;"," }",""," if (!results.length) {"," break;"," }"," }",""," if (results.length) {"," formatter = this.get('resultFormatter');"," highlighter = this.get('resultHighlighter');"," maxResults = this.get('maxResults');",""," // If maxResults is set and greater than 0, limit the number of"," // results."," if (maxResults && maxResults > 0 &&"," results.length > maxResults) {"," results.length = maxResults;"," }",""," // Run the results through the configured highlighter (if any)."," // The highlighter returns an array of highlighted strings (not"," // an array of result objects), and these strings are then added"," // to each result object."," if (highlighter) {"," highlighted = highlighter.call(this, query,"," results.concat());",""," if (!highlighted) {"," return;"," }",""," for (i = 0, len = highlighted.length; i < len; ++i) {"," result = results[i];"," result.highlighted = highlighted[i];"," result.display = result.highlighted;"," }"," }",""," // Run the results through the configured formatter (if any) to"," // produce the final formatted results. The formatter returns an"," // array of strings or Node instances (not an array of result"," // objects), and these strings/Nodes are then added to each"," // result object."," if (formatter) {"," formatted = formatter.call(this, query, results.concat());",""," if (!formatted) {"," return;"," }",""," for (i = 0, len = formatted.length; i < len; ++i) {"," results[i].display = formatted[i];"," }"," }"," }"," }",""," facade.results = results;"," this.fire(EVT_RESULTS, facade);"," },",""," /**"," Returns the query portion of the specified input value, or `null` if there"," is no suitable query within the input value.",""," If a query delimiter is defined, the query will be the last delimited part"," of of the string.",""," @method _parseValue"," @param {String} value Input value from which to extract the query."," @return {String|null} query"," @protected"," **/"," _parseValue: function (value) {"," var delim = this.get(QUERY_DELIMITER);",""," if (delim) {"," value = value.split(delim);"," value = value[value.length - 1];"," }",""," return Lang.trimLeft(value);"," },",""," /**"," Setter for the `enableCache` attribute.",""," @method _setEnableCache"," @param {Boolean} value"," @protected"," @since 3.5.0"," **/"," _setEnableCache: function (value) {"," // When `this._cache` is an object, result sources will store cached"," // results in it. When it's falsy, they won't. This way result sources"," // don't need to get the value of the `enableCache` attribute on every"," // request, which would be sloooow."," this._cache = value ? {} : null;"," },",""," /**"," Setter for locator attributes.",""," @method _setLocator"," @param {Function|String|null} locator"," @return {Function|null}"," @protected"," **/"," _setLocator: function (locator) {"," if (this[_FUNCTION_VALIDATOR](locator)) {"," return locator;"," }",""," var that = this;",""," locator = locator.toString().split('.');",""," return function (result) {"," return result && that._getObjectValue(result, locator);"," };"," },",""," /**"," Setter for the `requestTemplate` attribute.",""," @method _setRequestTemplate"," @param {Function|String|null} template"," @return {Function|null}"," @protected"," **/"," _setRequestTemplate: function (template) {"," if (this[_FUNCTION_VALIDATOR](template)) {"," return template;"," }",""," template = template.toString();",""," return function (query) {"," return Lang.sub(template, {query: encodeURIComponent(query)});"," };"," },",""," /**"," Setter for the `resultFilters` attribute.",""," @method _setResultFilters"," @param {Array|Function|String|null} filters `null`, a filter"," function, an array of filter functions, or a string or array of strings"," representing the names of methods on `Y.AutoCompleteFilters`."," @return {Function[]} Array of filter functions (empty if filters is"," `null`)."," @protected"," **/"," _setResultFilters: function (filters) {"," var acFilters, getFilterFunction;",""," if (filters === null) {"," return [];"," }",""," acFilters = Y.AutoCompleteFilters;",""," getFilterFunction = function (filter) {"," if (isFunction(filter)) {"," return filter;"," }",""," if (isString(filter) && acFilters &&"," isFunction(acFilters[filter])) {"," return acFilters[filter];"," }",""," return false;"," };",""," if (Lang.isArray(filters)) {"," filters = YArray.map(filters, getFilterFunction);"," return YArray.every(filters, function (f) { return !!f; }) ?"," filters : INVALID_VALUE;"," } else {"," filters = getFilterFunction(filters);"," return filters ? [filters] : INVALID_VALUE;"," }"," },",""," /**"," Setter for the `resultHighlighter` attribute.",""," @method _setResultHighlighter"," @param {Function|String|null} highlighter `null`, a highlighter function, or"," a string representing the name of a method on"," `Y.AutoCompleteHighlighters`."," @return {Function|null}"," @protected"," **/"," _setResultHighlighter: function (highlighter) {"," var acHighlighters;",""," if (this[_FUNCTION_VALIDATOR](highlighter)) {"," return highlighter;"," }",""," acHighlighters = Y.AutoCompleteHighlighters;",""," if (isString(highlighter) && acHighlighters &&"," isFunction(acHighlighters[highlighter])) {"," return acHighlighters[highlighter];"," }",""," return INVALID_VALUE;"," },",""," /**"," Setter for the `source` attribute. Returns a DataSource or a DataSource-like"," object depending on the type of _source_ and/or the value of the"," `sourceType` attribute.",""," @method _setSource"," @param {Any} source AutoComplete source. See the `source` attribute for"," details."," @return {DataSource|Object}"," @protected"," **/"," _setSource: function (source) {"," var sourceType = this.get('sourceType') || Lang.type(source),"," sourceSetter;",""," if ((source && isFunction(source.sendRequest))"," || source === null"," || sourceType === 'datasource') {",""," // Quacks like a DataSource instance (or null). Make it so!"," this._rawSource = source;"," return source;"," }",""," // See if there's a registered setter for this source type."," if ((sourceSetter = AutoCompleteBase.SOURCE_TYPES[sourceType])) {"," this._rawSource = source;"," return Lang.isString(sourceSetter) ?"," this[sourceSetter](source) : sourceSetter(source);"," }",""," Y.error(\"Unsupported source type '\" + sourceType + \"'. Maybe autocomplete-sources isn't loaded?\");"," return INVALID_VALUE;"," },",""," /**"," Shared success callback for non-DataSource sources.",""," @method _sourceSuccess"," @param {Any} data Response data."," @param {Object} request Request object."," @protected"," **/"," _sourceSuccess: function (data, request) {"," request.callback.success({"," data: data,"," response: {results: data}"," });"," },",""," /**"," Synchronizes the UI state of the `allowBrowserAutocomplete` attribute.",""," @method _syncBrowserAutocomplete"," @protected"," **/"," _syncBrowserAutocomplete: function () {"," var inputNode = this.get(INPUT_NODE);",""," if (inputNode.get('nodeName').toLowerCase() === 'input') {"," inputNode.setAttribute('autocomplete',"," this.get(ALLOW_BROWSER_AC) ? 'on' : 'off');"," }"," },",""," /**"," Updates the query portion of the `value` attribute.",""," If a query delimiter is defined, the last delimited portion of the input"," value will be replaced with the specified _value_.",""," @method _updateValue"," @param {String} newVal New value."," @protected"," **/"," _updateValue: function (newVal) {"," var delim = this.get(QUERY_DELIMITER),"," insertDelim,"," len,"," prevVal;",""," newVal = Lang.trimLeft(newVal);",""," if (delim) {"," insertDelim = trim(delim); // so we don't double up on spaces"," prevVal = YArray.map(trim(this.get(VALUE)).split(delim), trim);"," len = prevVal.length;",""," if (len > 1) {"," prevVal[len - 1] = newVal;"," newVal = prevVal.join(insertDelim + ' ');"," }",""," newVal = newVal + insertDelim + ' ';"," }",""," this.set(VALUE, newVal);"," },",""," // -- Protected Event Handlers ---------------------------------------------",""," /**"," Updates the current `source` based on the new `sourceType` to ensure that"," the two attributes don't get out of sync when they're changed separately.",""," @method _afterSourceTypeChange"," @param {EventFacade} e"," @protected"," **/"," _afterSourceTypeChange: function (e) {"," if (this._rawSource) {"," this.set('source', this._rawSource);"," }"," },",""," /**"," Handles change events for the `value` attribute.",""," @method _afterValueChange"," @param {EventFacade} e"," @protected"," **/"," _afterValueChange: function (e) {"," var newVal = e.newVal,"," self = this,"," uiChange = e.src === AutoCompleteBase.UI_SRC,"," delay, fire, minQueryLength, query;",""," // Update the UI if the value was changed programmatically."," if (!uiChange) {"," self._inputNode.set(VALUE, newVal);"," }","",""," minQueryLength = self.get('minQueryLength');"," query = self._parseValue(newVal) || '';",""," if (minQueryLength >= 0 && query.length >= minQueryLength) {"," // Only query on changes that originate from the UI."," if (uiChange) {"," delay = self.get('queryDelay');",""," fire = function () {"," self.fire(EVT_QUERY, {"," inputValue: newVal,"," query : query,"," src : e.src"," });"," };",""," if (delay) {"," clearTimeout(self._delay);"," self._delay = setTimeout(fire, delay);"," } else {"," fire();"," }"," } else {"," // For programmatic value changes, just update the query"," // attribute without sending a query."," self._set(QUERY, query);"," }"," } else {"," clearTimeout(self._delay);",""," self.fire(EVT_CLEAR, {"," prevVal: e.prevVal ? self._parseValue(e.prevVal) : null,"," src : e.src"," });"," }"," },",""," /**"," Handles `blur` events on the input node.",""," @method _onInputBlur"," @param {EventFacade} e"," @protected"," **/"," _onInputBlur: function (e) {"," var delim = this.get(QUERY_DELIMITER),"," delimPos,"," newVal,"," value;",""," // If a query delimiter is set and the input's value contains one or"," // more trailing delimiters, strip them."," if (delim && !this.get('allowTrailingDelimiter')) {"," delim = Lang.trimRight(delim);"," value = newVal = this._inputNode.get(VALUE);",""," if (delim) {"," while ((newVal = Lang.trimRight(newVal)) &&"," (delimPos = newVal.length - delim.length) &&"," newVal.lastIndexOf(delim) === delimPos) {",""," newVal = newVal.substring(0, delimPos);"," }"," } else {"," // Delimiter is one or more space characters, so just trim the"," // value."," newVal = Lang.trimRight(newVal);"," }",""," if (newVal !== value) {"," this.set(VALUE, newVal);"," }"," }"," },",""," /**"," Handles `valueChange` events on the input node and fires a `query` event"," when the input value meets the configured criteria.",""," @method _onInputValueChange"," @param {EventFacade} e"," @protected"," **/"," _onInputValueChange: function (e) {"," var newVal = e.newVal;",""," // Don't query if the internal value is the same as the new value"," // reported by valueChange."," if (newVal !== this.get(VALUE)) {"," this.set(VALUE, newVal, {src: AutoCompleteBase.UI_SRC});"," }"," },",""," /**"," Handles source responses and fires the `results` event.",""," @method _onResponse"," @param {EventFacade} e"," @protected"," **/"," _onResponse: function (query, e) {"," // Ignore stale responses that aren't for the current query."," if (query === (this.get(QUERY) || '')) {"," this._parseResponse(query || '', e.response, e.data);"," }"," },",""," // -- Protected Default Event Handlers -------------------------------------",""," /**"," Default `clear` event handler. Sets the `results` attribute to an empty"," array and `query` to null.",""," @method _defClearFn"," @protected"," **/"," _defClearFn: function () {"," this._set(QUERY, null);"," this._set(RESULTS, []);"," },",""," /**"," Default `query` event handler. Sets the `query` attribute and sends a"," request to the source if one is configured.",""," @method _defQueryFn"," @param {EventFacade} e"," @protected"," **/"," _defQueryFn: function (e) {"," this.sendRequest(e.query); // sendRequest will set the 'query' attribute"," },",""," /**"," Default `results` event handler. Sets the `results` attribute to the latest"," results.",""," @method _defResultsFn"," @param {EventFacade} e"," @protected"," **/"," _defResultsFn: function (e) {"," this._set(RESULTS, e[RESULTS]);"," }","};","","AutoCompleteBase.ATTRS = {"," /**"," Whether or not to enable the browser's built-in autocomplete functionality"," for input fields.",""," @attribute allowBrowserAutocomplete"," @type Boolean"," @default false"," **/"," allowBrowserAutocomplete: {"," value: false"," },",""," /**"," When a `queryDelimiter` is set, trailing delimiters will automatically be"," stripped from the input value by default when the input node loses focus."," Set this to `true` to allow trailing delimiters.",""," @attribute allowTrailingDelimiter"," @type Boolean"," @default false"," **/"," allowTrailingDelimiter: {"," value: false"," },",""," /**"," Whether or not to enable in-memory caching in result sources that support"," it.",""," @attribute enableCache"," @type Boolean"," @default true"," @since 3.5.0"," **/"," enableCache: {"," lazyAdd: false, // we need the setter to run on init"," setter: '_setEnableCache',"," value: true"," },",""," /**"," Node to monitor for changes, which will generate `query` events when"," appropriate. May be either an `` or a ` "),n=e.UA.ie,r=n&&n<8?"rect(1px 1px 1px 1px)":"rect(1px, 1px, 1px, 1px)";return t.setStyle("position","absolute"),t.setStyle("height","1px"),t.setStyle("width","1px"),t.setStyle("overflow","hidden"),t.setStyle("clip",r),t},syncUI:function(){this._redraw()},bindUI:function(){this.after("tooltipChange",e.bind(this._tooltipChangeHandler,this)),this.after("widthChange",this._sizeChanged),this.after("heightChange",this._sizeChanged),this.after("groupMarkersChange",this._groupMarkersChangeHandler);var t=this.get("tooltip"),n="mouseout",o="mouseover",u=this.get("contentBox"),a=this.get("interactionType"),f=0,l,c="."+p,h=r&&"ontouchstart"in r&&!(e.UA.chrome&&e.UA.chrome<6);e.on("keydown",e.bind(function(e){var t=e.keyCode,n=parseFloat(t),r;n>36&&n<41&&(e.halt(),r=this._getAriaMessage(n),this._liveRegion.setContent(""),this._liveRegion.appendChild(i.createTextNode(r)))},this),this.get("contentBox")),a=="marker"?(n=t.hideEvent,o=t.showEvent,h?(e.delegate("touchend",e.bind(this._markerEventDispatcher,this),u,c),e.on("touchend",e.bind(function(e){e.halt(!0),this._activeMarker&&(this._activeMarker=null,this.hideTooltip(e))},this))):(e.delegate("mouseenter",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("mousedown",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("mouseup",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("mouseleave",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("click",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("mousemove",e.bind(this._positionTooltip,this),u,c))):a=="planar"&&(h?this._overlay.on("touchend",e.bind(this._planarEventDispatcher,this)):(this._overlay.on("mousemove",e.bind(this._planarEventDispatcher,this)),this.on("mouseout",this.hideTooltip)));if(t){this.on("markerEvent:touchend",e.bind(function(e){var n=e.series.get("markers")[e.index];this._activeMarker&&n===this._activeMarker?(this._activeMarker=null,this.hideTooltip(e)):(this._activeMarker=n,t.markerEventHandler.apply(this,[e]))},this));if(n&&o&&n==o)this.on(a+"Event:"+n,this.toggleTooltip);else{o&&this.on(a+"Event:"+o,t[a+"EventHandler"]);if(n){if(s.isArray(n)){l=n.length;for(;f=T[h].start){p=h;break}N=l.length;for(h=0;h-1&&c.updateMarkerState("mouseout",d),C&&C[p]>-1&&(w&&!isNaN(p)&&p>-1&&c.updateMarkerState("mouseover",p),v=this.getSeriesItems(c,p),g.push(v.category),y.push(v.value),m.push(c));this._selectedIndex=p,p>-1?this.fire("planarEvent:mouseover",{categoryItem:g,valueItem:y,x:u,y:a,pageX:s,pageY:o,items:m,index:p,originEvent:e}):this.fire("planarEvent:mouseout")}},_type:"combo",_itemRenderQueue:null,_addToAxesRenderQueue:function(t){this._itemRenderQueue||(this._itemRenderQueue=[]),e.Array.indexOf(this._itemRenderQueue,t)<0&&this._itemRenderQueue.push(t)},_addToAxesCollection:function(e,t){var n=this.get(e+"AxesCollection");n||(n=[],this.set(e+"AxesCollection",n)),n.push(t)},_getDefaultSeriesCollection:function(){var e,t=this.get("dataProvider");return t&&(e=this._parseSeriesCollection()),e},_parseSeriesCollection:function(t){var n=this.get("direction"),r=[],i,s,o=[],u,a=this.get("seriesKeys").concat(),f,l,c,h=this.get("type"),p,d,v,m,g=[],y=this.get("categoryKey"),b=this.get("showMarkers"),w=this.get("showAreaFill"),E=this.get("showLines");t=t||[],n=="vertical"?(i="yAxis",d="yKey",s="xAxis",v="xKey"):(i="xAxis",d="xKey",s="yAxis",v="yKey"),c=t.length;while(t&&t.length>0)u=t.shift(),p=this._getBaseAttribute(u,v),p?(l=e.Array.indexOf(a,p),l>-1?(a.splice(l,1),o.push(p),r.push(u)):g.push(u)):g.push(u);while(g.length>0)u=g.shift(),a.length>0?(p=a.shift(),this._setBaseAttribute(u,v,p),o.push(p),r.push(u)):u instanceof e.CartesianSeries&&u.destroy(!0);a.length>0&&(o=o.concat(a)),c=o.length;for(f=0;f0&&f.set("overlapGraph",!1),r[u]=f)}return r},_addAxes:function(){var t=this.get("axes"),n,r,i,s=this.get("width"),o=this.get("height"),u=e.Node.one(this._parentNode);this._axesCollection||(this._axesCollection=[]);for(n in t)t.hasOwnProperty(n)&&(r=t[n],r instanceof e.Axis&&(s||(this.set("width",u.get("offsetWidth")),s=this.get("width")),o||(this.set("height",u.get("offsetHeight")),o=this.get("height")),this._addToAxesRenderQueue(r),i=r.get("position"),this.get(i+"AxesCollection")?this.get(i+"AxesCollection").push(r):this.set(i+"AxesCollection",[r]),this._axesCollection.push(r),r.get("keys").hasOwnProperty(this.get("categoryKey"))&&this.set("categoryAxis",r),r.render(this.get("contentBox"))))},_addSeries:function(){var e=this.get("graph"),t=this.get("seriesCollection");e.render(this.get("contentBox"))},_addGridlines:function(){var t=this.get("graph"),n=this.get("horizontalGridlines"),r=this.get("verticalGridlines"),i=this.get("direction"),s=this.get("leftAxesCollection"),o=this.get("rightAxesCollection"),u=this.get("bottomAxesCollection"),a=this.get("topAxesCollection"),f,l=this.get("categoryAxis"),c,h;this._axesCollection&&(f=this._axesCollection.concat(),f.splice(e.Array.indexOf(f,l),1)),n&&(s&&s[0]?c=s[0]:o&&o[0]?c=o[0]:c=i=="horizontal"?l:f[0],!this._getBaseAttribute(n,"axis")&&c&&this._setBaseAttribute(n,"axis",c),this._getBaseAttribute(n,"axis")&&t.set("horizontalGridlines",n)),r&&(u&&u[0]?h=u[0]:a&&a[0]?h=a[0]:h=i=="vertical"?l:f[0],!this._getBaseAttribute(r,"axis")&&h&&this._setBaseAttribute(r,"axis",h),this._getBaseAttribute(r,"axis")&&t.set("verticalGridlines",r))},_getDefaultAxes:function(){var e;return this.get("dataProvider")&&(e=this._parseAxes()),e},_parseAxes:function(t){var n=this.get("categoryKey"),r,i,o,u={},a=[],f=this.get("categoryAxisName")||this.get("categoryKey"),l=this.get("valueAxisName"),c=this.get("seriesKeys").concat(),h,p,d,v,m,g=this.get("direction"),y,b,w=[],E=this.get("stacked")?"stacked":"numeric";g=="vertical"?(y="bottom",b="left"):(y="left",b="bottom");if(t)for(h in t)if(t.hasOwnProperty(h)){r=t[h],o=this._getBaseAttribute(r,"keys"),i=this._getBaseAttribute(r,"type");if(i=="time"||i=="category")f=h,this.set("categoryAxisName",h),s.isArray(o)&&o.length>0&&(n=o[0],this.set("categoryKey",n)),u[h]=r;else if(h==f)u[h]=r;else{u[h]=r;if(h!=l&&o&&s.isArray(o)){v=o.length;for(d=0;d-1&&c.splice(m,1),p=a.length;for(h=0;h-1&&c.splice(m,1);return u.hasOwnProperty(f)||(u[f]={}),this._getBaseAttribute(u[f],"keys")||this._setBaseAttribute(u[f],"keys",[n]),this._getBaseAttribute(u[f],"position")||this._setBaseAttribute(u[f],"position",b),this._getBaseAttribute(u[f],"type")||this._setBaseAttribute(u[f],"type",this.get("categoryType")),!u.hasOwnProperty(l)&&c&&c.length>0&&(u[l]={keys:c},w.push(u[l])),a.length>0&&(c.length>0?c=a.concat(c):c=a),u.hasOwnProperty(l)&&(this._getBaseAttribute(u[l],"position")||this._setBaseAttribute(u[l],"position",this._getDefaultAxisPosition(u[l],w,y)),this._setBaseAttribute(u[l],"type",E),this._setBaseAttribute(u[l],"keys",c)),this._seriesKeysExplicitlySet||(this._seriesKeys=c),u},_getDefaultAxisPosition:function(t,n,r){var i=this.get("direction"),s=e.Array.indexOf(n,t);return n[s-1]&&n[s-1].position&&(i=="horizontal"?n[s-1].position=="left"?r="right":n[s-1].position=="right"&&(r="left"):n[s-1].position=="bottom"?r="top":r="bottom"),r},getSeriesItems:function(e,t){var n=e.get("xAxis"),r=e.get("yAxis"),i=e.get("xKey"),s=e.get("yKey"),o,u;return this.get("direction")=="vertical"?(o={axis:r,key:s,value:r.getKeyValueAt(s,t)},u={axis:n,key:i,value:n.getKeyValueAt(i,t)}):(u={axis:r,key:s,value:r.getKeyValueAt(s,t)},o={axis:n,key:i,value:n.getKeyValueAt(i,t)}),o.displayName=e.get("categoryDisplayName"),u.displayName=e.get("valueDisplayName"),o.value=o.axis.getKeyValueAt(o.key,t),u.value=u.axis.getKeyValueAt(u.key,t),{category:o,value:u}},_sizeChanged:function(e){if(this._axesCollection){var t=this._axesCollection,n=0,r=t.length;for(;n-1;--l)C.unshift(n),n+=o[l].get("width")}if(u){N=[],c=u.length,l=0;for(l=c-1;l>-1;--l)r+=u[l].get("width"),N.unshift(e-r)}if(a){k=[],c=a.length;for(l=c-1;l>-1;--l)k.unshift(i),i+=a[l].get("height")}if(f){L=[],c=f.length;for(l=c-1;l>-1;--l)s+=f[l].get("height"),L.unshift(t-s)}b=e-(n+r),w=t-(s+i),A.left=n,A.top=i,A.bottom=t-s,A.right=e-r;if(!x){v=this._getTopOverflow(o,u),m=this._getBottomOverflow(o,u),g=this._getLeftOverflow(f,a),y=this._getRightOverflow(f,a),T=v-i;if(T>0){A.top=v;if(k){l=0,c=k.length;for(;l0){A.bottom=t-m;if(L){l=0,c=L.length;for(;l0){A.left=g;if(C){l=0,c=C.length;for(;l0){A.right=e-y;if(N){l=0,c=N.length;for(;l1?(e===38?o=o<1?f-1:o-1:e===40&&(o=o>=f-1?0:o+1),this._itemIndex=-1):o=0,this._seriesIndex=o,n=this.getSeries(parseInt(o,10)),t=n.get("valueDisplayName")+" series."):(o>-1?(t="",n=this.getSeries(parseInt(o,10))):(o=0,this._seriesIndex=o,n=this.getSeries(parseInt(o,10)),t=n.get("valueDisplayName")+" series."),l=n._dataLength?n._dataLength:0,e===37?u=u>0?u-1:l-1:e===39&&(u=u>=l-1?0:u+1),this._itemIndex=u,r=this.getSeriesItems(n,u),i=r.category,s=r.value,i&&s&&i.value&&s.value?(t+=i.displayName+": "+i.axis.formatLabel.apply(this,[i.value,i.axis.get("labelFormat")])+", ",t+=s.displayName+": "+s.axis.formatLabel.apply(this,[s.value,s.axis.get("labelFormat")])+", "):t+="No data available.",t+=u+1+" of "+l+". "),t}},{ATTRS:{allowContentOverflow:{value:!1},axesStyles:{getter:function(){var t=this.get("axes"),n,r=this._axesStyles;if(t)for(n in t)t.hasOwnProperty(n)&&t[n]instanceof e.Axis&&(r||(r={}),r[n]=t[n].get("styles"));return r},setter:function(e){var t=this.get("axes"),n;for(n in e)e.hasOwnProperty(n)&&t.hasOwnProperty(n)&&this._setBaseAttribute(t[n],"styles",e[n])}},seriesStyles:{getter:function(){var e=this._seriesStyles,t=this.get("graph"),n,r;if(t){n=t.get("seriesDictionary");if(n){e={};for(r in n)n.hasOwnProperty(r)&&(e[r]=n[r].get("styles"))}}return e},setter:function(e){var t,n,r;if(s.isArray(e)){r=this.get("seriesCollection"),t=0,n=e.length;for(;t0?u-1:f-1:e===39&&(u=u>=f-1?0:u+1),this._itemIndex=u,r=this.getSeriesItems(i,u),n=r.category,s=r.value,l=i.getTotalValues(),c=Math.round(s.value/l*1e4)/100,n&&s?(t+=n.displayName+": "+n.axis.formatLabel.apply(this,[n.value,n.axis.get("labelFormat")])+", ",t+=s.displayName+": "+s.axis.formatLabel.apply(this,[s.value,s.axis.get("labelFormat")])+", ",t+="Percent of total "+s.displayName+": "+c+"%,"):t+="No data available,",t+=u+1+" of "+f+". ",t}},{ATTRS:{ariaDescription:{value:"Use the left and right keys to navigate through items.",setter:function(e){return this._description&&(this._description.setContent(""),this._description.appendChild(i.createTextNode(e))),e}},axes:{getter:function(){return this._axes},setter:function(e){this._parseAxes(e)}},seriesCollection:{getter:function(){return this._getSeriesCollection()},setter:function(e){return this._setSeriesCollection(e)}},type:{value:"pie"}}})},"3.7.1",{requires:["dom","datatype-number","datatype-date","event-custom","event-mouseenter","event-touch","widget","widget-position","widget-stack","graphics"]});
+YUI.add("charts-base",function(e,t){function b(){}function w(e){w.superclass.constructor.apply(this,arguments)}function E(e){E.superclass.constructor.apply(this,arguments)}function S(e){S.superclass.constructor.apply(this,arguments)}function x(e){x.superclass.constructor.apply(this,arguments)}function T(){}function N(){}function C(){}function k(t){var n={area:{getter:function(){return this._defaults||this._getAreaDefaults()},setter:function(t){var n=this._defaults||this._getAreaDefaults();this._defaults=e.merge(n,t)}}};this.addAttrs(n,t),this.get("styles")}function L(e){var t={markers:{getter:function(){return this._markers}}};this.addAttrs(t,e)}function A(){}function O(){}var n=e.config,r=n.win,i=n.doc,s=e.Lang,o=s.isString,u=e.DOM,a,f,l,c,h=e.ClassNameManager.getClassName,p=h("seriesmarker"),d,v,m,g,y;d=function(e){d.superclass.constructor.apply(this,arguments)},d.NAME="shapeGroup",e.extend(d,e.Path,{_draw:function(){var e=this.get("xvalues"),t=this.get("yvalues"),n,r,i,o,u=0,a,f=[],l=this.get("dimensions"),c=l.width,h=l.height,p=l.radius,d=l.yRadius,v=this.get("id"),m=this.node.className,g=s.isArray(c),y=s.isArray(h),b=s.isArray(p),w=s.isArray(d);if(e&&t&&e.length>0){this.clear(),a=e.length;for(;u0?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;t.get("contentBox").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=l,c=function(){},c.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(e){},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._explicitWidth),e.set("calculatedHeight",u),t.set("y",u-o)}},e.TopAxisLayout=c,e.Axis=e.Base.create("axis",e.Widget,[e.Renderer],{_calculatedWidth:0,_calculatedHeight:0,_dataChangeHandler:function(e){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(e){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:c,bottom:l,left:a,right:f},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,g=this.get("labelFunction"),y=this.get("labelFunctionScope"),b=this.get("labelFormat"),w=this.get("graphic"),E=this.get("path"),S,x;this._labelWidths=[],this._labelHeights=[],w.set("autoDraw",!1),E.clear(),E.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(),p=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(p),this.drawLine(E,p,this.getLineEnd(s)),i&&(S=this.get("tickPath"),S.clear(),S.set("stroke",{weight:r.weight,color:r.color,opacity:r.alpha}),l.drawTick.apply(this,[S,s,r])),this._createLabelCache(),this._tickPoints=[],this._maxLabelSize=0,this._totalTitleSize=0,this._titleSize=0,this._setTitle(),x=l.getExplicitlySized.apply(this,[e]);for(;f0?s=o.shift():(s=i.createElement("span"),s.className=e.Lang.trim([s.className,"axisLabel"].join(" ")),this.get("contentBox").append(s)),i.createElementNS||s.style.filter&&(s.style.filter=null),s.style.display="block",s.style.whiteSpace="nowrap",s.style.position="absolute";for(r in n)n.hasOwnProperty(r)&&!u.hasOwnProperty(r)&&(s.style[r]=n[r]);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(;n-1&&!isNaN(l)&&(f="progid:DXImageTransform.Microsoft.Alpha(Opacity="+Math.round(l*100)+")"),r!==0?(c.rotate(r),p=c.getContentRect(n.labelWidth,n.labelHeight),c.init(),c.translate(p.left,p.top),c.translate(o,a),this._simulateRotateWithTransformOrigin(c,r,h,n.labelWidth,n.labelHeight),f?f+=" ":f="",f+=c.toFilterText(),t.style.left=c.dx+"px",t.style.top=c.dy+"px"):(t.style.left=o+"px",t.style.top=a+"px"),f&&(t.style.filter=f))},_simulateRotateWithTransformOrigin:function(e,t,n,r,i){var s=n[0]*r,o=n[1]*i;s=isNaN(s)?0:s,o=isNaN(o)?0:o,e.translate(s,o),e.rotate(t),e.translate(-s,-o)},getMaxLabelBounds:function(){return this._getLabelBounds(this.getMaximumValue())},getMinLabelBounds:function(){return this._getLabelBounds(this.getMinimumValue())},_getLabelBounds:function(t){var n=this._layout,r=this.get("styles").label,i=new e.Matrix,s,o=this._getTextRotationProps(r);return o.transformOrigin=n._getTransformOrigin(o.rot),s=this.getLabel({x:0,y:0},r),this.get("appendLabelFunction")(s,this.get("labelFunction").apply(this,[t,this.get("labelFormat")])),o.labelWidth=s.offsetWidth,o.labelHeight=s.offsetHeight,this._removeChildren(s),e.Event.purgeElement(s,!0),s.parentNode.removeChild(s),o.x=0,o.y=0,n._setRotationCoords(o),i.translate(o.x,o.y),this._simulateRotateWithTransformOrigin(i,o.rot,o.transformOrigin,o.labelWidth,o.labelHeight),i.getContentRect(o.labelWidth,o.labelHeight)},_removeChildren:function(e){if(e.hasChildNodes()){var t;while(e.firstChild)t=e.firstChild,this._removeChildren(t),e.removeChild(t)}},destructor:function(){var e=this.get("contentBox").getDOMNode(),t=this.get("labels"),n=this.get("graphic"),r,i=t?t.length:0;if(i>0)while(t.length>0)r=t.shift(),this._removeChildren(r),e.removeChild(r),r=null;n&&n.destroy()},_maxLabelSize:0,_setText:function(e,t){e.innerHTML="",s.isNumber(t)?t+="":t||(t=""),o(t)&&(t=i.createTextNode(t)),e.appendChild(t)}},{ATTRS:{width:{lazyAdd:!1,getter:function(){return this._explicitWidth?this._explicitWidth:this._calculatedWidth},setter:function(e){return this._explicitWidth=e,e}},height:{lazyAdd:!1,getter:function(){return this._explicitHeight?this._explicitHeight:this._calculatedHeight},setter:function(e){return this._explicitHeight=e,e}},calculatedWidth:{getter:function(){return this._calculatedWidth},setter:function(e){return this._calculatedWidth=e,e}},calculatedHeight:{getter:function(){return this._calculatedHeight},setter:function(e){return this._calculatedHeight=e,e}},edgeOffset:{value:0},graphic:{},path:{readOnly:!0,getter:function(){if(!this._path){var e=this.get("graphic");e&&(this._path=e.addShape({type:"path"}))}return this._path}},tickPath:{readOnly:!0,getter:function(){if(!this._tickPath){var e=this.get("graphic");e&&(this._tickPath=e.addShape({type:"path"}))}return this._tickPath}},node:{},position:{setter:function(e){var t=this._layoutClasses[e];return e&&e!="none"&&(this._layout=new t),e}},topTickOffset:{value:0},bottomTickOffset:{value:0},leftTickOffset:{value:0},rightTickOffset:{value:0},labels:{readOnly:!0,getter:function(){return this._labels}},tickPoints:{readOnly:!0,getter:function(){return this.get("position")=="none"?this.get("styles").majorUnit.count:this._tickPoints}},overlapGraph:{value:!0,validator:function(e){return s.isBoolean(e)}},labelFunctionScope:{},maxLabelSize:{getter:function(){return this._maxLabelSize},setter:function(e){return this._maxLabelSize=e,e}},title:{value:null},labelFunction:{value:function(e,t){return e}},appendLabelFunction:{valueFn:function(){return this._setText}},appendTitleFunction:{valueFn:function(){return this._setText}}}}),e.AxisType=e.Base.create("baseAxis",e.Axis,[],{initializer:function(){this.after("dataReady",e.bind(this._dataChangeHandler,this)),this.after("dataUpdate",e.bind(this._dataChangeHandler,this)),this.after("minimumChange",e.bind(this._keyChangeHandler,this)),this.after("maximumChange",e.bind(this._keyChangeHandler,this)),this.after("keysChange",this._keyChangeHandler),this.after("dataProviderChange",this._dataProviderChangeHandler),this.after("alwaysShowZeroChange",this._keyChangeHandler),this.after("roundingMethodChange",this._keyChangeHandler)},bindUI:function(){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)},_dataProviderChangeHandler:function(e){var t=this.get("keyCollection").concat(),n=this.get("keys"),r;if(n)for(r in n)n.hasOwnProperty(r)&&delete n[r];t&&t.length&&this.set("keys",t)},GUID:"yuibaseaxis",_type:null,_setMaximum:null,_dataMaximum:null,_setMinimum:null,_data:null,_updateTotalDataFlag:!0,_dataReady:!1,addKey:function(e){this.set("keys",e)},_getKeyArray:function(e,t){var n=0,r,i=[],s=t.length;for(;n0){r=e.length,t=n=e[0];if(r>1)for(s=1;s=t?(i=Math.floor((r/2-t)/(Math.pow(10,n-1)/2)),t=r/2-i*Math.pow(10,n-1)/2):t=r,isNaN(t)?e:t},_updateMinAndMax:function(){var e=this.get("data"),t,n,r,i,o=0,u,a=this.get("setMax"),f=this.get("setMin");if(!a||!f){if(e&&e.length&&e.length>0){r=e.length;for(;o=0,u=t>0,a,f,l,c,h,p,d,v=this.getTotalMajorUnits()-1,m=this.get("alwaysShowZero"),g=this.get("roundingMethod"),y=(t-e)/v>=1;if(g)if(g=="niceNumber"){i=this._getMinimumUnit(t,e,v);if(o&&u)(m||e=0)h--,c++,p=Math.ceil(t/c),d=Math.floor(e/h)*-1;h>0?t=d*c:t=e+i*v}else if(r){while(p=0)h++,c--,d=Math.floor(e/h)*-1,p=Math.ceil(t/c);c>0?e=p*h*-1:e=t-i*v}else i=Math.max(p,d),i=this._getNiceNumber(i),t=i*c,e=i*h*-1}else r?e=t-i*v:n?t=e+i*v:(e=this._roundDownToNearest(e,i),t=this._roundUpToNearest(t,i));else n?m?t=0:t=e+i*v:r?e=t-i*v:m||t===0||t+i>0?(t=0,i=this._getMinimumUnit(t,e,v),e=t-i*v):(e=this._roundDownToNearest(e,i),t=this._roundUpToNearest(t,i))}else g=="auto"?o&&u?((m||e<(t-e)/v)&&!n&&(e=0),i=(t-e)/v,y&&(i=Math.ceil(i)),t=e+i*v):u&&!o?m?(c=Math.round(v/(-1*e/t+1)),c=Math.max(Math.min(c,v-1),1),h=v-c,y?(p=Math.ceil(t/c),d=Math.floor(e/h)*-1):(p=t/c,d=e/h*-1),i=Math.max(p,d),t=i*c,e=i*h*-1):(i=(t-e)/v,y&&(i=Math.ceil(i)),e=this._roundDownToNearest(e,i),t=this._roundUpToNearest(t,i)):(i=(t-e)/v,y&&(i=Math.ceil(i)),m||t===0||t+i>0?(t=0,i=(t-e)/v,y&&Math.ceil(i),e=t-i*v):(e=this._roundDownToNearest(e,i),t=this._roundUpToNearest(t,i))):!isNaN(g)&&isFinite(g)&&(i=g,s=i*v,a=t-e>s,l=this._roundDownToNearest(e,i),f=this._roundUpToNearest(t,i),r?e=t-s:n?t=e+s:o&&u?(m||l<=0?e=0:e=l,t=e+s):u&&!o?(e=l,t=f):(m||f>=0?t=0:t=f,e=t-s));this._dataMaximum=t,this._dataMinimum=e},getLabelByIndex:function(e,t){var n=this.get("minimum"),r=this.get("maximum"),i=(r-n)/(t-1),s,o=this.get("roundingMethod");return t-=1,e===0?s=n:e===t?s=r:(s=e*i,o=="niceNumber"&&(s=this._roundToNearest(s,i)),s+=n),parseFloat(s)},_roundToNearest:function(e,t){t=t||1;if(t===0)return e;var n=Math.round(this._roundToPrecision(e/t,10))*t;return this._roundToPrecision(n,10)},_roundUpToNearest:function(e,t){return t=t||1,t===0?e:Math.ceil(this._roundToPrecision(e/t,10))*t},_roundDownToNearest:function(e,t){return t=t||1,t===0?e:Math.floor(this._roundToPrecision(e/t,10))*t},_roundToPrecision:function(e,t){t=t||0;var n=Math.pow(10,t);return Math.round(n*e)/n},_hasDataOverflow:function(){var e,t,n;return this.get("setMin")||this.get("setMax")?!0:(e=this.get("roundingMethod"),t=this._actualMinimum,n=this._actualMaximum,s.isNumber(e)&&(s.isNumber(n)&&n>this._dataMaximum||s.isNumber(t)&&t=0?n+=u:r+=u}n>0?e=Math.max(e,n):e=Math.max(e,r),r<0?t=Math.min(t,r):t=Math.min(t,n)}this._actualMaximum=e,this._actualMinimum=t,l&&(e=this._setMaximum),f&&(t=this._setMinimum),this._roundMinAndMax(t,e,f,l)}}),e.StackedAxis=E,S.NAME="timeAxis",S.ATTRS={setMax:{readOnly:!0,getter:function(){var e=this._getNumber(this._setMaximum);return s.isNumber(e)}},setMin:{readOnly:!0,getter:function(){var e=this._getNumber(this._setMinimum);return s.isNumber(e)}},maximum:{getter:function(){var e=this._getNumber(this._setMaximum);return s.isNumber(e)||(e=this._getNumber(this.get("dataMaximum"))),parseFloat(e)},setter:function(e){return this._setMaximum=this._getNumber(e),e}},minimum:{getter:function(){var e=this._getNumber(this._setMinimum);return s.isNumber(e)||(e=this._getNumber(this.get("dataMinimum"))),parseFloat(e)},setter:function(e){return this._setMinimum=this._getNumber(e),e}},labelFunction:{value:function(t,n){return t=e.DataType.Date.parse(t),n?e.DataType.Date.format(t,{format:n}):t}},labelFormat:{value:"%b %d, %y"}},e.extend(S,e.AxisType,{formatLabel:function(t,n){return t=e.DataType.Date.parse(t),n?e.DataType.Date.format(t,{format:n}):t},GUID:"yuitimeaxis",_dataType:"time",getLabelByIndex:function(e,t){var n=this.get("minimum"),r=this.get("maximum"),i=this.get("position"),s,o;return t-=1,s=(r-n)/t*e,i=="bottom"||i=="top"?o=n+s:o=r-s,o},_getKeyArray:function(e,t){var n,r=[],i=0,o,u=t.length;for(;i0?(p=r[e-1].get("stackedXCoords"),d=r[e-1].get("stackedYCoords"),a=p.length):a=o.length;for(;i0){l=p[i];if(!s.isNumber(l)){c=e;while(c>-1&&!s.isNumber(l))c-=1,c>-1?l=r[c].get("stackedXCoords")[i]:l=this._leftOrigin}o[i]=o[i]+l}h[i]=o[i]}else v.push(i);this._cleanXNaN(h,u),a=v.length;if(a>0)for(i=0;i0?p[m]:this._leftOrigin,h[m]=Math.max(h[m],f);this.set("stackedXCoords",h),this.set("stackedYCoords",u)},_stackYCoords:function(){var e=this.get("order"),t=this.get("type"),n=this.get("graph"),r=n.get("height"),i=n.seriesTypes[t],o=0,u=this.get("xcoords"),a=this.get("ycoords"),f,l,c,h,p=a.concat(),d,v,m=[],g;e>0?(d=i[e-1].get("stackedXCoords"),v=i[e-1].get("stackedYCoords"),f=v.length):f=a.length;for(;o0){c=v[o];if(!s.isNumber(c)){h=e;while(h>-1&&!s.isNumber(c))h-=1,h>-1?c=i[h].get("stackedYCoords")[o]:c=this._bottomOrigin}a[o]=c-(r-a[o])}p[o]=a[o]}else m.push(o);this._cleanYNaN(u,p),f=m.length;if(f>0)for(o=0;o0?v[g]:r,p[g]=Math.min(p[g],l);this.set("stackedXCoords",u),this.set("stackedYCoords",p)},_cleanXNaN:function(e,t){var n,r,i,o,u,a,f,l,c=s.isNumber,h,p=0,d=t.length;for(;p0&&pi)t-=1,n=e[t];return n},_getNextValidCoordValue:function(e,t){var n,r=s.isNumber,i=e.length;while(!r(n)&&t0&&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(C,e.Attribute),e.Lines=C,k.prototype={_getPath:function(){var e=this._path;return e||(e=this.get("graph").get("graphic").addShape({type:"path"}),this._path=e),e},_toggleVisible:function(e){this._path&&this._path.set("visible",e)},drawFill:function(e,t){if(e.length<1)return;var n=s.isNumber,r=e.length,i=e[0],o=t[0],u=i,a=o,f,l,c,h=!0,p=0,d=this.get("styles").area,v=this._getPath(),m=d.color||this._getDefaultColor(this.get("graphOrder"),"slice");v.clear(),v.set("fill",{color:m,opacity:d.alpha}),v.set("stroke",{weight:0});for(;p0){u=o[r-1].get("xcoords").concat().reverse(),a=o[r-1].get("ycoords").concat().reverse(),n=this.getCurveControlPoints(u,a),m=0,f=n.length,w.lineTo(u[0],a[0]);for(;m-1)n-=1,n>-1&&(s=e[n].get(i)[t]);return n},_getCoordsByOrderAndIndex:function(e,t,n,r){var i,s;return r=="vertical"?(i=n<0?this._leftOrigin:e[n].get("stackedXCoords")[t],s=this.get("stackedYCoords")[t]):(i=this.get("stackedXCoords")[t],s=n<0?this._bottomOrigin:e[n].get("stackedYCoords")[t]),[i,s]},_getStackedClosingPoints:function(){var e=this.get("order"),t=this.get("type"),n=this.get("graph"),r=this.get("direction"),i=n.seriesTypes[t],s,o,u=this.get("stackedXCoords"),a=this.get("stackedYCoords"),f,l,c,h,p,d,v,m,g,y,b,w;if(e<1)return this._getClosingPoints();l=i[e-1],p=l.get("stackedXCoords").concat(),d=l.get("stackedYCoords").concat(),r=="vertical"?(s=this._getFirstValidIndex(u),o=this._getLastValidIndex(u),c=l._getFirstValidIndex(p),h=l._getLastValidIndex(p)):(s=this._getFirstValidIndex(a),o=this._getLastValidIndex(a),c=l._getFirstValidIndex(d),h=l._getLastValidIndex(d)),h>=s&&c<=o?(c=Math.max(s,c),h=Math.min(o,h),p=p.slice(c,h+1),d=d.slice(c,h+1),f=c):f=o,m=[u[s]],g=[a[s]],y=s;while((isNaN(b)||bw&&(v=this._getCoordsByOrderAndIndex(i,y,w,r),m.push(v[0]),g.push(v[1])),v=this._getCoordsByOrderAndIndex(i,y,b,r),m.push(v[0]),g.push(v[1]),y+=1;p&&p.length>0&&h>s&&cw?(v=this._getCoordsByOrderAndIndex(i,y,w,r),m.push(v[0]),g.push(v[1])):b0){while(!r){if(this._markerCache.length<1){r=this._createMarker(e,t,n);break}r=this._markerCache.shift()}r.set(e)}else r=this._createMarker(e,t,n);return this._markers.push(r),r},_createMarker:function(t,n,r){var i=this.get("graphic"),s,o=e.clone(t);return i.set("autoDraw",!1),o.type=o.shape,s=i.addShape(o),s.addClass(p),s},_createMarkerCache:function(){this._groupMarker&&(this._groupMarker.destroy(),this._groupMarker=null),this._markers&&this._markers.length>0?this._markerCache=this._markers.concat():this._markerCache=[],this._markers=[]},_createGroupMarker:function(e){var t,n=this.get("markers"),r=e.border,i,s,o;if(n&&n.length>0){while(n.length>0)t=n.shift(),t.destroy();this.set("markers",[])}r.opacity=r.alpha,s={id:this.get("chart").get("id")+"_"+e.graphOrder,stroke:r,fill:e.fill,dimensions:e.dimensions,xvalues:e.xvalues,yvalues:e.yvalues},s.fill.opacity=e.fill.alpha,o=this._getGroupShape(e.shape),o&&(s.type=o),e.hasOwnProperty("radius")&&!isNaN(e.radius)&&(s.dimensions.radius=e.radius),this._groupMarker&&this._groupMarker.destroy(),i=this.get("graphic"),this._groupMarker=i.addShape(s),i._redraw()},_toggleVisible:function(e){var t,n=this.get("markers"),r=0,i;if(n){i=n.length;for(;r0)e=this._markerCache.shift(),e&&e.destroy()},updateMarkerState:function(t,n){if(this._markers&&this._markers[n]){var r,i,s=e.clone(this.get("styles").marker),o=this._getState(t),u=this.get("xcoords"),a=this.get("ycoords"),f=this._markers[n],l=o=="off"||!s[o]?s:s[o];l.fill.color=this._getItemColor(l.fill.color,n),l.border.color=this._getItemColor(l.border.color,n),l.stroke=l.border,f.set(l),r=l.width,i=l.height,f.set("x",u[n]-r/2),f.set("y",a[n]-i/2),f.set("visible",this.get("visible"))}},_getItemColor:function(e,t){return s.isArray(e)?e[t%e.length]:e},_setStyles:function(t){return t=this._parseMarkerStyles(t),e.Renderer.prototype._setStyles.apply(this,[t])},_parseMarkerStyles:function(e){if(e.marker){var t=this._getPlotDefaults();e.marker=this._mergeStyles(e.marker,t),e.marker.over&&(e.marker.over=this._mergeStyles(e.marker.over,e.marker)),e.marker.down&&(e.marker.down=this._mergeStyles(e.marker.down,e.marker))}return e},_getState:function(e){var t;switch(e){case"mouseout":t="off";break;case"mouseover":t="over";break;case"mouseup":t="over";break;case"mousedown":t="down"}return t},_stateSyles:null},e.augment(L,e.Attribute),e.Plots=L,A.prototype={drawSeries:function(){if(this.get("xcoords").length<1)return;var t=e.clone(this.get("styles").marker),n,r,i=this.get("xcoords"),o=this.get("ycoords"),u=0,a=i.length,f=o[0],l=this.get("type"),c=this.get("graph"),h=c.seriesTypes[l],p=h.length,d=0,v=0,m=0,g,y,b=this.get("order"),w=this.get("graphOrder"),E,S,x,T,N,C=null,k=null,L=[],A=[],O,M,_,D,P={width:[],height:[]},H=[],B=[],j=this.get("groupMarkers");s.isArray(t.fill.color)&&(C=t.fill.color.concat()),s.isArray(t.border.color)&&(k=t.border.color.concat()),this.get("direction")=="vertical"?(x="height",T="width"):(x="width",T="height"),n=t[x],r=t[T],this._createMarkerCache();for(;u
"),n=e.UA.ie,r=n&&n<8?"rect(1px 1px 1px 1px)":"rect(1px, 1px, 1px, 1px)";return t.setStyle("position","absolute"),t.setStyle("height","1px"),t.setStyle("width","1px"),t.setStyle("overflow","hidden"),t.setStyle("clip",r),t},syncUI:function(){this._redraw()},bindUI:function(){this.after("tooltipChange",e.bind(this._tooltipChangeHandler,this)),this.after("widthChange",this._sizeChanged),this.after("heightChange",this._sizeChanged),this.after("groupMarkersChange",this._groupMarkersChangeHandler);var t=this.get("tooltip"),n="mouseout",o="mouseover",u=this.get("contentBox"),a=this.get("interactionType"),f=0,l,c="."+p,h=r&&"ontouchstart"in r&&!(e.UA.chrome&&e.UA.chrome<6);e.on("keydown",e.bind(function(e){var t=e.keyCode,n=parseFloat(t),r;n>36&&n<41&&(e.halt(),r=this._getAriaMessage(n),this._liveRegion.setContent(""),this._liveRegion.appendChild(i.createTextNode(r)))},this),this.get("contentBox")),a=="marker"?(n=t.hideEvent,o=t.showEvent,h?(e.delegate("touchend",e.bind(this._markerEventDispatcher,this),u,c),e.on("touchend",e.bind(function(e){e.halt(!0),this._activeMarker&&(this._activeMarker=null,this.hideTooltip(e))},this))):(e.delegate("mouseenter",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("mousedown",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("mouseup",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("mouseleave",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("click",e.bind(this._markerEventDispatcher,this),u,c),e.delegate("mousemove",e.bind(this._positionTooltip,this),u,c))):a=="planar"&&(h?this._overlay.on("touchend",e.bind(this._planarEventDispatcher,this)):(this._overlay.on("mousemove",e.bind(this._planarEventDispatcher,this)),this.on("mouseout",this.hideTooltip)));if(t){this.on("markerEvent:touchend",e.bind(function(e){var n=e.series.get("markers")[e.index];this._activeMarker&&n===this._activeMarker?(this._activeMarker=null,this.hideTooltip(e)):(this._activeMarker=n,t.markerEventHandler.apply(this,[e]))},this));if(n&&o&&n==o)this.on(a+"Event:"+n,this.toggleTooltip);else{o&&this.on(a+"Event:"+o,t[a+"EventHandler"]);if(n){if(s.isArray(n)){l=n.length;for(;f=T[h].start){p=h;break}N=l.length;for(h=0;h-1&&c.updateMarkerState("mouseout",d),C&&C[p]>-1&&(w&&!isNaN(p)&&p>-1&&c.updateMarkerState("mouseover",p),v=this.getSeriesItems(c,p),g.push(v.category),y.push(v.value),m.push(c));this._selectedIndex=p,p>-1?this.fire("planarEvent:mouseover",{categoryItem:g,valueItem:y,x:u,y:a,pageX:s,pageY:o,items:m,index:p,originEvent:e}):this.fire("planarEvent:mouseout")}},_type:"combo",_itemRenderQueue:null,_addToAxesRenderQueue:function(t){this._itemRenderQueue||(this._itemRenderQueue=[]),e.Array.indexOf(this._itemRenderQueue,t)<0&&this._itemRenderQueue.push(t)},_addToAxesCollection:function(e,t){var n=this.get(e+"AxesCollection");n||(n=[],this.set(e+"AxesCollection",n)),n.push(t)},_getDefaultSeriesCollection:function(){var e,t=this.get("dataProvider");return t&&(e=this._parseSeriesCollection()),e},_parseSeriesCollection:function(t){var n=this.get("direction"),r=[],i,s,o=[],u,a=this.get("seriesKeys").concat(),f,l,c,h=this.get("type"),p,d,v,m,g=[],y=this.get("categoryKey"),b=this.get("showMarkers"),w=this.get("showAreaFill"),E=this.get("showLines");t=t||[],n=="vertical"?(i="yAxis",d="yKey",s="xAxis",v="xKey"):(i="xAxis",d="xKey",s="yAxis",v="yKey"),c=t.length;while(t&&t.length>0)u=t.shift(),p=this._getBaseAttribute(u,v),p?(l=e.Array.indexOf(a,p),l>-1?(a.splice(l,1),o.push(p),r.push(u)):g.push(u)):g.push(u);while(g.length>0)u=g.shift(),a.length>0?(p=a.shift(),this._setBaseAttribute(u,v,p),o.push(p),r.push(u)):u instanceof e.CartesianSeries&&u.destroy(!0);a.length>0&&(o=o.concat(a)),c=o.length;for(f=0;f0&&f.set("overlapGraph",!1),r[u]=f)}return r},_addAxes:function(){var t=this.get("axes"),n,r,i,s=this.get("width"),o=this.get("height"),u=e.Node.one(this._parentNode);this._axesCollection||(this._axesCollection=[]);for(n in t)t.hasOwnProperty(n)&&(r=t[n],r instanceof e.Axis&&(s||(this.set("width",u.get("offsetWidth")),s=this.get("width")),o||(this.set("height",u.get("offsetHeight")),o=this.get("height")),this._addToAxesRenderQueue(r),i=r.get("position"),this.get(i+"AxesCollection")?this.get(i+"AxesCollection").push(r):this.set(i+"AxesCollection",[r]),this._axesCollection.push(r),r.get("keys").hasOwnProperty(this.get("categoryKey"))&&this.set("categoryAxis",r),r.render(this.get("contentBox"))))},_addSeries:function(){var e=this.get("graph"),t=this.get("seriesCollection");e.render(this.get("contentBox"))},_addGridlines:function(){var t=this.get("graph"),n=this.get("horizontalGridlines"),r=this.get("verticalGridlines"),i=this.get("direction"),s=this.get("leftAxesCollection"),o=this.get("rightAxesCollection"),u=this.get("bottomAxesCollection"),a=this.get("topAxesCollection"),f,l=this.get("categoryAxis"),c,h;this._axesCollection&&(f=this._axesCollection.concat(),f.splice(e.Array.indexOf(f,l),1)),n&&(s&&s[0]?c=s[0]:o&&o[0]?c=o[0]:c=i=="horizontal"?l:f[0],!this._getBaseAttribute(n,"axis")&&c&&this._setBaseAttribute(n,"axis",c),this._getBaseAttribute(n,"axis")&&t.set("horizontalGridlines",n)),r&&(u&&u[0]?h=u[0]:a&&a[0]?h=a[0]:h=i=="vertical"?l:f[0],!this._getBaseAttribute(r,"axis")&&h&&this._setBaseAttribute(r,"axis",h),this._getBaseAttribute(r,"axis")&&t.set("verticalGridlines",r))},_getDefaultAxes:function(){var e;return this.get("dataProvider")&&(e=this._parseAxes()),e},_parseAxes:function(t){var n=this.get("categoryKey"),r,i,o,u={},a=[],f=this.get("categoryAxisName")||this.get("categoryKey"),l=this.get("valueAxisName"),c=this.get("seriesKeys").concat(),h,p,d,v,m,g=this.get("direction"),y,b,w=[],E=this.get("stacked")?"stacked":"numeric";g=="vertical"?(y="bottom",b="left"):(y="left",b="bottom");if(t)for(h in t)if(t.hasOwnProperty(h)){r=t[h],o=this._getBaseAttribute(r,"keys"),i=this._getBaseAttribute(r,"type");if(i=="time"||i=="category")f=h,this.set("categoryAxisName",h),s.isArray(o)&&o.length>0&&(n=o[0],this.set("categoryKey",n)),u[h]=r;else if(h==f)u[h]=r;else{u[h]=r;if(h!=l&&o&&s.isArray(o)){v=o.length;for(d=0;d-1&&c.splice(m,1),p=a.length;for(h=0;h-1&&c.splice(m,1);return u.hasOwnProperty(f)||(u[f]={}),this._getBaseAttribute(u[f],"keys")||this._setBaseAttribute(u[f],"keys",[n]),this._getBaseAttribute(u[f],"position")||this._setBaseAttribute(u[f],"position",b),this._getBaseAttribute(u[f],"type")||this._setBaseAttribute(u[f],"type",this.get("categoryType")),!u.hasOwnProperty(l)&&c&&c.length>0&&(u[l]={keys:c},w.push(u[l])),a.length>0&&(c.length>0?c=a.concat(c):c=a),u.hasOwnProperty(l)&&(this._getBaseAttribute(u[l],"position")||this._setBaseAttribute(u[l],"position",this._getDefaultAxisPosition(u[l],w,y)),this._setBaseAttribute(u[l],"type",E),this._setBaseAttribute(u[l],"keys",c)),this._seriesKeysExplicitlySet||(this._seriesKeys=c),u},_getDefaultAxisPosition:function(t,n,r){var i=this.get("direction"),s=e.Array.indexOf(n,t);return n[s-1]&&n[s-1].position&&(i=="horizontal"?n[s-1].position=="left"?r="right":n[s-1].position=="right"&&(r="left"):n[s-1].position=="bottom"?r="top":r="bottom"),r},getSeriesItems:function(e,t){var n=e.get("xAxis"),r=e.get("yAxis"),i=e.get("xKey"),s=e.get("yKey"),o,u;return this.get("direction")=="vertical"?(o={axis:r,key:s,value:r.getKeyValueAt(s,t)},u={axis:n,key:i,value:n.getKeyValueAt(i,t)}):(u={axis:r,key:s,value:r.getKeyValueAt(s,t)},o={axis:n,key:i,value:n.getKeyValueAt(i,t)}),o.displayName=e.get("categoryDisplayName"),u.displayName=e.get("valueDisplayName"),o.value=o.axis.getKeyValueAt(o.key,t),u.value=u.axis.getKeyValueAt(u.key,t),{category:o,value:u}},_sizeChanged:function(e){if(this._axesCollection){var t=this._axesCollection,n=0,r=t.length;for(;n-1;--l)C.unshift(n),n+=o[l].get("width")}if(u){N=[],c=u.length,l=0;for(l=c-1;l>-1;--l)r+=u[l].get("width"),N.unshift(e-r)}if(a){k=[],c=a.length;for(l=c-1;l>-1;--l)k.unshift(i),i+=a[l].get("height")}if(f){L=[],c=f.length;for(l=c-1;l>-1;--l)s+=f[l].get("height"),L.unshift(t-s)}b=e-(n+r),w=t-(s+i),A.left=n,A.top=i,A.bottom=t-s,A.right=e-r;if(!x){v=this._getTopOverflow(o,u),m=this._getBottomOverflow(o,u),g=this._getLeftOverflow(f,a),y=this._getRightOverflow(f,a),T=v-i;if(T>0){A.top=v;if(k){l=0,c=k.length;for(;l0){A.bottom=t-m;if(L){l=0,c=L.length;for(;l0){A.left=g;if(C){l=0,c=C.length;for(;l0){A.right=e-y;if(N){l=0,c=N.length;for(;l1?(e===38?o=o<1?f-1:o-1:e===40&&(o=o>=f-1?0:o+1),this._itemIndex=-1):o=0,this._seriesIndex=o,n=this.getSeries(parseInt(o,10)),t=n.get("valueDisplayName")+" series."):(o>-1?(t="",n=this.getSeries(parseInt(o,10))):(o=0,this._seriesIndex=o,n=this.getSeries(parseInt(o,10)),t=n.get("valueDisplayName")+" series."),l=n._dataLength?n._dataLength:0,e===37?u=u>0?u-1:l-1:e===39&&(u=u>=l-1?0:u+1),this._itemIndex=u,r=this.getSeriesItems(n,u),i=r.category,s=r.value,i&&s&&i.value&&s.value?(t+=i.displayName+": "+i.axis.formatLabel.apply(this,[i.value,i.axis.get("labelFormat")])+", ",t+=s.displayName+": "+s.axis.formatLabel.apply(this,[s.value,s.axis.get("labelFormat")])+", "):t+="No data available.",t+=u+1+" of "+l+". "),t}},{ATTRS:{allowContentOverflow:{value:!1},axesStyles:{getter:function(){var t=this.get("axes"),n,r=this._axesStyles;if(t)for(n in t)t.hasOwnProperty(n)&&t[n]instanceof e.Axis&&(r||(r={}),r[n]=t[n].get("styles"));return r},setter:function(e){var t=this.get("axes"),n;for(n in e)e.hasOwnProperty(n)&&t.hasOwnProperty(n)&&this._setBaseAttribute(t[n],"styles",e[n])}},seriesStyles:{getter:function(){var e=this._seriesStyles,t=this.get("graph"),n,r;if(t){n=t.get("seriesDictionary");if(n){e={};for(r in n)n.hasOwnProperty(r)&&(e[r]=n[r].get("styles"))}}return e},setter:function(e){var t,n,r;if(s.isArray(e)){r=this.get("seriesCollection"),t=0,n=e.length;for(;t0?u-1:f-1:e===39&&(u=u>=f-1?0:u+1),this._itemIndex=u,r=this.getSeriesItems(i,u),n=r.category,s=r.value,l=i.getTotalValues(),c=Math.round(s.value/l*1e4)/100,n&&s?(t+=n.displayName+": "+n.axis.formatLabel.apply(this,[n.value,n.axis.get("labelFormat")])+", ",t+=s.displayName+": "+s.axis.formatLabel.apply(this,[s.value,s.axis.get("labelFormat")])+", ",t+="Percent of total "+s.displayName+": "+c+"%,"):t+="No data available,",t+=u+1+" of "+f+". ",t}},{ATTRS:{ariaDescription:{value:"Use the left and right keys to navigate through items.",setter:function(e){return this._description&&(this._description.setContent(""),this._description.appendChild(i.createTextNode(e))),e}},axes:{getter:function(){return this._axes},setter:function(e){this._parseAxes(e)}},seriesCollection:{getter:function(){return this._getSeriesCollection()},setter:function(e){return this._setSeriesCollection(e)}},type:{value:"pie"}}})},"3.7.2",{requires:["dom","datatype-number","datatype-date","event-custom","event-mouseenter","event-touch","widget","widget-position","widget-stack","graphics"]});
diff --git a/lib/yuilib/3.7.1/build/charts-base/charts-base.js b/lib/yuilib/3.7.2/build/charts-base/charts-base.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/charts-base/charts-base.js
rename to lib/yuilib/3.7.2/build/charts-base/charts-base.js
index 0349281c156..fd2406a83b9 100644
--- a/lib/yuilib/3.7.1/build/charts-base/charts-base.js
+++ b/lib/yuilib/3.7.2/build/charts-base/charts-base.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -16202,4 +16202,4 @@ Y.PieChart = Y.Base.create("pieChart", Y.Widget, [Y.ChartBase], {
});
-}, '3.7.1', {"requires": ["dom", "datatype-number", "datatype-date", "event-custom", "event-mouseenter", "event-touch", "widget", "widget-position", "widget-stack", "graphics"]});
+}, '3.7.2', {"requires": ["dom", "datatype-number", "datatype-date", "event-custom", "event-mouseenter", "event-touch", "widget", "widget-position", "widget-stack", "graphics"]});
diff --git a/lib/yuilib/3.7.1/build/charts-legend/charts-legend-coverage.js b/lib/yuilib/3.7.2/build/charts-legend/charts-legend-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/charts-legend/charts-legend-coverage.js
rename to lib/yuilib/3.7.2/build/charts-legend/charts-legend-coverage.js
index bf4696209e6..35756e1aeae 100644
--- a/lib/yuilib/3.7.1/build/charts-legend/charts-legend-coverage.js
+++ b/lib/yuilib/3.7.2/build/charts-legend/charts-legend-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/charts-legend/charts-legend.js"] = {
path: "build/charts-legend/charts-legend.js",
code: []
};
-_yuitest_coverage["build/charts-legend/charts-legend.js"].code=["YUI.add('charts-legend', function (Y, NAME) {","","/**"," * Adds legend functionality to charts."," *"," * @module charts"," * @submodule charts-legend"," */","var DOCUMENT = Y.config.doc, ","TOP = \"top\",","RIGHT = \"right\",","BOTTOM = \"bottom\",","LEFT = \"left\",","EXTERNAL = \"external\",","HORIZONTAL = \"horizontal\",","VERTICAL = \"vertical\",","WIDTH = \"width\",","HEIGHT = \"height\",","POSITION = \"position\",","_X = \"x\",","_Y = \"y\",","PX = \"px\",","LEGEND = {"," setter: function(val)"," { "," var legend = this.get(\"legend\");"," if(legend)"," {"," legend.destroy(true);"," }"," if(val instanceof Y.ChartLegend)"," {"," legend = val;"," legend.set(\"chart\", this);"," }"," else"," {"," val.chart = this;"," if(!val.hasOwnProperty(\"render\"))"," {"," val.render = this.get(\"contentBox\");"," val.includeInChartLayout = true;"," }"," legend = new Y.ChartLegend(val);"," }"," return legend;"," }","},","","/**"," * Contains methods for displaying items horizontally in a legend."," *"," * @module charts"," * @submodule charts-legend"," * @class HorizontalLegendLayout"," */","HorizontalLegendLayout = {"," /**"," * Displays items horizontally in a legend."," *"," * @method _positionLegendItems"," * @param {Array} items Array of items to display in the legend."," * @param {Number} maxWidth The width of the largest item in the legend."," * @param {Number} maxHeight The height of the largest item in the legend."," * @param {Number} totalWidth The total width of all items in a legend."," * @param {Number} totalHeight The total height of all items in a legend."," * @param {Number} padding The left, top, right and bottom padding properties for the legend."," * @param {Number} horizontalGap The horizontal distance between items in a legend."," * @param {Number} verticalGap The vertical distance between items in a legend."," * @param {String} hAlign The horizontal alignment of the legend."," * @param {String} vAlign The vertical alignment of the legend."," * @protected"," */"," _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, hAlign, vAlign)"," {"," var i = 0,"," rowIterator = 0,"," item,"," node,"," itemWidth,"," itemHeight,"," len,"," width = this.get(\"width\"),"," rows,"," rowsLen,"," row,"," totalWidthArray,"," legendWidth,"," topHeight = padding.top - verticalGap,"," limit = width - (padding.left + padding.right),"," left, "," top,"," right,"," bottom;"," HorizontalLegendLayout._setRowArrays(items, limit, horizontalGap);"," rows = HorizontalLegendLayout.rowArray;"," totalWidthArray = HorizontalLegendLayout.totalWidthArray;"," rowsLen = rows.length;"," for(; rowIterator < rowsLen; ++ rowIterator)"," {"," topHeight += verticalGap;"," row = rows[rowIterator];"," len = row.length;"," legendWidth = HorizontalLegendLayout.getStartPoint(width, totalWidthArray[rowIterator], hAlign, padding);"," for(i = 0; i < len; ++i)"," {"," item = row[i];"," node = item.node;"," itemWidth = item.width;"," itemHeight = item.height;"," item.x = legendWidth;"," item.y = 0;"," left = !isNaN(left) ? Math.min(left, legendWidth) : legendWidth;"," top = !isNaN(top) ? Math.min(top, topHeight) : topHeight;"," right = !isNaN(right) ? Math.max(legendWidth + itemWidth, right) : legendWidth + itemWidth;"," bottom = !isNaN(bottom) ? Math.max(topHeight + itemHeight, bottom) : topHeight + itemHeight;"," node.setStyle(\"left\", legendWidth + PX);"," node.setStyle(\"top\", topHeight + PX);"," legendWidth += itemWidth + horizontalGap;"," }"," topHeight += item.height;"," }"," this._contentRect = {"," left: left,"," top: top,"," right: right,"," bottom: bottom"," };"," if(this.get(\"includeInChartLayout\"))"," {"," this.set(\"height\", topHeight + padding.bottom);"," }"," },",""," /**"," * Creates row and total width arrays used for displaying multiple rows of"," * legend items based on the items, available width and horizontalGap for the legend."," *"," * @method _setRowArrays"," * @param {Array} items Array of legend items to display in a legend."," * @param {Number} limit Total available width for displaying items in a legend."," * @param {Number} horizontalGap Horizontal distance between items in a legend."," * @protected"," */"," _setRowArrays: function(items, limit, horizontalGap)"," {"," var item = items[0],"," rowArray = [[item]],"," i = 1,"," rowIterator = 0,"," len = items.length,"," totalWidth = item.width,"," itemWidth,"," totalWidthArray = [[totalWidth]];"," for(; i < len; ++i)"," {"," item = items[i];"," itemWidth = item.width;"," if((totalWidth + horizontalGap + itemWidth) <= limit)"," {"," totalWidth += horizontalGap + itemWidth;"," rowArray[rowIterator].push(item);"," }"," else"," {"," totalWidth = horizontalGap + itemWidth;"," if(rowArray[rowIterator])"," {"," rowIterator += 1;"," }"," rowArray[rowIterator] = [item];"," }"," totalWidthArray[rowIterator] = totalWidth;"," }"," HorizontalLegendLayout.rowArray = rowArray;"," HorizontalLegendLayout.totalWidthArray = totalWidthArray;"," },",""," /**"," * Returns the starting x-coordinate for a row of legend items."," *"," * @method getStartPoint"," * @param {Number} w Width of the legend."," * @param {Number} totalWidth Total width of all labels in the row."," * @param {String} align Horizontal alignment of items for the legend."," * @param {Object} padding Object contain left, top, right and bottom padding properties."," * @return Number"," * @protected"," */"," getStartPoint: function(w, totalWidth, align, padding)"," {"," var startPoint;"," switch(align)"," {"," case LEFT :"," startPoint = padding.left;"," break;"," case \"center\" :"," startPoint = (w - totalWidth) * 0.5;"," break;"," case RIGHT :"," startPoint = w - totalWidth - padding.right;"," break;"," }"," return startPoint;"," }","},","","/**"," * Contains methods for displaying items vertically in a legend."," *"," * @module charts"," * @submodule charts-legend"," * @class VerticalLegendLayout"," */","VerticalLegendLayout = {"," /**"," * Displays items vertically in a legend."," *"," * @method _positionLegendItems"," * @param {Array} items Array of items to display in the legend."," * @param {Number} maxWidth The width of the largest item in the legend."," * @param {Number} maxHeight The height of the largest item in the legend."," * @param {Number} totalWidth The total width of all items in a legend."," * @param {Number} totalHeight The total height of all items in a legend."," * @param {Number} padding The left, top, right and bottom padding properties for the legend."," * @param {Number} horizontalGap The horizontal distance between items in a legend."," * @param {Number} verticalGap The vertical distance between items in a legend."," * @param {String} hAlign The horizontal alignment of the legend."," * @param {String} vAlign The vertical alignment of the legend."," * @protected"," */"," _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, hAlign, vAlign)"," {"," var i = 0,"," columnIterator = 0,"," item,"," node,"," itemHeight,"," itemWidth,"," len,"," height = this.get(\"height\"),"," columns,"," columnsLen,"," column,"," totalHeightArray,"," legendHeight,"," leftWidth = padding.left - horizontalGap,"," legendWidth,"," limit = height - (padding.top + padding.bottom),"," left, "," top,"," right,"," bottom;"," VerticalLegendLayout._setColumnArrays(items, limit, verticalGap);"," columns = VerticalLegendLayout.columnArray;"," totalHeightArray = VerticalLegendLayout.totalHeightArray;"," columnsLen = columns.length;"," for(; columnIterator < columnsLen; ++ columnIterator)"," {"," leftWidth += horizontalGap;"," column = columns[columnIterator];"," len = column.length;"," legendHeight = VerticalLegendLayout.getStartPoint(height, totalHeightArray[columnIterator], vAlign, padding);"," legendWidth = 0;"," for(i = 0; i < len; ++i)"," {"," item = column[i];"," node = item.node;"," itemHeight = item.height;"," itemWidth = item.width;"," item.y = legendHeight;"," item.x = leftWidth;"," left = !isNaN(left) ? Math.min(left, leftWidth) : leftWidth;"," top = !isNaN(top) ? Math.min(top, legendHeight) : legendHeight;"," right = !isNaN(right) ? Math.max(leftWidth + itemWidth, right) : leftWidth + itemWidth;"," bottom = !isNaN(bottom) ? Math.max(legendHeight + itemHeight, bottom) : legendHeight + itemHeight;"," node.setStyle(\"left\", leftWidth + PX);"," node.setStyle(\"top\", legendHeight + PX);"," legendHeight += itemHeight + verticalGap;"," legendWidth = Math.max(legendWidth, item.width);"," }"," leftWidth += legendWidth;"," }"," this._contentRect = {"," left: left,"," top: top,"," right: right,"," bottom: bottom"," };"," if(this.get(\"includeInChartLayout\"))"," {"," this.set(\"width\", leftWidth + padding.right);"," }"," },",""," /**"," * Creates column and total height arrays used for displaying multiple columns of"," * legend items based on the items, available height and verticalGap for the legend."," *"," * @method _setColumnArrays"," * @param {Array} items Array of legend items to display in a legend."," * @param {Number} limit Total available height for displaying items in a legend."," * @param {Number} verticalGap Vertical distance between items in a legend."," * @protected"," */"," _setColumnArrays: function(items, limit, verticalGap)"," {"," var item = items[0],"," columnArray = [[item]],"," i = 1,"," columnIterator = 0,"," len = items.length,"," totalHeight = item.height,"," itemHeight,"," totalHeightArray = [[totalHeight]];"," for(; i < len; ++i)"," {"," item = items[i];"," itemHeight = item.height;"," if((totalHeight + verticalGap + itemHeight) <= limit)"," {"," totalHeight += verticalGap + itemHeight;"," columnArray[columnIterator].push(item);"," }"," else"," {"," totalHeight = verticalGap + itemHeight;"," if(columnArray[columnIterator])"," {"," columnIterator += 1;"," }"," columnArray[columnIterator] = [item];"," }"," totalHeightArray[columnIterator] = totalHeight;"," }"," VerticalLegendLayout.columnArray = columnArray;"," VerticalLegendLayout.totalHeightArray = totalHeightArray;"," },",""," /**"," * Returns the starting y-coordinate for a column of legend items."," *"," * @method getStartPoint"," * @param {Number} h Height of the legend."," * @param {Number} totalHeight Total height of all labels in the column."," * @param {String} align Vertical alignment of items for the legend."," * @param {Object} padding Object contain left, top, right and bottom padding properties."," * @return Number"," * @protected"," */"," getStartPoint: function(h, totalHeight, align, padding)"," {"," var startPoint;"," switch(align)"," {"," case TOP :"," startPoint = padding.top;"," break;"," case \"middle\" :"," startPoint = (h - totalHeight) * 0.5;"," break;"," case BOTTOM :"," startPoint = h - totalHeight - padding.bottom;"," break;"," }"," return startPoint;"," }","},","","CartesianChartLegend = Y.Base.create(\"cartesianChartLegend\", Y.CartesianChart, [], {"," /**"," * Redraws and position all the components of the chart instance."," *"," * @method _redraw"," * @private"," */"," _redraw: function()"," {"," if(this._drawing)"," {"," this._callLater = true;"," return;"," }"," this._drawing = true;"," this._callLater = false;"," var w = this.get(\"width\"),"," h = this.get(\"height\"),"," layoutBoxDimensions = this._getLayoutBoxDimensions(),"," leftPaneWidth = layoutBoxDimensions.left,"," rightPaneWidth = layoutBoxDimensions.right,"," topPaneHeight = layoutBoxDimensions.top,"," bottomPaneHeight = layoutBoxDimensions.bottom,"," leftAxesCollection = this.get(\"leftAxesCollection\"),"," rightAxesCollection = this.get(\"rightAxesCollection\"),"," topAxesCollection = this.get(\"topAxesCollection\"),"," bottomAxesCollection = this.get(\"bottomAxesCollection\"),"," i = 0,"," l,"," axis,"," graphOverflow = \"visible\","," graph = this.get(\"graph\"),"," topOverflow,"," bottomOverflow,"," leftOverflow,"," rightOverflow,"," graphWidth,"," graphHeight,"," graphX,"," graphY,"," allowContentOverflow = this.get(\"allowContentOverflow\"),"," diff,"," rightAxesXCoords,"," leftAxesXCoords,"," topAxesYCoords,"," bottomAxesYCoords,"," legend = this.get(\"legend\"),"," graphRect = {};",""," if(leftAxesCollection)"," {"," leftAxesXCoords = [];"," l = leftAxesCollection.length;"," for(i = l - 1; i > -1; --i)"," {"," leftAxesXCoords.unshift(leftPaneWidth);"," leftPaneWidth += leftAxesCollection[i].get(\"width\");"," }"," }"," if(rightAxesCollection)"," {"," rightAxesXCoords = [];"," l = rightAxesCollection.length;"," i = 0;"," for(i = l - 1; i > -1; --i)"," {"," rightPaneWidth += rightAxesCollection[i].get(\"width\");"," rightAxesXCoords.unshift(w - rightPaneWidth);"," }"," }"," if(topAxesCollection)"," {"," topAxesYCoords = [];"," l = topAxesCollection.length;"," for(i = l - 1; i > -1; --i)"," {"," topAxesYCoords.unshift(topPaneHeight);"," topPaneHeight += topAxesCollection[i].get(\"height\");"," }"," }"," if(bottomAxesCollection)"," {"," bottomAxesYCoords = [];"," l = bottomAxesCollection.length;"," for(i = l - 1; i > -1; --i)"," {"," bottomPaneHeight += bottomAxesCollection[i].get(\"height\");"," bottomAxesYCoords.unshift(h - bottomPaneHeight);"," }"," }"," "," graphWidth = w - (leftPaneWidth + rightPaneWidth);"," graphHeight = h - (bottomPaneHeight + topPaneHeight);"," graphRect.left = leftPaneWidth;"," graphRect.top = topPaneHeight;"," graphRect.bottom = h - bottomPaneHeight;"," graphRect.right = w - rightPaneWidth;"," if(!allowContentOverflow)"," {"," topOverflow = this._getTopOverflow(leftAxesCollection, rightAxesCollection);"," bottomOverflow = this._getBottomOverflow(leftAxesCollection, rightAxesCollection);"," leftOverflow = this._getLeftOverflow(bottomAxesCollection, topAxesCollection);"," rightOverflow = this._getRightOverflow(bottomAxesCollection, topAxesCollection);"," "," diff = topOverflow - topPaneHeight;"," if(diff > 0)"," {"," graphRect.top = topOverflow;"," if(topAxesYCoords)"," {"," i = 0;"," l = topAxesYCoords.length;"," for(; i < l; ++i)"," {"," topAxesYCoords[i] += diff;"," }"," }"," }",""," diff = bottomOverflow - bottomPaneHeight;"," if(diff > 0)"," {"," graphRect.bottom = h - bottomOverflow;"," if(bottomAxesYCoords)"," {"," i = 0;"," l = bottomAxesYCoords.length;"," for(; i < l; ++i)"," {"," bottomAxesYCoords[i] -= diff;"," }"," }"," }",""," diff = leftOverflow - leftPaneWidth;"," if(diff > 0)"," {"," graphRect.left = leftOverflow;"," if(leftAxesXCoords)"," {"," i = 0;"," l = leftAxesXCoords.length;"," for(; i < l; ++i)"," {"," leftAxesXCoords[i] += diff;"," }"," }"," }",""," diff = rightOverflow - rightPaneWidth;"," if(diff > 0)"," {"," graphRect.right = w - rightOverflow;"," if(rightAxesXCoords)"," {"," i = 0;"," l = rightAxesXCoords.length;"," for(; i < l; ++i)"," {"," rightAxesXCoords[i] -= diff;"," }"," }"," }"," }"," graphWidth = graphRect.right - graphRect.left;"," graphHeight = graphRect.bottom - graphRect.top;"," graphX = graphRect.left;"," graphY = graphRect.top;"," if(legend)"," {"," if(legend.get(\"includeInChartLayout\"))"," {"," switch(legend.get(\"position\"))"," {"," case \"left\" : "," legend.set(\"y\", graphY);"," legend.set(\"height\", graphHeight);"," break;"," case \"top\" :"," legend.set(\"x\", graphX);"," legend.set(\"width\", graphWidth);"," break;"," case \"bottom\" : "," legend.set(\"x\", graphX);"," legend.set(\"width\", graphWidth);"," break;"," case \"right\" :"," legend.set(\"y\", graphY);"," legend.set(\"height\", graphHeight);"," break;"," }"," }"," }"," if(topAxesCollection)"," {"," l = topAxesCollection.length;"," i = 0;"," for(; i < l; i++)"," {"," axis = topAxesCollection[i];"," if(axis.get(\"width\") !== graphWidth)"," {"," axis.set(\"width\", graphWidth);"," }"," axis.get(\"boundingBox\").setStyle(\"left\", graphX + PX);"," axis.get(\"boundingBox\").setStyle(\"top\", topAxesYCoords[i] + PX);"," }"," if(axis._hasDataOverflow())"," {"," graphOverflow = \"hidden\";"," }"," }"," if(bottomAxesCollection)"," {"," l = bottomAxesCollection.length;"," i = 0;"," for(; i < l; i++)"," {"," axis = bottomAxesCollection[i];"," if(axis.get(\"width\") !== graphWidth)"," {"," axis.set(\"width\", graphWidth);"," }"," axis.get(\"boundingBox\").setStyle(\"left\", graphX + PX);"," axis.get(\"boundingBox\").setStyle(\"top\", bottomAxesYCoords[i] + PX);"," }"," if(axis._hasDataOverflow())"," {"," graphOverflow = \"hidden\";"," }"," }"," if(leftAxesCollection)"," {"," l = leftAxesCollection.length;"," i = 0;"," for(; i < l; ++i)"," {"," axis = leftAxesCollection[i];"," axis.get(\"boundingBox\").setStyle(\"top\", graphY + PX);"," axis.get(\"boundingBox\").setStyle(\"left\", leftAxesXCoords[i] + PX);"," if(axis.get(\"height\") !== graphHeight)"," {"," axis.set(\"height\", graphHeight);"," }"," }"," if(axis._hasDataOverflow())"," {"," graphOverflow = \"hidden\";"," }"," }"," if(rightAxesCollection)"," {"," l = rightAxesCollection.length;"," i = 0;"," for(; i < l; ++i)"," {"," axis = rightAxesCollection[i];"," axis.get(\"boundingBox\").setStyle(\"top\", graphY + PX);"," axis.get(\"boundingBox\").setStyle(\"left\", rightAxesXCoords[i] + PX);"," if(axis.get(\"height\") !== graphHeight)"," {"," axis.set(\"height\", graphHeight);"," }"," }"," if(axis._hasDataOverflow())"," {"," graphOverflow = \"hidden\";"," }"," }"," this._drawing = false;"," if(this._callLater)"," {"," this._redraw();"," return;"," }"," if(graph)"," {"," graph.get(\"boundingBox\").setStyle(\"left\", graphX + PX);"," graph.get(\"boundingBox\").setStyle(\"top\", graphY + PX);"," graph.set(\"width\", graphWidth);"," graph.set(\"height\", graphHeight);"," graph.get(\"boundingBox\").setStyle(\"overflow\", graphOverflow);"," }",""," if(this._overlay)"," {"," this._overlay.setStyle(\"left\", graphX + PX);"," this._overlay.setStyle(\"top\", graphY + PX);"," this._overlay.setStyle(\"width\", graphWidth + PX);"," this._overlay.setStyle(\"height\", graphHeight + PX);"," }"," },",""," /**"," * Positions the legend in a chart and returns the properties of the legend to be used in the "," * chart's layout algorithm."," *"," * @method _getLayoutDimensions"," * @return {Object} The left, top, right and bottom values for the legend."," * @protected"," */"," _getLayoutBoxDimensions: function()"," {"," var box = {"," top: 0,"," right: 0,"," bottom: 0,"," left: 0"," },"," legend = this.get(\"legend\"),"," position,"," direction,"," dimension,"," size,"," w = this.get(WIDTH),"," h = this.get(HEIGHT),"," gap;"," if(legend && legend.get(\"includeInChartLayout\"))"," {"," gap = legend.get(\"styles\").gap;"," position = legend.get(POSITION);"," if(position != EXTERNAL)"," {"," direction = legend.get(\"direction\");"," dimension = direction == HORIZONTAL ? HEIGHT : WIDTH;"," size = legend.get(dimension);"," box[position] = size + gap;"," switch(position)"," {"," case TOP :"," legend.set(_Y, 0); "," break;"," case BOTTOM : "," legend.set(_Y, h - size); "," break;"," case RIGHT :"," legend.set(_X, w - size);"," break;"," case LEFT: "," legend.set(_X, 0);"," break;"," }"," }"," }"," return box;"," },",""," /**"," * Destructor implementation for the CartesianChart class. Calls destroy on all axes, series, legend (if available) and the Graph instance."," * Removes the tooltip and overlay HTML elements."," *"," * @method destructor"," * @protected"," */"," destructor: function()"," {"," var legend = this.get(\"legend\");"," if(legend)"," {"," legend.destroy(true);"," }"," }","}, {"," ATTRS: {"," legend: LEGEND"," }","});","","Y.CartesianChart = CartesianChartLegend;","","var PieChartLegend = Y.Base.create(\"pieChartLegend\", Y.PieChart, [], {"," /**"," * Redraws the chart instance."," *"," * @method _redraw"," * @private"," */"," _redraw: function()"," {"," if(this._drawing)"," {"," this._callLater = true;"," return;"," }"," this._drawing = true;"," this._callLater = false;"," var graph = this.get(\"graph\"),"," w = this.get(\"width\"),"," h = this.get(\"height\"),"," graphWidth,"," graphHeight,"," legend = this.get(\"legend\"),"," x = 0,"," y = 0,"," legendX = 0,"," legendY = 0,"," legendWidth,"," legendHeight,"," dimension,"," gap,"," position,"," direction;"," if(graph)"," {"," if(legend)"," {"," position = legend.get(\"position\");"," direction = legend.get(\"direction\");"," graphWidth = graph.get(\"width\");"," graphHeight = graph.get(\"height\");"," legendWidth = legend.get(\"width\");"," legendHeight = legend.get(\"height\");"," gap = legend.get(\"styles\").gap;"," "," if((direction == \"vertical\" && (graphWidth + legendWidth + gap !== w)) || (direction == \"horizontal\" && (graphHeight + legendHeight + gap !== h)))"," {"," switch(legend.get(\"position\"))"," {"," case LEFT :"," dimension = Math.min(w - (legendWidth + gap), h);"," legendHeight = h;"," x = legendWidth + gap;"," legend.set(HEIGHT, legendHeight);"," break;"," case TOP :"," dimension = Math.min(h - (legendHeight + gap), w); "," legendWidth = w;"," y = legendHeight + gap;"," legend.set(WIDTH, legendWidth);"," break;"," case RIGHT :"," dimension = Math.min(w - (legendWidth + gap), h);"," legendHeight = h;"," legendX = dimension + gap;"," legend.set(HEIGHT, legendHeight);"," break;"," case BOTTOM :"," dimension = Math.min(h - (legendHeight + gap), w); "," legendWidth = w;"," legendY = dimension + gap; "," legend.set(WIDTH, legendWidth);"," break;"," }"," graph.set(WIDTH, dimension);"," graph.set(HEIGHT, dimension);"," }"," else"," {"," switch(legend.get(\"position\"))"," { "," case LEFT :"," x = legendWidth + gap;"," break;"," case TOP :"," y = legendHeight + gap;"," break;"," case RIGHT :"," legendX = graphWidth + gap;"," break;"," case BOTTOM :"," legendY = graphHeight + gap; "," break;"," }"," }"," }"," else"," {"," graph.set(_X, 0);"," graph.set(_Y, 0);"," graph.set(WIDTH, w);"," graph.set(HEIGHT, h);"," }"," }"," this._drawing = false;"," if(this._callLater)"," {"," this._redraw();"," return;"," }"," if(graph)"," {"," graph.set(_X, x);"," graph.set(_Y, y);"," }"," if(legend)"," {"," legend.set(_X, legendX);"," legend.set(_Y, legendY);"," }"," }","}, {"," ATTRS: {"," /**"," * The legend for the chart."," *"," * @attribute"," * @type Legend"," */"," legend: LEGEND"," }","});","Y.PieChart = PieChartLegend;","/**"," * ChartLegend provides a legend for a chart."," *"," * @class ChartLegend"," * @module charts"," * @submodule charts-legend"," * @extends Widget"," */","Y.ChartLegend = Y.Base.create(\"chartlegend\", Y.Widget, [Y.Renderer], {"," /**"," * Initializes the chart."," *"," * @method initializer"," * @private"," */"," initializer: function()"," {"," this._items = [];"," },",""," /**"," * @method renderUI"," * @private"," */"," renderUI: function()"," {"," var bb = this.get(\"boundingBox\"),"," cb = this.get(\"contentBox\"),"," styles = this.get(\"styles\").background,"," background = new Y.Rect({"," graphic: cb,"," fill: styles.fill,"," stroke: styles.border"," });"," bb.setStyle(\"display\", \"block\");"," bb.setStyle(\"position\", \"absolute\");"," this.set(\"background\", background);"," },"," "," /**"," * @method bindUI"," * @private"," */"," bindUI: function()"," {"," this.get(\"chart\").after(\"seriesCollectionChange\", Y.bind(this._updateHandler, this));"," this.after(\"stylesChange\", this._updateHandler);"," this.after(\"positionChange\", this._positionChangeHandler);"," this.after(\"widthChange\", this._handleSizeChange);"," this.after(\"heightChange\", this._handleSizeChange);"," },"," "," /**"," * @method syncUI"," * @private"," */"," syncUI: function()"," {"," var w = this.get(\"width\"),"," h = this.get(\"height\");"," if(isFinite(w) && isFinite(h) && w > 0 && h > 0)"," {"," this._drawLegend();"," }"," },",""," /**"," * Handles changes to legend."," *"," * @method _updateHandler"," * @param {Object} e Event object"," * @private"," */"," _updateHandler: function(e)"," {"," if(this.get(\"rendered\"))"," {"," this._drawLegend();"," }"," },",""," /** "," * Handles position changes."," *"," * @method _positionChangeHandler"," * @param {Object} e Event object"," * @private"," */"," _positionChangeHandler: function(e)"," {"," var chart = this.get(\"chart\"),"," parentNode = this._parentNode;"," if(parentNode && ((chart && this.get(\"includeInChartLayout\"))))"," {"," this.fire(\"legendRendered\");"," }"," else if(this.get(\"rendered\"))"," {"," this._drawLegend();"," }"," },",""," /**"," * Updates the legend when the size changes."," *"," * @method _handleSizeChange"," * @param {Object} e Event object."," * @private"," */"," _handleSizeChange: function(e)"," {"," var attrName = e.attrName,"," pos = this.get(POSITION),"," vert = pos == LEFT || pos == RIGHT,"," hor = pos == BOTTOM || pos == TOP;"," if((hor && attrName == WIDTH) || (vert && attrName == HEIGHT))"," {"," this._drawLegend();"," }"," },",""," /**"," * Draws the legend"," *"," * @method _drawLegend"," * @private"," */"," _drawLegend: function()"," {"," if(this._drawing)"," {"," this._callLater = true;"," return;"," }"," this._drawing = true;"," this._callLater = false;"," if(this.get(\"includeInChartLayout\"))"," {"," this.get(\"chart\")._itemRenderQueue.unshift(this);"," }"," var chart = this.get(\"chart\"),"," node = this.get(\"contentBox\"),"," seriesCollection = chart.get(\"seriesCollection\"),"," series,"," styles = this.get(\"styles\"),"," padding = styles.padding,"," itemStyles = styles.item,"," seriesStyles,"," hSpacing = itemStyles.hSpacing,"," vSpacing = itemStyles.vSpacing,"," hAlign = styles.hAlign,"," vAlign = styles.vAlign,"," marker = styles.marker,"," labelStyles = itemStyles.label,"," displayName,"," layout = this._layout[this.get(\"direction\")],"," i, "," len,"," isArray,"," shape,"," shapeClass,"," item,"," fill,"," border,"," fillColors,"," borderColors,"," borderWeight,"," items = [],"," markerWidth = marker.width,"," markerHeight = marker.height,"," totalWidth = 0 - hSpacing,"," totalHeight = 0 - vSpacing,"," maxWidth = 0,"," maxHeight = 0,"," itemWidth,"," itemHeight;"," if(marker && marker.shape)"," {"," shape = marker.shape;"," }"," this._destroyLegendItems();"," if(chart instanceof Y.PieChart)"," {"," series = seriesCollection[0];"," displayName = series.get(\"categoryAxis\").getDataByKey(series.get(\"categoryKey\")); "," seriesStyles = series.get(\"styles\").marker;"," fillColors = seriesStyles.fill.colors;"," borderColors = seriesStyles.border.colors;"," borderWeight = seriesStyles.border.weight;"," i = 0;"," len = displayName.length;"," shape = shape || Y.Circle;"," isArray = Y.Lang.isArray(shape);"," for(; i < len; ++i)"," {"," shape = isArray ? shape[i] : shape;"," fill = {"," color: fillColors[i]"," };"," border = {"," colors: borderColors[i],"," weight: borderWeight"," };"," displayName = chart.getSeriesItems(series, i).category.value;"," item = this._getLegendItem(node, this._getShapeClass(shape), fill, border, labelStyles, markerWidth, markerHeight, displayName);"," itemWidth = item.width;"," itemHeight = item.height;"," maxWidth = Math.max(maxWidth, itemWidth);"," maxHeight = Math.max(maxHeight, itemHeight);"," totalWidth += itemWidth + hSpacing;"," totalHeight += itemHeight + vSpacing;"," items.push(item);"," }"," }"," else"," {"," i = 0;"," len = seriesCollection.length;"," for(; i < len; ++i)"," {"," series = seriesCollection[i];"," seriesStyles = this._getStylesBySeriesType(series, shape);"," if(!shape)"," {"," shape = seriesStyles.shape;"," if(!shape)"," {"," shape = Y.Circle;"," }"," }"," shapeClass = Y.Lang.isArray(shape) ? shape[i] : shape;"," item = this._getLegendItem(node, this._getShapeClass(shape), seriesStyles.fill, seriesStyles.border, labelStyles, markerWidth, markerHeight, series.get(\"valueDisplayName\"));"," itemWidth = item.width;"," itemHeight = item.height;"," maxWidth = Math.max(maxWidth, itemWidth);"," maxHeight = Math.max(maxHeight, itemHeight);"," totalWidth += itemWidth + hSpacing;"," totalHeight += itemHeight + vSpacing;"," items.push(item);"," }"," }"," this._drawing = false;"," if(this._callLater)"," {"," this._drawLegend();"," }"," else"," {"," layout._positionLegendItems.apply(this, [items, maxWidth, maxHeight, totalWidth, totalHeight, padding, hSpacing, vSpacing, hAlign, vAlign]);"," this._updateBackground(styles);"," this.fire(\"legendRendered\");"," }"," },",""," /**"," * Updates the background for the legend."," *"," * @method _updateBackground"," * @param {Object} styles Reference to the legend's styles attribute"," * @private"," */"," _updateBackground: function(styles)"," {"," var backgroundStyles = styles.background,"," contentRect = this._contentRect,"," padding = styles.padding,"," x = contentRect.left - padding.left,"," y = contentRect.top - padding.top,"," w = contentRect.right - x + padding.right,"," h = contentRect.bottom - y + padding.bottom;"," this.get(\"background\").set({"," fill: backgroundStyles.fill,"," stroke: backgroundStyles.border,"," width: w,"," height: h,"," x: x,"," y: y"," });"," },",""," /**"," * Retrieves the marker styles based on the type of series. For series that contain a marker, the marker styles are returned."," * "," * @method _getStylesBySeriesType"," * @param {CartesianSeries | PieSeries} The series in which the style properties will be received."," * @return Object An object containing fill, border and shape information."," * @private"," */"," _getStylesBySeriesType: function(series)"," {"," var styles = series.get(\"styles\"),"," color;"," if(series instanceof Y.LineSeries || series instanceof Y.StackedLineSeries)"," {"," styles = series.get(\"styles\").line;"," color = styles.color || series._getDefaultColor(series.get(\"graphOrder\"), \"line\");"," return {"," border: {"," weight: 1,"," color: color"," },"," fill: {"," color: color"," }"," };"," }"," else if(series instanceof Y.AreaSeries || series instanceof Y.StackedAreaSeries)"," {"," styles = series.get(\"styles\").area;"," color = styles.color || series._getDefaultColor(series.get(\"graphOrder\"), \"slice\");"," return {"," border: {"," weight: 1,"," color: color"," },"," fill: {"," color: color"," }"," };"," }"," else "," {"," styles = series.get(\"styles\").marker;"," return {"," fill: styles.fill,",""," border: {"," weight: styles.border.weight,",""," color: styles.border.color,",""," shape: styles.shape"," },"," shape: styles.shape"," };"," }"," },",""," /**"," * Returns a legend item consisting of the following properties:"," * "," * - node
- The `Node` containing the legend item elements.
"," * - shape
- The `Shape` element for the legend item.
"," * - textNode
- The `Node` containing the text>
"," * - text
"," *
"," *"," * @method _getLegendItem"," * @param {Node} shapeProps Reference to the `node` attribute."," * @param {String | Class} shapeClass The type of shape"," * @param {Object} fill Properties for the shape's fill"," * @param {Object} border Properties for the shape's border"," * @param {String} text String to be rendered as the legend's text"," * @param {Number} width Total width of the legend item"," * @param {Number} height Total height of the legend item"," * @param {HTML | String} text Text for the legendItem"," * @return Object"," * @private"," */"," _getLegendItem: function(node, shapeClass, fill, border, labelStyles, w, h, text) "," {"," var containerNode = Y.one(DOCUMENT.createElement(\"div\")),"," textField = Y.one(DOCUMENT.createElement(\"span\")),"," shape,"," dimension,"," padding,"," left,"," item;"," containerNode.setStyle(POSITION, \"absolute\");"," textField.setStyle(POSITION, \"absolute\");"," textField.setStyles(labelStyles);"," textField.appendChild(DOCUMENT.createTextNode(text));"," containerNode.appendChild(textField);"," node.appendChild(containerNode);"," dimension = textField.get(\"offsetHeight\");"," padding = dimension - h;"," left = w + padding + 2;"," textField.setStyle(\"left\", left + PX);"," containerNode.setStyle(\"height\", dimension + PX);"," containerNode.setStyle(\"width\", (left + textField.get(\"offsetWidth\")) + PX);"," shape = new shapeClass({"," fill: fill,"," stroke: border,"," width: w,"," height: h,"," x: padding * 0.5,"," y: padding * 0.5,"," w: w,"," h: h,"," graphic: containerNode"," });"," textField.setStyle(\"left\", dimension + PX);"," item = {"," node: containerNode,"," width: containerNode.get(\"offsetWidth\"),"," height: containerNode.get(\"offsetHeight\"),"," shape: shape,"," textNode: textField,"," text: text"," };"," this._items.push(item);"," return item;"," },",""," /**"," * Evaluates and returns correct class for drawing a shape."," *"," * @method _getShapeClass"," * @return Shape"," * @private"," */"," _getShapeClass: function()"," { "," var graphic = this.get(\"background\").get(\"graphic\");"," return graphic._getShapeClass.apply(graphic, arguments);"," },"," "," /**"," * Returns the default hash for the `styles` attribute."," *"," * @method _getDefaultStyles"," * @return Object"," * @protected"," */"," _getDefaultStyles: function()"," {"," var styles = { "," padding: {"," top: 8,"," right: 8,"," bottom: 8,"," left: 9"," },"," gap: 10,"," hAlign: \"center\","," vAlign: \"top\","," marker: this._getPlotDefaults(),"," item: {"," hSpacing: 10,"," vSpacing: 5,"," label: {"," color:\"#808080\","," fontSize:\"85%\","," whiteSpace: \"nowrap\""," }"," },"," background: {"," shape: \"rect\","," fill:{"," color:\"#faf9f2\""," },"," border: {"," color:\"#dad8c9\","," weight: 1"," }"," }"," };"," return styles;"," },",""," /**"," * Gets the default values for series that use the utility. This method is used by"," * the class' `styles` attribute's getter to get build default values."," *"," * @method _getPlotDefaults"," * @return Object"," * @protected"," */"," _getPlotDefaults: function()"," {"," var defs = {"," width: 10,"," height: 10"," };"," return defs;"," },",""," /**"," * Destroys legend items."," *"," * @method _destroyLegendItems"," * @private"," */"," _destroyLegendItems: function()"," {"," var item;"," if(this._items)"," {"," while(this._items.length > 0)"," {"," item = this._items.shift();"," item.shape.get(\"graphic\").destroy();"," item.node.empty();"," item.node.destroy(true);"," item.node = null;"," item = null;"," }"," }"," this._items = [];"," },",""," /**"," * Maps layout classes."," *"," * @property _layout"," * @private"," */"," _layout: {"," vertical: VerticalLegendLayout,"," horizontal: HorizontalLegendLayout"," },",""," /**"," * Destructor implementation ChartLegend class. Removes all items and the Graphic instance from the widget."," *"," * @method destructor"," * @protected"," */"," destructor: function()"," {"," var background = this.get(\"background\"),"," backgroundGraphic;"," this._destroyLegendItems();"," if(background)"," {"," backgroundGraphic = background.get(\"graphic\");"," if(backgroundGraphic)"," {"," backgroundGraphic.destroy();"," }"," else"," {"," background.destroy();"," }"," }",""," }","}, {"," ATTRS: {"," /**"," * Indicates whether the chart's contentBox is the parentNode for the legend."," *"," * @attribute includeInChartLayout"," * @type Boolean"," * @private"," */"," includeInChartLayout: {"," value: false"," },",""," /**"," * Reference to the `Chart` instance."," *"," * @attribute chart"," * @type Chart"," */"," chart: {"," setter: function(val)"," {"," this.after(\"legendRendered\", Y.bind(val._itemRendered, val));"," return val;"," }"," },",""," /**"," * Indicates the direction in relation of the legend's layout. The `direction` of the legend is determined by its"," * `position` value."," *"," * @attribute direction"," * @type String"," */"," direction: {"," value: \"vertical\""," },"," "," /**"," * Indicates the position and direction of the legend. Possible values are `left`, `top`, `right` and `bottom`. Values of `left` and"," * `right` values have a `direction` of `vertical`. Values of `top` and `bottom` values have a `direction` of `horizontal`."," *"," * @attribute position"," * @type String"," */"," position: {"," lazyAdd: false,",""," value: \"right\",",""," setter: function(val)"," {"," if(val == TOP || val == BOTTOM)"," {"," this.set(\"direction\", HORIZONTAL);"," }"," else if(val == LEFT || val == RIGHT)"," {"," this.set(\"direction\", VERTICAL);"," }"," return val;"," }"," },"," "," /**"," * The width of the legend. Depending on the implementation of the ChartLegend, this value is `readOnly`. By default, the legend is included in the layout of the `Chart` that "," * it references. Under this circumstance, `width` is always `readOnly`. When the legend is rendered in its own dom element, the `readOnly` status is determined by the "," * direction of the legend. If the `position` is `left` or `right` or the `direction` is `vertical`, width is `readOnly`. If the position is `top` or `bottom` or the `direction`"," * is `horizontal`, width can be explicitly set. If width is not explicitly set, the width will be determined by the width of the legend's parent element."," *"," * @attribute width"," * @type Number"," */"," width: {"," getter: function()"," {"," var chart = this.get(\"chart\"),"," parentNode = this._parentNode;"," if(parentNode)"," {"," if((chart && this.get(\"includeInChartLayout\")) || this._width)"," {"," if(!this._width)"," {"," this._width = 0;"," }"," return this._width;"," }"," else"," {"," return parentNode.get(\"offsetWidth\");"," }"," }"," return \"\";"," },",""," setter: function(val)"," {"," this._width = val;"," return val;"," }"," },",""," /**"," * The height of the legend. Depending on the implementation of the ChartLegend, this value is `readOnly`. By default, the legend is included in the layout of the `Chart` that "," * it references. Under this circumstance, `height` is always `readOnly`. When the legend is rendered in its own dom element, the `readOnly` status is determined by the "," * direction of the legend. If the `position` is `top` or `bottom` or the `direction` is `horizontal`, height is `readOnly`. If the position is `left` or `right` or the `direction`"," * is `vertical`, height can be explicitly set. If height is not explicitly set, the height will be determined by the width of the legend's parent element."," *"," * @attribute height "," * @type Number"," */"," height: {"," valueFn: \"_heightGetter\",",""," getter: function()"," {"," var chart = this.get(\"chart\"),"," parentNode = this._parentNode;"," if(parentNode) "," {"," if((chart && this.get(\"includeInChartLayout\")) || this._height)"," {"," if(!this._height)"," {"," this._height = 0;"," }"," return this._height;"," }"," else"," {"," return parentNode.get(\"offsetHeight\");"," }"," }"," return \"\";"," },",""," setter: function(val)"," {"," this._height = val;"," return val;"," }"," },",""," /**"," * Indicates the x position of legend."," *"," * @attribute x"," * @type Number"," * @readOnly"," */"," x: {"," lazyAdd: false,",""," value: 0,"," "," setter: function(val)"," {"," var node = this.get(\"boundingBox\");"," if(node)"," {"," node.setStyle(LEFT, val + PX);"," }"," return val;"," }"," },",""," /**"," * Indicates the y position of legend."," *"," * @attribute y"," * @type Number"," * @readOnly"," */"," y: {"," lazyAdd: false,",""," value: 0,"," "," setter: function(val)"," {"," var node = this.get(\"boundingBox\");"," if(node)"," {"," node.setStyle(TOP, val + PX);"," }"," return val;"," }"," },",""," /**"," * Array of items contained in the legend. Each item is an object containing the following properties:"," *"," * "," * - node
- Node containing text for the legend item.
"," * - marker
- Shape for the legend item.
"," *
"," *"," * @attribute items"," * @type Array"," * @readOnly"," */"," items: {"," getter: function()"," {"," return this._items;"," }"," },",""," /**"," * Background for the legend."," *"," * @attribute background"," * @type Rect"," */"," background: {}",""," /**"," * Properties used to display and style the ChartLegend. This attribute is inherited from `Renderer`. Below are the default values:"," *"," * "," * - gap
- Distance, in pixels, between the `ChartLegend` instance and the chart's content. When `ChartLegend` is rendered within a `Chart` instance this value is applied.
"," * - hAlign
- Defines the horizontal alignment of the `items` in a `ChartLegend` rendered in a horizontal direction. This value is applied when the instance's `position` is set to top or bottom. This attribute can be set to left, center or right. The default value is center.
"," * - vAlign
- Defines the vertical alignment of the `items` in a `ChartLegend` rendered in vertical direction. This value is applied when the instance's `position` is set to left or right. The attribute can be set to top, middle or bottom. The default value is middle.
"," * - item
- Set of style properties applied to the `items` of the `ChartLegend`."," *
"," * - hSpacing
- Horizontal distance, in pixels, between legend `items`.
"," * - vSpacing
- Vertical distance, in pixels, between legend `items`.
"," * - label
- Properties for the text of an `item`."," *
"," * - color
- Color of the text. The default values is \"#808080\".
"," * - fontSize
- Font size for the text. The default value is \"85%\".
"," *
"," * "," * - marker
- Properties for the `item` markers."," *
"," * - width
- Specifies the width of the markers.
"," * - height
- Specifies the height of the markers.
"," *
"," * "," *
"," * "," * - background
- Properties for the `ChartLegend` background."," *
"," * - fill
- Properties for the background fill."," *
"," * - color
- Color for the fill. The default value is \"#faf9f2\".
"," *
"," * "," * - border
- Properties for the background border."," *
"," * - color
- Color for the border. The default value is \"#dad8c9\".
"," * - weight
- Weight of the border. The default values is 1.
"," *
"," * "," *
"," * "," *
"," *"," * @attribute styles"," * @type Object"," */"," }","});","/**"," * The Chart class is the basic application used to create a chart."," *"," * @module charts"," * @class Chart"," * @constructor"," */","function Chart(cfg)","{"," if(cfg.type != \"pie\")"," {"," return new Y.CartesianChart(cfg);"," }"," else"," {"," return new Y.PieChart(cfg);"," }","}","Y.Chart = Chart;","","","}, '3.7.1', {\"requires\": [\"charts-base\"]});"];
+_yuitest_coverage["build/charts-legend/charts-legend.js"].code=["YUI.add('charts-legend', function (Y, NAME) {","","/**"," * Adds legend functionality to charts."," *"," * @module charts"," * @submodule charts-legend"," */","var DOCUMENT = Y.config.doc, ","TOP = \"top\",","RIGHT = \"right\",","BOTTOM = \"bottom\",","LEFT = \"left\",","EXTERNAL = \"external\",","HORIZONTAL = \"horizontal\",","VERTICAL = \"vertical\",","WIDTH = \"width\",","HEIGHT = \"height\",","POSITION = \"position\",","_X = \"x\",","_Y = \"y\",","PX = \"px\",","LEGEND = {"," setter: function(val)"," { "," var legend = this.get(\"legend\");"," if(legend)"," {"," legend.destroy(true);"," }"," if(val instanceof Y.ChartLegend)"," {"," legend = val;"," legend.set(\"chart\", this);"," }"," else"," {"," val.chart = this;"," if(!val.hasOwnProperty(\"render\"))"," {"," val.render = this.get(\"contentBox\");"," val.includeInChartLayout = true;"," }"," legend = new Y.ChartLegend(val);"," }"," return legend;"," }","},","","/**"," * Contains methods for displaying items horizontally in a legend."," *"," * @module charts"," * @submodule charts-legend"," * @class HorizontalLegendLayout"," */","HorizontalLegendLayout = {"," /**"," * Displays items horizontally in a legend."," *"," * @method _positionLegendItems"," * @param {Array} items Array of items to display in the legend."," * @param {Number} maxWidth The width of the largest item in the legend."," * @param {Number} maxHeight The height of the largest item in the legend."," * @param {Number} totalWidth The total width of all items in a legend."," * @param {Number} totalHeight The total height of all items in a legend."," * @param {Number} padding The left, top, right and bottom padding properties for the legend."," * @param {Number} horizontalGap The horizontal distance between items in a legend."," * @param {Number} verticalGap The vertical distance between items in a legend."," * @param {String} hAlign The horizontal alignment of the legend."," * @param {String} vAlign The vertical alignment of the legend."," * @protected"," */"," _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, hAlign, vAlign)"," {"," var i = 0,"," rowIterator = 0,"," item,"," node,"," itemWidth,"," itemHeight,"," len,"," width = this.get(\"width\"),"," rows,"," rowsLen,"," row,"," totalWidthArray,"," legendWidth,"," topHeight = padding.top - verticalGap,"," limit = width - (padding.left + padding.right),"," left, "," top,"," right,"," bottom;"," HorizontalLegendLayout._setRowArrays(items, limit, horizontalGap);"," rows = HorizontalLegendLayout.rowArray;"," totalWidthArray = HorizontalLegendLayout.totalWidthArray;"," rowsLen = rows.length;"," for(; rowIterator < rowsLen; ++ rowIterator)"," {"," topHeight += verticalGap;"," row = rows[rowIterator];"," len = row.length;"," legendWidth = HorizontalLegendLayout.getStartPoint(width, totalWidthArray[rowIterator], hAlign, padding);"," for(i = 0; i < len; ++i)"," {"," item = row[i];"," node = item.node;"," itemWidth = item.width;"," itemHeight = item.height;"," item.x = legendWidth;"," item.y = 0;"," left = !isNaN(left) ? Math.min(left, legendWidth) : legendWidth;"," top = !isNaN(top) ? Math.min(top, topHeight) : topHeight;"," right = !isNaN(right) ? Math.max(legendWidth + itemWidth, right) : legendWidth + itemWidth;"," bottom = !isNaN(bottom) ? Math.max(topHeight + itemHeight, bottom) : topHeight + itemHeight;"," node.setStyle(\"left\", legendWidth + PX);"," node.setStyle(\"top\", topHeight + PX);"," legendWidth += itemWidth + horizontalGap;"," }"," topHeight += item.height;"," }"," this._contentRect = {"," left: left,"," top: top,"," right: right,"," bottom: bottom"," };"," if(this.get(\"includeInChartLayout\"))"," {"," this.set(\"height\", topHeight + padding.bottom);"," }"," },",""," /**"," * Creates row and total width arrays used for displaying multiple rows of"," * legend items based on the items, available width and horizontalGap for the legend."," *"," * @method _setRowArrays"," * @param {Array} items Array of legend items to display in a legend."," * @param {Number} limit Total available width for displaying items in a legend."," * @param {Number} horizontalGap Horizontal distance between items in a legend."," * @protected"," */"," _setRowArrays: function(items, limit, horizontalGap)"," {"," var item = items[0],"," rowArray = [[item]],"," i = 1,"," rowIterator = 0,"," len = items.length,"," totalWidth = item.width,"," itemWidth,"," totalWidthArray = [[totalWidth]];"," for(; i < len; ++i)"," {"," item = items[i];"," itemWidth = item.width;"," if((totalWidth + horizontalGap + itemWidth) <= limit)"," {"," totalWidth += horizontalGap + itemWidth;"," rowArray[rowIterator].push(item);"," }"," else"," {"," totalWidth = horizontalGap + itemWidth;"," if(rowArray[rowIterator])"," {"," rowIterator += 1;"," }"," rowArray[rowIterator] = [item];"," }"," totalWidthArray[rowIterator] = totalWidth;"," }"," HorizontalLegendLayout.rowArray = rowArray;"," HorizontalLegendLayout.totalWidthArray = totalWidthArray;"," },",""," /**"," * Returns the starting x-coordinate for a row of legend items."," *"," * @method getStartPoint"," * @param {Number} w Width of the legend."," * @param {Number} totalWidth Total width of all labels in the row."," * @param {String} align Horizontal alignment of items for the legend."," * @param {Object} padding Object contain left, top, right and bottom padding properties."," * @return Number"," * @protected"," */"," getStartPoint: function(w, totalWidth, align, padding)"," {"," var startPoint;"," switch(align)"," {"," case LEFT :"," startPoint = padding.left;"," break;"," case \"center\" :"," startPoint = (w - totalWidth) * 0.5;"," break;"," case RIGHT :"," startPoint = w - totalWidth - padding.right;"," break;"," }"," return startPoint;"," }","},","","/**"," * Contains methods for displaying items vertically in a legend."," *"," * @module charts"," * @submodule charts-legend"," * @class VerticalLegendLayout"," */","VerticalLegendLayout = {"," /**"," * Displays items vertically in a legend."," *"," * @method _positionLegendItems"," * @param {Array} items Array of items to display in the legend."," * @param {Number} maxWidth The width of the largest item in the legend."," * @param {Number} maxHeight The height of the largest item in the legend."," * @param {Number} totalWidth The total width of all items in a legend."," * @param {Number} totalHeight The total height of all items in a legend."," * @param {Number} padding The left, top, right and bottom padding properties for the legend."," * @param {Number} horizontalGap The horizontal distance between items in a legend."," * @param {Number} verticalGap The vertical distance between items in a legend."," * @param {String} hAlign The horizontal alignment of the legend."," * @param {String} vAlign The vertical alignment of the legend."," * @protected"," */"," _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, hAlign, vAlign)"," {"," var i = 0,"," columnIterator = 0,"," item,"," node,"," itemHeight,"," itemWidth,"," len,"," height = this.get(\"height\"),"," columns,"," columnsLen,"," column,"," totalHeightArray,"," legendHeight,"," leftWidth = padding.left - horizontalGap,"," legendWidth,"," limit = height - (padding.top + padding.bottom),"," left, "," top,"," right,"," bottom;"," VerticalLegendLayout._setColumnArrays(items, limit, verticalGap);"," columns = VerticalLegendLayout.columnArray;"," totalHeightArray = VerticalLegendLayout.totalHeightArray;"," columnsLen = columns.length;"," for(; columnIterator < columnsLen; ++ columnIterator)"," {"," leftWidth += horizontalGap;"," column = columns[columnIterator];"," len = column.length;"," legendHeight = VerticalLegendLayout.getStartPoint(height, totalHeightArray[columnIterator], vAlign, padding);"," legendWidth = 0;"," for(i = 0; i < len; ++i)"," {"," item = column[i];"," node = item.node;"," itemHeight = item.height;"," itemWidth = item.width;"," item.y = legendHeight;"," item.x = leftWidth;"," left = !isNaN(left) ? Math.min(left, leftWidth) : leftWidth;"," top = !isNaN(top) ? Math.min(top, legendHeight) : legendHeight;"," right = !isNaN(right) ? Math.max(leftWidth + itemWidth, right) : leftWidth + itemWidth;"," bottom = !isNaN(bottom) ? Math.max(legendHeight + itemHeight, bottom) : legendHeight + itemHeight;"," node.setStyle(\"left\", leftWidth + PX);"," node.setStyle(\"top\", legendHeight + PX);"," legendHeight += itemHeight + verticalGap;"," legendWidth = Math.max(legendWidth, item.width);"," }"," leftWidth += legendWidth;"," }"," this._contentRect = {"," left: left,"," top: top,"," right: right,"," bottom: bottom"," };"," if(this.get(\"includeInChartLayout\"))"," {"," this.set(\"width\", leftWidth + padding.right);"," }"," },",""," /**"," * Creates column and total height arrays used for displaying multiple columns of"," * legend items based on the items, available height and verticalGap for the legend."," *"," * @method _setColumnArrays"," * @param {Array} items Array of legend items to display in a legend."," * @param {Number} limit Total available height for displaying items in a legend."," * @param {Number} verticalGap Vertical distance between items in a legend."," * @protected"," */"," _setColumnArrays: function(items, limit, verticalGap)"," {"," var item = items[0],"," columnArray = [[item]],"," i = 1,"," columnIterator = 0,"," len = items.length,"," totalHeight = item.height,"," itemHeight,"," totalHeightArray = [[totalHeight]];"," for(; i < len; ++i)"," {"," item = items[i];"," itemHeight = item.height;"," if((totalHeight + verticalGap + itemHeight) <= limit)"," {"," totalHeight += verticalGap + itemHeight;"," columnArray[columnIterator].push(item);"," }"," else"," {"," totalHeight = verticalGap + itemHeight;"," if(columnArray[columnIterator])"," {"," columnIterator += 1;"," }"," columnArray[columnIterator] = [item];"," }"," totalHeightArray[columnIterator] = totalHeight;"," }"," VerticalLegendLayout.columnArray = columnArray;"," VerticalLegendLayout.totalHeightArray = totalHeightArray;"," },",""," /**"," * Returns the starting y-coordinate for a column of legend items."," *"," * @method getStartPoint"," * @param {Number} h Height of the legend."," * @param {Number} totalHeight Total height of all labels in the column."," * @param {String} align Vertical alignment of items for the legend."," * @param {Object} padding Object contain left, top, right and bottom padding properties."," * @return Number"," * @protected"," */"," getStartPoint: function(h, totalHeight, align, padding)"," {"," var startPoint;"," switch(align)"," {"," case TOP :"," startPoint = padding.top;"," break;"," case \"middle\" :"," startPoint = (h - totalHeight) * 0.5;"," break;"," case BOTTOM :"," startPoint = h - totalHeight - padding.bottom;"," break;"," }"," return startPoint;"," }","},","","CartesianChartLegend = Y.Base.create(\"cartesianChartLegend\", Y.CartesianChart, [], {"," /**"," * Redraws and position all the components of the chart instance."," *"," * @method _redraw"," * @private"," */"," _redraw: function()"," {"," if(this._drawing)"," {"," this._callLater = true;"," return;"," }"," this._drawing = true;"," this._callLater = false;"," var w = this.get(\"width\"),"," h = this.get(\"height\"),"," layoutBoxDimensions = this._getLayoutBoxDimensions(),"," leftPaneWidth = layoutBoxDimensions.left,"," rightPaneWidth = layoutBoxDimensions.right,"," topPaneHeight = layoutBoxDimensions.top,"," bottomPaneHeight = layoutBoxDimensions.bottom,"," leftAxesCollection = this.get(\"leftAxesCollection\"),"," rightAxesCollection = this.get(\"rightAxesCollection\"),"," topAxesCollection = this.get(\"topAxesCollection\"),"," bottomAxesCollection = this.get(\"bottomAxesCollection\"),"," i = 0,"," l,"," axis,"," graphOverflow = \"visible\","," graph = this.get(\"graph\"),"," topOverflow,"," bottomOverflow,"," leftOverflow,"," rightOverflow,"," graphWidth,"," graphHeight,"," graphX,"," graphY,"," allowContentOverflow = this.get(\"allowContentOverflow\"),"," diff,"," rightAxesXCoords,"," leftAxesXCoords,"," topAxesYCoords,"," bottomAxesYCoords,"," legend = this.get(\"legend\"),"," graphRect = {};",""," if(leftAxesCollection)"," {"," leftAxesXCoords = [];"," l = leftAxesCollection.length;"," for(i = l - 1; i > -1; --i)"," {"," leftAxesXCoords.unshift(leftPaneWidth);"," leftPaneWidth += leftAxesCollection[i].get(\"width\");"," }"," }"," if(rightAxesCollection)"," {"," rightAxesXCoords = [];"," l = rightAxesCollection.length;"," i = 0;"," for(i = l - 1; i > -1; --i)"," {"," rightPaneWidth += rightAxesCollection[i].get(\"width\");"," rightAxesXCoords.unshift(w - rightPaneWidth);"," }"," }"," if(topAxesCollection)"," {"," topAxesYCoords = [];"," l = topAxesCollection.length;"," for(i = l - 1; i > -1; --i)"," {"," topAxesYCoords.unshift(topPaneHeight);"," topPaneHeight += topAxesCollection[i].get(\"height\");"," }"," }"," if(bottomAxesCollection)"," {"," bottomAxesYCoords = [];"," l = bottomAxesCollection.length;"," for(i = l - 1; i > -1; --i)"," {"," bottomPaneHeight += bottomAxesCollection[i].get(\"height\");"," bottomAxesYCoords.unshift(h - bottomPaneHeight);"," }"," }"," "," graphWidth = w - (leftPaneWidth + rightPaneWidth);"," graphHeight = h - (bottomPaneHeight + topPaneHeight);"," graphRect.left = leftPaneWidth;"," graphRect.top = topPaneHeight;"," graphRect.bottom = h - bottomPaneHeight;"," graphRect.right = w - rightPaneWidth;"," if(!allowContentOverflow)"," {"," topOverflow = this._getTopOverflow(leftAxesCollection, rightAxesCollection);"," bottomOverflow = this._getBottomOverflow(leftAxesCollection, rightAxesCollection);"," leftOverflow = this._getLeftOverflow(bottomAxesCollection, topAxesCollection);"," rightOverflow = this._getRightOverflow(bottomAxesCollection, topAxesCollection);"," "," diff = topOverflow - topPaneHeight;"," if(diff > 0)"," {"," graphRect.top = topOverflow;"," if(topAxesYCoords)"," {"," i = 0;"," l = topAxesYCoords.length;"," for(; i < l; ++i)"," {"," topAxesYCoords[i] += diff;"," }"," }"," }",""," diff = bottomOverflow - bottomPaneHeight;"," if(diff > 0)"," {"," graphRect.bottom = h - bottomOverflow;"," if(bottomAxesYCoords)"," {"," i = 0;"," l = bottomAxesYCoords.length;"," for(; i < l; ++i)"," {"," bottomAxesYCoords[i] -= diff;"," }"," }"," }",""," diff = leftOverflow - leftPaneWidth;"," if(diff > 0)"," {"," graphRect.left = leftOverflow;"," if(leftAxesXCoords)"," {"," i = 0;"," l = leftAxesXCoords.length;"," for(; i < l; ++i)"," {"," leftAxesXCoords[i] += diff;"," }"," }"," }",""," diff = rightOverflow - rightPaneWidth;"," if(diff > 0)"," {"," graphRect.right = w - rightOverflow;"," if(rightAxesXCoords)"," {"," i = 0;"," l = rightAxesXCoords.length;"," for(; i < l; ++i)"," {"," rightAxesXCoords[i] -= diff;"," }"," }"," }"," }"," graphWidth = graphRect.right - graphRect.left;"," graphHeight = graphRect.bottom - graphRect.top;"," graphX = graphRect.left;"," graphY = graphRect.top;"," if(legend)"," {"," if(legend.get(\"includeInChartLayout\"))"," {"," switch(legend.get(\"position\"))"," {"," case \"left\" : "," legend.set(\"y\", graphY);"," legend.set(\"height\", graphHeight);"," break;"," case \"top\" :"," legend.set(\"x\", graphX);"," legend.set(\"width\", graphWidth);"," break;"," case \"bottom\" : "," legend.set(\"x\", graphX);"," legend.set(\"width\", graphWidth);"," break;"," case \"right\" :"," legend.set(\"y\", graphY);"," legend.set(\"height\", graphHeight);"," break;"," }"," }"," }"," if(topAxesCollection)"," {"," l = topAxesCollection.length;"," i = 0;"," for(; i < l; i++)"," {"," axis = topAxesCollection[i];"," if(axis.get(\"width\") !== graphWidth)"," {"," axis.set(\"width\", graphWidth);"," }"," axis.get(\"boundingBox\").setStyle(\"left\", graphX + PX);"," axis.get(\"boundingBox\").setStyle(\"top\", topAxesYCoords[i] + PX);"," }"," if(axis._hasDataOverflow())"," {"," graphOverflow = \"hidden\";"," }"," }"," if(bottomAxesCollection)"," {"," l = bottomAxesCollection.length;"," i = 0;"," for(; i < l; i++)"," {"," axis = bottomAxesCollection[i];"," if(axis.get(\"width\") !== graphWidth)"," {"," axis.set(\"width\", graphWidth);"," }"," axis.get(\"boundingBox\").setStyle(\"left\", graphX + PX);"," axis.get(\"boundingBox\").setStyle(\"top\", bottomAxesYCoords[i] + PX);"," }"," if(axis._hasDataOverflow())"," {"," graphOverflow = \"hidden\";"," }"," }"," if(leftAxesCollection)"," {"," l = leftAxesCollection.length;"," i = 0;"," for(; i < l; ++i)"," {"," axis = leftAxesCollection[i];"," axis.get(\"boundingBox\").setStyle(\"top\", graphY + PX);"," axis.get(\"boundingBox\").setStyle(\"left\", leftAxesXCoords[i] + PX);"," if(axis.get(\"height\") !== graphHeight)"," {"," axis.set(\"height\", graphHeight);"," }"," }"," if(axis._hasDataOverflow())"," {"," graphOverflow = \"hidden\";"," }"," }"," if(rightAxesCollection)"," {"," l = rightAxesCollection.length;"," i = 0;"," for(; i < l; ++i)"," {"," axis = rightAxesCollection[i];"," axis.get(\"boundingBox\").setStyle(\"top\", graphY + PX);"," axis.get(\"boundingBox\").setStyle(\"left\", rightAxesXCoords[i] + PX);"," if(axis.get(\"height\") !== graphHeight)"," {"," axis.set(\"height\", graphHeight);"," }"," }"," if(axis._hasDataOverflow())"," {"," graphOverflow = \"hidden\";"," }"," }"," this._drawing = false;"," if(this._callLater)"," {"," this._redraw();"," return;"," }"," if(graph)"," {"," graph.get(\"boundingBox\").setStyle(\"left\", graphX + PX);"," graph.get(\"boundingBox\").setStyle(\"top\", graphY + PX);"," graph.set(\"width\", graphWidth);"," graph.set(\"height\", graphHeight);"," graph.get(\"boundingBox\").setStyle(\"overflow\", graphOverflow);"," }",""," if(this._overlay)"," {"," this._overlay.setStyle(\"left\", graphX + PX);"," this._overlay.setStyle(\"top\", graphY + PX);"," this._overlay.setStyle(\"width\", graphWidth + PX);"," this._overlay.setStyle(\"height\", graphHeight + PX);"," }"," },",""," /**"," * Positions the legend in a chart and returns the properties of the legend to be used in the "," * chart's layout algorithm."," *"," * @method _getLayoutDimensions"," * @return {Object} The left, top, right and bottom values for the legend."," * @protected"," */"," _getLayoutBoxDimensions: function()"," {"," var box = {"," top: 0,"," right: 0,"," bottom: 0,"," left: 0"," },"," legend = this.get(\"legend\"),"," position,"," direction,"," dimension,"," size,"," w = this.get(WIDTH),"," h = this.get(HEIGHT),"," gap;"," if(legend && legend.get(\"includeInChartLayout\"))"," {"," gap = legend.get(\"styles\").gap;"," position = legend.get(POSITION);"," if(position != EXTERNAL)"," {"," direction = legend.get(\"direction\");"," dimension = direction == HORIZONTAL ? HEIGHT : WIDTH;"," size = legend.get(dimension);"," box[position] = size + gap;"," switch(position)"," {"," case TOP :"," legend.set(_Y, 0); "," break;"," case BOTTOM : "," legend.set(_Y, h - size); "," break;"," case RIGHT :"," legend.set(_X, w - size);"," break;"," case LEFT: "," legend.set(_X, 0);"," break;"," }"," }"," }"," return box;"," },",""," /**"," * Destructor implementation for the CartesianChart class. Calls destroy on all axes, series, legend (if available) and the Graph instance."," * Removes the tooltip and overlay HTML elements."," *"," * @method destructor"," * @protected"," */"," destructor: function()"," {"," var legend = this.get(\"legend\");"," if(legend)"," {"," legend.destroy(true);"," }"," }","}, {"," ATTRS: {"," legend: LEGEND"," }","});","","Y.CartesianChart = CartesianChartLegend;","","var PieChartLegend = Y.Base.create(\"pieChartLegend\", Y.PieChart, [], {"," /**"," * Redraws the chart instance."," *"," * @method _redraw"," * @private"," */"," _redraw: function()"," {"," if(this._drawing)"," {"," this._callLater = true;"," return;"," }"," this._drawing = true;"," this._callLater = false;"," var graph = this.get(\"graph\"),"," w = this.get(\"width\"),"," h = this.get(\"height\"),"," graphWidth,"," graphHeight,"," legend = this.get(\"legend\"),"," x = 0,"," y = 0,"," legendX = 0,"," legendY = 0,"," legendWidth,"," legendHeight,"," dimension,"," gap,"," position,"," direction;"," if(graph)"," {"," if(legend)"," {"," position = legend.get(\"position\");"," direction = legend.get(\"direction\");"," graphWidth = graph.get(\"width\");"," graphHeight = graph.get(\"height\");"," legendWidth = legend.get(\"width\");"," legendHeight = legend.get(\"height\");"," gap = legend.get(\"styles\").gap;"," "," if((direction == \"vertical\" && (graphWidth + legendWidth + gap !== w)) || (direction == \"horizontal\" && (graphHeight + legendHeight + gap !== h)))"," {"," switch(legend.get(\"position\"))"," {"," case LEFT :"," dimension = Math.min(w - (legendWidth + gap), h);"," legendHeight = h;"," x = legendWidth + gap;"," legend.set(HEIGHT, legendHeight);"," break;"," case TOP :"," dimension = Math.min(h - (legendHeight + gap), w); "," legendWidth = w;"," y = legendHeight + gap;"," legend.set(WIDTH, legendWidth);"," break;"," case RIGHT :"," dimension = Math.min(w - (legendWidth + gap), h);"," legendHeight = h;"," legendX = dimension + gap;"," legend.set(HEIGHT, legendHeight);"," break;"," case BOTTOM :"," dimension = Math.min(h - (legendHeight + gap), w); "," legendWidth = w;"," legendY = dimension + gap; "," legend.set(WIDTH, legendWidth);"," break;"," }"," graph.set(WIDTH, dimension);"," graph.set(HEIGHT, dimension);"," }"," else"," {"," switch(legend.get(\"position\"))"," { "," case LEFT :"," x = legendWidth + gap;"," break;"," case TOP :"," y = legendHeight + gap;"," break;"," case RIGHT :"," legendX = graphWidth + gap;"," break;"," case BOTTOM :"," legendY = graphHeight + gap; "," break;"," }"," }"," }"," else"," {"," graph.set(_X, 0);"," graph.set(_Y, 0);"," graph.set(WIDTH, w);"," graph.set(HEIGHT, h);"," }"," }"," this._drawing = false;"," if(this._callLater)"," {"," this._redraw();"," return;"," }"," if(graph)"," {"," graph.set(_X, x);"," graph.set(_Y, y);"," }"," if(legend)"," {"," legend.set(_X, legendX);"," legend.set(_Y, legendY);"," }"," }","}, {"," ATTRS: {"," /**"," * The legend for the chart."," *"," * @attribute"," * @type Legend"," */"," legend: LEGEND"," }","});","Y.PieChart = PieChartLegend;","/**"," * ChartLegend provides a legend for a chart."," *"," * @class ChartLegend"," * @module charts"," * @submodule charts-legend"," * @extends Widget"," */","Y.ChartLegend = Y.Base.create(\"chartlegend\", Y.Widget, [Y.Renderer], {"," /**"," * Initializes the chart."," *"," * @method initializer"," * @private"," */"," initializer: function()"," {"," this._items = [];"," },",""," /**"," * @method renderUI"," * @private"," */"," renderUI: function()"," {"," var bb = this.get(\"boundingBox\"),"," cb = this.get(\"contentBox\"),"," styles = this.get(\"styles\").background,"," background = new Y.Rect({"," graphic: cb,"," fill: styles.fill,"," stroke: styles.border"," });"," bb.setStyle(\"display\", \"block\");"," bb.setStyle(\"position\", \"absolute\");"," this.set(\"background\", background);"," },"," "," /**"," * @method bindUI"," * @private"," */"," bindUI: function()"," {"," this.get(\"chart\").after(\"seriesCollectionChange\", Y.bind(this._updateHandler, this));"," this.after(\"stylesChange\", this._updateHandler);"," this.after(\"positionChange\", this._positionChangeHandler);"," this.after(\"widthChange\", this._handleSizeChange);"," this.after(\"heightChange\", this._handleSizeChange);"," },"," "," /**"," * @method syncUI"," * @private"," */"," syncUI: function()"," {"," var w = this.get(\"width\"),"," h = this.get(\"height\");"," if(isFinite(w) && isFinite(h) && w > 0 && h > 0)"," {"," this._drawLegend();"," }"," },",""," /**"," * Handles changes to legend."," *"," * @method _updateHandler"," * @param {Object} e Event object"," * @private"," */"," _updateHandler: function(e)"," {"," if(this.get(\"rendered\"))"," {"," this._drawLegend();"," }"," },",""," /** "," * Handles position changes."," *"," * @method _positionChangeHandler"," * @param {Object} e Event object"," * @private"," */"," _positionChangeHandler: function(e)"," {"," var chart = this.get(\"chart\"),"," parentNode = this._parentNode;"," if(parentNode && ((chart && this.get(\"includeInChartLayout\"))))"," {"," this.fire(\"legendRendered\");"," }"," else if(this.get(\"rendered\"))"," {"," this._drawLegend();"," }"," },",""," /**"," * Updates the legend when the size changes."," *"," * @method _handleSizeChange"," * @param {Object} e Event object."," * @private"," */"," _handleSizeChange: function(e)"," {"," var attrName = e.attrName,"," pos = this.get(POSITION),"," vert = pos == LEFT || pos == RIGHT,"," hor = pos == BOTTOM || pos == TOP;"," if((hor && attrName == WIDTH) || (vert && attrName == HEIGHT))"," {"," this._drawLegend();"," }"," },",""," /**"," * Draws the legend"," *"," * @method _drawLegend"," * @private"," */"," _drawLegend: function()"," {"," if(this._drawing)"," {"," this._callLater = true;"," return;"," }"," this._drawing = true;"," this._callLater = false;"," if(this.get(\"includeInChartLayout\"))"," {"," this.get(\"chart\")._itemRenderQueue.unshift(this);"," }"," var chart = this.get(\"chart\"),"," node = this.get(\"contentBox\"),"," seriesCollection = chart.get(\"seriesCollection\"),"," series,"," styles = this.get(\"styles\"),"," padding = styles.padding,"," itemStyles = styles.item,"," seriesStyles,"," hSpacing = itemStyles.hSpacing,"," vSpacing = itemStyles.vSpacing,"," hAlign = styles.hAlign,"," vAlign = styles.vAlign,"," marker = styles.marker,"," labelStyles = itemStyles.label,"," displayName,"," layout = this._layout[this.get(\"direction\")],"," i, "," len,"," isArray,"," shape,"," shapeClass,"," item,"," fill,"," border,"," fillColors,"," borderColors,"," borderWeight,"," items = [],"," markerWidth = marker.width,"," markerHeight = marker.height,"," totalWidth = 0 - hSpacing,"," totalHeight = 0 - vSpacing,"," maxWidth = 0,"," maxHeight = 0,"," itemWidth,"," itemHeight;"," if(marker && marker.shape)"," {"," shape = marker.shape;"," }"," this._destroyLegendItems();"," if(chart instanceof Y.PieChart)"," {"," series = seriesCollection[0];"," displayName = series.get(\"categoryAxis\").getDataByKey(series.get(\"categoryKey\")); "," seriesStyles = series.get(\"styles\").marker;"," fillColors = seriesStyles.fill.colors;"," borderColors = seriesStyles.border.colors;"," borderWeight = seriesStyles.border.weight;"," i = 0;"," len = displayName.length;"," shape = shape || Y.Circle;"," isArray = Y.Lang.isArray(shape);"," for(; i < len; ++i)"," {"," shape = isArray ? shape[i] : shape;"," fill = {"," color: fillColors[i]"," };"," border = {"," colors: borderColors[i],"," weight: borderWeight"," };"," displayName = chart.getSeriesItems(series, i).category.value;"," item = this._getLegendItem(node, this._getShapeClass(shape), fill, border, labelStyles, markerWidth, markerHeight, displayName);"," itemWidth = item.width;"," itemHeight = item.height;"," maxWidth = Math.max(maxWidth, itemWidth);"," maxHeight = Math.max(maxHeight, itemHeight);"," totalWidth += itemWidth + hSpacing;"," totalHeight += itemHeight + vSpacing;"," items.push(item);"," }"," }"," else"," {"," i = 0;"," len = seriesCollection.length;"," for(; i < len; ++i)"," {"," series = seriesCollection[i];"," seriesStyles = this._getStylesBySeriesType(series, shape);"," if(!shape)"," {"," shape = seriesStyles.shape;"," if(!shape)"," {"," shape = Y.Circle;"," }"," }"," shapeClass = Y.Lang.isArray(shape) ? shape[i] : shape;"," item = this._getLegendItem(node, this._getShapeClass(shape), seriesStyles.fill, seriesStyles.border, labelStyles, markerWidth, markerHeight, series.get(\"valueDisplayName\"));"," itemWidth = item.width;"," itemHeight = item.height;"," maxWidth = Math.max(maxWidth, itemWidth);"," maxHeight = Math.max(maxHeight, itemHeight);"," totalWidth += itemWidth + hSpacing;"," totalHeight += itemHeight + vSpacing;"," items.push(item);"," }"," }"," this._drawing = false;"," if(this._callLater)"," {"," this._drawLegend();"," }"," else"," {"," layout._positionLegendItems.apply(this, [items, maxWidth, maxHeight, totalWidth, totalHeight, padding, hSpacing, vSpacing, hAlign, vAlign]);"," this._updateBackground(styles);"," this.fire(\"legendRendered\");"," }"," },",""," /**"," * Updates the background for the legend."," *"," * @method _updateBackground"," * @param {Object} styles Reference to the legend's styles attribute"," * @private"," */"," _updateBackground: function(styles)"," {"," var backgroundStyles = styles.background,"," contentRect = this._contentRect,"," padding = styles.padding,"," x = contentRect.left - padding.left,"," y = contentRect.top - padding.top,"," w = contentRect.right - x + padding.right,"," h = contentRect.bottom - y + padding.bottom;"," this.get(\"background\").set({"," fill: backgroundStyles.fill,"," stroke: backgroundStyles.border,"," width: w,"," height: h,"," x: x,"," y: y"," });"," },",""," /**"," * Retrieves the marker styles based on the type of series. For series that contain a marker, the marker styles are returned."," * "," * @method _getStylesBySeriesType"," * @param {CartesianSeries | PieSeries} The series in which the style properties will be received."," * @return Object An object containing fill, border and shape information."," * @private"," */"," _getStylesBySeriesType: function(series)"," {"," var styles = series.get(\"styles\"),"," color;"," if(series instanceof Y.LineSeries || series instanceof Y.StackedLineSeries)"," {"," styles = series.get(\"styles\").line;"," color = styles.color || series._getDefaultColor(series.get(\"graphOrder\"), \"line\");"," return {"," border: {"," weight: 1,"," color: color"," },"," fill: {"," color: color"," }"," };"," }"," else if(series instanceof Y.AreaSeries || series instanceof Y.StackedAreaSeries)"," {"," styles = series.get(\"styles\").area;"," color = styles.color || series._getDefaultColor(series.get(\"graphOrder\"), \"slice\");"," return {"," border: {"," weight: 1,"," color: color"," },"," fill: {"," color: color"," }"," };"," }"," else "," {"," styles = series.get(\"styles\").marker;"," return {"," fill: styles.fill,",""," border: {"," weight: styles.border.weight,",""," color: styles.border.color,",""," shape: styles.shape"," },"," shape: styles.shape"," };"," }"," },",""," /**"," * Returns a legend item consisting of the following properties:"," * "," * - node
- The `Node` containing the legend item elements.
"," * - shape
- The `Shape` element for the legend item.
"," * - textNode
- The `Node` containing the text>
"," * - text
"," *
"," *"," * @method _getLegendItem"," * @param {Node} shapeProps Reference to the `node` attribute."," * @param {String | Class} shapeClass The type of shape"," * @param {Object} fill Properties for the shape's fill"," * @param {Object} border Properties for the shape's border"," * @param {String} text String to be rendered as the legend's text"," * @param {Number} width Total width of the legend item"," * @param {Number} height Total height of the legend item"," * @param {HTML | String} text Text for the legendItem"," * @return Object"," * @private"," */"," _getLegendItem: function(node, shapeClass, fill, border, labelStyles, w, h, text) "," {"," var containerNode = Y.one(DOCUMENT.createElement(\"div\")),"," textField = Y.one(DOCUMENT.createElement(\"span\")),"," shape,"," dimension,"," padding,"," left,"," item;"," containerNode.setStyle(POSITION, \"absolute\");"," textField.setStyle(POSITION, \"absolute\");"," textField.setStyles(labelStyles);"," textField.appendChild(DOCUMENT.createTextNode(text));"," containerNode.appendChild(textField);"," node.appendChild(containerNode);"," dimension = textField.get(\"offsetHeight\");"," padding = dimension - h;"," left = w + padding + 2;"," textField.setStyle(\"left\", left + PX);"," containerNode.setStyle(\"height\", dimension + PX);"," containerNode.setStyle(\"width\", (left + textField.get(\"offsetWidth\")) + PX);"," shape = new shapeClass({"," fill: fill,"," stroke: border,"," width: w,"," height: h,"," x: padding * 0.5,"," y: padding * 0.5,"," w: w,"," h: h,"," graphic: containerNode"," });"," textField.setStyle(\"left\", dimension + PX);"," item = {"," node: containerNode,"," width: containerNode.get(\"offsetWidth\"),"," height: containerNode.get(\"offsetHeight\"),"," shape: shape,"," textNode: textField,"," text: text"," };"," this._items.push(item);"," return item;"," },",""," /**"," * Evaluates and returns correct class for drawing a shape."," *"," * @method _getShapeClass"," * @return Shape"," * @private"," */"," _getShapeClass: function()"," { "," var graphic = this.get(\"background\").get(\"graphic\");"," return graphic._getShapeClass.apply(graphic, arguments);"," },"," "," /**"," * Returns the default hash for the `styles` attribute."," *"," * @method _getDefaultStyles"," * @return Object"," * @protected"," */"," _getDefaultStyles: function()"," {"," var styles = { "," padding: {"," top: 8,"," right: 8,"," bottom: 8,"," left: 9"," },"," gap: 10,"," hAlign: \"center\","," vAlign: \"top\","," marker: this._getPlotDefaults(),"," item: {"," hSpacing: 10,"," vSpacing: 5,"," label: {"," color:\"#808080\","," fontSize:\"85%\","," whiteSpace: \"nowrap\""," }"," },"," background: {"," shape: \"rect\","," fill:{"," color:\"#faf9f2\""," },"," border: {"," color:\"#dad8c9\","," weight: 1"," }"," }"," };"," return styles;"," },",""," /**"," * Gets the default values for series that use the utility. This method is used by"," * the class' `styles` attribute's getter to get build default values."," *"," * @method _getPlotDefaults"," * @return Object"," * @protected"," */"," _getPlotDefaults: function()"," {"," var defs = {"," width: 10,"," height: 10"," };"," return defs;"," },",""," /**"," * Destroys legend items."," *"," * @method _destroyLegendItems"," * @private"," */"," _destroyLegendItems: function()"," {"," var item;"," if(this._items)"," {"," while(this._items.length > 0)"," {"," item = this._items.shift();"," item.shape.get(\"graphic\").destroy();"," item.node.empty();"," item.node.destroy(true);"," item.node = null;"," item = null;"," }"," }"," this._items = [];"," },",""," /**"," * Maps layout classes."," *"," * @property _layout"," * @private"," */"," _layout: {"," vertical: VerticalLegendLayout,"," horizontal: HorizontalLegendLayout"," },",""," /**"," * Destructor implementation ChartLegend class. Removes all items and the Graphic instance from the widget."," *"," * @method destructor"," * @protected"," */"," destructor: function()"," {"," var background = this.get(\"background\"),"," backgroundGraphic;"," this._destroyLegendItems();"," if(background)"," {"," backgroundGraphic = background.get(\"graphic\");"," if(backgroundGraphic)"," {"," backgroundGraphic.destroy();"," }"," else"," {"," background.destroy();"," }"," }",""," }","}, {"," ATTRS: {"," /**"," * Indicates whether the chart's contentBox is the parentNode for the legend."," *"," * @attribute includeInChartLayout"," * @type Boolean"," * @private"," */"," includeInChartLayout: {"," value: false"," },",""," /**"," * Reference to the `Chart` instance."," *"," * @attribute chart"," * @type Chart"," */"," chart: {"," setter: function(val)"," {"," this.after(\"legendRendered\", Y.bind(val._itemRendered, val));"," return val;"," }"," },",""," /**"," * Indicates the direction in relation of the legend's layout. The `direction` of the legend is determined by its"," * `position` value."," *"," * @attribute direction"," * @type String"," */"," direction: {"," value: \"vertical\""," },"," "," /**"," * Indicates the position and direction of the legend. Possible values are `left`, `top`, `right` and `bottom`. Values of `left` and"," * `right` values have a `direction` of `vertical`. Values of `top` and `bottom` values have a `direction` of `horizontal`."," *"," * @attribute position"," * @type String"," */"," position: {"," lazyAdd: false,",""," value: \"right\",",""," setter: function(val)"," {"," if(val == TOP || val == BOTTOM)"," {"," this.set(\"direction\", HORIZONTAL);"," }"," else if(val == LEFT || val == RIGHT)"," {"," this.set(\"direction\", VERTICAL);"," }"," return val;"," }"," },"," "," /**"," * The width of the legend. Depending on the implementation of the ChartLegend, this value is `readOnly`. By default, the legend is included in the layout of the `Chart` that "," * it references. Under this circumstance, `width` is always `readOnly`. When the legend is rendered in its own dom element, the `readOnly` status is determined by the "," * direction of the legend. If the `position` is `left` or `right` or the `direction` is `vertical`, width is `readOnly`. If the position is `top` or `bottom` or the `direction`"," * is `horizontal`, width can be explicitly set. If width is not explicitly set, the width will be determined by the width of the legend's parent element."," *"," * @attribute width"," * @type Number"," */"," width: {"," getter: function()"," {"," var chart = this.get(\"chart\"),"," parentNode = this._parentNode;"," if(parentNode)"," {"," if((chart && this.get(\"includeInChartLayout\")) || this._width)"," {"," if(!this._width)"," {"," this._width = 0;"," }"," return this._width;"," }"," else"," {"," return parentNode.get(\"offsetWidth\");"," }"," }"," return \"\";"," },",""," setter: function(val)"," {"," this._width = val;"," return val;"," }"," },",""," /**"," * The height of the legend. Depending on the implementation of the ChartLegend, this value is `readOnly`. By default, the legend is included in the layout of the `Chart` that "," * it references. Under this circumstance, `height` is always `readOnly`. When the legend is rendered in its own dom element, the `readOnly` status is determined by the "," * direction of the legend. If the `position` is `top` or `bottom` or the `direction` is `horizontal`, height is `readOnly`. If the position is `left` or `right` or the `direction`"," * is `vertical`, height can be explicitly set. If height is not explicitly set, the height will be determined by the width of the legend's parent element."," *"," * @attribute height "," * @type Number"," */"," height: {"," valueFn: \"_heightGetter\",",""," getter: function()"," {"," var chart = this.get(\"chart\"),"," parentNode = this._parentNode;"," if(parentNode) "," {"," if((chart && this.get(\"includeInChartLayout\")) || this._height)"," {"," if(!this._height)"," {"," this._height = 0;"," }"," return this._height;"," }"," else"," {"," return parentNode.get(\"offsetHeight\");"," }"," }"," return \"\";"," },",""," setter: function(val)"," {"," this._height = val;"," return val;"," }"," },",""," /**"," * Indicates the x position of legend."," *"," * @attribute x"," * @type Number"," * @readOnly"," */"," x: {"," lazyAdd: false,",""," value: 0,"," "," setter: function(val)"," {"," var node = this.get(\"boundingBox\");"," if(node)"," {"," node.setStyle(LEFT, val + PX);"," }"," return val;"," }"," },",""," /**"," * Indicates the y position of legend."," *"," * @attribute y"," * @type Number"," * @readOnly"," */"," y: {"," lazyAdd: false,",""," value: 0,"," "," setter: function(val)"," {"," var node = this.get(\"boundingBox\");"," if(node)"," {"," node.setStyle(TOP, val + PX);"," }"," return val;"," }"," },",""," /**"," * Array of items contained in the legend. Each item is an object containing the following properties:"," *"," * "," * - node
- Node containing text for the legend item.
"," * - marker
- Shape for the legend item.
"," *
"," *"," * @attribute items"," * @type Array"," * @readOnly"," */"," items: {"," getter: function()"," {"," return this._items;"," }"," },",""," /**"," * Background for the legend."," *"," * @attribute background"," * @type Rect"," */"," background: {}",""," /**"," * Properties used to display and style the ChartLegend. This attribute is inherited from `Renderer`. Below are the default values:"," *"," * "," * - gap
- Distance, in pixels, between the `ChartLegend` instance and the chart's content. When `ChartLegend` is rendered within a `Chart` instance this value is applied.
"," * - hAlign
- Defines the horizontal alignment of the `items` in a `ChartLegend` rendered in a horizontal direction. This value is applied when the instance's `position` is set to top or bottom. This attribute can be set to left, center or right. The default value is center.
"," * - vAlign
- Defines the vertical alignment of the `items` in a `ChartLegend` rendered in vertical direction. This value is applied when the instance's `position` is set to left or right. The attribute can be set to top, middle or bottom. The default value is middle.
"," * - item
- Set of style properties applied to the `items` of the `ChartLegend`."," *
"," * - hSpacing
- Horizontal distance, in pixels, between legend `items`.
"," * - vSpacing
- Vertical distance, in pixels, between legend `items`.
"," * - label
- Properties for the text of an `item`."," *
"," * - color
- Color of the text. The default values is \"#808080\".
"," * - fontSize
- Font size for the text. The default value is \"85%\".
"," *
"," * "," * - marker
- Properties for the `item` markers."," *
"," * - width
- Specifies the width of the markers.
"," * - height
- Specifies the height of the markers.
"," *
"," * "," *
"," * "," * - background
- Properties for the `ChartLegend` background."," *
"," * - fill
- Properties for the background fill."," *
"," * - color
- Color for the fill. The default value is \"#faf9f2\".
"," *
"," * "," * - border
- Properties for the background border."," *
"," * - color
- Color for the border. The default value is \"#dad8c9\".
"," * - weight
- Weight of the border. The default values is 1.
"," *
"," * "," *
"," * "," *
"," *"," * @attribute styles"," * @type Object"," */"," }","});","/**"," * The Chart class is the basic application used to create a chart."," *"," * @module charts"," * @class Chart"," * @constructor"," */","function Chart(cfg)","{"," if(cfg.type != \"pie\")"," {"," return new Y.CartesianChart(cfg);"," }"," else"," {"," return new Y.PieChart(cfg);"," }","}","Y.Chart = Chart;","","","}, '3.7.2', {\"requires\": [\"charts-base\"]});"];
_yuitest_coverage["build/charts-legend/charts-legend.js"].lines = {"1":0,"9":0,"26":0,"27":0,"29":0,"31":0,"33":0,"34":0,"38":0,"39":0,"41":0,"42":0,"44":0,"46":0,"76":0,"95":0,"96":0,"97":0,"98":0,"99":0,"101":0,"102":0,"103":0,"104":0,"105":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"121":0,"123":0,"129":0,"131":0,"147":0,"155":0,"157":0,"158":0,"159":0,"161":0,"162":0,"166":0,"167":0,"169":0,"171":0,"173":0,"175":0,"176":0,"192":0,"193":0,"196":0,"197":0,"199":0,"200":0,"202":0,"203":0,"205":0,"235":0,"255":0,"256":0,"257":0,"258":0,"259":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"283":0,"285":0,"291":0,"293":0,"309":0,"317":0,"319":0,"320":0,"321":0,"323":0,"324":0,"328":0,"329":0,"331":0,"333":0,"335":0,"337":0,"338":0,"354":0,"355":0,"358":0,"359":0,"361":0,"362":0,"364":0,"365":0,"367":0,"380":0,"382":0,"383":0,"385":0,"386":0,"387":0,"420":0,"422":0,"423":0,"424":0,"426":0,"427":0,"430":0,"432":0,"433":0,"434":0,"435":0,"437":0,"438":0,"441":0,"443":0,"444":0,"445":0,"447":0,"448":0,"451":0,"453":0,"454":0,"455":0,"457":0,"458":0,"462":0,"463":0,"464":0,"465":0,"466":0,"467":0,"468":0,"470":0,"471":0,"472":0,"473":0,"475":0,"476":0,"478":0,"479":0,"481":0,"482":0,"483":0,"485":0,"490":0,"491":0,"493":0,"494":0,"496":0,"497":0,"498":0,"500":0,"505":0,"506":0,"508":0,"509":0,"511":0,"512":0,"513":0,"515":0,"520":0,"521":0,"523":0,"524":0,"526":0,"527":0,"528":0,"530":0,"535":0,"536":0,"537":0,"538":0,"539":0,"541":0,"543":0,"546":0,"547":0,"548":0,"550":0,"551":0,"552":0,"554":0,"555":0,"556":0,"558":0,"559":0,"560":0,"564":0,"566":0,"567":0,"568":0,"570":0,"571":0,"573":0,"575":0,"576":0,"578":0,"580":0,"583":0,"585":0,"586":0,"587":0,"589":0,"590":0,"592":0,"594":0,"595":0,"597":0,"599":0,"602":0,"604":0,"605":0,"606":0,"608":0,"609":0,"610":0,"611":0,"613":0,"616":0,"618":0,"621":0,"623":0,"624":0,"625":0,"627":0,"628":0,"629":0,"630":0,"632":0,"635":0,"637":0,"640":0,"641":0,"643":0,"644":0,"646":0,"648":0,"649":0,"650":0,"651":0,"652":0,"655":0,"657":0,"658":0,"659":0,"660":0,"674":0,"688":0,"690":0,"691":0,"692":0,"694":0,"695":0,"696":0,"697":0,"698":0,"701":0,"702":0,"704":0,"705":0,"707":0,"708":0,"710":0,"711":0,"715":0,"727":0,"728":0,"730":0,"739":0,"741":0,"750":0,"752":0,"753":0,"755":0,"756":0,"757":0,"773":0,"775":0,"777":0,"778":0,"779":0,"780":0,"781":0,"782":0,"783":0,"785":0,"787":0,"790":0,"791":0,"792":0,"793":0,"794":0,"796":0,"797":0,"798":0,"799":0,"800":0,"802":0,"803":0,"804":0,"805":0,"806":0,"808":0,"809":0,"810":0,"811":0,"812":0,"814":0,"815":0,"819":0,"822":0,"823":0,"825":0,"826":0,"828":0,"829":0,"831":0,"832":0,"838":0,"839":0,"840":0,"841":0,"844":0,"845":0,"847":0,"848":0,"850":0,"852":0,"853":0,"855":0,"857":0,"858":0,"872":0,"881":0,"890":0,"899":0,"907":0,"908":0,"909":0,"918":0,"919":0,"920":0,"921":0,"922":0,"931":0,"933":0,"935":0,"948":0,"950":0,"963":0,"965":0,"967":0,"969":0,"971":0,"984":0,"988":0,"990":0,"1002":0,"1004":0,"1005":0,"1007":0,"1008":0,"1009":0,"1011":0,"1013":0,"1049":0,"1051":0,"1053":0,"1054":0,"1056":0,"1057":0,"1058":0,"1059":0,"1060":0,"1061":0,"1062":0,"1063":0,"1064":0,"1065":0,"1066":0,"1068":0,"1069":0,"1072":0,"1076":0,"1077":0,"1078":0,"1079":0,"1080":0,"1081":0,"1082":0,"1083":0,"1084":0,"1089":0,"1090":0,"1091":0,"1093":0,"1094":0,"1095":0,"1097":0,"1098":0,"1100":0,"1103":0,"1104":0,"1105":0,"1106":0,"1107":0,"1108":0,"1109":0,"1110":0,"1111":0,"1114":0,"1115":0,"1117":0,"1121":0,"1122":0,"1123":0,"1136":0,"1143":0,"1163":0,"1165":0,"1167":0,"1168":0,"1169":0,"1179":0,"1181":0,"1182":0,"1183":0,"1195":0,"1196":0,"1234":0,"1241":0,"1242":0,"1243":0,"1244":0,"1245":0,"1246":0,"1247":0,"1248":0,"1249":0,"1250":0,"1251":0,"1252":0,"1253":0,"1264":0,"1265":0,"1273":0,"1274":0,"1286":0,"1287":0,"1299":0,"1330":0,"1343":0,"1347":0,"1358":0,"1359":0,"1361":0,"1363":0,"1364":0,"1365":0,"1366":0,"1367":0,"1368":0,"1371":0,"1393":0,"1395":0,"1396":0,"1398":0,"1399":0,"1401":0,"1405":0,"1432":0,"1433":0,"1462":0,"1464":0,"1466":0,"1468":0,"1470":0,"1486":0,"1488":0,"1490":0,"1492":0,"1494":0,"1496":0,"1500":0,"1503":0,"1508":0,"1509":0,"1527":0,"1529":0,"1531":0,"1533":0,"1535":0,"1537":0,"1541":0,"1544":0,"1549":0,"1550":0,"1568":0,"1569":0,"1571":0,"1573":0,"1591":0,"1592":0,"1594":0,"1596":0,"1615":0,"1681":0,"1683":0,"1685":0,"1689":0,"1692":0};
_yuitest_coverage["build/charts-legend/charts-legend.js"].functions = {"setter:24":0,"_positionLegendItems:74":0,"_setRowArrays:145":0,"getStartPoint:190":0,"_positionLegendItems:233":0,"_setColumnArrays:307":0,"getStartPoint:352":0,"_redraw:378":0,"_getLayoutBoxDimensions:672":0,"destructor:725":0,"_redraw:748":0,"initializer:888":0,"renderUI:897":0,"bindUI:916":0,"syncUI:929":0,"_updateHandler:946":0,"_positionChangeHandler:961":0,"_handleSizeChange:982":0,"_drawLegend:1000":0,"_updateBackground:1134":0,"_getStylesBySeriesType:1161":0,"_getLegendItem:1232":0,"_getShapeClass:1284":0,"_getDefaultStyles:1297":0,"_getPlotDefaults:1341":0,"_destroyLegendItems:1356":0,"destructor:1391":0,"setter:1430":0,"setter:1460":0,"getter:1484":0,"setter:1506":0,"getter:1525":0,"setter:1547":0,"setter:1566":0,"setter:1589":0,"getter:1613":0,"Chart:1681":0,"(anonymous 1):1":0};
_yuitest_coverage["build/charts-legend/charts-legend.js"].coveredLines = 535;
@@ -2304,4 +2304,4 @@ _yuitest_coverline("build/charts-legend/charts-legend.js", 1692);
Y.Chart = Chart;
-}, '3.7.1', {"requires": ["charts-base"]});
+}, '3.7.2', {"requires": ["charts-base"]});
diff --git a/lib/yuilib/3.7.1/build/charts-legend/charts-legend-debug.js b/lib/yuilib/3.7.2/build/charts-legend/charts-legend-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/charts-legend/charts-legend-debug.js
rename to lib/yuilib/3.7.2/build/charts-legend/charts-legend-debug.js
index f4094d6725c..e3bbbf3e2ae 100644
--- a/lib/yuilib/3.7.1/build/charts-legend/charts-legend-debug.js
+++ b/lib/yuilib/3.7.2/build/charts-legend/charts-legend-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1698,4 +1698,4 @@ function Chart(cfg)
Y.Chart = Chart;
-}, '3.7.1', {"requires": ["charts-base"]});
+}, '3.7.2', {"requires": ["charts-base"]});
diff --git a/lib/yuilib/3.7.1/build/charts-legend/charts-legend-min.js b/lib/yuilib/3.7.2/build/charts-legend/charts-legend-min.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/charts-legend/charts-legend-min.js
rename to lib/yuilib/3.7.2/build/charts-legend/charts-legend-min.js
index 02ba89ac7f0..b4cb0a052b1 100644
--- a/lib/yuilib/3.7.1/build/charts-legend/charts-legend-min.js
+++ b/lib/yuilib/3.7.2/build/charts-legend/charts-legend-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("charts-legend",function(e,t){function E(t){return t.type!="pie"?new e.CartesianChart(t):new e.PieChart(t)}var n=e.config.doc,r="top",i="right",s="bottom",o="left",u="external",a="horizontal",f="vertical",l="width",c="height",h="position",p="x",d="y",v="px",m={setter:function(t){var n=this.get("legend");return n&&n.destroy(!0),t instanceof e.ChartLegend?(n=t,n.set("chart",this)):(t.chart=this,t.hasOwnProperty("render")||(t.render=this.get("contentBox"),t.includeInChartLayout=!0),n=new e.ChartLegend(t)),n}},g={_positionLegendItems:function(e,t,n,r,i,s,o,u,a,f){var l=0,c=0,h,p,d,m,y,b=this.get("width"),w,E,S,x,T,N=s.top-u,C=b-(s.left+s.right),k,L,A,O;g._setRowArrays(e,C,o),w=g.rowArray,x=g.totalWidthArray,E=w.length;for(;c-1;--c)L.unshift(r),r+=u[c].get("width")}if(a){k=[],h=a.length,c=0;for(c=h-1;c>-1;--c)i+=a[c].get("width"),k.unshift(e-i)}if(f){A=[],h=f.length;for(c=h-1;c>-1;--c)A.unshift(s),s+=f[c].get("height")}if(l){O=[],h=l.length;for(c=h-1;c>-1;--c)o+=l[c].get("height"),O.unshift(t-o)}E=e-(r+i),S=t-(o+s),_.left=r,_.top=s,_.bottom=t-o,_.right=e-i;if(!N){g=this._getTopOverflow(u,a),y=this._getBottomOverflow(u,a),b=this._getLeftOverflow(l,f),w=this._getRightOverflow(l,f),C=g-s;if(C>0){_.top=g;if(A){c=0,h=A.length;for(;c0){_.bottom=t-y;if(O){c=0,h=O.length;for(;c0){_.left=b;if(L){c=0,h=L.length;for(;c0){_.right=e-w;if(k){c=0,h=k.length;for(;c0&&t>0&&this._drawLegend()},_updateHandler:function(e){this.get("rendered")&&this._drawLegend()},_positionChangeHandler:function(e){var t=this.get("chart"),n=this._parentNode;n&&t&&this.get("includeInChartLayout")?this.fire("legendRendered"):this.get("rendered")&&this._drawLegend()},_handleSizeChange:function(e){var t=e.attrName,n=this.get(h),u=n==o||n==i,a=n==s||n==r;(a&&t==l||u&&t==c)&&this._drawLegend()},_drawLegend:function(){if(this._drawing){this._callLater=!0;return}this._drawing=!0,this._callLater=!1,this.get("includeInChartLayout")&&this.get("chart")._itemRenderQueue.unshift(this);var t=this.get("chart"),n=this.get("contentBox"),r=t.get("seriesCollection"),i,s=this.get("styles"),o=s.padding,u=s.item,a,f=u.hSpacing,l=u.vSpacing,c=s.hAlign,h=s.vAlign,p=s.marker,d=u.label,v,m=this._layout[this.get("direction")],g,y,b,w,E,S,x,T,N,C,k,L=[],A=p.width,O=p.height,M=0-f,_=0-l,D=0,P=0,H,B;p&&p.shape&&(w=p.shape),this._destroyLegendItems();if(t instanceof e.PieChart){i=r[0],v=i.get("categoryAxis").getDataByKey(i.get("categoryKey")),a=i.get("styles").marker,N=a.fill.colors,C=a.border.colors,k=a.border.weight,g=0,y=v.length,w=w||e.Circle,b=e.Lang.isArray(w);for(;g0)e=this._items.shift(),e.shape.get("graphic").destroy(),e.node.empty(),e.node.destroy(!0),e.node=null,e=null;this._items=[]},_layout:{vertical:y,horizontal:g},destructor:function(){var e=this.get("background"),t;this._destroyLegendItems(),e&&(t=e.get("graphic"),t?t.destroy():e.destroy())}},{ATTRS:{includeInChartLayout:{value:!1},chart:{setter:function(t){return this.after("legendRendered",e.bind(t._itemRendered,t)),t}},direction:{value:"vertical"},position:{lazyAdd:!1,value:"right",setter:function(e){return e==r||e==s?this.set("direction",a):(e==o||e==i)&&this.set("direction",f),e}},width:{getter:function(){var e=this.get("chart"),t=this._parentNode;return t?e&&this.get("includeInChartLayout")||this._width?(this._width||(this._width=0),this._width):t.get("offsetWidth"):""},setter:function(e){return this._width=e,e}},height:{valueFn:"_heightGetter",getter:function(){var e=this.get("chart"),t=this._parentNode;return t?e&&this.get("includeInChartLayout")||this._height?(this._height||(this._height=0),this._height):t.get("offsetHeight"):""},setter:function(e){return this._height=e,e}},x:{lazyAdd:!1,value:0,setter:function(e){var t=this.get("boundingBox");return t&&t.setStyle(o,e+v),e}},y:{lazyAdd:!1,value:0,setter:function(e){var t=this.get("boundingBox");return t&&t.setStyle(r,e+v),e}},items:{getter:function(){return this._items}},background:{}}}),e.Chart=E},"3.7.1",{requires:["charts-base"]});
+YUI.add("charts-legend",function(e,t){function E(t){return t.type!="pie"?new e.CartesianChart(t):new e.PieChart(t)}var n=e.config.doc,r="top",i="right",s="bottom",o="left",u="external",a="horizontal",f="vertical",l="width",c="height",h="position",p="x",d="y",v="px",m={setter:function(t){var n=this.get("legend");return n&&n.destroy(!0),t instanceof e.ChartLegend?(n=t,n.set("chart",this)):(t.chart=this,t.hasOwnProperty("render")||(t.render=this.get("contentBox"),t.includeInChartLayout=!0),n=new e.ChartLegend(t)),n}},g={_positionLegendItems:function(e,t,n,r,i,s,o,u,a,f){var l=0,c=0,h,p,d,m,y,b=this.get("width"),w,E,S,x,T,N=s.top-u,C=b-(s.left+s.right),k,L,A,O;g._setRowArrays(e,C,o),w=g.rowArray,x=g.totalWidthArray,E=w.length;for(;c-1;--c)L.unshift(r),r+=u[c].get("width")}if(a){k=[],h=a.length,c=0;for(c=h-1;c>-1;--c)i+=a[c].get("width"),k.unshift(e-i)}if(f){A=[],h=f.length;for(c=h-1;c>-1;--c)A.unshift(s),s+=f[c].get("height")}if(l){O=[],h=l.length;for(c=h-1;c>-1;--c)o+=l[c].get("height"),O.unshift(t-o)}E=e-(r+i),S=t-(o+s),_.left=r,_.top=s,_.bottom=t-o,_.right=e-i;if(!N){g=this._getTopOverflow(u,a),y=this._getBottomOverflow(u,a),b=this._getLeftOverflow(l,f),w=this._getRightOverflow(l,f),C=g-s;if(C>0){_.top=g;if(A){c=0,h=A.length;for(;c0){_.bottom=t-y;if(O){c=0,h=O.length;for(;c0){_.left=b;if(L){c=0,h=L.length;for(;c0){_.right=e-w;if(k){c=0,h=k.length;for(;c0&&t>0&&this._drawLegend()},_updateHandler:function(e){this.get("rendered")&&this._drawLegend()},_positionChangeHandler:function(e){var t=this.get("chart"),n=this._parentNode;n&&t&&this.get("includeInChartLayout")?this.fire("legendRendered"):this.get("rendered")&&this._drawLegend()},_handleSizeChange:function(e){var t=e.attrName,n=this.get(h),u=n==o||n==i,a=n==s||n==r;(a&&t==l||u&&t==c)&&this._drawLegend()},_drawLegend:function(){if(this._drawing){this._callLater=!0;return}this._drawing=!0,this._callLater=!1,this.get("includeInChartLayout")&&this.get("chart")._itemRenderQueue.unshift(this);var t=this.get("chart"),n=this.get("contentBox"),r=t.get("seriesCollection"),i,s=this.get("styles"),o=s.padding,u=s.item,a,f=u.hSpacing,l=u.vSpacing,c=s.hAlign,h=s.vAlign,p=s.marker,d=u.label,v,m=this._layout[this.get("direction")],g,y,b,w,E,S,x,T,N,C,k,L=[],A=p.width,O=p.height,M=0-f,_=0-l,D=0,P=0,H,B;p&&p.shape&&(w=p.shape),this._destroyLegendItems();if(t instanceof e.PieChart){i=r[0],v=i.get("categoryAxis").getDataByKey(i.get("categoryKey")),a=i.get("styles").marker,N=a.fill.colors,C=a.border.colors,k=a.border.weight,g=0,y=v.length,w=w||e.Circle,b=e.Lang.isArray(w);for(;g0)e=this._items.shift(),e.shape.get("graphic").destroy(),e.node.empty(),e.node.destroy(!0),e.node=null,e=null;this._items=[]},_layout:{vertical:y,horizontal:g},destructor:function(){var e=this.get("background"),t;this._destroyLegendItems(),e&&(t=e.get("graphic"),t?t.destroy():e.destroy())}},{ATTRS:{includeInChartLayout:{value:!1},chart:{setter:function(t){return this.after("legendRendered",e.bind(t._itemRendered,t)),t}},direction:{value:"vertical"},position:{lazyAdd:!1,value:"right",setter:function(e){return e==r||e==s?this.set("direction",a):(e==o||e==i)&&this.set("direction",f),e}},width:{getter:function(){var e=this.get("chart"),t=this._parentNode;return t?e&&this.get("includeInChartLayout")||this._width?(this._width||(this._width=0),this._width):t.get("offsetWidth"):""},setter:function(e){return this._width=e,e}},height:{valueFn:"_heightGetter",getter:function(){var e=this.get("chart"),t=this._parentNode;return t?e&&this.get("includeInChartLayout")||this._height?(this._height||(this._height=0),this._height):t.get("offsetHeight"):""},setter:function(e){return this._height=e,e}},x:{lazyAdd:!1,value:0,setter:function(e){var t=this.get("boundingBox");return t&&t.setStyle(o,e+v),e}},y:{lazyAdd:!1,value:0,setter:function(e){var t=this.get("boundingBox");return t&&t.setStyle(r,e+v),e}},items:{getter:function(){return this._items}},background:{}}}),e.Chart=E},"3.7.2",{requires:["charts-base"]});
diff --git a/lib/yuilib/3.7.1/build/charts-legend/charts-legend.js b/lib/yuilib/3.7.2/build/charts-legend/charts-legend.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/charts-legend/charts-legend.js
rename to lib/yuilib/3.7.2/build/charts-legend/charts-legend.js
index f4094d6725c..e3bbbf3e2ae 100644
--- a/lib/yuilib/3.7.1/build/charts-legend/charts-legend.js
+++ b/lib/yuilib/3.7.2/build/charts-legend/charts-legend.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1698,4 +1698,4 @@ function Chart(cfg)
Y.Chart = Chart;
-}, '3.7.1', {"requires": ["charts-base"]});
+}, '3.7.2', {"requires": ["charts-base"]});
diff --git a/lib/yuilib/3.7.1/build/charts/charts-coverage.js b/lib/yuilib/3.7.2/build/charts/charts-coverage.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/charts/charts-coverage.js
rename to lib/yuilib/3.7.2/build/charts/charts-coverage.js
index d2c3fc8940a..b64a72b57f1 100644
--- a/lib/yuilib/3.7.1/build/charts/charts-coverage.js
+++ b/lib/yuilib/3.7.2/build/charts/charts-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/charts/charts.js"] = {
path: "build/charts/charts.js",
code: []
};
-_yuitest_coverage["build/charts/charts.js"].code=["YUI.add('charts', function (Y, NAME) {","","/**"," * The Chart class is the basic application used to create a chart."," *"," * @module charts"," * @class Chart"," * @constructor"," */","function Chart(cfg)","{"," if(cfg.type != \"pie\")"," {"," return new Y.CartesianChart(cfg);"," }"," else"," {"," return new Y.PieChart(cfg);"," }","}","Y.Chart = Chart;","","","}, '3.7.1', {\"requires\": [\"charts-base\"]});"];
+_yuitest_coverage["build/charts/charts.js"].code=["YUI.add('charts', function (Y, NAME) {","","/**"," * The Chart class is the basic application used to create a chart."," *"," * @module charts"," * @class Chart"," * @constructor"," */","function Chart(cfg)","{"," if(cfg.type != \"pie\")"," {"," return new Y.CartesianChart(cfg);"," }"," else"," {"," return new Y.PieChart(cfg);"," }","}","Y.Chart = Chart;","","","}, '3.7.2', {\"requires\": [\"charts-base\"]});"];
_yuitest_coverage["build/charts/charts.js"].lines = {"1":0,"10":0,"12":0,"14":0,"18":0,"21":0};
_yuitest_coverage["build/charts/charts.js"].functions = {"Chart:10":0,"(anonymous 1):1":0};
_yuitest_coverage["build/charts/charts.js"].coveredLines = 6;
@@ -68,4 +68,4 @@ _yuitest_coverline("build/charts/charts.js", 21);
Y.Chart = Chart;
-}, '3.7.1', {"requires": ["charts-base"]});
+}, '3.7.2', {"requires": ["charts-base"]});
diff --git a/lib/yuilib/3.7.1/build/charts/charts-debug.js b/lib/yuilib/3.7.2/build/charts/charts-debug.js
similarity index 87%
rename from lib/yuilib/3.7.1/build/charts/charts-debug.js
rename to lib/yuilib/3.7.2/build/charts/charts-debug.js
index ace447dbea0..bfb9aeb0f5b 100644
--- a/lib/yuilib/3.7.1/build/charts/charts-debug.js
+++ b/lib/yuilib/3.7.2/build/charts/charts-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -27,4 +27,4 @@ function Chart(cfg)
Y.Chart = Chart;
-}, '3.7.1', {"requires": ["charts-base"]});
+}, '3.7.2', {"requires": ["charts-base"]});
diff --git a/lib/yuilib/3.7.1/build/charts/charts-min.js b/lib/yuilib/3.7.2/build/charts/charts-min.js
similarity index 70%
rename from lib/yuilib/3.7.1/build/charts/charts-min.js
rename to lib/yuilib/3.7.2/build/charts/charts-min.js
index b31099b0f16..50f82413816 100644
--- a/lib/yuilib/3.7.1/build/charts/charts-min.js
+++ b/lib/yuilib/3.7.2/build/charts/charts-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("charts",function(e,t){function n(t){return t.type!="pie"?new e.CartesianChart(t):new e.PieChart(t)}e.Chart=n},"3.7.1",{requires:["charts-base"]});
+YUI.add("charts",function(e,t){function n(t){return t.type!="pie"?new e.CartesianChart(t):new e.PieChart(t)}e.Chart=n},"3.7.2",{requires:["charts-base"]});
diff --git a/lib/yuilib/3.7.1/build/charts/charts.js b/lib/yuilib/3.7.2/build/charts/charts.js
similarity index 87%
rename from lib/yuilib/3.7.1/build/charts/charts.js
rename to lib/yuilib/3.7.2/build/charts/charts.js
index ace447dbea0..bfb9aeb0f5b 100644
--- a/lib/yuilib/3.7.1/build/charts/charts.js
+++ b/lib/yuilib/3.7.2/build/charts/charts.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -27,4 +27,4 @@ function Chart(cfg)
Y.Chart = Chart;
-}, '3.7.1', {"requires": ["charts-base"]});
+}, '3.7.2', {"requires": ["charts-base"]});
diff --git a/lib/yuilib/3.7.1/build/classnamemanager/classnamemanager-coverage.js b/lib/yuilib/3.7.2/build/classnamemanager/classnamemanager-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/classnamemanager/classnamemanager-coverage.js
rename to lib/yuilib/3.7.2/build/classnamemanager/classnamemanager-coverage.js
index 855a9f11fdc..e94efe7d08b 100644
--- a/lib/yuilib/3.7.1/build/classnamemanager/classnamemanager-coverage.js
+++ b/lib/yuilib/3.7.2/build/classnamemanager/classnamemanager-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/classnamemanager/classnamemanager.js"] = {
path: "build/classnamemanager/classnamemanager.js",
code: []
};
-_yuitest_coverage["build/classnamemanager/classnamemanager.js"].code=["YUI.add('classnamemanager', function (Y, NAME) {","","/**","* Contains a singleton (ClassNameManager) that enables easy creation and caching of ","* prefixed class names.","* @module classnamemanager","*/","","/**"," * A singleton class providing: "," * "," * "," * - Easy creation of prefixed class names
"," * - Caching of previously created class names for improved performance.
"," *
"," * "," * @class ClassNameManager"," * @static "," */","","// String constants","var CLASS_NAME_PREFIX = 'classNamePrefix',"," CLASS_NAME_DELIMITER = 'classNameDelimiter',"," CONFIG = Y.config;","","// Global config","","/**"," * Configuration property indicating the prefix for all CSS class names in this YUI instance."," *"," * @property classNamePrefix"," * @type {String}"," * @default \"yui\""," * @static"," */","CONFIG[CLASS_NAME_PREFIX] = CONFIG[CLASS_NAME_PREFIX] || 'yui3';","","/**"," * Configuration property indicating the delimiter used to compose all CSS class names in"," * this YUI instance."," *"," * @property classNameDelimiter"," * @type {String}"," * @default \"-\""," * @static"," */","CONFIG[CLASS_NAME_DELIMITER] = CONFIG[CLASS_NAME_DELIMITER] || '-';","","Y.ClassNameManager = function () {",""," var sPrefix = CONFIG[CLASS_NAME_PREFIX],"," sDelimiter = CONFIG[CLASS_NAME_DELIMITER];",""," return {",""," /**"," * Returns a class name prefixed with the the value of the "," * Y.config.classNamePrefix attribute + the provided strings."," * Uses the Y.config.classNameDelimiter attribute to delimit the "," * provided strings. E.g. Y.ClassNameManager.getClassName('foo','bar'); // yui-foo-bar"," *"," * @method getClassName"," * @param {String}+ classnameSection one or more classname sections to be joined"," * @param {Boolean} skipPrefix If set to true, the classname will not be prefixed with the default Y.config.classNameDelimiter value. "," */"," getClassName: Y.cached(function () {",""," var args = Y.Array(arguments);",""," if (args[args.length-1] !== true) {"," args.unshift(sPrefix);"," } else {"," args.pop();"," }",""," return args.join(sDelimiter);"," })",""," };","","}();","","","}, '3.7.1', {\"requires\": [\"yui-base\"]});"];
+_yuitest_coverage["build/classnamemanager/classnamemanager.js"].code=["YUI.add('classnamemanager', function (Y, NAME) {","","/**","* Contains a singleton (ClassNameManager) that enables easy creation and caching of ","* prefixed class names.","* @module classnamemanager","*/","","/**"," * A singleton class providing: "," * "," * "," * - Easy creation of prefixed class names
"," * - Caching of previously created class names for improved performance.
"," *
"," * "," * @class ClassNameManager"," * @static "," */","","// String constants","var CLASS_NAME_PREFIX = 'classNamePrefix',"," CLASS_NAME_DELIMITER = 'classNameDelimiter',"," CONFIG = Y.config;","","// Global config","","/**"," * Configuration property indicating the prefix for all CSS class names in this YUI instance."," *"," * @property classNamePrefix"," * @type {String}"," * @default \"yui\""," * @static"," */","CONFIG[CLASS_NAME_PREFIX] = CONFIG[CLASS_NAME_PREFIX] || 'yui3';","","/**"," * Configuration property indicating the delimiter used to compose all CSS class names in"," * this YUI instance."," *"," * @property classNameDelimiter"," * @type {String}"," * @default \"-\""," * @static"," */","CONFIG[CLASS_NAME_DELIMITER] = CONFIG[CLASS_NAME_DELIMITER] || '-';","","Y.ClassNameManager = function () {",""," var sPrefix = CONFIG[CLASS_NAME_PREFIX],"," sDelimiter = CONFIG[CLASS_NAME_DELIMITER];",""," return {",""," /**"," * Returns a class name prefixed with the the value of the "," * Y.config.classNamePrefix attribute + the provided strings."," * Uses the Y.config.classNameDelimiter attribute to delimit the "," * provided strings. E.g. Y.ClassNameManager.getClassName('foo','bar'); // yui-foo-bar"," *"," * @method getClassName"," * @param {String}+ classnameSection one or more classname sections to be joined"," * @param {Boolean} skipPrefix If set to true, the classname will not be prefixed with the default Y.config.classNameDelimiter value. "," */"," getClassName: Y.cached(function () {",""," var args = Y.Array(arguments);",""," if (args[args.length-1] !== true) {"," args.unshift(sPrefix);"," } else {"," args.pop();"," }",""," return args.join(sDelimiter);"," })",""," };","","}();","","","}, '3.7.2', {\"requires\": [\"yui-base\"]});"];
_yuitest_coverage["build/classnamemanager/classnamemanager.js"].lines = {"1":0,"22":0,"36":0,"47":0,"49":0,"51":0,"54":0,"68":0,"70":0,"71":0,"73":0,"76":0};
_yuitest_coverage["build/classnamemanager/classnamemanager.js"].functions = {"(anonymous 2):66":0,"ClassNameManager:49":0,"(anonymous 1):1":0};
_yuitest_coverage["build/classnamemanager/classnamemanager.js"].coveredLines = 12;
@@ -135,4 +135,4 @@ return args.join(sDelimiter);
}();
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/classnamemanager/classnamemanager-debug.js b/lib/yuilib/3.7.2/build/classnamemanager/classnamemanager-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/classnamemanager/classnamemanager-debug.js
rename to lib/yuilib/3.7.2/build/classnamemanager/classnamemanager-debug.js
index 2d9374e6d3a..9ef5cdb4565 100644
--- a/lib/yuilib/3.7.1/build/classnamemanager/classnamemanager-debug.js
+++ b/lib/yuilib/3.7.2/build/classnamemanager/classnamemanager-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -87,4 +87,4 @@ Y.ClassNameManager = function () {
}();
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/classnamemanager/classnamemanager-min.js b/lib/yuilib/3.7.2/build/classnamemanager/classnamemanager-min.js
similarity index 81%
rename from lib/yuilib/3.7.1/build/classnamemanager/classnamemanager-min.js
rename to lib/yuilib/3.7.2/build/classnamemanager/classnamemanager-min.js
index 6ef00760eef..f7ceb74ef95 100644
--- a/lib/yuilib/3.7.1/build/classnamemanager/classnamemanager-min.js
+++ b/lib/yuilib/3.7.2/build/classnamemanager/classnamemanager-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("classnamemanager",function(e,t){var n="classNamePrefix",r="classNameDelimiter",i=e.config;i[n]=i[n]||"yui3",i[r]=i[r]||"-",e.ClassNameManager=function(){var t=i[n],s=i[r];return{getClassName:e.cached(function(){var n=e.Array(arguments);return n[n.length-1]!==!0?n.unshift(t):n.pop(),n.join(s)})}}()},"3.7.1",{requires:["yui-base"]});
+YUI.add("classnamemanager",function(e,t){var n="classNamePrefix",r="classNameDelimiter",i=e.config;i[n]=i[n]||"yui3",i[r]=i[r]||"-",e.ClassNameManager=function(){var t=i[n],s=i[r];return{getClassName:e.cached(function(){var n=e.Array(arguments);return n[n.length-1]!==!0?n.unshift(t):n.pop(),n.join(s)})}}()},"3.7.2",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/classnamemanager/classnamemanager.js b/lib/yuilib/3.7.2/build/classnamemanager/classnamemanager.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/classnamemanager/classnamemanager.js
rename to lib/yuilib/3.7.2/build/classnamemanager/classnamemanager.js
index 2d9374e6d3a..9ef5cdb4565 100644
--- a/lib/yuilib/3.7.1/build/classnamemanager/classnamemanager.js
+++ b/lib/yuilib/3.7.2/build/classnamemanager/classnamemanager.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -87,4 +87,4 @@ Y.ClassNameManager = function () {
}();
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/slider-base/assets/slider-base-core.css b/lib/yuilib/3.7.2/build/clickable-rail/assets/slider-base-core.css
similarity index 96%
rename from lib/yuilib/3.7.1/build/slider-base/assets/slider-base-core.css
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/slider-base-core.css
index 0643a7266ca..97b3550507e 100644
--- a/lib/yuilib/3.7.1/build/slider-base/assets/slider-base-core.css
+++ b/lib/yuilib/3.7.2/build/clickable-rail/assets/slider-base-core.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/range-slider/assets/slider-core.css b/lib/yuilib/3.7.2/build/clickable-rail/assets/slider-core.css
similarity index 96%
rename from lib/yuilib/3.7.1/build/range-slider/assets/slider-core.css
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/slider-core.css
index 0643a7266ca..97b3550507e 100644
--- a/lib/yuilib/3.7.1/build/range-slider/assets/slider-core.css
+++ b/lib/yuilib/3.7.2/build/clickable-rail/assets/slider-core.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-x-oblong-dark.png b/lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-x-oblong-dark.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-x-oblong-dark.png
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-x-oblong-dark.png
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-x-oblong.png b/lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-x-oblong.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-x-oblong.png
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-x-oblong.png
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-x-oblong2-dark.png b/lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-x-oblong2-dark.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-x-oblong2-dark.png
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-x-oblong2-dark.png
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-x-oblong2.png b/lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-x-oblong2.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-x-oblong2.png
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-x-oblong2.png
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-y-oblong-dark.png b/lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-y-oblong-dark.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-y-oblong-dark.png
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-y-oblong-dark.png
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-y-oblong.png b/lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-y-oblong.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-y-oblong.png
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-y-oblong.png
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-y-oblong2-dark.png b/lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-y-oblong2-dark.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-y-oblong2-dark.png
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-y-oblong2-dark.png
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-y-oblong2.png b/lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-y-oblong2.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/clickable-rail/assets/thumb-y-oblong2.png
rename to lib/yuilib/3.7.2/build/clickable-rail/assets/thumb-y-oblong2.png
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/clickable-rail-coverage.js b/lib/yuilib/3.7.2/build/clickable-rail/clickable-rail-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/clickable-rail/clickable-rail-coverage.js
rename to lib/yuilib/3.7.2/build/clickable-rail/clickable-rail-coverage.js
index e4e134e4641..268f8f10d5d 100644
--- a/lib/yuilib/3.7.1/build/clickable-rail/clickable-rail-coverage.js
+++ b/lib/yuilib/3.7.2/build/clickable-rail/clickable-rail-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/clickable-rail/clickable-rail.js"] = {
path: "build/clickable-rail/clickable-rail.js",
code: []
};
-_yuitest_coverage["build/clickable-rail/clickable-rail.js"].code=["YUI.add('clickable-rail', function (Y, NAME) {","","/**"," * Adds support for mouse interaction with the Slider rail triggering thumb"," * movement."," *"," * @module slider"," * @submodule clickable-rail"," */","","/**"," * Slider extension that allows clicking on the Slider's rail element,"," * triggering the thumb to align with the location of the click."," *"," * @class ClickableRail"," */","function ClickableRail() {"," this._initClickableRail();","}","","Y.ClickableRail = Y.mix(ClickableRail, {",""," // Prototype methods added to host class"," prototype: {",""," /**"," * Initializes the internal state and sets up events."," *"," * @method _initClickableRail"," * @protected"," */"," _initClickableRail: function () {"," this._evtGuid = this._evtGuid || (Y.guid() + '|');",""," /**"," * Broadcasts when the rail has received a mousedown event and"," * triggers the thumb positioning. Use"," * e.preventDefault() or"," * set("clickableRail", false) to prevent"," * the thumb positioning."," *"," * @event railMouseDown"," * @preventable _defRailMouseDownFn"," */"," this.publish('railMouseDown', {"," defaultFn: this._defRailMouseDownFn"," });",""," this.after('render', this._bindClickableRail);"," this.on('destroy', this._unbindClickableRail);"," },",""," /** "," * Attaches DOM event subscribers to support rail interaction."," *"," * @method _bindClickableRail"," * @protected"," */"," _bindClickableRail: function () {"," this._dd.addHandle(this.rail);",""," this.rail.on(this._evtGuid + Y.DD.Drag.START_EVENT,"," Y.bind(this._onRailMouseDown, this));"," },",""," /**"," * Detaches DOM event subscribers for cleanup/destruction cycle."," *"," * @method _unbindClickableRail"," * @protected"," */"," _unbindClickableRail: function () {"," if (this.get('rendered')) {"," var contentBox = this.get('contentBox'),"," rail = contentBox.one('.' + this.getClassName('rail'));",""," rail.detach(this.evtGuid + '*');"," }"," },",""," /**"," * Dispatches the railMouseDown event."," *"," * @method _onRailMouseDown"," * @param e {DOMEvent} the mousedown event object"," * @protected"," */"," _onRailMouseDown: function (e) {"," if (this.get('clickableRail') && !this.get('disabled')) {"," this.fire('railMouseDown', { ev: e });"," this.thumb.focus();"," }"," },",""," /**"," * Default behavior for the railMouseDown event. Centers the thumb at"," * the click location and passes control to the DDM to behave as though"," * the thumb itself were clicked in preparation for a drag operation."," *"," * @method _defRailMouseDownFn"," * @param e {Event} the EventFacade for the railMouseDown custom event"," * @protected"," */"," _defRailMouseDownFn: function (e) {"," e = e.ev;",""," // Logic that determines which thumb should be used is abstracted"," // to someday support multi-thumb sliders"," var dd = this._resolveThumb(e),"," i = this._key.xyIndex,"," length = parseFloat(this.get('length'), 10),"," thumb,"," thumbSize,"," xy;"," "," if (dd) {"," thumb = dd.get('dragNode');"," thumbSize = parseFloat(thumb.getStyle(this._key.dim), 10);",""," // Step 1. Allow for aligning to thumb center or edge, etc"," xy = this._getThumbDestination(e, thumb);",""," // Step 2. Remove page offsets to give just top/left style val"," xy = xy[ i ] - this.rail.getXY()[i];",""," // Step 3. Constrain within the rail in case of attempt to"," // center the thumb when clicking on the end of the rail"," xy = Math.min("," Math.max(xy, 0),"," (length - thumbSize));",""," this._uiMoveThumb(xy, { source: 'rail' });",""," // Set e.target for DD's IE9 patch which calls"," // e.target._node.setCapture() to allow imgs to be dragged."," // Without this, setCapture is called from the rail and rail"," // clicks on other Sliders may have their thumb movements"," // overridden by a different Slider (the thumb on the wrong"," // Slider moves)."," e.target = this.thumb.one('img') || this.thumb;",""," // Delegate to DD's natural behavior"," dd._handleMouseDownEvent(e);",""," // TODO: this won't trigger a slideEnd if the rail is clicked"," // check if dd._move(e); dd._dragThreshMet = true; dd.start();"," // will do the trick. Is that even a good idea?"," }"," },",""," /**"," * Resolves which thumb to actuate if any. Override this if you want to"," * support multiple thumbs. By default, returns the Drag instance for"," * the thumb stored by the Slider."," *"," * @method _resolveThumb"," * @param e {DOMEvent} the mousedown event object"," * @return {DD.Drag} the Drag instance that should be moved"," * @protected"," */"," _resolveThumb: function (e) {"," /* Temporary workaround"," var primaryOnly = this._dd.get('primaryButtonOnly'),"," validClick = !primaryOnly || e.button <= 1;",""," return (validClick) ? this._dd : null;"," */"," return this._dd;"," },",""," /**"," * Calculates the top left position the thumb should be moved to to"," * align the click XY with the center of the specified node."," *"," * @method _getThumbDestination"," * @param e {DOMEvent} The mousedown event object"," * @param node {Node} The node to position"," * @return {Array} the [top, left] pixel position of the destination"," * @protected"," */"," _getThumbDestination: function (e, node) {"," var offsetWidth = node.get('offsetWidth'),"," offsetHeight = node.get('offsetHeight');",""," // center"," return ["," (e.pageX - Math.round((offsetWidth / 2))),"," (e.pageY - Math.round((offsetHeight / 2)))"," ];"," }",""," },",""," // Static properties added onto host class"," ATTRS: {"," /**"," * Enable or disable clickable rail support."," *"," * @attribute clickableRail"," * @type {Boolean}"," * @default true"," */"," clickableRail: {"," value: true,"," validator: Y.Lang.isBoolean"," }"," }","","}, true);","","","}, '3.7.1', {\"requires\": [\"slider-base\"]});"];
+_yuitest_coverage["build/clickable-rail/clickable-rail.js"].code=["YUI.add('clickable-rail', function (Y, NAME) {","","/**"," * Adds support for mouse interaction with the Slider rail triggering thumb"," * movement."," *"," * @module slider"," * @submodule clickable-rail"," */","","/**"," * Slider extension that allows clicking on the Slider's rail element,"," * triggering the thumb to align with the location of the click."," *"," * @class ClickableRail"," */","function ClickableRail() {"," this._initClickableRail();","}","","Y.ClickableRail = Y.mix(ClickableRail, {",""," // Prototype methods added to host class"," prototype: {",""," /**"," * Initializes the internal state and sets up events."," *"," * @method _initClickableRail"," * @protected"," */"," _initClickableRail: function () {"," this._evtGuid = this._evtGuid || (Y.guid() + '|');",""," /**"," * Broadcasts when the rail has received a mousedown event and"," * triggers the thumb positioning. Use"," * e.preventDefault() or"," * set("clickableRail", false) to prevent"," * the thumb positioning."," *"," * @event railMouseDown"," * @preventable _defRailMouseDownFn"," */"," this.publish('railMouseDown', {"," defaultFn: this._defRailMouseDownFn"," });",""," this.after('render', this._bindClickableRail);"," this.on('destroy', this._unbindClickableRail);"," },",""," /** "," * Attaches DOM event subscribers to support rail interaction."," *"," * @method _bindClickableRail"," * @protected"," */"," _bindClickableRail: function () {"," this._dd.addHandle(this.rail);",""," this.rail.on(this._evtGuid + Y.DD.Drag.START_EVENT,"," Y.bind(this._onRailMouseDown, this));"," },",""," /**"," * Detaches DOM event subscribers for cleanup/destruction cycle."," *"," * @method _unbindClickableRail"," * @protected"," */"," _unbindClickableRail: function () {"," if (this.get('rendered')) {"," var contentBox = this.get('contentBox'),"," rail = contentBox.one('.' + this.getClassName('rail'));",""," rail.detach(this.evtGuid + '*');"," }"," },",""," /**"," * Dispatches the railMouseDown event."," *"," * @method _onRailMouseDown"," * @param e {DOMEvent} the mousedown event object"," * @protected"," */"," _onRailMouseDown: function (e) {"," if (this.get('clickableRail') && !this.get('disabled')) {"," this.fire('railMouseDown', { ev: e });"," this.thumb.focus();"," }"," },",""," /**"," * Default behavior for the railMouseDown event. Centers the thumb at"," * the click location and passes control to the DDM to behave as though"," * the thumb itself were clicked in preparation for a drag operation."," *"," * @method _defRailMouseDownFn"," * @param e {Event} the EventFacade for the railMouseDown custom event"," * @protected"," */"," _defRailMouseDownFn: function (e) {"," e = e.ev;",""," // Logic that determines which thumb should be used is abstracted"," // to someday support multi-thumb sliders"," var dd = this._resolveThumb(e),"," i = this._key.xyIndex,"," length = parseFloat(this.get('length'), 10),"," thumb,"," thumbSize,"," xy;"," "," if (dd) {"," thumb = dd.get('dragNode');"," thumbSize = parseFloat(thumb.getStyle(this._key.dim), 10);",""," // Step 1. Allow for aligning to thumb center or edge, etc"," xy = this._getThumbDestination(e, thumb);",""," // Step 2. Remove page offsets to give just top/left style val"," xy = xy[ i ] - this.rail.getXY()[i];",""," // Step 3. Constrain within the rail in case of attempt to"," // center the thumb when clicking on the end of the rail"," xy = Math.min("," Math.max(xy, 0),"," (length - thumbSize));",""," this._uiMoveThumb(xy, { source: 'rail' });",""," // Set e.target for DD's IE9 patch which calls"," // e.target._node.setCapture() to allow imgs to be dragged."," // Without this, setCapture is called from the rail and rail"," // clicks on other Sliders may have their thumb movements"," // overridden by a different Slider (the thumb on the wrong"," // Slider moves)."," e.target = this.thumb.one('img') || this.thumb;",""," // Delegate to DD's natural behavior"," dd._handleMouseDownEvent(e);",""," // TODO: this won't trigger a slideEnd if the rail is clicked"," // check if dd._move(e); dd._dragThreshMet = true; dd.start();"," // will do the trick. Is that even a good idea?"," }"," },",""," /**"," * Resolves which thumb to actuate if any. Override this if you want to"," * support multiple thumbs. By default, returns the Drag instance for"," * the thumb stored by the Slider."," *"," * @method _resolveThumb"," * @param e {DOMEvent} the mousedown event object"," * @return {DD.Drag} the Drag instance that should be moved"," * @protected"," */"," _resolveThumb: function (e) {"," /* Temporary workaround"," var primaryOnly = this._dd.get('primaryButtonOnly'),"," validClick = !primaryOnly || e.button <= 1;",""," return (validClick) ? this._dd : null;"," */"," return this._dd;"," },",""," /**"," * Calculates the top left position the thumb should be moved to to"," * align the click XY with the center of the specified node."," *"," * @method _getThumbDestination"," * @param e {DOMEvent} The mousedown event object"," * @param node {Node} The node to position"," * @return {Array} the [top, left] pixel position of the destination"," * @protected"," */"," _getThumbDestination: function (e, node) {"," var offsetWidth = node.get('offsetWidth'),"," offsetHeight = node.get('offsetHeight');",""," // center"," return ["," (e.pageX - Math.round((offsetWidth / 2))),"," (e.pageY - Math.round((offsetHeight / 2)))"," ];"," }",""," },",""," // Static properties added onto host class"," ATTRS: {"," /**"," * Enable or disable clickable rail support."," *"," * @attribute clickableRail"," * @type {Boolean}"," * @default true"," */"," clickableRail: {"," value: true,"," validator: Y.Lang.isBoolean"," }"," }","","}, true);","","","}, '3.7.2', {\"requires\": [\"slider-base\"]});"];
_yuitest_coverage["build/clickable-rail/clickable-rail.js"].lines = {"1":0,"17":0,"18":0,"21":0,"33":0,"45":0,"49":0,"50":0,"60":0,"62":0,"73":0,"74":0,"77":0,"89":0,"90":0,"91":0,"105":0,"109":0,"116":0,"117":0,"118":0,"121":0,"124":0,"128":0,"132":0,"140":0,"143":0,"168":0,"182":0,"186":0};
_yuitest_coverage["build/clickable-rail/clickable-rail.js"].functions = {"ClickableRail:17":0,"_initClickableRail:32":0,"_bindClickableRail:59":0,"_unbindClickableRail:72":0,"_onRailMouseDown:88":0,"_defRailMouseDownFn:104":0,"_resolveThumb:161":0,"_getThumbDestination:181":0,"(anonymous 1):1":0};
_yuitest_coverage["build/clickable-rail/clickable-rail.js"].coveredLines = 30;
@@ -287,4 +287,4 @@ return [
}, true);
-}, '3.7.1', {"requires": ["slider-base"]});
+}, '3.7.2', {"requires": ["slider-base"]});
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/clickable-rail-debug.js b/lib/yuilib/3.7.2/build/clickable-rail/clickable-rail-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/clickable-rail/clickable-rail-debug.js
rename to lib/yuilib/3.7.2/build/clickable-rail/clickable-rail-debug.js
index 41bed47965e..925f03a9b85 100644
--- a/lib/yuilib/3.7.1/build/clickable-rail/clickable-rail-debug.js
+++ b/lib/yuilib/3.7.2/build/clickable-rail/clickable-rail-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -215,4 +215,4 @@ Y.ClickableRail = Y.mix(ClickableRail, {
}, true);
-}, '3.7.1', {"requires": ["slider-base"]});
+}, '3.7.2', {"requires": ["slider-base"]});
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/clickable-rail-min.js b/lib/yuilib/3.7.2/build/clickable-rail/clickable-rail-min.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/clickable-rail/clickable-rail-min.js
rename to lib/yuilib/3.7.2/build/clickable-rail/clickable-rail-min.js
index 108affc3787..c91d7a400f1 100644
--- a/lib/yuilib/3.7.1/build/clickable-rail/clickable-rail-min.js
+++ b/lib/yuilib/3.7.2/build/clickable-rail/clickable-rail-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("clickable-rail",function(e,t){function n(){this._initClickableRail()}e.ClickableRail=e.mix(n,{prototype:{_initClickableRail:function(){this._evtGuid=this._evtGuid||e.guid()+"|",this.publish("railMouseDown",{defaultFn:this._defRailMouseDownFn}),this.after("render",this._bindClickableRail),this.on("destroy",this._unbindClickableRail)},_bindClickableRail:function(){this._dd.addHandle(this.rail),this.rail.on(this._evtGuid+e.DD.Drag.START_EVENT,e.bind(this._onRailMouseDown,this))},_unbindClickableRail:function(){if(this.get("rendered")){var e=this.get("contentBox"),t=e.one("."+this.getClassName("rail"));t.detach(this.evtGuid+"*")}},_onRailMouseDown:function(e){this.get("clickableRail")&&!this.get("disabled")&&(this.fire("railMouseDown",{ev:e}),this.thumb.focus())},_defRailMouseDownFn:function(e){e=e.ev;var t=this._resolveThumb(e),n=this._key.xyIndex,r=parseFloat(this.get("length"),10),i,s,o;t&&(i=t.get("dragNode"),s=parseFloat(i.getStyle(this._key.dim),10),o=this._getThumbDestination(e,i),o=o[n]-this.rail.getXY()[n],o=Math.min(Math.max(o,0),r-s),this._uiMoveThumb(o,{source:"rail"}),e.target=this.thumb.one("img")||this.thumb,t._handleMouseDownEvent(e))},_resolveThumb:function(e){return this._dd},_getThumbDestination:function(e,t){var n=t.get("offsetWidth"),r=t.get("offsetHeight");return[e.pageX-Math.round(n/2),e.pageY-Math.round(r/2)]}},ATTRS:{clickableRail:{value:!0,validator:e.Lang.isBoolean}}},!0)},"3.7.1",{requires:["slider-base"]});
+YUI.add("clickable-rail",function(e,t){function n(){this._initClickableRail()}e.ClickableRail=e.mix(n,{prototype:{_initClickableRail:function(){this._evtGuid=this._evtGuid||e.guid()+"|",this.publish("railMouseDown",{defaultFn:this._defRailMouseDownFn}),this.after("render",this._bindClickableRail),this.on("destroy",this._unbindClickableRail)},_bindClickableRail:function(){this._dd.addHandle(this.rail),this.rail.on(this._evtGuid+e.DD.Drag.START_EVENT,e.bind(this._onRailMouseDown,this))},_unbindClickableRail:function(){if(this.get("rendered")){var e=this.get("contentBox"),t=e.one("."+this.getClassName("rail"));t.detach(this.evtGuid+"*")}},_onRailMouseDown:function(e){this.get("clickableRail")&&!this.get("disabled")&&(this.fire("railMouseDown",{ev:e}),this.thumb.focus())},_defRailMouseDownFn:function(e){e=e.ev;var t=this._resolveThumb(e),n=this._key.xyIndex,r=parseFloat(this.get("length"),10),i,s,o;t&&(i=t.get("dragNode"),s=parseFloat(i.getStyle(this._key.dim),10),o=this._getThumbDestination(e,i),o=o[n]-this.rail.getXY()[n],o=Math.min(Math.max(o,0),r-s),this._uiMoveThumb(o,{source:"rail"}),e.target=this.thumb.one("img")||this.thumb,t._handleMouseDownEvent(e))},_resolveThumb:function(e){return this._dd},_getThumbDestination:function(e,t){var n=t.get("offsetWidth"),r=t.get("offsetHeight");return[e.pageX-Math.round(n/2),e.pageY-Math.round(r/2)]}},ATTRS:{clickableRail:{value:!0,validator:e.Lang.isBoolean}}},!0)},"3.7.2",{requires:["slider-base"]});
diff --git a/lib/yuilib/3.7.1/build/clickable-rail/clickable-rail.js b/lib/yuilib/3.7.2/build/clickable-rail/clickable-rail.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/clickable-rail/clickable-rail.js
rename to lib/yuilib/3.7.2/build/clickable-rail/clickable-rail.js
index 41bed47965e..925f03a9b85 100644
--- a/lib/yuilib/3.7.1/build/clickable-rail/clickable-rail.js
+++ b/lib/yuilib/3.7.2/build/clickable-rail/clickable-rail.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -215,4 +215,4 @@ Y.ClickableRail = Y.mix(ClickableRail, {
}, true);
-}, '3.7.1', {"requires": ["slider-base"]});
+}, '3.7.2', {"requires": ["slider-base"]});
diff --git a/lib/yuilib/3.7.1/build/console-filters/assets/console-filters-core.css b/lib/yuilib/3.7.2/build/console-filters/assets/console-filters-core.css
similarity index 83%
rename from lib/yuilib/3.7.1/build/console-filters/assets/console-filters-core.css
rename to lib/yuilib/3.7.2/build/console-filters/assets/console-filters-core.css
index 4965a8a917e..a1b1d94ffa5 100644
--- a/lib/yuilib/3.7.1/build/console-filters/assets/console-filters-core.css
+++ b/lib/yuilib/3.7.2/build/console-filters/assets/console-filters-core.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/console/assets/skins/sam/console-filters-skin.css b/lib/yuilib/3.7.2/build/console-filters/assets/skins/sam/console-filters-skin.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/console/assets/skins/sam/console-filters-skin.css
rename to lib/yuilib/3.7.2/build/console-filters/assets/skins/sam/console-filters-skin.css
index 4937e09fc60..f137a936bd8 100644
--- a/lib/yuilib/3.7.1/build/console/assets/skins/sam/console-filters-skin.css
+++ b/lib/yuilib/3.7.2/build/console-filters/assets/skins/sam/console-filters-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/console-filters/assets/skins/sam/console-filters.css b/lib/yuilib/3.7.2/build/console-filters/assets/skins/sam/console-filters.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/console-filters/assets/skins/sam/console-filters.css
rename to lib/yuilib/3.7.2/build/console-filters/assets/skins/sam/console-filters.css
index fcf4ebbeba9..c515c6b6e67 100644
--- a/lib/yuilib/3.7.1/build/console-filters/assets/skins/sam/console-filters.css
+++ b/lib/yuilib/3.7.2/build/console-filters/assets/skins/sam/console-filters.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/console-filters/console-filters-coverage.js b/lib/yuilib/3.7.2/build/console-filters/console-filters-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/console-filters/console-filters-coverage.js
rename to lib/yuilib/3.7.2/build/console-filters/console-filters-coverage.js
index 10d1cca432b..63e00a38a1c 100644
--- a/lib/yuilib/3.7.1/build/console-filters/console-filters-coverage.js
+++ b/lib/yuilib/3.7.2/build/console-filters/console-filters-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/console-filters/console-filters.js"] = {
path: "build/console-filters/console-filters.js",
code: []
};
-_yuitest_coverage["build/console-filters/console-filters.js"].code=["YUI.add('console-filters', function (Y, NAME) {","","/**"," * Provides Plugin.ConsoleFilters plugin class.
"," *"," * This plugin adds the ability to control which Console entries display by filtering on category and source. Two groups of checkboxes are added to the Console footer, one for categories and the other for sources. Only those messages that match a checked category or source are displayed.
"," *"," * @module console-filters"," * @namespace Plugin"," * @class ConsoleFilters"," */","","// Some common strings and functions","var getCN = Y.ClassNameManager.getClassName,"," CONSOLE = 'console',"," FILTERS = 'filters',"," FILTER = 'filter',"," CATEGORY = 'category',"," SOURCE = 'source',"," CATEGORY_DOT = 'category.',"," SOURCE_DOT = 'source.',",""," HOST = 'host',"," CHECKED = 'checked',"," DEF_VISIBILITY = 'defaultVisibility',",""," DOT = '.',"," EMPTY = '',",""," C_BODY = DOT + Y.Console.CHROME_CLASSES.console_bd_class,"," C_FOOT = DOT + Y.Console.CHROME_CLASSES.console_ft_class,",""," SEL_CHECK = 'input[type=checkbox].',"," "," isString = Y.Lang.isString;","","function ConsoleFilters() {"," ConsoleFilters.superclass.constructor.apply(this,arguments);","}","","Y.namespace('Plugin').ConsoleFilters = Y.extend(ConsoleFilters, Y.Plugin.Base,","","// Y.Plugin.ConsoleFilters prototype","{"," /**"," * Collection of all log messages passed through since the plugin's"," * instantiation. This holds all messages regardless of filter status."," * Used as a single source of truth for repopulating the Console body when"," * filters are changed."," *"," * @property _entries"," * @type Array"," * @protected"," */"," _entries : null,",""," /**"," * Maximum number of entries to store in the message cache."," *"," * @property _cacheLimit"," * @type {Number}"," * @default Infinity"," * @protected"," */"," _cacheLimit : Number.POSITIVE_INFINITY,",""," /**"," * The container node created to house the category filters."," *"," * @property _categories"," * @type Node"," * @protected"," */"," _categories : null,",""," /**"," * The container node created to house the source filters."," *"," * @property _sources"," * @type Node"," * @protected"," */"," _sources : null,",""," /**"," * Initialize entries collection and attach listeners to host events and"," * methods."," *"," * @method initializer"," * @protected"," */"," initializer : function () {"," this._entries = [];",""," this.get(HOST).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);",""," if (this.get(HOST).get('rendered')) {"," this.renderUI();"," this.syncUI();"," this.bindUI();"," }",""," this.after(\"cacheLimitChange\", this._afterCacheLimitChange);"," },",""," /**"," * Removes the plugin UI and unwires events."," *"," * @method destructor"," * @protected"," */"," destructor : function () {"," //TODO: grab last {consoleLimit} entries and update the console with"," //them (no filtering)"," this._entries = [];",""," if (this._categories) {"," this._categories.remove();"," }"," if (this._sources) {"," this._sources.remove();"," }"," },",""," /**"," * Adds the category and source filter sections to the Console footer."," *"," * @method renderUI"," * @protected"," */"," renderUI : function () {"," var foot = this.get(HOST).get('contentBox').one(C_FOOT),"," html;",""," if (foot) {"," html = Y.Lang.sub("," ConsoleFilters.CATEGORIES_TEMPLATE,"," ConsoleFilters.CHROME_CLASSES);",""," this._categories = foot.appendChild(Y.Node.create(html));",""," html = Y.Lang.sub("," ConsoleFilters.SOURCES_TEMPLATE,"," ConsoleFilters.CHROME_CLASSES);",""," this._sources = foot.appendChild(Y.Node.create(html));"," }"," },",""," /**"," * Binds to checkbox click events and internal attribute change events to"," * maintain the UI state."," *"," * @method bindUI"," * @protected"," */"," bindUI : function () {"," this._categories.on('click', Y.bind(this._onCategoryCheckboxClick, this));",""," this._sources.on('click', Y.bind(this._onSourceCheckboxClick, this));"," "," this.after('categoryChange',this._afterCategoryChange);"," this.after('sourceChange', this._afterSourceChange);"," },",""," /**"," * Updates the UI to be in accordance with the current state of the plugin."," *"," * @method syncUI"," */"," syncUI : function () {"," Y.each(this.get(CATEGORY), function (v, k) {"," this._uiSetCheckbox(CATEGORY, k, v);"," }, this);",""," Y.each(this.get(SOURCE), function (v, k) {"," this._uiSetCheckbox(SOURCE, k, v);"," }, this);",""," this.refreshConsole();"," },",""," /**"," * Ensures a filter is set up for any new categories or sources and"," * collects the messages in _entries. If the message is stamped with a"," * category or source that is currently being filtered out, the message"," * will not pass to the Console's print buffer."," *"," * @method _onEntry"," * @param e {Event} the custom event object"," * @protected"," */"," _onEntry : function (e) {"," this._entries.push(e.message);"," "," var cat = CATEGORY_DOT + e.message.category,"," src = SOURCE_DOT + e.message.source,"," cat_filter = this.get(cat),"," src_filter = this.get(src),"," overLimit = this._entries.length - this._cacheLimit,"," visible;",""," if (overLimit > 0) {"," this._entries.splice(0, overLimit);"," }",""," if (cat_filter === undefined) {"," visible = this.get(DEF_VISIBILITY);"," this.set(cat, visible);"," cat_filter = visible;"," }",""," if (src_filter === undefined) {"," visible = this.get(DEF_VISIBILITY);"," this.set(src, visible);"," src_filter = visible;"," }"," "," if (!cat_filter || !src_filter) {"," e.preventDefault();"," }"," },",""," /**"," * Flushes the cached entries after a call to the Console's clearConsole()."," *"," * @method _afterClearConsole"," * @protected"," */"," _afterClearConsole : function () {"," this._entries = [];"," },",""," /**"," * Triggers the Console to update if a known category filter"," * changes value (e.g. visible => hidden). Updates the appropriate"," * checkbox's checked state if necessary."," *"," * @method _afterCategoryChange"," * @param e {Event} the attribute change event object"," * @protected"," */"," _afterCategoryChange : function (e) {"," var cat = e.subAttrName.replace(/category\\./, EMPTY),"," before = e.prevVal,"," after = e.newVal;",""," // Don't update the console for new categories"," if (!cat || before[cat] !== undefined) {"," this.refreshConsole();",""," this._filterBuffer();"," }",""," if (cat && !e.fromUI) {"," this._uiSetCheckbox(CATEGORY, cat, after[cat]);"," }"," },",""," /**"," * Triggers the Console to update if a known source filter"," * changes value (e.g. visible => hidden). Updates the appropriate"," * checkbox's checked state if necessary."," *"," * @method _afterSourceChange"," * @param e {Event} the attribute change event object"," * @protected"," */"," _afterSourceChange : function (e) {"," var src = e.subAttrName.replace(/source\\./, EMPTY),"," before = e.prevVal,"," after = e.newVal;",""," // Don't update the console for new sources"," if (!src || before[src] !== undefined) {"," this.refreshConsole();",""," this._filterBuffer();"," }",""," if (src && !e.fromUI) {"," this._uiSetCheckbox(SOURCE, src, after[src]);"," }"," },",""," /**"," * Flushes the Console's print buffer of any entries that have a category"," * or source that is currently being excluded."," *"," * @method _filterBuffer"," * @protected"," */"," _filterBuffer : function () {"," var cats = this.get(CATEGORY),"," srcs = this.get(SOURCE),"," buffer = this.get(HOST).buffer,"," start = null,"," i;",""," for (i = buffer.length - 1; i >= 0; --i) {"," if (!cats[buffer[i].category] || !srcs[buffer[i].source]) {"," start = start || i;"," } else if (start) {"," buffer.splice(i,(start - i));"," start = null;"," }"," }"," if (start) {"," buffer.splice(0,start + 1);"," }"," },",""," /**"," * Trims the cache of entries to the appropriate new length."," *"," * @method _afterCacheLimitChange "," * @param e {Event} the attribute change event object"," * @protected"," */"," _afterCacheLimitChange : function (e) {"," if (isFinite(e.newVal)) {"," var delta = this._entries.length - e.newVal;",""," if (delta > 0) {"," this._entries.splice(0,delta);"," }"," }"," },",""," /**"," * Repopulates the Console with entries appropriate to the current filter"," * settings."," *"," * @method refreshConsole"," */"," refreshConsole : function () {"," var entries = this._entries,"," host = this.get(HOST),"," body = host.get('contentBox').one(C_BODY),"," remaining = host.get('consoleLimit'),"," cats = this.get(CATEGORY),"," srcs = this.get(SOURCE),"," buffer = [],"," i,e;",""," if (body) {"," host._cancelPrintLoop();",""," // Evaluate all entries from latest to oldest"," for (i = entries.length - 1; i >= 0 && remaining >= 0; --i) {"," e = entries[i];"," if (cats[e.category] && srcs[e.source]) {"," buffer.unshift(e);"," --remaining;"," }"," }",""," body.setHTML(EMPTY);"," host.buffer = buffer;"," host.printBuffer();"," }"," },",""," /**"," * Updates the checked property of a filter checkbox of the specified type."," * If no checkbox is found for the input params, one is created."," *"," * @method _uiSetCheckbox"," * @param type {String} 'category' or 'source'"," * @param item {String} the name of the filter (e.g. 'info', 'event')"," * @param checked {Boolean} value to set the checkbox's checked property"," * @protected"," */"," _uiSetCheckbox : function (type, item, checked) {"," if (type && item) {"," var container = type === CATEGORY ?"," this._categories :"," this._sources,"," sel = SEL_CHECK + getCN(CONSOLE,FILTER,item),"," checkbox = container.one(sel),"," host;"," "," if (!checkbox) {"," host = this.get(HOST);",""," this._createCheckbox(container, item);",""," checkbox = container.one(sel);",""," host._uiSetHeight(host.get('height'));"," }"," "," checkbox.set(CHECKED, checked);"," }"," },",""," /**"," * Passes checkbox clicks on to the category attribute."," *"," * @method _onCategoryCheckboxClick"," * @param e {Event} the DOM event"," * @protected"," */"," _onCategoryCheckboxClick : function (e) {"," var t = e.target, cat;",""," if (t.hasClass(ConsoleFilters.CHROME_CLASSES.filter)) {"," cat = t.get('value');"," if (cat && cat in this.get(CATEGORY)) {"," this.set(CATEGORY_DOT + cat, t.get(CHECKED), { fromUI: true });"," }"," }"," },",""," /**"," * Passes checkbox clicks on to the source attribute."," *"," * @method _onSourceCheckboxClick"," * @param e {Event} the DOM event"," * @protected"," */"," _onSourceCheckboxClick : function (e) {"," var t = e.target, src;",""," if (t.hasClass(ConsoleFilters.CHROME_CLASSES.filter)) {"," src = t.get('value');"," if (src && src in this.get(SOURCE)) {"," this.set(SOURCE_DOT + src, t.get(CHECKED), { fromUI: true });"," }"," }"," },",""," /**"," * Hides any number of categories from the UI. Convenience method for"," * myConsole.filter.set('category.foo', false); set('category.bar', false);"," * and so on."," *"," * @method hideCategory"," * @param cat* {String} 1..n categories to filter out of the UI"," */"," hideCategory : function (cat, multiple) {"," if (isString(multiple)) {"," Y.Array.each(arguments, this.hideCategory, this);"," } else {"," this.set(CATEGORY_DOT + cat, false);"," }"," },",""," /**"," * Shows any number of categories in the UI. Convenience method for"," * myConsole.filter.set('category.foo', true); set('category.bar', true);"," * and so on."," *"," * @method showCategory"," * @param cat* {String} 1..n categories to allow to display in the UI"," */"," showCategory : function (cat, multiple) {"," if (isString(multiple)) {"," Y.Array.each(arguments, this.showCategory, this);"," } else {"," this.set(CATEGORY_DOT + cat, true);"," }"," },",""," /**"," * Hides any number of sources from the UI. Convenience method for"," * myConsole.filter.set('source.foo', false); set('source.bar', false);"," * and so on."," *"," * @method hideSource"," * @param src* {String} 1..n sources to filter out of the UI"," */"," hideSource : function (src, multiple) {"," if (isString(multiple)) {"," Y.Array.each(arguments, this.hideSource, this);"," } else {"," this.set(SOURCE_DOT + src, false);"," }"," },",""," /**"," * Shows any number of sources in the UI. Convenience method for"," * myConsole.filter.set('source.foo', true); set('source.bar', true);"," * and so on."," *"," * @method showSource"," * @param src* {String} 1..n sources to allow to display in the UI"," */"," showSource : function (src, multiple) {"," if (isString(multiple)) {"," Y.Array.each(arguments, this.showSource, this);"," } else {"," this.set(SOURCE_DOT + src, true);"," }"," },",""," /**"," * Creates a checkbox and label from the ConsoleFilters.FILTER_TEMPLATE for"," * the provided type and name. The checkbox and label are appended to the"," * container node passes as the first arg."," *"," * @method _createCheckbox"," * @param container {Node} the parentNode of the new checkbox and label"," * @param name {String} the identifier of the filter"," * @protected"," */"," _createCheckbox : function (container, name) {"," var info = Y.merge(ConsoleFilters.CHROME_CLASSES, {"," filter_name : name,"," filter_class : getCN(CONSOLE, FILTER, name)"," }),"," node = Y.Node.create("," Y.Lang.sub(ConsoleFilters.FILTER_TEMPLATE, info));",""," container.appendChild(node);"," },",""," /**"," * Validates category updates are objects and the subattribute is not too"," * deep."," *"," * @method _validateCategory"," * @param cat {String} the new category:visibility map"," * @param v {String} the subattribute path updated"," * @return Boolean"," * @protected"," */"," _validateCategory : function (cat, v) {"," return Y.Lang.isObject(v,true) && cat.split(/\\./).length < 3;"," },",""," /**"," * Validates source updates are objects and the subattribute is not too"," * deep."," *"," * @method _validateSource"," * @param cat {String} the new source:visibility map"," * @param v {String} the subattribute path updated"," * @return Boolean"," * @protected"," */"," _validateSource : function (src, v) {"," return Y.Lang.isObject(v,true) && src.split(/\\./).length < 3;"," },",""," /**"," * Setter method for cacheLimit attribute. Basically a validator to ensure"," * numeric input."," *"," * @method _setCacheLimit"," * @param v {Number} Maximum number of entries"," * @return {Number}"," * @protected"," */"," _setCacheLimit: function (v) {"," if (Y.Lang.isNumber(v)) {"," this._cacheLimit = v;"," return v;"," } else {"," return Y.Attribute.INVALID_VALUE;"," }"," }","},","","// Y.Plugin.ConsoleFilters static properties","{"," /**"," * Plugin name."," *"," * @property NAME"," * @type String"," * @static"," * @default 'consoleFilters'"," */"," NAME : 'consoleFilters',",""," /**"," * The namespace hung off the host object that this plugin will inhabit."," *"," * @property NS"," * @type String"," * @static"," * @default 'filter'"," */"," NS : FILTER,",""," /**"," * Markup template used to create the container for the category filters."," *"," * @property CATEGORIES_TEMPLATE"," * @type String"," * @static"," */"," CATEGORIES_TEMPLATE :"," '',",""," /**"," * Markup template used to create the container for the source filters."," *"," * @property SOURCES_TEMPLATE"," * @type String"," * @static"," */"," SOURCES_TEMPLATE :"," '',",""," /**"," * Markup template used to create the category and source filter checkboxes."," *"," * @property FILTER_TEMPLATE"," * @type String"," * @static"," */"," FILTER_TEMPLATE :"," // IE8 and FF3 don't permit breaking _between_ nowrap elements. IE8"," // doesn't understand (non spec) wbr tag, nor does it create text nodes"," // for spaces in innerHTML strings. The thin-space entity suffices to"," // create a breakable point."," ' ',",""," /** "," * Classnames used by the templates when creating nodes."," *"," * @property CHROME_CLASSES"," * @type Object"," * @static"," * @protected"," */"," CHROME_CLASSES : {"," categories : getCN(CONSOLE,FILTERS,'categories'),"," sources : getCN(CONSOLE,FILTERS,'sources'),"," category : getCN(CONSOLE,FILTER,CATEGORY),"," source : getCN(CONSOLE,FILTER,SOURCE),"," filter : getCN(CONSOLE,FILTER),"," filter_label : getCN(CONSOLE,FILTER,'label')"," },",""," ATTRS : {"," /**"," * Default visibility applied to new categories and sources."," *"," * @attribute defaultVisibility"," * @type {Boolean}"," * @default true"," */"," defaultVisibility : {"," value : true,"," validator : Y.Lang.isBoolean"," },",""," /**"," * Map of entry categories to their visibility status. Update a"," * particular category's visibility by setting the subattribute to true"," * (visible) or false (hidden).
"," *"," * For example, yconsole.filter.set('category.info', false) to hide"," * log entries with the category/logLevel of 'info'.
"," *"," * Similarly, yconsole.filter.get('category.warn') will return a"," * boolean indicating whether that category is currently being included"," * in the UI.
"," *"," * Unlike the YUI instance configuration's logInclude and logExclude"," * properties, filtered entries are only hidden from the UI, but"," * can be made visible again.
"," *"," * @attribute category"," * @type Object"," */"," category : {"," value : {},"," validator : function (v,k) {"," return this._validateCategory(k,v);"," }"," },",""," /**"," * Map of entry sources to their visibility status. Update a"," * particular sources's visibility by setting the subattribute to true"," * (visible) or false (hidden).
"," *"," * For example, yconsole.filter.set('sources.slider', false) to hide"," * log entries originating from Y.Slider.
"," *"," * @attribute source"," * @type Object"," */"," source : {"," value : {},"," validator : function (v,k) {"," return this._validateSource(k,v);"," }"," },",""," /**"," * Maximum number of entries to store in the message cache. Use this to"," * limit the memory footprint in environments with heavy log usage."," * By default, there is no limit (Number.POSITIVE_INFINITY)."," *"," * @attribute cacheLimit"," * @type {Number}"," * @default Number.POSITIVE_INFINITY"," */"," cacheLimit : {"," value : Number.POSITIVE_INFINITY,"," setter : function (v) {"," return this._setCacheLimit(v);"," }"," }"," }","});","","","}, '3.7.1', {\"requires\": [\"plugin\", \"console\"], \"skinnable\": true});"];
+_yuitest_coverage["build/console-filters/console-filters.js"].code=["YUI.add('console-filters', function (Y, NAME) {","","/**"," * Provides Plugin.ConsoleFilters plugin class.
"," *"," * This plugin adds the ability to control which Console entries display by filtering on category and source. Two groups of checkboxes are added to the Console footer, one for categories and the other for sources. Only those messages that match a checked category or source are displayed.
"," *"," * @module console-filters"," * @namespace Plugin"," * @class ConsoleFilters"," */","","// Some common strings and functions","var getCN = Y.ClassNameManager.getClassName,"," CONSOLE = 'console',"," FILTERS = 'filters',"," FILTER = 'filter',"," CATEGORY = 'category',"," SOURCE = 'source',"," CATEGORY_DOT = 'category.',"," SOURCE_DOT = 'source.',",""," HOST = 'host',"," CHECKED = 'checked',"," DEF_VISIBILITY = 'defaultVisibility',",""," DOT = '.',"," EMPTY = '',",""," C_BODY = DOT + Y.Console.CHROME_CLASSES.console_bd_class,"," C_FOOT = DOT + Y.Console.CHROME_CLASSES.console_ft_class,",""," SEL_CHECK = 'input[type=checkbox].',"," "," isString = Y.Lang.isString;","","function ConsoleFilters() {"," ConsoleFilters.superclass.constructor.apply(this,arguments);","}","","Y.namespace('Plugin').ConsoleFilters = Y.extend(ConsoleFilters, Y.Plugin.Base,","","// Y.Plugin.ConsoleFilters prototype","{"," /**"," * Collection of all log messages passed through since the plugin's"," * instantiation. This holds all messages regardless of filter status."," * Used as a single source of truth for repopulating the Console body when"," * filters are changed."," *"," * @property _entries"," * @type Array"," * @protected"," */"," _entries : null,",""," /**"," * Maximum number of entries to store in the message cache."," *"," * @property _cacheLimit"," * @type {Number}"," * @default Infinity"," * @protected"," */"," _cacheLimit : Number.POSITIVE_INFINITY,",""," /**"," * The container node created to house the category filters."," *"," * @property _categories"," * @type Node"," * @protected"," */"," _categories : null,",""," /**"," * The container node created to house the source filters."," *"," * @property _sources"," * @type Node"," * @protected"," */"," _sources : null,",""," /**"," * Initialize entries collection and attach listeners to host events and"," * methods."," *"," * @method initializer"," * @protected"," */"," initializer : function () {"," this._entries = [];",""," this.get(HOST).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);",""," if (this.get(HOST).get('rendered')) {"," this.renderUI();"," this.syncUI();"," this.bindUI();"," }",""," this.after(\"cacheLimitChange\", this._afterCacheLimitChange);"," },",""," /**"," * Removes the plugin UI and unwires events."," *"," * @method destructor"," * @protected"," */"," destructor : function () {"," //TODO: grab last {consoleLimit} entries and update the console with"," //them (no filtering)"," this._entries = [];",""," if (this._categories) {"," this._categories.remove();"," }"," if (this._sources) {"," this._sources.remove();"," }"," },",""," /**"," * Adds the category and source filter sections to the Console footer."," *"," * @method renderUI"," * @protected"," */"," renderUI : function () {"," var foot = this.get(HOST).get('contentBox').one(C_FOOT),"," html;",""," if (foot) {"," html = Y.Lang.sub("," ConsoleFilters.CATEGORIES_TEMPLATE,"," ConsoleFilters.CHROME_CLASSES);",""," this._categories = foot.appendChild(Y.Node.create(html));",""," html = Y.Lang.sub("," ConsoleFilters.SOURCES_TEMPLATE,"," ConsoleFilters.CHROME_CLASSES);",""," this._sources = foot.appendChild(Y.Node.create(html));"," }"," },",""," /**"," * Binds to checkbox click events and internal attribute change events to"," * maintain the UI state."," *"," * @method bindUI"," * @protected"," */"," bindUI : function () {"," this._categories.on('click', Y.bind(this._onCategoryCheckboxClick, this));",""," this._sources.on('click', Y.bind(this._onSourceCheckboxClick, this));"," "," this.after('categoryChange',this._afterCategoryChange);"," this.after('sourceChange', this._afterSourceChange);"," },",""," /**"," * Updates the UI to be in accordance with the current state of the plugin."," *"," * @method syncUI"," */"," syncUI : function () {"," Y.each(this.get(CATEGORY), function (v, k) {"," this._uiSetCheckbox(CATEGORY, k, v);"," }, this);",""," Y.each(this.get(SOURCE), function (v, k) {"," this._uiSetCheckbox(SOURCE, k, v);"," }, this);",""," this.refreshConsole();"," },",""," /**"," * Ensures a filter is set up for any new categories or sources and"," * collects the messages in _entries. If the message is stamped with a"," * category or source that is currently being filtered out, the message"," * will not pass to the Console's print buffer."," *"," * @method _onEntry"," * @param e {Event} the custom event object"," * @protected"," */"," _onEntry : function (e) {"," this._entries.push(e.message);"," "," var cat = CATEGORY_DOT + e.message.category,"," src = SOURCE_DOT + e.message.source,"," cat_filter = this.get(cat),"," src_filter = this.get(src),"," overLimit = this._entries.length - this._cacheLimit,"," visible;",""," if (overLimit > 0) {"," this._entries.splice(0, overLimit);"," }",""," if (cat_filter === undefined) {"," visible = this.get(DEF_VISIBILITY);"," this.set(cat, visible);"," cat_filter = visible;"," }",""," if (src_filter === undefined) {"," visible = this.get(DEF_VISIBILITY);"," this.set(src, visible);"," src_filter = visible;"," }"," "," if (!cat_filter || !src_filter) {"," e.preventDefault();"," }"," },",""," /**"," * Flushes the cached entries after a call to the Console's clearConsole()."," *"," * @method _afterClearConsole"," * @protected"," */"," _afterClearConsole : function () {"," this._entries = [];"," },",""," /**"," * Triggers the Console to update if a known category filter"," * changes value (e.g. visible => hidden). Updates the appropriate"," * checkbox's checked state if necessary."," *"," * @method _afterCategoryChange"," * @param e {Event} the attribute change event object"," * @protected"," */"," _afterCategoryChange : function (e) {"," var cat = e.subAttrName.replace(/category\\./, EMPTY),"," before = e.prevVal,"," after = e.newVal;",""," // Don't update the console for new categories"," if (!cat || before[cat] !== undefined) {"," this.refreshConsole();",""," this._filterBuffer();"," }",""," if (cat && !e.fromUI) {"," this._uiSetCheckbox(CATEGORY, cat, after[cat]);"," }"," },",""," /**"," * Triggers the Console to update if a known source filter"," * changes value (e.g. visible => hidden). Updates the appropriate"," * checkbox's checked state if necessary."," *"," * @method _afterSourceChange"," * @param e {Event} the attribute change event object"," * @protected"," */"," _afterSourceChange : function (e) {"," var src = e.subAttrName.replace(/source\\./, EMPTY),"," before = e.prevVal,"," after = e.newVal;",""," // Don't update the console for new sources"," if (!src || before[src] !== undefined) {"," this.refreshConsole();",""," this._filterBuffer();"," }",""," if (src && !e.fromUI) {"," this._uiSetCheckbox(SOURCE, src, after[src]);"," }"," },",""," /**"," * Flushes the Console's print buffer of any entries that have a category"," * or source that is currently being excluded."," *"," * @method _filterBuffer"," * @protected"," */"," _filterBuffer : function () {"," var cats = this.get(CATEGORY),"," srcs = this.get(SOURCE),"," buffer = this.get(HOST).buffer,"," start = null,"," i;",""," for (i = buffer.length - 1; i >= 0; --i) {"," if (!cats[buffer[i].category] || !srcs[buffer[i].source]) {"," start = start || i;"," } else if (start) {"," buffer.splice(i,(start - i));"," start = null;"," }"," }"," if (start) {"," buffer.splice(0,start + 1);"," }"," },",""," /**"," * Trims the cache of entries to the appropriate new length."," *"," * @method _afterCacheLimitChange "," * @param e {Event} the attribute change event object"," * @protected"," */"," _afterCacheLimitChange : function (e) {"," if (isFinite(e.newVal)) {"," var delta = this._entries.length - e.newVal;",""," if (delta > 0) {"," this._entries.splice(0,delta);"," }"," }"," },",""," /**"," * Repopulates the Console with entries appropriate to the current filter"," * settings."," *"," * @method refreshConsole"," */"," refreshConsole : function () {"," var entries = this._entries,"," host = this.get(HOST),"," body = host.get('contentBox').one(C_BODY),"," remaining = host.get('consoleLimit'),"," cats = this.get(CATEGORY),"," srcs = this.get(SOURCE),"," buffer = [],"," i,e;",""," if (body) {"," host._cancelPrintLoop();",""," // Evaluate all entries from latest to oldest"," for (i = entries.length - 1; i >= 0 && remaining >= 0; --i) {"," e = entries[i];"," if (cats[e.category] && srcs[e.source]) {"," buffer.unshift(e);"," --remaining;"," }"," }",""," body.setHTML(EMPTY);"," host.buffer = buffer;"," host.printBuffer();"," }"," },",""," /**"," * Updates the checked property of a filter checkbox of the specified type."," * If no checkbox is found for the input params, one is created."," *"," * @method _uiSetCheckbox"," * @param type {String} 'category' or 'source'"," * @param item {String} the name of the filter (e.g. 'info', 'event')"," * @param checked {Boolean} value to set the checkbox's checked property"," * @protected"," */"," _uiSetCheckbox : function (type, item, checked) {"," if (type && item) {"," var container = type === CATEGORY ?"," this._categories :"," this._sources,"," sel = SEL_CHECK + getCN(CONSOLE,FILTER,item),"," checkbox = container.one(sel),"," host;"," "," if (!checkbox) {"," host = this.get(HOST);",""," this._createCheckbox(container, item);",""," checkbox = container.one(sel);",""," host._uiSetHeight(host.get('height'));"," }"," "," checkbox.set(CHECKED, checked);"," }"," },",""," /**"," * Passes checkbox clicks on to the category attribute."," *"," * @method _onCategoryCheckboxClick"," * @param e {Event} the DOM event"," * @protected"," */"," _onCategoryCheckboxClick : function (e) {"," var t = e.target, cat;",""," if (t.hasClass(ConsoleFilters.CHROME_CLASSES.filter)) {"," cat = t.get('value');"," if (cat && cat in this.get(CATEGORY)) {"," this.set(CATEGORY_DOT + cat, t.get(CHECKED), { fromUI: true });"," }"," }"," },",""," /**"," * Passes checkbox clicks on to the source attribute."," *"," * @method _onSourceCheckboxClick"," * @param e {Event} the DOM event"," * @protected"," */"," _onSourceCheckboxClick : function (e) {"," var t = e.target, src;",""," if (t.hasClass(ConsoleFilters.CHROME_CLASSES.filter)) {"," src = t.get('value');"," if (src && src in this.get(SOURCE)) {"," this.set(SOURCE_DOT + src, t.get(CHECKED), { fromUI: true });"," }"," }"," },",""," /**"," * Hides any number of categories from the UI. Convenience method for"," * myConsole.filter.set('category.foo', false); set('category.bar', false);"," * and so on."," *"," * @method hideCategory"," * @param cat* {String} 1..n categories to filter out of the UI"," */"," hideCategory : function (cat, multiple) {"," if (isString(multiple)) {"," Y.Array.each(arguments, this.hideCategory, this);"," } else {"," this.set(CATEGORY_DOT + cat, false);"," }"," },",""," /**"," * Shows any number of categories in the UI. Convenience method for"," * myConsole.filter.set('category.foo', true); set('category.bar', true);"," * and so on."," *"," * @method showCategory"," * @param cat* {String} 1..n categories to allow to display in the UI"," */"," showCategory : function (cat, multiple) {"," if (isString(multiple)) {"," Y.Array.each(arguments, this.showCategory, this);"," } else {"," this.set(CATEGORY_DOT + cat, true);"," }"," },",""," /**"," * Hides any number of sources from the UI. Convenience method for"," * myConsole.filter.set('source.foo', false); set('source.bar', false);"," * and so on."," *"," * @method hideSource"," * @param src* {String} 1..n sources to filter out of the UI"," */"," hideSource : function (src, multiple) {"," if (isString(multiple)) {"," Y.Array.each(arguments, this.hideSource, this);"," } else {"," this.set(SOURCE_DOT + src, false);"," }"," },",""," /**"," * Shows any number of sources in the UI. Convenience method for"," * myConsole.filter.set('source.foo', true); set('source.bar', true);"," * and so on."," *"," * @method showSource"," * @param src* {String} 1..n sources to allow to display in the UI"," */"," showSource : function (src, multiple) {"," if (isString(multiple)) {"," Y.Array.each(arguments, this.showSource, this);"," } else {"," this.set(SOURCE_DOT + src, true);"," }"," },",""," /**"," * Creates a checkbox and label from the ConsoleFilters.FILTER_TEMPLATE for"," * the provided type and name. The checkbox and label are appended to the"," * container node passes as the first arg."," *"," * @method _createCheckbox"," * @param container {Node} the parentNode of the new checkbox and label"," * @param name {String} the identifier of the filter"," * @protected"," */"," _createCheckbox : function (container, name) {"," var info = Y.merge(ConsoleFilters.CHROME_CLASSES, {"," filter_name : name,"," filter_class : getCN(CONSOLE, FILTER, name)"," }),"," node = Y.Node.create("," Y.Lang.sub(ConsoleFilters.FILTER_TEMPLATE, info));",""," container.appendChild(node);"," },",""," /**"," * Validates category updates are objects and the subattribute is not too"," * deep."," *"," * @method _validateCategory"," * @param cat {String} the new category:visibility map"," * @param v {String} the subattribute path updated"," * @return Boolean"," * @protected"," */"," _validateCategory : function (cat, v) {"," return Y.Lang.isObject(v,true) && cat.split(/\\./).length < 3;"," },",""," /**"," * Validates source updates are objects and the subattribute is not too"," * deep."," *"," * @method _validateSource"," * @param cat {String} the new source:visibility map"," * @param v {String} the subattribute path updated"," * @return Boolean"," * @protected"," */"," _validateSource : function (src, v) {"," return Y.Lang.isObject(v,true) && src.split(/\\./).length < 3;"," },",""," /**"," * Setter method for cacheLimit attribute. Basically a validator to ensure"," * numeric input."," *"," * @method _setCacheLimit"," * @param v {Number} Maximum number of entries"," * @return {Number}"," * @protected"," */"," _setCacheLimit: function (v) {"," if (Y.Lang.isNumber(v)) {"," this._cacheLimit = v;"," return v;"," } else {"," return Y.Attribute.INVALID_VALUE;"," }"," }","},","","// Y.Plugin.ConsoleFilters static properties","{"," /**"," * Plugin name."," *"," * @property NAME"," * @type String"," * @static"," * @default 'consoleFilters'"," */"," NAME : 'consoleFilters',",""," /**"," * The namespace hung off the host object that this plugin will inhabit."," *"," * @property NS"," * @type String"," * @static"," * @default 'filter'"," */"," NS : FILTER,",""," /**"," * Markup template used to create the container for the category filters."," *"," * @property CATEGORIES_TEMPLATE"," * @type String"," * @static"," */"," CATEGORIES_TEMPLATE :"," '',",""," /**"," * Markup template used to create the container for the source filters."," *"," * @property SOURCES_TEMPLATE"," * @type String"," * @static"," */"," SOURCES_TEMPLATE :"," '',",""," /**"," * Markup template used to create the category and source filter checkboxes."," *"," * @property FILTER_TEMPLATE"," * @type String"," * @static"," */"," FILTER_TEMPLATE :"," // IE8 and FF3 don't permit breaking _between_ nowrap elements. IE8"," // doesn't understand (non spec) wbr tag, nor does it create text nodes"," // for spaces in innerHTML strings. The thin-space entity suffices to"," // create a breakable point."," ' ',",""," /** "," * Classnames used by the templates when creating nodes."," *"," * @property CHROME_CLASSES"," * @type Object"," * @static"," * @protected"," */"," CHROME_CLASSES : {"," categories : getCN(CONSOLE,FILTERS,'categories'),"," sources : getCN(CONSOLE,FILTERS,'sources'),"," category : getCN(CONSOLE,FILTER,CATEGORY),"," source : getCN(CONSOLE,FILTER,SOURCE),"," filter : getCN(CONSOLE,FILTER),"," filter_label : getCN(CONSOLE,FILTER,'label')"," },",""," ATTRS : {"," /**"," * Default visibility applied to new categories and sources."," *"," * @attribute defaultVisibility"," * @type {Boolean}"," * @default true"," */"," defaultVisibility : {"," value : true,"," validator : Y.Lang.isBoolean"," },",""," /**"," * Map of entry categories to their visibility status. Update a"," * particular category's visibility by setting the subattribute to true"," * (visible) or false (hidden).
"," *"," * For example, yconsole.filter.set('category.info', false) to hide"," * log entries with the category/logLevel of 'info'.
"," *"," * Similarly, yconsole.filter.get('category.warn') will return a"," * boolean indicating whether that category is currently being included"," * in the UI.
"," *"," * Unlike the YUI instance configuration's logInclude and logExclude"," * properties, filtered entries are only hidden from the UI, but"," * can be made visible again.
"," *"," * @attribute category"," * @type Object"," */"," category : {"," value : {},"," validator : function (v,k) {"," return this._validateCategory(k,v);"," }"," },",""," /**"," * Map of entry sources to their visibility status. Update a"," * particular sources's visibility by setting the subattribute to true"," * (visible) or false (hidden).
"," *"," * For example, yconsole.filter.set('sources.slider', false) to hide"," * log entries originating from Y.Slider.
"," *"," * @attribute source"," * @type Object"," */"," source : {"," value : {},"," validator : function (v,k) {"," return this._validateSource(k,v);"," }"," },",""," /**"," * Maximum number of entries to store in the message cache. Use this to"," * limit the memory footprint in environments with heavy log usage."," * By default, there is no limit (Number.POSITIVE_INFINITY)."," *"," * @attribute cacheLimit"," * @type {Number}"," * @default Number.POSITIVE_INFINITY"," */"," cacheLimit : {"," value : Number.POSITIVE_INFINITY,"," setter : function (v) {"," return this._setCacheLimit(v);"," }"," }"," }","});","","","}, '3.7.2', {\"requires\": [\"plugin\", \"console\"], \"skinnable\": true});"];
_yuitest_coverage["build/console-filters/console-filters.js"].lines = {"1":0,"14":0,"37":0,"38":0,"41":0,"93":0,"95":0,"97":0,"98":0,"99":0,"101":0,"103":0,"104":0,"105":0,"106":0,"109":0,"121":0,"123":0,"124":0,"126":0,"127":0,"138":0,"141":0,"142":0,"146":0,"148":0,"152":0,"164":0,"166":0,"168":0,"169":0,"178":0,"179":0,"182":0,"183":0,"186":0,"200":0,"202":0,"209":0,"210":0,"213":0,"214":0,"215":0,"216":0,"219":0,"220":0,"221":0,"222":0,"225":0,"226":0,"237":0,"250":0,"255":0,"256":0,"258":0,"261":0,"262":0,"276":0,"281":0,"282":0,"284":0,"287":0,"288":0,"300":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"314":0,"315":0,"327":0,"328":0,"330":0,"331":0,"343":0,"352":0,"353":0,"356":0,"357":0,"358":0,"359":0,"360":0,"364":0,"365":0,"366":0,"381":0,"382":0,"389":0,"390":0,"392":0,"394":0,"396":0,"399":0,"411":0,"413":0,"414":0,"415":0,"416":0,"429":0,"431":0,"432":0,"433":0,"434":0,"448":0,"449":0,"451":0,"464":0,"465":0,"467":0,"480":0,"481":0,"483":0,"496":0,"497":0,"499":0,"514":0,"521":0,"535":0,"549":0,"562":0,"563":0,"564":0,"566":0,"682":0,"700":0,"716":0};
_yuitest_coverage["build/console-filters/console-filters.js"].functions = {"ConsoleFilters:37":0,"initializer:92":0,"destructor:118":0,"renderUI:137":0,"bindUI:163":0,"(anonymous 2):178":0,"(anonymous 3):182":0,"syncUI:177":0,"_onEntry:199":0,"_afterClearConsole:236":0,"_afterCategoryChange:249":0,"_afterSourceChange:275":0,"_filterBuffer:299":0,"_afterCacheLimitChange:326":0,"refreshConsole:342":0,"_uiSetCheckbox:380":0,"_onCategoryCheckboxClick:410":0,"_onSourceCheckboxClick:428":0,"hideCategory:447":0,"showCategory:463":0,"hideSource:479":0,"showSource:495":0,"_createCheckbox:513":0,"_validateCategory:534":0,"_validateSource:548":0,"_setCacheLimit:561":0,"validator:681":0,"validator:699":0,"setter:715":0,"(anonymous 1):1":0};
_yuitest_coverage["build/console-filters/console-filters.js"].coveredLines = 128;
@@ -917,4 +917,4 @@ return this._setCacheLimit(v);
});
-}, '3.7.1', {"requires": ["plugin", "console"], "skinnable": true});
+}, '3.7.2', {"requires": ["plugin", "console"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/console-filters/console-filters-debug.js b/lib/yuilib/3.7.2/build/console-filters/console-filters-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/console-filters/console-filters-debug.js
rename to lib/yuilib/3.7.2/build/console-filters/console-filters-debug.js
index 100277bccb5..d502e59a8b8 100644
--- a/lib/yuilib/3.7.1/build/console-filters/console-filters-debug.js
+++ b/lib/yuilib/3.7.2/build/console-filters/console-filters-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -726,4 +726,4 @@ Y.namespace('Plugin').ConsoleFilters = Y.extend(ConsoleFilters, Y.Plugin.Base,
});
-}, '3.7.1', {"requires": ["plugin", "console"], "skinnable": true});
+}, '3.7.2', {"requires": ["plugin", "console"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/console-filters/console-filters-min.js b/lib/yuilib/3.7.2/build/console-filters/console-filters-min.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/console-filters/console-filters-min.js
rename to lib/yuilib/3.7.2/build/console-filters/console-filters-min.js
index d39fed141c7..8423be02bdb 100644
--- a/lib/yuilib/3.7.1/build/console-filters/console-filters-min.js
+++ b/lib/yuilib/3.7.2/build/console-filters/console-filters-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 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.7.1",{requires:["plugin","console"],skinnable:!0});
+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.7.2",{requires:["plugin","console"],skinnable:!0});
diff --git a/lib/yuilib/3.7.1/build/console-filters/console-filters.js b/lib/yuilib/3.7.2/build/console-filters/console-filters.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/console-filters/console-filters.js
rename to lib/yuilib/3.7.2/build/console-filters/console-filters.js
index 100277bccb5..d502e59a8b8 100644
--- a/lib/yuilib/3.7.1/build/console-filters/console-filters.js
+++ b/lib/yuilib/3.7.2/build/console-filters/console-filters.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -726,4 +726,4 @@ Y.namespace('Plugin').ConsoleFilters = Y.extend(ConsoleFilters, Y.Plugin.Base,
});
-}, '3.7.1', {"requires": ["plugin", "console"], "skinnable": true});
+}, '3.7.2', {"requires": ["plugin", "console"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/console/assets/console-core.css b/lib/yuilib/3.7.2/build/console/assets/console-core.css
similarity index 83%
rename from lib/yuilib/3.7.1/build/console/assets/console-core.css
rename to lib/yuilib/3.7.2/build/console/assets/console-core.css
index 4965a8a917e..a1b1d94ffa5 100644
--- a/lib/yuilib/3.7.1/build/console/assets/console-core.css
+++ b/lib/yuilib/3.7.2/build/console/assets/console-core.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/console/assets/console-filters-core.css b/lib/yuilib/3.7.2/build/console/assets/console-filters-core.css
similarity index 83%
rename from lib/yuilib/3.7.1/build/console/assets/console-filters-core.css
rename to lib/yuilib/3.7.2/build/console/assets/console-filters-core.css
index 4965a8a917e..a1b1d94ffa5 100644
--- a/lib/yuilib/3.7.1/build/console/assets/console-filters-core.css
+++ b/lib/yuilib/3.7.2/build/console/assets/console-filters-core.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/console/assets/skins/sam/bg.png b/lib/yuilib/3.7.2/build/console/assets/skins/sam/bg.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/console/assets/skins/sam/bg.png
rename to lib/yuilib/3.7.2/build/console/assets/skins/sam/bg.png
diff --git a/lib/yuilib/3.7.1/build/console-filters/assets/skins/sam/console-filters-skin.css b/lib/yuilib/3.7.2/build/console/assets/skins/sam/console-filters-skin.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/console-filters/assets/skins/sam/console-filters-skin.css
rename to lib/yuilib/3.7.2/build/console/assets/skins/sam/console-filters-skin.css
index 4937e09fc60..f137a936bd8 100644
--- a/lib/yuilib/3.7.1/build/console-filters/assets/skins/sam/console-filters-skin.css
+++ b/lib/yuilib/3.7.2/build/console/assets/skins/sam/console-filters-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/console/assets/skins/sam/console-filters.css b/lib/yuilib/3.7.2/build/console/assets/skins/sam/console-filters.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/console/assets/skins/sam/console-filters.css
rename to lib/yuilib/3.7.2/build/console/assets/skins/sam/console-filters.css
index 99fe2fb0e7d..3492564f867 100644
--- a/lib/yuilib/3.7.1/build/console/assets/skins/sam/console-filters.css
+++ b/lib/yuilib/3.7.2/build/console/assets/skins/sam/console-filters.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/console/assets/skins/sam/console-skin.css b/lib/yuilib/3.7.2/build/console/assets/skins/sam/console-skin.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/console/assets/skins/sam/console-skin.css
rename to lib/yuilib/3.7.2/build/console/assets/skins/sam/console-skin.css
index 1da5821541c..a3dabfbb7d1 100644
--- a/lib/yuilib/3.7.1/build/console/assets/skins/sam/console-skin.css
+++ b/lib/yuilib/3.7.2/build/console/assets/skins/sam/console-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/console/assets/skins/sam/console.css b/lib/yuilib/3.7.2/build/console/assets/skins/sam/console.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/console/assets/skins/sam/console.css
rename to lib/yuilib/3.7.2/build/console/assets/skins/sam/console.css
index 4fff2aa36a5..5e8b06742ba 100644
--- a/lib/yuilib/3.7.1/build/console/assets/skins/sam/console.css
+++ b/lib/yuilib/3.7.2/build/console/assets/skins/sam/console.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/console/assets/skins/sam/warn_error.png b/lib/yuilib/3.7.2/build/console/assets/skins/sam/warn_error.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/console/assets/skins/sam/warn_error.png
rename to lib/yuilib/3.7.2/build/console/assets/skins/sam/warn_error.png
diff --git a/lib/yuilib/3.7.1/build/console/assets/warn_error.png b/lib/yuilib/3.7.2/build/console/assets/warn_error.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/console/assets/warn_error.png
rename to lib/yuilib/3.7.2/build/console/assets/warn_error.png
diff --git a/lib/yuilib/3.7.1/build/console/console-coverage.js b/lib/yuilib/3.7.2/build/console/console-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/console/console-coverage.js
rename to lib/yuilib/3.7.2/build/console/console-coverage.js
index d1fc044ba0d..fae915763b7 100644
--- a/lib/yuilib/3.7.1/build/console/console-coverage.js
+++ b/lib/yuilib/3.7.2/build/console/console-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/console/console.js"] = {
path: "build/console/console.js",
code: []
};
-_yuitest_coverage["build/console/console.js"].code=["YUI.add('console', function (Y, NAME) {","","/**"," * Console creates a visualization for messages logged through calls to a YUI"," * instance's Y.log( message, category, source ) method. The"," * debug versions of YUI modules will include logging statements to offer some"," * insight into the steps executed during that module's operation. Including"," * log statements in your code will cause those messages to also appear in the"," * Console. Use Console to aid in developing your page or application."," *"," * Entry categories "info", "warn", and "error""," * are also referred to as the log level, and entries are filtered against the"," * configured logLevel."," *"," * @module console"," * @class Console"," * @extends Widget"," * @param conf {Object} Configuration object (see Configuration attributes)"," * @constructor"," */","var getCN = Y.ClassNameManager.getClassName,"," CHECKED = 'checked',"," CLEAR = 'clear',"," CLICK = 'click',"," COLLAPSED = 'collapsed',"," CONSOLE = 'console',"," CONTENT_BOX = 'contentBox',"," DISABLED = 'disabled',"," ENTRY = 'entry',"," ERROR = 'error',"," HEIGHT = 'height',"," INFO = 'info',"," LAST_TIME = 'lastTime',"," PAUSE = 'pause',"," PAUSED = 'paused',"," RESET = 'reset',"," START_TIME = 'startTime',"," TITLE = 'title',"," WARN = 'warn',",""," DOT = '.',",""," C_BUTTON = getCN(CONSOLE,'button'),"," C_CHECKBOX = getCN(CONSOLE,'checkbox'),"," C_CLEAR = getCN(CONSOLE,CLEAR),"," C_COLLAPSE = getCN(CONSOLE,'collapse'),"," C_COLLAPSED = getCN(CONSOLE,COLLAPSED),"," C_CONSOLE_CONTROLS = getCN(CONSOLE,'controls'),"," C_CONSOLE_HD = getCN(CONSOLE,'hd'),"," C_CONSOLE_BD = getCN(CONSOLE,'bd'),"," C_CONSOLE_FT = getCN(CONSOLE,'ft'),"," C_CONSOLE_TITLE = getCN(CONSOLE,TITLE),"," C_ENTRY = getCN(CONSOLE,ENTRY),"," C_ENTRY_CAT = getCN(CONSOLE,ENTRY,'cat'),"," C_ENTRY_CONTENT = getCN(CONSOLE,ENTRY,'content'),"," C_ENTRY_META = getCN(CONSOLE,ENTRY,'meta'),"," C_ENTRY_SRC = getCN(CONSOLE,ENTRY,'src'),"," C_ENTRY_TIME = getCN(CONSOLE,ENTRY,'time'),"," C_PAUSE = getCN(CONSOLE,PAUSE),"," C_PAUSE_LABEL = getCN(CONSOLE,PAUSE,'label'),",""," RE_INLINE_SOURCE = /^(\\S+)\\s/,"," RE_AMP = /&(?!#?[a-z0-9]+;)/g,"," RE_GT = />/g,"," RE_LT = /'+"," ''+"," '{message}'+"," '',",""," L = Y.Lang,"," create = Y.Node.create,"," isNumber = L.isNumber,"," isString = L.isString,"," merge = Y.merge,"," substitute = Y.Lang.sub;"," ","","function Console() {"," Console.superclass.constructor.apply(this,arguments);","}","","Y.Console = Y.extend(Console, Y.Widget,","","// Y.Console prototype","{"," /**"," * Category to prefix all event subscriptions to allow for ease of detach"," * during destroy."," *"," * @property _evtCat"," * @type string"," * @protected"," */"," _evtCat : null,",""," /**"," * Reference to the Node instance containing the header contents."," *"," * @property _head"," * @type Node"," * @default null"," * @protected"," */"," _head : null,",""," /**"," * Reference to the Node instance that will house the console messages."," *"," * @property _body"," * @type Node"," * @default null"," * @protected"," */"," _body : null,",""," /**"," * Reference to the Node instance containing the footer contents."," *"," * @property _foot"," * @type Node"," * @default null"," * @protected"," */"," _foot : null,",""," /**"," * Holds the object API returned from Y.later for the print"," * loop interval."," *"," * @property _printLoop"," * @type Object"," * @default null"," * @protected"," */"," _printLoop : null,",""," /**"," * Array of normalized message objects awaiting printing."," *"," * @property buffer"," * @type Array"," * @default null"," * @protected"," */"," buffer : null,",""," /**"," * Wrapper for Y.log."," *"," * @method log"," * @param arg* {MIXED} (all arguments passed through to Y.log)"," * @chainable"," */"," log : function () {"," Y.log.apply(Y,arguments);",""," return this;"," },",""," /**"," * Clear the console of messages and flush the buffer of pending messages."," *"," * @method clearConsole"," * @chainable"," */"," clearConsole : function () {"," // TODO: clear event listeners from console contents"," this._body.empty();",""," this._cancelPrintLoop();",""," this.buffer = [];",""," return this;"," },",""," /**"," * Clears the console and resets internal timers."," *"," * @method reset"," * @chainable"," */"," reset : function () {"," this.fire(RESET);"," "," return this;"," },",""," /**"," * Collapses the body and footer."," *"," * @method collapse"," * @chainable"," */"," collapse : function () {"," this.set(COLLAPSED, true);",""," return this;"," },",""," /**"," * Expands the body and footer if collapsed."," *"," * @method expand"," * @chainable"," */"," expand : function () {"," this.set(COLLAPSED, false);",""," return this;"," },",""," /**"," * Outputs buffered messages to the console UI. This is typically called"," * from a scheduled interval until the buffer is empty (referred to as the"," * print loop). The number of buffered messages output to the Console is"," * limited to the number provided as an argument. If no limit is passed,"," * all buffered messages are rendered."," * "," * @method printBuffer"," * @param limit {Number} (optional) max number of buffered entries to write"," * @chainable"," */"," printBuffer: function (limit) {"," var messages = this.buffer,"," debug = Y.config.debug,"," entries = [],"," consoleLimit= this.get('consoleLimit'),"," newestOnTop = this.get('newestOnTop'),"," anchor = newestOnTop ? this._body.get('firstChild') : null,"," i;",""," if (messages.length > consoleLimit) {"," messages.splice(0, messages.length - consoleLimit);"," }",""," limit = Math.min(messages.length, (limit || messages.length));"," "," // turn off logging system"," Y.config.debug = false;",""," if (!this.get(PAUSED) && this.get('rendered')) {",""," for (i = 0; i < limit && messages.length; ++i) {"," entries[i] = this._createEntryHTML(messages.shift());"," }",""," if (!messages.length) {"," this._cancelPrintLoop();"," }",""," if (entries.length) {"," if (newestOnTop) {"," entries.reverse();"," }",""," this._body.insertBefore(create(entries.join('')), anchor);",""," if (this.get('scrollIntoView')) {"," this.scrollToLatest();"," }",""," this._trimOldEntries();"," }"," }",""," // restore logging system"," Y.config.debug = debug;",""," return this;"," },",""," "," /**"," * Constructor code. Set up the buffer and entry template, publish"," * internal events, and subscribe to the configured logEvent."," * "," * @method initializer"," * @protected"," */"," initializer : function () {"," this._evtCat = Y.stamp(this) + '|';",""," this.buffer = [];",""," this.get('logSource').on(this._evtCat +"," this.get('logEvent'),Y.bind(\"_onLogEvent\",this));",""," /**"," * Transfers a received message to the print loop buffer. Default"," * behavior defined in _defEntryFn."," *"," * @event entry"," * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:"," * "," * - message
"," * - The message data normalized into an object literal (see _normalizeMessage)
"," *
"," * @preventable _defEntryFn"," */"," this.publish(ENTRY, { defaultFn: this._defEntryFn });",""," /**"," * Triggers the reset behavior via the default logic in _defResetFn."," *"," * @event reset"," * @param event {Event.Facade} Event Facade object"," * @preventable _defResetFn"," */"," this.publish(RESET, { defaultFn: this._defResetFn });",""," this.after('rendered', this._schedulePrint);"," },",""," /**"," * Tears down the instance, flushing event subscriptions and purging the UI."," *"," * @method destructor"," * @protected"," */"," destructor : function () {"," var bb = this.get('boundingBox');",""," this._cancelPrintLoop();",""," this.get('logSource').detach(this._evtCat + '*');"," "," bb.purge(true);"," },",""," /**"," * Generate the Console UI."," *"," * @method renderUI"," * @protected"," */"," renderUI : function () {"," this._initHead();"," this._initBody();"," this._initFoot();",""," // Apply positioning to the bounding box if appropriate"," var style = this.get('style');"," if (style !== 'block') {"," this.get('boundingBox').addClass(this.getClassName(style));"," }"," },",""," /**"," * Sync the UI state to the current attribute state."," *"," * @method syncUI"," */"," syncUI : function () {"," this._uiUpdatePaused(this.get(PAUSED));"," this._uiUpdateCollapsed(this.get(COLLAPSED));"," this._uiSetHeight(this.get(HEIGHT));"," },",""," /**"," * Set up event listeners to wire up the UI to the internal state."," *"," * @method bindUI"," * @protected"," */"," bindUI : function () {"," this.get(CONTENT_BOX).one('button.'+C_COLLAPSE)."," on(CLICK,this._onCollapseClick,this);",""," this.get(CONTENT_BOX).one('input[type=checkbox].'+C_PAUSE)."," on(CLICK,this._onPauseClick,this);",""," this.get(CONTENT_BOX).one('button.'+C_CLEAR)."," on(CLICK,this._onClearClick,this);",""," // Attribute changes"," this.after(this._evtCat + 'stringsChange',"," this._afterStringsChange);"," this.after(this._evtCat + 'pausedChange',"," this._afterPausedChange);"," this.after(this._evtCat + 'consoleLimitChange',"," this._afterConsoleLimitChange);"," this.after(this._evtCat + 'collapsedChange',"," this._afterCollapsedChange);"," },",""," "," /**"," * Create the DOM structure for the header elements."," *"," * @method _initHead"," * @protected"," */"," _initHead : function () {"," var cb = this.get(CONTENT_BOX),"," info = merge(Console.CHROME_CLASSES, {"," str_collapse : this.get('strings.collapse'),"," str_title : this.get('strings.title')"," });",""," this._head = create(substitute(Console.HEADER_TEMPLATE,info));",""," cb.insertBefore(this._head,cb.get('firstChild'));"," },",""," /**"," * Create the DOM structure for the console body—where messages are"," * rendered."," *"," * @method _initBody"," * @protected"," */"," _initBody : function () {"," this._body = create(substitute("," Console.BODY_TEMPLATE,"," Console.CHROME_CLASSES));",""," this.get(CONTENT_BOX).appendChild(this._body);"," },",""," /**"," * Create the DOM structure for the footer elements."," *"," * @method _initFoot"," * @protected"," */"," _initFoot : function () {"," var info = merge(Console.CHROME_CLASSES, {"," id_guid : Y.guid(),"," str_pause : this.get('strings.pause'),"," str_clear : this.get('strings.clear')"," });",""," this._foot = create(substitute(Console.FOOTER_TEMPLATE,info));",""," this.get(CONTENT_BOX).appendChild(this._foot);"," },",""," /**"," * Determine if incoming log messages are within the configured logLevel"," * to be buffered for printing."," *"," * @method _isInLogLevel"," * @protected"," */"," _isInLogLevel : function (e) {"," var cat = e.cat, lvl = this.get('logLevel');",""," if (lvl !== INFO) {"," cat = cat || INFO;",""," if (isString(cat)) {"," cat = cat.toLowerCase();"," }",""," if ((cat === WARN && lvl === ERROR) ||"," (cat === INFO && lvl !== INFO)) {"," return false;"," }"," }",""," return true;"," },",""," /**"," * Create a log entry message from the inputs including the following keys:"," * "," * - time - this moment
"," * - message - leg message
"," * - category - logLevel or custom category for the message
"," * - source - when provided, the widget or util calling Y.log
"," * - sourceAndDetail - same as source but can include instance info
"," * - localTime - readable version of time
"," * - elapsedTime - ms since last entry
"," * - totalTime - ms since Console was instantiated or reset
"," *
"," *"," * @method _normalizeMessage"," * @param e {Event} custom event containing the log message"," * @return Object the message object"," * @protected"," */"," _normalizeMessage : function (e) {",""," var msg = e.msg,"," cat = e.cat,"," src = e.src,",""," m = {"," time : new Date(),"," message : msg,"," category : cat || this.get('defaultCategory'),"," sourceAndDetail : src || this.get('defaultSource'),"," source : null,"," localTime : null,"," elapsedTime : null,"," totalTime : null"," };",""," // Extract m.source \"Foo\" from m.sourceAndDetail \"Foo bar baz\""," m.source = RE_INLINE_SOURCE.test(m.sourceAndDetail) ?"," RegExp.$1 : m.sourceAndDetail;"," m.localTime = m.time.toLocaleTimeString ? "," m.time.toLocaleTimeString() : (m.time + '');"," m.elapsedTime = m.time - this.get(LAST_TIME);"," m.totalTime = m.time - this.get(START_TIME);",""," this._set(LAST_TIME,m.time);",""," return m;"," },",""," /**"," * Sets an interval for buffered messages to be output to the console."," *"," * @method _schedulePrint"," * @protected"," */"," _schedulePrint : function () {"," if (!this._printLoop && !this.get(PAUSED) && this.get('rendered')) {"," this._printLoop = Y.later("," this.get('printTimeout'),"," this, this.printBuffer,"," this.get('printLimit'), true);"," }"," },",""," /**"," * Translates message meta into the markup for a console entry."," *"," * @method _createEntryHTML"," * @param m {Object} object literal containing normalized message metadata"," * @return String"," * @protected"," */"," _createEntryHTML : function (m) {"," m = merge("," this._htmlEscapeMessage(m),"," Console.ENTRY_CLASSES,"," {"," cat_class : this.getClassName(ENTRY,m.category),"," src_class : this.getClassName(ENTRY,m.source)"," });",""," return this.get('entryTemplate').replace(/\\{(\\w+)\\}/g,"," function (_,token) {"," return token in m ? m[token] : '';"," });"," },",""," /**"," * Scrolls to the most recent entry"," *"," * @method scrollToLatest"," * @chainable"," */"," scrollToLatest : function () {"," var scrollTop = this.get('newestOnTop') ?"," 0 :"," this._body.get('scrollHeight');",""," this._body.set('scrollTop', scrollTop);"," },",""," /**"," * Performs HTML escaping on strings in the message object."," *"," * @method _htmlEscapeMessage"," * @param m {Object} the normalized message object"," * @return Object the message object with proper escapement"," * @protected"," */"," _htmlEscapeMessage : function (m) {"," m.message = this._encodeHTML(m.message);"," m.source = this._encodeHTML(m.source);"," m.sourceAndDetail = this._encodeHTML(m.sourceAndDetail);"," m.category = this._encodeHTML(m.category);",""," return m;"," },",""," /**"," * Removes the oldest message entries from the UI to maintain the limit"," * specified in the consoleLimit configuration."," *"," * @method _trimOldEntries"," * @protected"," */"," _trimOldEntries : function () {"," // Turn off the logging system for the duration of this operation"," // to prevent an infinite loop"," Y.config.debug = false;",""," var bd = this._body,"," limit = this.get('consoleLimit'),"," debug = Y.config.debug,"," entries,e,i,l;",""," if (bd) {"," entries = bd.all(DOT+C_ENTRY);"," l = entries.size() - limit;",""," if (l > 0) {"," if (this.get('newestOnTop')) {"," i = limit;"," l = entries.size();"," } else {"," i = 0;"," }",""," this._body.setStyle('display','none');",""," for (;i < l; ++i) {"," e = entries.item(i);"," if (e) {"," e.remove();"," }"," }",""," this._body.setStyle('display','');"," }",""," }",""," Y.config.debug = debug;"," },",""," /**"," * Returns the input string with ampersands (&), <, and > encoded"," * as HTML entities."," *"," * @method _encodeHTML"," * @param s {String} the raw string"," * @return String the encoded string"," * @protected"," */"," _encodeHTML : function (s) {"," return isString(s) ?"," s.replace(RE_AMP,ESC_AMP)."," replace(RE_LT, ESC_LT)."," replace(RE_GT, ESC_GT) :"," s;"," },",""," /**"," * Clears the timeout for printing buffered messages."," *"," * @method _cancelPrintLoop"," * @protected"," */"," _cancelPrintLoop : function () {"," if (this._printLoop) {"," this._printLoop.cancel();"," this._printLoop = null;"," }"," },",""," /**"," * Validates input value for style attribute. Accepts only values 'inline',"," * 'block', and 'separate'."," *"," * @method _validateStyle"," * @param style {String} the proposed value"," * @return {Boolean} pass/fail"," * @protected"," */"," _validateStyle : function (style) {"," return style === 'inline' || style === 'block' || style === 'separate';"," },",""," /**"," * Event handler for clicking on the Pause checkbox to update the paused"," * attribute."," *"," * @method _onPauseClick"," * @param e {Event} DOM event facade for the click event"," * @protected"," */"," _onPauseClick : function (e) {"," this.set(PAUSED,e.target.get(CHECKED));"," },",""," /**"," * Event handler for clicking on the Clear button. Pass-through to"," * this.clearConsole()."," *"," * @method _onClearClick"," * @param e {Event} DOM event facade for the click event"," * @protected"," */"," _onClearClick : function (e) {"," this.clearConsole();"," },",""," /**"," * Event handler for clicking on the Collapse/Expand button. Sets the"," * "collapsed" attribute accordingly."," *"," * @method _onCollapseClick"," * @param e {Event} DOM event facade for the click event"," * @protected"," */"," _onCollapseClick : function (e) {"," this.set(COLLAPSED, !this.get(COLLAPSED));"," },","",""," /**"," * Validator for logSource attribute."," *"," * @method _validateLogSource"," * @param v {Object} the desired logSource"," * @return {Boolean} true if the input is an object with an on"," * method"," * @protected"," */"," _validateLogSource: function (v) {"," return v && Y.Lang.isFunction(v.on);"," },",""," /**"," * Setter method for logLevel attribute. Acceptable values are"," * "error", "warn", and "info" (case"," * insensitive). Other values are treated as "info"."," *"," * @method _setLogLevel"," * @param v {String} the desired log level"," * @return String One of Console.LOG_LEVEL_INFO, _WARN, or _ERROR"," * @protected"," */"," _setLogLevel : function (v) {"," if (isString(v)) {"," v = v.toLowerCase();"," }"," "," return (v === WARN || v === ERROR) ? v : INFO;"," },",""," /**"," * Getter method for useBrowserConsole attribute. Just a pass through to"," * the YUI instance configuration setting."," *"," * @method _getUseBrowserConsole"," * @return {Boolean} or null if logSource is not a YUI instance"," * @protected"," */"," _getUseBrowserConsole: function () {"," var logSource = this.get('logSource');"," return logSource instanceof YUI ?"," logSource.config.useBrowserConsole : null;"," },",""," /**"," * Setter method for useBrowserConsole attributes. Only functional if the"," * logSource attribute points to a YUI instance. Passes the value down to"," * the YUI instance. NOTE: multiple Console instances cannot maintain"," * independent useBrowserConsole values, since it is just a pass through to"," * the YUI instance configuration."," *"," * @method _setUseBrowserConsole"," * @param v {Boolean} false to disable browser console printing (default)"," * @return {Boolean} true|false if logSource is a YUI instance"," * @protected"," */"," _setUseBrowserConsole: function (v) {"," var logSource = this.get('logSource');"," if (logSource instanceof YUI) {"," v = !!v;"," logSource.config.useBrowserConsole = v;"," return v;"," } else {"," return Y.Attribute.INVALID_VALUE;"," }"," },",""," /**"," * Set the height of the Console container. Set the body height to the"," * difference between the configured height and the calculated heights of"," * the header and footer."," * Overrides Widget.prototype._uiSetHeight."," *"," * @method _uiSetHeight"," * @param v {String|Number} the new height"," * @protected"," */"," _uiSetHeight : function (v) {"," Console.superclass._uiSetHeight.apply(this,arguments);",""," if (this._head && this._foot) {"," var h = this.get('boundingBox').get('offsetHeight') -"," this._head.get('offsetHeight') -"," this._foot.get('offsetHeight');",""," this._body.setStyle(HEIGHT,h+'px');"," }"," },",""," /**"," * Over-ride default content box sizing to do nothing, since we're sizing"," * the body section to fill out height ourselves."," * "," * @method _uiSizeCB"," * @protected"," */"," _uiSizeCB : function() {"," // Do Nothing. Ideally want to move to Widget-StdMod, which accounts for"," // _uiSizeCB "," },",""," /**"," * Updates the UI if changes are made to any of the strings in the strings"," * attribute."," *"," * @method _afterStringsChange"," * @param e {Event} Custom event for the attribute change"," * @protected"," */"," _afterStringsChange : function (e) {"," var prop = e.subAttrName ? e.subAttrName.split(DOT)[1] : null,"," cb = this.get(CONTENT_BOX),"," before = e.prevVal,"," after = e.newVal;",""," if ((!prop || prop === TITLE) && before.title !== after.title) {"," cb.all(DOT+C_CONSOLE_TITLE).setHTML(after.title);"," }",""," if ((!prop || prop === PAUSE) && before.pause !== after.pause) {"," cb.all(DOT+C_PAUSE_LABEL).setHTML(after.pause);"," }",""," if ((!prop || prop === CLEAR) && before.clear !== after.clear) {"," cb.all(DOT+C_CLEAR).set('value',after.clear);"," }"," },",""," /**"," * Updates the UI and schedules or cancels the print loop."," *"," * @method _afterPausedChange"," * @param e {Event} Custom event for the attribute change"," * @protected"," */"," _afterPausedChange : function (e) {"," var paused = e.newVal;",""," if (e.src !== Y.Widget.SRC_UI) {"," this._uiUpdatePaused(paused);"," }",""," if (!paused) {"," this._schedulePrint();"," } else if (this._printLoop) {"," this._cancelPrintLoop();"," }"," },",""," /**"," * Checks or unchecks the paused checkbox"," *"," * @method _uiUpdatePaused"," * @param on {Boolean} the new checked state"," * @protected"," */"," _uiUpdatePaused : function (on) {"," var node = this._foot.all('input[type=checkbox].'+C_PAUSE);",""," if (node) {"," node.set(CHECKED,on);"," }"," },",""," /**"," * Calls this._trimOldEntries() in response to changes in the configured"," * consoleLimit attribute."," * "," * @method _afterConsoleLimitChange"," * @param e {Event} Custom event for the attribute change"," * @protected"," */"," _afterConsoleLimitChange : function () {"," this._trimOldEntries();"," },","",""," /**"," * Updates the className of the contentBox, which should trigger CSS to"," * hide or show the body and footer sections depending on the new value."," *"," * @method _afterCollapsedChange"," * @param e {Event} Custom event for the attribute change"," * @protected"," */"," _afterCollapsedChange : function (e) {"," this._uiUpdateCollapsed(e.newVal);"," },",""," /**"," * Updates the UI to reflect the new Collapsed state"," *"," * @method _uiUpdateCollapsed"," * @param v {Boolean} true for collapsed, false for expanded"," * @protected"," */"," _uiUpdateCollapsed : function (v) {"," var bb = this.get('boundingBox'),"," button = bb.all('button.'+C_COLLAPSE),"," method = v ? 'addClass' : 'removeClass',"," str = this.get('strings.'+(v ? 'expand' : 'collapse'));",""," bb[method](C_COLLAPSED);",""," if (button) {"," button.setHTML(str);"," }",""," this._uiSetHeight(v ? this._head.get('offsetHeight'): this.get(HEIGHT));"," },",""," /**"," * Makes adjustments to the UI if needed when the Console is hidden or shown"," *"," * @method _afterVisibleChange"," * @param e {Event} the visibleChange event"," * @protected"," */"," _afterVisibleChange : function (e) {"," Console.superclass._afterVisibleChange.apply(this,arguments);",""," this._uiUpdateFromHideShow(e.newVal);"," },",""," /**"," * Recalculates dimensions and updates appropriately when shown"," *"," * @method _uiUpdateFromHideShow"," * @param v {Boolean} true for visible, false for hidden"," * @protected"," */"," _uiUpdateFromHideShow : function (v) {"," if (v) {"," this._uiSetHeight(this.get(HEIGHT));"," }"," },",""," /**"," * Responds to log events by normalizing qualifying messages and passing"," * them along through the entry event for buffering etc."," * "," * @method _onLogEvent"," * @param msg {String} the log message"," * @param cat {String} OPTIONAL the category or logLevel of the message"," * @param src {String} OPTIONAL the source of the message (e.g. widget name)"," * @protected"," */"," _onLogEvent : function (e) {",""," if (!this.get(DISABLED) && this._isInLogLevel(e)) {",""," var debug = Y.config.debug;",""," /* TODO: needed? */"," Y.config.debug = false;",""," this.fire(ENTRY, {"," message : this._normalizeMessage(e)"," });",""," Y.config.debug = debug;"," }"," },",""," /**"," * Clears the console, resets the startTime attribute, enables and"," * unpauses the widget."," *"," * @method _defResetFn"," * @protected"," */"," _defResetFn : function () {"," this.clearConsole();"," this.set(START_TIME,new Date());"," this.set(DISABLED,false);"," this.set(PAUSED,false);"," },",""," /**"," * Buffers incoming message objects and schedules the printing."," *"," * @method _defEntryFn"," * @param e {Event} The Custom event carrying the message in its payload"," * @protected"," */"," _defEntryFn : function (e) {"," if (e.message) {"," this.buffer.push(e.message);"," this._schedulePrint();"," }"," }","","},","","// Y.Console static properties","{"," /**"," * The identity of the widget."," *"," * @property NAME"," * @type String"," * @static"," */"," NAME : CONSOLE,",""," /**"," * Static identifier for logLevel configuration setting to allow all"," * incoming messages to generate Console entries."," *"," * @property LOG_LEVEL_INFO"," * @type String"," * @static"," */"," LOG_LEVEL_INFO : INFO,",""," /**"," * Static identifier for logLevel configuration setting to allow only"," * incoming messages of logLevel "warn" or "error""," * to generate Console entries."," *"," * @property LOG_LEVEL_WARN"," * @type String"," * @static"," */"," LOG_LEVEL_WARN : WARN,",""," /**"," * Static identifier for logLevel configuration setting to allow only"," * incoming messages of logLevel "error" to generate"," * Console entries."," *"," * @property LOG_LEVEL_ERROR"," * @type String"," * @static"," */"," LOG_LEVEL_ERROR : ERROR,",""," /**"," * Map (object) of classNames used to populate the placeholders in the"," * Console.ENTRY_TEMPLATE markup when rendering a new Console entry."," *"," * By default, the keys contained in the object are:
"," * "," * - entry_class
"," * - entry_meta_class
"," * - entry_cat_class
"," * - entry_src_class
"," * - entry_time_class
"," * - entry_content_class
"," *
"," *"," * @property ENTRY_CLASSES"," * @type Object"," * @static"," */"," ENTRY_CLASSES : {"," entry_class : C_ENTRY,"," entry_meta_class : C_ENTRY_META,"," entry_cat_class : C_ENTRY_CAT,"," entry_src_class : C_ENTRY_SRC,"," entry_time_class : C_ENTRY_TIME,"," entry_content_class : C_ENTRY_CONTENT"," },",""," /**"," * Map (object) of classNames used to populate the placeholders in the"," * Console.HEADER_TEMPLATE, Console.BODY_TEMPLATE, and"," * Console.FOOTER_TEMPLATE markup when rendering the Console UI."," *"," * By default, the keys contained in the object are:
"," * "," * - console_hd_class
"," * - console_bd_class
"," * - console_ft_class
"," * - console_controls_class
"," * - console_checkbox_class
"," * - console_pause_class
"," * - console_pause_label_class
"," * - console_button_class
"," * - console_clear_class
"," * - console_collapse_class
"," * - console_title_class
"," *
"," *"," * @property CHROME_CLASSES"," * @type Object"," * @static"," */"," CHROME_CLASSES : {"," console_hd_class : C_CONSOLE_HD,"," console_bd_class : C_CONSOLE_BD,"," console_ft_class : C_CONSOLE_FT,"," console_controls_class : C_CONSOLE_CONTROLS,"," console_checkbox_class : C_CHECKBOX,"," console_pause_class : C_PAUSE,"," console_pause_label_class : C_PAUSE_LABEL,"," console_button_class : C_BUTTON,"," console_clear_class : C_CLEAR,"," console_collapse_class : C_COLLAPSE,"," console_title_class : C_CONSOLE_TITLE"," },",""," /**"," * Markup template used to generate the DOM structure for the header"," * section of the Console when it is rendered. The template includes"," * these {placeholder}s:"," *"," * "," * - console_button_class - contributed by Console.CHROME_CLASSES
"," * - console_collapse_class - contributed by Console.CHROME_CLASSES
"," * - console_hd_class - contributed by Console.CHROME_CLASSES
"," * - console_title_class - contributed by Console.CHROME_CLASSES
"," * - str_collapse - pulled from attribute strings.collapse
"," * - str_title - pulled from attribute strings.title
"," *
"," *"," * @property HEADER_TEMPLATE"," * @type String"," * @static"," */"," HEADER_TEMPLATE :"," ''+"," '{str_title}
'+"," ''+"," '',",""," /**"," * Markup template used to generate the DOM structure for the Console body"," * (where the messages are inserted) when it is rendered. The template"," * includes only the {placeholder} "console_bd_class", which is"," * constributed by Console.CHROME_CLASSES."," *"," * @property BODY_TEMPLATE"," * @type String"," * @static"," */"," BODY_TEMPLATE : '',",""," /**"," * Markup template used to generate the DOM structure for the footer"," * section of the Console when it is rendered. The template includes"," * many of the {placeholder}s from Console.CHROME_CLASSES as well as:"," *"," * "," * - id_guid - generated unique id, relates the label and checkbox
"," * - str_pause - pulled from attribute strings.pause
"," * - str_clear - pulled from attribute strings.clear
"," *
"," *"," * @property FOOTER_TEMPLATE"," * @type String"," * @static"," */"," FOOTER_TEMPLATE :"," ''+"," ''+"," '' +"," ''+"," ''+"," '',",""," /**"," * Default markup template used to create the DOM structure for Console"," * entries. The markup contains {placeholder}s for content and classes"," * that are replaced via Y.Lang.sub. The default template contains"," * the {placeholder}s identified in Console.ENTRY_CLASSES as well as the"," * following placeholders that will be populated by the log entry data:"," *"," * "," * - cat_class
"," * - src_class
"," * - totalTime
"," * - elapsedTime
"," * - localTime
"," * - sourceAndDetail
"," * - message
"," *
"," *"," * @property ENTRY_TEMPLATE"," * @type String"," * @static"," */"," ENTRY_TEMPLATE : ENTRY_TEMPLATE_STR,",""," /**"," * Static property used to define the default attribute configuration of"," * the Widget."," *"," * @property ATTRS"," * @Type Object"," * @static"," */"," ATTRS : {",""," /**"," * Name of the custom event that will communicate log messages."," *"," * @attribute logEvent"," * @type String"," * @default \"yui:log\""," */"," logEvent : {"," value : 'yui:log',"," writeOnce : true,"," validator : isString"," },",""," /**"," * Object that will emit the log events. By default the YUI instance."," * To have a single Console capture events from all YUI instances, set"," * this to the Y.Global object."," *"," * @attribute logSource"," * @type EventTarget"," * @default Y"," */"," logSource : {"," value : Y,"," writeOnce : true,"," validator : function (v) {"," return this._validateLogSource(v);"," }"," },",""," /**"," * Collection of strings used to label elements in the Console UI."," * Default collection contains the following name:value pairs:"," *"," * "," * - title : "Log Console"
"," * - pause : "Pause"
"," * - clear : "Clear"
"," * - collapse : "Collapse"
"," * - expand : "Expand"
"," *
"," *"," * @attribute strings"," * @type Object"," */"," strings : {"," valueFn: function() { return Y.Intl.get(\"console\"); }"," },",""," /**"," * Boolean to pause the outputting of new messages to the console."," * When paused, messages will accumulate in the buffer."," *"," * @attribute paused"," * @type boolean"," * @default false"," */"," paused : {"," value : false,"," validator : L.isBoolean"," },",""," /**"," * If a category is not specified in the Y.log(..) statement, this"," * category will be used. Categories "info","," * "warn", and "error" are also called log level."," *"," * @attribute defaultCategory"," * @type String"," * @default \"info\""," */"," defaultCategory : {"," value : INFO,"," validator : isString"," },",""," /**"," * If a source is not specified in the Y.log(..) statement, this"," * source will be used."," *"," * @attribute defaultSource"," * @type String"," * @default \"global\""," */"," defaultSource : {"," value : 'global',"," validator : isString"," },",""," /**"," * Markup template used to create the DOM structure for Console entries."," *"," * @attribute entryTemplate"," * @type String"," * @default Console.ENTRY_TEMPLATE"," */"," entryTemplate : {"," value : ENTRY_TEMPLATE_STR,"," validator : isString"," },",""," /**"," * Minimum entry log level to render into the Console. The initial"," * logLevel value for all Console instances defaults from the"," * Y.config.logLevel YUI configuration, or Console.LOG_LEVEL_INFO if"," * that configuration is not set."," *"," * Possible values are "info", "warn","," * "error" (case insensitive), or their corresponding statics"," * Console.LOG_LEVEL_INFO and so on."," *"," * @attribute logLevel"," * @type String"," * @default Y.config.logLevel or Console.LOG_LEVEL_INFO"," */"," logLevel : {"," value : Y.config.logLevel || INFO,"," setter : function (v) {"," return this._setLogLevel(v);"," }"," },",""," /**"," * Millisecond timeout between iterations of the print loop, moving"," * entries from the buffer to the UI."," *"," * @attribute printTimeout"," * @type Number"," * @default 100"," */"," printTimeout : {"," value : 100,"," validator : isNumber"," },",""," /**"," * Maximum number of entries printed in each iteration of the print"," * loop. This is used to prevent excessive logging locking the page UI."," *"," * @attribute printLimit"," * @type Number"," * @default 50"," */"," printLimit : {"," value : 50,"," validator : isNumber"," },",""," /**"," * Maximum number of Console entries allowed in the Console body at one"," * time. This is used to keep acquired messages from exploding the"," * DOM tree and impacting page performance."," *"," * @attribute consoleLimit"," * @type Number"," * @default 300"," */"," consoleLimit : {"," value : 300,"," validator : isNumber"," },",""," /**"," * New entries should display at the top of the Console or the bottom?"," *"," * @attribute newestOnTop"," * @type Boolean"," * @default true"," */"," newestOnTop : {"," value : true"," },",""," /**"," * When new entries are added to the Console UI, should they be"," * scrolled into view?"," *"," * @attribute scrollIntoView"," * @type Boolean"," * @default true"," */"," scrollIntoView : {"," value : true"," },",""," /**"," * The baseline time for this Console instance, used to measure elapsed"," * time from the moment the console module is used to the"," * moment each new entry is logged (not rendered)."," *"," * This value is reset by the instance method myConsole.reset()."," *"," * @attribute startTime"," * @type Date"," * @default The moment the console module is used"," */"," startTime : {"," value : new Date()"," },",""," /**"," * The precise time the last entry was logged. Used to measure elapsed"," * time between log messages."," *"," * @attribute lastTime"," * @type Date"," * @default The moment the console module is used"," */"," lastTime : {"," value : new Date(),"," readOnly: true"," },",""," /**"," * Controls the collapsed state of the Console"," *"," * @attribute collapsed"," * @type Boolean"," * @default false"," */"," collapsed : {"," value : false"," },",""," /**"," * String with units, or number, representing the height of the Console,"," * inclusive of header and footer. If a number is provided, the default"," * unit, defined by Widget's DEF_UNIT, property is used."," *"," * @attribute height"," * @default \"300px\""," * @type {String | Number}"," */"," height: {"," value: \"300px\""," },",""," /**"," * String with units, or number, representing the width of the Console."," * If a number is provided, the default unit, defined by Widget's"," * DEF_UNIT, property is used."," *"," * @attribute width"," * @default \"300px\""," * @type {String | Number}"," */"," width: {"," value: \"300px\""," },",""," /**"," * Pass through to the YUI instance useBrowserConsole configuration."," * By default this is set to false, which will disable logging to the"," * browser console when a Console instance is created. If the"," * logSource is not a YUI instance, this has no effect."," * "," * @attribute useBrowserConsole"," * @type {Boolean}"," * @default false"," */"," useBrowserConsole : {"," lazyAdd: false,"," value: false,"," getter : function () {"," return this._getUseBrowserConsole();"," },"," setter : function (v) {"," return this._setUseBrowserConsole(v);"," }"," },",""," /**"," * Allows the Console to flow in the document. Available values are"," * 'inline', 'block', and 'separate' (the default). "," *"," * @attribute style"," * @type {String}"," * @default 'separate'"," */"," style : {"," value : 'separate',"," writeOnce : true,"," validator : function (v) {"," return this._validateStyle(v);"," }"," }"," }","","});","","","}, '3.7.1', {\"requires\": [\"yui-log\", \"widget\"], \"skinnable\": true, \"lang\": [\"en\", \"es\", \"ja\"]});"];
+_yuitest_coverage["build/console/console.js"].code=["YUI.add('console', function (Y, NAME) {","","/**"," * Console creates a visualization for messages logged through calls to a YUI"," * instance's Y.log( message, category, source ) method. The"," * debug versions of YUI modules will include logging statements to offer some"," * insight into the steps executed during that module's operation. Including"," * log statements in your code will cause those messages to also appear in the"," * Console. Use Console to aid in developing your page or application."," *"," * Entry categories "info", "warn", and "error""," * are also referred to as the log level, and entries are filtered against the"," * configured logLevel."," *"," * @module console"," * @class Console"," * @extends Widget"," * @param conf {Object} Configuration object (see Configuration attributes)"," * @constructor"," */","var getCN = Y.ClassNameManager.getClassName,"," CHECKED = 'checked',"," CLEAR = 'clear',"," CLICK = 'click',"," COLLAPSED = 'collapsed',"," CONSOLE = 'console',"," CONTENT_BOX = 'contentBox',"," DISABLED = 'disabled',"," ENTRY = 'entry',"," ERROR = 'error',"," HEIGHT = 'height',"," INFO = 'info',"," LAST_TIME = 'lastTime',"," PAUSE = 'pause',"," PAUSED = 'paused',"," RESET = 'reset',"," START_TIME = 'startTime',"," TITLE = 'title',"," WARN = 'warn',",""," DOT = '.',",""," C_BUTTON = getCN(CONSOLE,'button'),"," C_CHECKBOX = getCN(CONSOLE,'checkbox'),"," C_CLEAR = getCN(CONSOLE,CLEAR),"," C_COLLAPSE = getCN(CONSOLE,'collapse'),"," C_COLLAPSED = getCN(CONSOLE,COLLAPSED),"," C_CONSOLE_CONTROLS = getCN(CONSOLE,'controls'),"," C_CONSOLE_HD = getCN(CONSOLE,'hd'),"," C_CONSOLE_BD = getCN(CONSOLE,'bd'),"," C_CONSOLE_FT = getCN(CONSOLE,'ft'),"," C_CONSOLE_TITLE = getCN(CONSOLE,TITLE),"," C_ENTRY = getCN(CONSOLE,ENTRY),"," C_ENTRY_CAT = getCN(CONSOLE,ENTRY,'cat'),"," C_ENTRY_CONTENT = getCN(CONSOLE,ENTRY,'content'),"," C_ENTRY_META = getCN(CONSOLE,ENTRY,'meta'),"," C_ENTRY_SRC = getCN(CONSOLE,ENTRY,'src'),"," C_ENTRY_TIME = getCN(CONSOLE,ENTRY,'time'),"," C_PAUSE = getCN(CONSOLE,PAUSE),"," C_PAUSE_LABEL = getCN(CONSOLE,PAUSE,'label'),",""," RE_INLINE_SOURCE = /^(\\S+)\\s/,"," RE_AMP = /&(?!#?[a-z0-9]+;)/g,"," RE_GT = />/g,"," RE_LT = /'+"," ''+"," '{message}'+"," '',",""," L = Y.Lang,"," create = Y.Node.create,"," isNumber = L.isNumber,"," isString = L.isString,"," merge = Y.merge,"," substitute = Y.Lang.sub;"," ","","function Console() {"," Console.superclass.constructor.apply(this,arguments);","}","","Y.Console = Y.extend(Console, Y.Widget,","","// Y.Console prototype","{"," /**"," * Category to prefix all event subscriptions to allow for ease of detach"," * during destroy."," *"," * @property _evtCat"," * @type string"," * @protected"," */"," _evtCat : null,",""," /**"," * Reference to the Node instance containing the header contents."," *"," * @property _head"," * @type Node"," * @default null"," * @protected"," */"," _head : null,",""," /**"," * Reference to the Node instance that will house the console messages."," *"," * @property _body"," * @type Node"," * @default null"," * @protected"," */"," _body : null,",""," /**"," * Reference to the Node instance containing the footer contents."," *"," * @property _foot"," * @type Node"," * @default null"," * @protected"," */"," _foot : null,",""," /**"," * Holds the object API returned from Y.later for the print"," * loop interval."," *"," * @property _printLoop"," * @type Object"," * @default null"," * @protected"," */"," _printLoop : null,",""," /**"," * Array of normalized message objects awaiting printing."," *"," * @property buffer"," * @type Array"," * @default null"," * @protected"," */"," buffer : null,",""," /**"," * Wrapper for Y.log."," *"," * @method log"," * @param arg* {MIXED} (all arguments passed through to Y.log)"," * @chainable"," */"," log : function () {"," Y.log.apply(Y,arguments);",""," return this;"," },",""," /**"," * Clear the console of messages and flush the buffer of pending messages."," *"," * @method clearConsole"," * @chainable"," */"," clearConsole : function () {"," // TODO: clear event listeners from console contents"," this._body.empty();",""," this._cancelPrintLoop();",""," this.buffer = [];",""," return this;"," },",""," /**"," * Clears the console and resets internal timers."," *"," * @method reset"," * @chainable"," */"," reset : function () {"," this.fire(RESET);"," "," return this;"," },",""," /**"," * Collapses the body and footer."," *"," * @method collapse"," * @chainable"," */"," collapse : function () {"," this.set(COLLAPSED, true);",""," return this;"," },",""," /**"," * Expands the body and footer if collapsed."," *"," * @method expand"," * @chainable"," */"," expand : function () {"," this.set(COLLAPSED, false);",""," return this;"," },",""," /**"," * Outputs buffered messages to the console UI. This is typically called"," * from a scheduled interval until the buffer is empty (referred to as the"," * print loop). The number of buffered messages output to the Console is"," * limited to the number provided as an argument. If no limit is passed,"," * all buffered messages are rendered."," * "," * @method printBuffer"," * @param limit {Number} (optional) max number of buffered entries to write"," * @chainable"," */"," printBuffer: function (limit) {"," var messages = this.buffer,"," debug = Y.config.debug,"," entries = [],"," consoleLimit= this.get('consoleLimit'),"," newestOnTop = this.get('newestOnTop'),"," anchor = newestOnTop ? this._body.get('firstChild') : null,"," i;",""," if (messages.length > consoleLimit) {"," messages.splice(0, messages.length - consoleLimit);"," }",""," limit = Math.min(messages.length, (limit || messages.length));"," "," // turn off logging system"," Y.config.debug = false;",""," if (!this.get(PAUSED) && this.get('rendered')) {",""," for (i = 0; i < limit && messages.length; ++i) {"," entries[i] = this._createEntryHTML(messages.shift());"," }",""," if (!messages.length) {"," this._cancelPrintLoop();"," }",""," if (entries.length) {"," if (newestOnTop) {"," entries.reverse();"," }",""," this._body.insertBefore(create(entries.join('')), anchor);",""," if (this.get('scrollIntoView')) {"," this.scrollToLatest();"," }",""," this._trimOldEntries();"," }"," }",""," // restore logging system"," Y.config.debug = debug;",""," return this;"," },",""," "," /**"," * Constructor code. Set up the buffer and entry template, publish"," * internal events, and subscribe to the configured logEvent."," * "," * @method initializer"," * @protected"," */"," initializer : function () {"," this._evtCat = Y.stamp(this) + '|';",""," this.buffer = [];",""," this.get('logSource').on(this._evtCat +"," this.get('logEvent'),Y.bind(\"_onLogEvent\",this));",""," /**"," * Transfers a received message to the print loop buffer. Default"," * behavior defined in _defEntryFn."," *"," * @event entry"," * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:"," * "," * - message
"," * - The message data normalized into an object literal (see _normalizeMessage)
"," *
"," * @preventable _defEntryFn"," */"," this.publish(ENTRY, { defaultFn: this._defEntryFn });",""," /**"," * Triggers the reset behavior via the default logic in _defResetFn."," *"," * @event reset"," * @param event {Event.Facade} Event Facade object"," * @preventable _defResetFn"," */"," this.publish(RESET, { defaultFn: this._defResetFn });",""," this.after('rendered', this._schedulePrint);"," },",""," /**"," * Tears down the instance, flushing event subscriptions and purging the UI."," *"," * @method destructor"," * @protected"," */"," destructor : function () {"," var bb = this.get('boundingBox');",""," this._cancelPrintLoop();",""," this.get('logSource').detach(this._evtCat + '*');"," "," bb.purge(true);"," },",""," /**"," * Generate the Console UI."," *"," * @method renderUI"," * @protected"," */"," renderUI : function () {"," this._initHead();"," this._initBody();"," this._initFoot();",""," // Apply positioning to the bounding box if appropriate"," var style = this.get('style');"," if (style !== 'block') {"," this.get('boundingBox').addClass(this.getClassName(style));"," }"," },",""," /**"," * Sync the UI state to the current attribute state."," *"," * @method syncUI"," */"," syncUI : function () {"," this._uiUpdatePaused(this.get(PAUSED));"," this._uiUpdateCollapsed(this.get(COLLAPSED));"," this._uiSetHeight(this.get(HEIGHT));"," },",""," /**"," * Set up event listeners to wire up the UI to the internal state."," *"," * @method bindUI"," * @protected"," */"," bindUI : function () {"," this.get(CONTENT_BOX).one('button.'+C_COLLAPSE)."," on(CLICK,this._onCollapseClick,this);",""," this.get(CONTENT_BOX).one('input[type=checkbox].'+C_PAUSE)."," on(CLICK,this._onPauseClick,this);",""," this.get(CONTENT_BOX).one('button.'+C_CLEAR)."," on(CLICK,this._onClearClick,this);",""," // Attribute changes"," this.after(this._evtCat + 'stringsChange',"," this._afterStringsChange);"," this.after(this._evtCat + 'pausedChange',"," this._afterPausedChange);"," this.after(this._evtCat + 'consoleLimitChange',"," this._afterConsoleLimitChange);"," this.after(this._evtCat + 'collapsedChange',"," this._afterCollapsedChange);"," },",""," "," /**"," * Create the DOM structure for the header elements."," *"," * @method _initHead"," * @protected"," */"," _initHead : function () {"," var cb = this.get(CONTENT_BOX),"," info = merge(Console.CHROME_CLASSES, {"," str_collapse : this.get('strings.collapse'),"," str_title : this.get('strings.title')"," });",""," this._head = create(substitute(Console.HEADER_TEMPLATE,info));",""," cb.insertBefore(this._head,cb.get('firstChild'));"," },",""," /**"," * Create the DOM structure for the console body—where messages are"," * rendered."," *"," * @method _initBody"," * @protected"," */"," _initBody : function () {"," this._body = create(substitute("," Console.BODY_TEMPLATE,"," Console.CHROME_CLASSES));",""," this.get(CONTENT_BOX).appendChild(this._body);"," },",""," /**"," * Create the DOM structure for the footer elements."," *"," * @method _initFoot"," * @protected"," */"," _initFoot : function () {"," var info = merge(Console.CHROME_CLASSES, {"," id_guid : Y.guid(),"," str_pause : this.get('strings.pause'),"," str_clear : this.get('strings.clear')"," });",""," this._foot = create(substitute(Console.FOOTER_TEMPLATE,info));",""," this.get(CONTENT_BOX).appendChild(this._foot);"," },",""," /**"," * Determine if incoming log messages are within the configured logLevel"," * to be buffered for printing."," *"," * @method _isInLogLevel"," * @protected"," */"," _isInLogLevel : function (e) {"," var cat = e.cat, lvl = this.get('logLevel');",""," if (lvl !== INFO) {"," cat = cat || INFO;",""," if (isString(cat)) {"," cat = cat.toLowerCase();"," }",""," if ((cat === WARN && lvl === ERROR) ||"," (cat === INFO && lvl !== INFO)) {"," return false;"," }"," }",""," return true;"," },",""," /**"," * Create a log entry message from the inputs including the following keys:"," * "," * - time - this moment
"," * - message - leg message
"," * - category - logLevel or custom category for the message
"," * - source - when provided, the widget or util calling Y.log
"," * - sourceAndDetail - same as source but can include instance info
"," * - localTime - readable version of time
"," * - elapsedTime - ms since last entry
"," * - totalTime - ms since Console was instantiated or reset
"," *
"," *"," * @method _normalizeMessage"," * @param e {Event} custom event containing the log message"," * @return Object the message object"," * @protected"," */"," _normalizeMessage : function (e) {",""," var msg = e.msg,"," cat = e.cat,"," src = e.src,",""," m = {"," time : new Date(),"," message : msg,"," category : cat || this.get('defaultCategory'),"," sourceAndDetail : src || this.get('defaultSource'),"," source : null,"," localTime : null,"," elapsedTime : null,"," totalTime : null"," };",""," // Extract m.source \"Foo\" from m.sourceAndDetail \"Foo bar baz\""," m.source = RE_INLINE_SOURCE.test(m.sourceAndDetail) ?"," RegExp.$1 : m.sourceAndDetail;"," m.localTime = m.time.toLocaleTimeString ? "," m.time.toLocaleTimeString() : (m.time + '');"," m.elapsedTime = m.time - this.get(LAST_TIME);"," m.totalTime = m.time - this.get(START_TIME);",""," this._set(LAST_TIME,m.time);",""," return m;"," },",""," /**"," * Sets an interval for buffered messages to be output to the console."," *"," * @method _schedulePrint"," * @protected"," */"," _schedulePrint : function () {"," if (!this._printLoop && !this.get(PAUSED) && this.get('rendered')) {"," this._printLoop = Y.later("," this.get('printTimeout'),"," this, this.printBuffer,"," this.get('printLimit'), true);"," }"," },",""," /**"," * Translates message meta into the markup for a console entry."," *"," * @method _createEntryHTML"," * @param m {Object} object literal containing normalized message metadata"," * @return String"," * @protected"," */"," _createEntryHTML : function (m) {"," m = merge("," this._htmlEscapeMessage(m),"," Console.ENTRY_CLASSES,"," {"," cat_class : this.getClassName(ENTRY,m.category),"," src_class : this.getClassName(ENTRY,m.source)"," });",""," return this.get('entryTemplate').replace(/\\{(\\w+)\\}/g,"," function (_,token) {"," return token in m ? m[token] : '';"," });"," },",""," /**"," * Scrolls to the most recent entry"," *"," * @method scrollToLatest"," * @chainable"," */"," scrollToLatest : function () {"," var scrollTop = this.get('newestOnTop') ?"," 0 :"," this._body.get('scrollHeight');",""," this._body.set('scrollTop', scrollTop);"," },",""," /**"," * Performs HTML escaping on strings in the message object."," *"," * @method _htmlEscapeMessage"," * @param m {Object} the normalized message object"," * @return Object the message object with proper escapement"," * @protected"," */"," _htmlEscapeMessage : function (m) {"," m.message = this._encodeHTML(m.message);"," m.source = this._encodeHTML(m.source);"," m.sourceAndDetail = this._encodeHTML(m.sourceAndDetail);"," m.category = this._encodeHTML(m.category);",""," return m;"," },",""," /**"," * Removes the oldest message entries from the UI to maintain the limit"," * specified in the consoleLimit configuration."," *"," * @method _trimOldEntries"," * @protected"," */"," _trimOldEntries : function () {"," // Turn off the logging system for the duration of this operation"," // to prevent an infinite loop"," Y.config.debug = false;",""," var bd = this._body,"," limit = this.get('consoleLimit'),"," debug = Y.config.debug,"," entries,e,i,l;",""," if (bd) {"," entries = bd.all(DOT+C_ENTRY);"," l = entries.size() - limit;",""," if (l > 0) {"," if (this.get('newestOnTop')) {"," i = limit;"," l = entries.size();"," } else {"," i = 0;"," }",""," this._body.setStyle('display','none');",""," for (;i < l; ++i) {"," e = entries.item(i);"," if (e) {"," e.remove();"," }"," }",""," this._body.setStyle('display','');"," }",""," }",""," Y.config.debug = debug;"," },",""," /**"," * Returns the input string with ampersands (&), <, and > encoded"," * as HTML entities."," *"," * @method _encodeHTML"," * @param s {String} the raw string"," * @return String the encoded string"," * @protected"," */"," _encodeHTML : function (s) {"," return isString(s) ?"," s.replace(RE_AMP,ESC_AMP)."," replace(RE_LT, ESC_LT)."," replace(RE_GT, ESC_GT) :"," s;"," },",""," /**"," * Clears the timeout for printing buffered messages."," *"," * @method _cancelPrintLoop"," * @protected"," */"," _cancelPrintLoop : function () {"," if (this._printLoop) {"," this._printLoop.cancel();"," this._printLoop = null;"," }"," },",""," /**"," * Validates input value for style attribute. Accepts only values 'inline',"," * 'block', and 'separate'."," *"," * @method _validateStyle"," * @param style {String} the proposed value"," * @return {Boolean} pass/fail"," * @protected"," */"," _validateStyle : function (style) {"," return style === 'inline' || style === 'block' || style === 'separate';"," },",""," /**"," * Event handler for clicking on the Pause checkbox to update the paused"," * attribute."," *"," * @method _onPauseClick"," * @param e {Event} DOM event facade for the click event"," * @protected"," */"," _onPauseClick : function (e) {"," this.set(PAUSED,e.target.get(CHECKED));"," },",""," /**"," * Event handler for clicking on the Clear button. Pass-through to"," * this.clearConsole()."," *"," * @method _onClearClick"," * @param e {Event} DOM event facade for the click event"," * @protected"," */"," _onClearClick : function (e) {"," this.clearConsole();"," },",""," /**"," * Event handler for clicking on the Collapse/Expand button. Sets the"," * "collapsed" attribute accordingly."," *"," * @method _onCollapseClick"," * @param e {Event} DOM event facade for the click event"," * @protected"," */"," _onCollapseClick : function (e) {"," this.set(COLLAPSED, !this.get(COLLAPSED));"," },","",""," /**"," * Validator for logSource attribute."," *"," * @method _validateLogSource"," * @param v {Object} the desired logSource"," * @return {Boolean} true if the input is an object with an on"," * method"," * @protected"," */"," _validateLogSource: function (v) {"," return v && Y.Lang.isFunction(v.on);"," },",""," /**"," * Setter method for logLevel attribute. Acceptable values are"," * "error", "warn", and "info" (case"," * insensitive). Other values are treated as "info"."," *"," * @method _setLogLevel"," * @param v {String} the desired log level"," * @return String One of Console.LOG_LEVEL_INFO, _WARN, or _ERROR"," * @protected"," */"," _setLogLevel : function (v) {"," if (isString(v)) {"," v = v.toLowerCase();"," }"," "," return (v === WARN || v === ERROR) ? v : INFO;"," },",""," /**"," * Getter method for useBrowserConsole attribute. Just a pass through to"," * the YUI instance configuration setting."," *"," * @method _getUseBrowserConsole"," * @return {Boolean} or null if logSource is not a YUI instance"," * @protected"," */"," _getUseBrowserConsole: function () {"," var logSource = this.get('logSource');"," return logSource instanceof YUI ?"," logSource.config.useBrowserConsole : null;"," },",""," /**"," * Setter method for useBrowserConsole attributes. Only functional if the"," * logSource attribute points to a YUI instance. Passes the value down to"," * the YUI instance. NOTE: multiple Console instances cannot maintain"," * independent useBrowserConsole values, since it is just a pass through to"," * the YUI instance configuration."," *"," * @method _setUseBrowserConsole"," * @param v {Boolean} false to disable browser console printing (default)"," * @return {Boolean} true|false if logSource is a YUI instance"," * @protected"," */"," _setUseBrowserConsole: function (v) {"," var logSource = this.get('logSource');"," if (logSource instanceof YUI) {"," v = !!v;"," logSource.config.useBrowserConsole = v;"," return v;"," } else {"," return Y.Attribute.INVALID_VALUE;"," }"," },",""," /**"," * Set the height of the Console container. Set the body height to the"," * difference between the configured height and the calculated heights of"," * the header and footer."," * Overrides Widget.prototype._uiSetHeight."," *"," * @method _uiSetHeight"," * @param v {String|Number} the new height"," * @protected"," */"," _uiSetHeight : function (v) {"," Console.superclass._uiSetHeight.apply(this,arguments);",""," if (this._head && this._foot) {"," var h = this.get('boundingBox').get('offsetHeight') -"," this._head.get('offsetHeight') -"," this._foot.get('offsetHeight');",""," this._body.setStyle(HEIGHT,h+'px');"," }"," },",""," /**"," * Over-ride default content box sizing to do nothing, since we're sizing"," * the body section to fill out height ourselves."," * "," * @method _uiSizeCB"," * @protected"," */"," _uiSizeCB : function() {"," // Do Nothing. Ideally want to move to Widget-StdMod, which accounts for"," // _uiSizeCB "," },",""," /**"," * Updates the UI if changes are made to any of the strings in the strings"," * attribute."," *"," * @method _afterStringsChange"," * @param e {Event} Custom event for the attribute change"," * @protected"," */"," _afterStringsChange : function (e) {"," var prop = e.subAttrName ? e.subAttrName.split(DOT)[1] : null,"," cb = this.get(CONTENT_BOX),"," before = e.prevVal,"," after = e.newVal;",""," if ((!prop || prop === TITLE) && before.title !== after.title) {"," cb.all(DOT+C_CONSOLE_TITLE).setHTML(after.title);"," }",""," if ((!prop || prop === PAUSE) && before.pause !== after.pause) {"," cb.all(DOT+C_PAUSE_LABEL).setHTML(after.pause);"," }",""," if ((!prop || prop === CLEAR) && before.clear !== after.clear) {"," cb.all(DOT+C_CLEAR).set('value',after.clear);"," }"," },",""," /**"," * Updates the UI and schedules or cancels the print loop."," *"," * @method _afterPausedChange"," * @param e {Event} Custom event for the attribute change"," * @protected"," */"," _afterPausedChange : function (e) {"," var paused = e.newVal;",""," if (e.src !== Y.Widget.SRC_UI) {"," this._uiUpdatePaused(paused);"," }",""," if (!paused) {"," this._schedulePrint();"," } else if (this._printLoop) {"," this._cancelPrintLoop();"," }"," },",""," /**"," * Checks or unchecks the paused checkbox"," *"," * @method _uiUpdatePaused"," * @param on {Boolean} the new checked state"," * @protected"," */"," _uiUpdatePaused : function (on) {"," var node = this._foot.all('input[type=checkbox].'+C_PAUSE);",""," if (node) {"," node.set(CHECKED,on);"," }"," },",""," /**"," * Calls this._trimOldEntries() in response to changes in the configured"," * consoleLimit attribute."," * "," * @method _afterConsoleLimitChange"," * @param e {Event} Custom event for the attribute change"," * @protected"," */"," _afterConsoleLimitChange : function () {"," this._trimOldEntries();"," },","",""," /**"," * Updates the className of the contentBox, which should trigger CSS to"," * hide or show the body and footer sections depending on the new value."," *"," * @method _afterCollapsedChange"," * @param e {Event} Custom event for the attribute change"," * @protected"," */"," _afterCollapsedChange : function (e) {"," this._uiUpdateCollapsed(e.newVal);"," },",""," /**"," * Updates the UI to reflect the new Collapsed state"," *"," * @method _uiUpdateCollapsed"," * @param v {Boolean} true for collapsed, false for expanded"," * @protected"," */"," _uiUpdateCollapsed : function (v) {"," var bb = this.get('boundingBox'),"," button = bb.all('button.'+C_COLLAPSE),"," method = v ? 'addClass' : 'removeClass',"," str = this.get('strings.'+(v ? 'expand' : 'collapse'));",""," bb[method](C_COLLAPSED);",""," if (button) {"," button.setHTML(str);"," }",""," this._uiSetHeight(v ? this._head.get('offsetHeight'): this.get(HEIGHT));"," },",""," /**"," * Makes adjustments to the UI if needed when the Console is hidden or shown"," *"," * @method _afterVisibleChange"," * @param e {Event} the visibleChange event"," * @protected"," */"," _afterVisibleChange : function (e) {"," Console.superclass._afterVisibleChange.apply(this,arguments);",""," this._uiUpdateFromHideShow(e.newVal);"," },",""," /**"," * Recalculates dimensions and updates appropriately when shown"," *"," * @method _uiUpdateFromHideShow"," * @param v {Boolean} true for visible, false for hidden"," * @protected"," */"," _uiUpdateFromHideShow : function (v) {"," if (v) {"," this._uiSetHeight(this.get(HEIGHT));"," }"," },",""," /**"," * Responds to log events by normalizing qualifying messages and passing"," * them along through the entry event for buffering etc."," * "," * @method _onLogEvent"," * @param msg {String} the log message"," * @param cat {String} OPTIONAL the category or logLevel of the message"," * @param src {String} OPTIONAL the source of the message (e.g. widget name)"," * @protected"," */"," _onLogEvent : function (e) {",""," if (!this.get(DISABLED) && this._isInLogLevel(e)) {",""," var debug = Y.config.debug;",""," /* TODO: needed? */"," Y.config.debug = false;",""," this.fire(ENTRY, {"," message : this._normalizeMessage(e)"," });",""," Y.config.debug = debug;"," }"," },",""," /**"," * Clears the console, resets the startTime attribute, enables and"," * unpauses the widget."," *"," * @method _defResetFn"," * @protected"," */"," _defResetFn : function () {"," this.clearConsole();"," this.set(START_TIME,new Date());"," this.set(DISABLED,false);"," this.set(PAUSED,false);"," },",""," /**"," * Buffers incoming message objects and schedules the printing."," *"," * @method _defEntryFn"," * @param e {Event} The Custom event carrying the message in its payload"," * @protected"," */"," _defEntryFn : function (e) {"," if (e.message) {"," this.buffer.push(e.message);"," this._schedulePrint();"," }"," }","","},","","// Y.Console static properties","{"," /**"," * The identity of the widget."," *"," * @property NAME"," * @type String"," * @static"," */"," NAME : CONSOLE,",""," /**"," * Static identifier for logLevel configuration setting to allow all"," * incoming messages to generate Console entries."," *"," * @property LOG_LEVEL_INFO"," * @type String"," * @static"," */"," LOG_LEVEL_INFO : INFO,",""," /**"," * Static identifier for logLevel configuration setting to allow only"," * incoming messages of logLevel "warn" or "error""," * to generate Console entries."," *"," * @property LOG_LEVEL_WARN"," * @type String"," * @static"," */"," LOG_LEVEL_WARN : WARN,",""," /**"," * Static identifier for logLevel configuration setting to allow only"," * incoming messages of logLevel "error" to generate"," * Console entries."," *"," * @property LOG_LEVEL_ERROR"," * @type String"," * @static"," */"," LOG_LEVEL_ERROR : ERROR,",""," /**"," * Map (object) of classNames used to populate the placeholders in the"," * Console.ENTRY_TEMPLATE markup when rendering a new Console entry."," *"," * By default, the keys contained in the object are:
"," * "," * - entry_class
"," * - entry_meta_class
"," * - entry_cat_class
"," * - entry_src_class
"," * - entry_time_class
"," * - entry_content_class
"," *
"," *"," * @property ENTRY_CLASSES"," * @type Object"," * @static"," */"," ENTRY_CLASSES : {"," entry_class : C_ENTRY,"," entry_meta_class : C_ENTRY_META,"," entry_cat_class : C_ENTRY_CAT,"," entry_src_class : C_ENTRY_SRC,"," entry_time_class : C_ENTRY_TIME,"," entry_content_class : C_ENTRY_CONTENT"," },",""," /**"," * Map (object) of classNames used to populate the placeholders in the"," * Console.HEADER_TEMPLATE, Console.BODY_TEMPLATE, and"," * Console.FOOTER_TEMPLATE markup when rendering the Console UI."," *"," * By default, the keys contained in the object are:
"," * "," * - console_hd_class
"," * - console_bd_class
"," * - console_ft_class
"," * - console_controls_class
"," * - console_checkbox_class
"," * - console_pause_class
"," * - console_pause_label_class
"," * - console_button_class
"," * - console_clear_class
"," * - console_collapse_class
"," * - console_title_class
"," *
"," *"," * @property CHROME_CLASSES"," * @type Object"," * @static"," */"," CHROME_CLASSES : {"," console_hd_class : C_CONSOLE_HD,"," console_bd_class : C_CONSOLE_BD,"," console_ft_class : C_CONSOLE_FT,"," console_controls_class : C_CONSOLE_CONTROLS,"," console_checkbox_class : C_CHECKBOX,"," console_pause_class : C_PAUSE,"," console_pause_label_class : C_PAUSE_LABEL,"," console_button_class : C_BUTTON,"," console_clear_class : C_CLEAR,"," console_collapse_class : C_COLLAPSE,"," console_title_class : C_CONSOLE_TITLE"," },",""," /**"," * Markup template used to generate the DOM structure for the header"," * section of the Console when it is rendered. The template includes"," * these {placeholder}s:"," *"," * "," * - console_button_class - contributed by Console.CHROME_CLASSES
"," * - console_collapse_class - contributed by Console.CHROME_CLASSES
"," * - console_hd_class - contributed by Console.CHROME_CLASSES
"," * - console_title_class - contributed by Console.CHROME_CLASSES
"," * - str_collapse - pulled from attribute strings.collapse
"," * - str_title - pulled from attribute strings.title
"," *
"," *"," * @property HEADER_TEMPLATE"," * @type String"," * @static"," */"," HEADER_TEMPLATE :"," ''+"," '{str_title}
'+"," ''+"," '',",""," /**"," * Markup template used to generate the DOM structure for the Console body"," * (where the messages are inserted) when it is rendered. The template"," * includes only the {placeholder} "console_bd_class", which is"," * constributed by Console.CHROME_CLASSES."," *"," * @property BODY_TEMPLATE"," * @type String"," * @static"," */"," BODY_TEMPLATE : '',",""," /**"," * Markup template used to generate the DOM structure for the footer"," * section of the Console when it is rendered. The template includes"," * many of the {placeholder}s from Console.CHROME_CLASSES as well as:"," *"," * "," * - id_guid - generated unique id, relates the label and checkbox
"," * - str_pause - pulled from attribute strings.pause
"," * - str_clear - pulled from attribute strings.clear
"," *
"," *"," * @property FOOTER_TEMPLATE"," * @type String"," * @static"," */"," FOOTER_TEMPLATE :"," ''+"," ''+"," '' +"," ''+"," ''+"," '',",""," /**"," * Default markup template used to create the DOM structure for Console"," * entries. The markup contains {placeholder}s for content and classes"," * that are replaced via Y.Lang.sub. The default template contains"," * the {placeholder}s identified in Console.ENTRY_CLASSES as well as the"," * following placeholders that will be populated by the log entry data:"," *"," * "," * - cat_class
"," * - src_class
"," * - totalTime
"," * - elapsedTime
"," * - localTime
"," * - sourceAndDetail
"," * - message
"," *
"," *"," * @property ENTRY_TEMPLATE"," * @type String"," * @static"," */"," ENTRY_TEMPLATE : ENTRY_TEMPLATE_STR,",""," /**"," * Static property used to define the default attribute configuration of"," * the Widget."," *"," * @property ATTRS"," * @Type Object"," * @static"," */"," ATTRS : {",""," /**"," * Name of the custom event that will communicate log messages."," *"," * @attribute logEvent"," * @type String"," * @default \"yui:log\""," */"," logEvent : {"," value : 'yui:log',"," writeOnce : true,"," validator : isString"," },",""," /**"," * Object that will emit the log events. By default the YUI instance."," * To have a single Console capture events from all YUI instances, set"," * this to the Y.Global object."," *"," * @attribute logSource"," * @type EventTarget"," * @default Y"," */"," logSource : {"," value : Y,"," writeOnce : true,"," validator : function (v) {"," return this._validateLogSource(v);"," }"," },",""," /**"," * Collection of strings used to label elements in the Console UI."," * Default collection contains the following name:value pairs:"," *"," * "," * - title : "Log Console"
"," * - pause : "Pause"
"," * - clear : "Clear"
"," * - collapse : "Collapse"
"," * - expand : "Expand"
"," *
"," *"," * @attribute strings"," * @type Object"," */"," strings : {"," valueFn: function() { return Y.Intl.get(\"console\"); }"," },",""," /**"," * Boolean to pause the outputting of new messages to the console."," * When paused, messages will accumulate in the buffer."," *"," * @attribute paused"," * @type boolean"," * @default false"," */"," paused : {"," value : false,"," validator : L.isBoolean"," },",""," /**"," * If a category is not specified in the Y.log(..) statement, this"," * category will be used. Categories "info","," * "warn", and "error" are also called log level."," *"," * @attribute defaultCategory"," * @type String"," * @default \"info\""," */"," defaultCategory : {"," value : INFO,"," validator : isString"," },",""," /**"," * If a source is not specified in the Y.log(..) statement, this"," * source will be used."," *"," * @attribute defaultSource"," * @type String"," * @default \"global\""," */"," defaultSource : {"," value : 'global',"," validator : isString"," },",""," /**"," * Markup template used to create the DOM structure for Console entries."," *"," * @attribute entryTemplate"," * @type String"," * @default Console.ENTRY_TEMPLATE"," */"," entryTemplate : {"," value : ENTRY_TEMPLATE_STR,"," validator : isString"," },",""," /**"," * Minimum entry log level to render into the Console. The initial"," * logLevel value for all Console instances defaults from the"," * Y.config.logLevel YUI configuration, or Console.LOG_LEVEL_INFO if"," * that configuration is not set."," *"," * Possible values are "info", "warn","," * "error" (case insensitive), or their corresponding statics"," * Console.LOG_LEVEL_INFO and so on."," *"," * @attribute logLevel"," * @type String"," * @default Y.config.logLevel or Console.LOG_LEVEL_INFO"," */"," logLevel : {"," value : Y.config.logLevel || INFO,"," setter : function (v) {"," return this._setLogLevel(v);"," }"," },",""," /**"," * Millisecond timeout between iterations of the print loop, moving"," * entries from the buffer to the UI."," *"," * @attribute printTimeout"," * @type Number"," * @default 100"," */"," printTimeout : {"," value : 100,"," validator : isNumber"," },",""," /**"," * Maximum number of entries printed in each iteration of the print"," * loop. This is used to prevent excessive logging locking the page UI."," *"," * @attribute printLimit"," * @type Number"," * @default 50"," */"," printLimit : {"," value : 50,"," validator : isNumber"," },",""," /**"," * Maximum number of Console entries allowed in the Console body at one"," * time. This is used to keep acquired messages from exploding the"," * DOM tree and impacting page performance."," *"," * @attribute consoleLimit"," * @type Number"," * @default 300"," */"," consoleLimit : {"," value : 300,"," validator : isNumber"," },",""," /**"," * New entries should display at the top of the Console or the bottom?"," *"," * @attribute newestOnTop"," * @type Boolean"," * @default true"," */"," newestOnTop : {"," value : true"," },",""," /**"," * When new entries are added to the Console UI, should they be"," * scrolled into view?"," *"," * @attribute scrollIntoView"," * @type Boolean"," * @default true"," */"," scrollIntoView : {"," value : true"," },",""," /**"," * The baseline time for this Console instance, used to measure elapsed"," * time from the moment the console module is used to the"," * moment each new entry is logged (not rendered)."," *"," * This value is reset by the instance method myConsole.reset()."," *"," * @attribute startTime"," * @type Date"," * @default The moment the console module is used"," */"," startTime : {"," value : new Date()"," },",""," /**"," * The precise time the last entry was logged. Used to measure elapsed"," * time between log messages."," *"," * @attribute lastTime"," * @type Date"," * @default The moment the console module is used"," */"," lastTime : {"," value : new Date(),"," readOnly: true"," },",""," /**"," * Controls the collapsed state of the Console"," *"," * @attribute collapsed"," * @type Boolean"," * @default false"," */"," collapsed : {"," value : false"," },",""," /**"," * String with units, or number, representing the height of the Console,"," * inclusive of header and footer. If a number is provided, the default"," * unit, defined by Widget's DEF_UNIT, property is used."," *"," * @attribute height"," * @default \"300px\""," * @type {String | Number}"," */"," height: {"," value: \"300px\""," },",""," /**"," * String with units, or number, representing the width of the Console."," * If a number is provided, the default unit, defined by Widget's"," * DEF_UNIT, property is used."," *"," * @attribute width"," * @default \"300px\""," * @type {String | Number}"," */"," width: {"," value: \"300px\""," },",""," /**"," * Pass through to the YUI instance useBrowserConsole configuration."," * By default this is set to false, which will disable logging to the"," * browser console when a Console instance is created. If the"," * logSource is not a YUI instance, this has no effect."," * "," * @attribute useBrowserConsole"," * @type {Boolean}"," * @default false"," */"," useBrowserConsole : {"," lazyAdd: false,"," value: false,"," getter : function () {"," return this._getUseBrowserConsole();"," },"," setter : function (v) {"," return this._setUseBrowserConsole(v);"," }"," },",""," /**"," * Allows the Console to flow in the document. Available values are"," * 'inline', 'block', and 'separate' (the default). "," *"," * @attribute style"," * @type {String}"," * @default 'separate'"," */"," style : {"," value : 'separate',"," writeOnce : true,"," validator : function (v) {"," return this._validateStyle(v);"," }"," }"," }","","});","","","}, '3.7.2', {\"requires\": [\"yui-log\", \"widget\"], \"skinnable\": true, \"lang\": [\"en\", \"es\", \"ja\"]});"];
_yuitest_coverage["build/console/console.js"].lines = {"1":0,"21":0,"94":0,"95":0,"98":0,"171":0,"173":0,"184":0,"186":0,"188":0,"190":0,"200":0,"202":0,"212":0,"214":0,"224":0,"226":0,"241":0,"249":0,"250":0,"253":0,"256":0,"258":0,"260":0,"261":0,"264":0,"265":0,"268":0,"269":0,"270":0,"273":0,"275":0,"276":0,"279":0,"284":0,"286":0,"298":0,"300":0,"302":0,"317":0,"326":0,"328":0,"338":0,"340":0,"342":0,"344":0,"354":0,"355":0,"356":0,"359":0,"360":0,"361":0,"371":0,"372":0,"373":0,"383":0,"386":0,"389":0,"393":0,"395":0,"397":0,"399":0,"411":0,"417":0,"419":0,"430":0,"434":0,"444":0,"450":0,"452":0,"463":0,"465":0,"466":0,"468":0,"469":0,"472":0,"474":0,"478":0,"501":0,"517":0,"519":0,"521":0,"522":0,"524":0,"526":0,"536":0,"537":0,"553":0,"561":0,"563":0,"574":0,"578":0,"590":0,"591":0,"592":0,"593":0,"595":0,"608":0,"610":0,"615":0,"616":0,"617":0,"619":0,"620":0,"621":0,"622":0,"624":0,"627":0,"629":0,"630":0,"631":0,"632":0,"636":0,"641":0,"654":0,"668":0,"669":0,"670":0,"684":0,"696":0,"708":0,"720":0,"734":0,"748":0,"749":0,"752":0,"764":0,"765":0,"782":0,"783":0,"784":0,"785":0,"786":0,"788":0,"803":0,"805":0,"806":0,"810":0,"835":0,"840":0,"841":0,"844":0,"845":0,"848":0,"849":0,"861":0,"863":0,"864":0,"867":0,"868":0,"869":0,"870":0,"882":0,"884":0,"885":0,"898":0,"911":0,"922":0,"927":0,"929":0,"930":0,"933":0,"944":0,"946":0,"957":0,"958":0,"974":0,"976":0,"979":0,"981":0,"985":0,"997":0,"998":0,"999":0,"1000":0,"1011":0,"1012":0,"1013":0,"1252":0,"1272":0,"1344":0,"1490":0,"1493":0,"1509":0};
_yuitest_coverage["build/console/console.js"].functions = {"Console:94":0,"log:170":0,"clearConsole:182":0,"reset:199":0,"collapse:211":0,"expand:223":0,"printBuffer:240":0,"initializer:297":0,"destructor:337":0,"renderUI:353":0,"syncUI:370":0,"bindUI:382":0,"_initHead:410":0,"_initBody:429":0,"_initFoot:443":0,"_isInLogLevel:462":0,"_normalizeMessage:499":0,"_schedulePrint:535":0,"(anonymous 2):562":0,"_createEntryHTML:552":0,"scrollToLatest:573":0,"_htmlEscapeMessage:589":0,"_trimOldEntries:605":0,"_encodeHTML:653":0,"_cancelPrintLoop:667":0,"_validateStyle:683":0,"_onPauseClick:695":0,"_onClearClick:707":0,"_onCollapseClick:719":0,"_validateLogSource:733":0,"_setLogLevel:747":0,"_getUseBrowserConsole:763":0,"_setUseBrowserConsole:781":0,"_uiSetHeight:802":0,"_afterStringsChange:834":0,"_afterPausedChange:860":0,"_uiUpdatePaused:881":0,"_afterConsoleLimitChange:897":0,"_afterCollapsedChange:910":0,"_uiUpdateCollapsed:921":0,"_afterVisibleChange:943":0,"_uiUpdateFromHideShow:956":0,"_onLogEvent:972":0,"_defResetFn:996":0,"_defEntryFn:1010":0,"validator:1251":0,"valueFn:1272":0,"setter:1343":0,"getter:1489":0,"setter:1492":0,"validator:1508":0,"(anonymous 1):1":0};
_yuitest_coverage["build/console/console.js"].coveredLines = 184;
@@ -1789,4 +1789,4 @@ return this._validateStyle(v);
});
-}, '3.7.1', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
+}, '3.7.2', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
diff --git a/lib/yuilib/3.7.1/build/console/console-debug.js b/lib/yuilib/3.7.2/build/console/console-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/console/console-debug.js
rename to lib/yuilib/3.7.2/build/console/console-debug.js
index ee3e2ded260..7b11b73d588 100644
--- a/lib/yuilib/3.7.1/build/console/console-debug.js
+++ b/lib/yuilib/3.7.2/build/console/console-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1520,4 +1520,4 @@ Y.Console = Y.extend(Console, Y.Widget,
});
-}, '3.7.1', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
+}, '3.7.2', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
diff --git a/lib/yuilib/3.7.1/build/console/console-min.js b/lib/yuilib/3.7.2/build/console/console-min.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/console/console-min.js
rename to lib/yuilib/3.7.2/build/console/console-min.js
index 8b39f01c4f2..96cf2f3fc3d 100644
--- a/lib/yuilib/3.7.1/build/console/console-min.js
+++ b/lib/yuilib/3.7.2/build/console/console-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 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;a0){this.get("newestOnTop")?(o=n,u=i.size()):o=0,this._body.setStyle("display","none");for(;o{str_title}
',BODY_TEMPLATE:'',FOOTER_TEMPLATE:'',ENTRY_TEMPLATE:$,ATTRS:{logEvent:{value:"yui:log",writeOnce:!0,validator:G},logSource:{value:e,writeOnce:!0,validator:function(e){return this._validateLogSource(e)}},strings:{valueFn:function(){return e.Intl.get("console")}},paused:{value:!1,validator:J.isBoolean},defaultCategory:{value:p,validator:G},defaultSource:{value:"global",validator:G},entryTemplate:{value:$,validator:G},logLevel:{value:e.config.logLevel||p,setter:function(e){return this._setLogLevel(e)}},printTimeout:{value:100,validator:Q},printLimit:{value:50,validator:Q},consoleLimit:{value:300,validator:Q},newestOnTop:{value:!0},scrollIntoView:{value:!0},startTime:{value:new Date},lastTime:{value:new Date,readOnly:!0},collapsed:{value:!1},height:{value:"300px"},width:{value:"300px"},useBrowserConsole:{lazyAdd:!1,value:!1,getter:function(){return this._getUseBrowserConsole()},setter:function(e){return this._setUseBrowserConsole(e)}},style:{value:"separate",writeOnce:!0,validator:function(e){return this._validateStyle(e)}}}})},"3.7.1",{requires:["yui-log","widget"],skinnable:!0,lang:["en","es","ja"]});
+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;a0){this.get("newestOnTop")?(o=n,u=i.size()):o=0,this._body.setStyle("display","none");for(;o{str_title}
',BODY_TEMPLATE:'',FOOTER_TEMPLATE:'',ENTRY_TEMPLATE:$,ATTRS:{logEvent:{value:"yui:log",writeOnce:!0,validator:G},logSource:{value:e,writeOnce:!0,validator:function(e){return this._validateLogSource(e)}},strings:{valueFn:function(){return e.Intl.get("console")}},paused:{value:!1,validator:J.isBoolean},defaultCategory:{value:p,validator:G},defaultSource:{value:"global",validator:G},entryTemplate:{value:$,validator:G},logLevel:{value:e.config.logLevel||p,setter:function(e){return this._setLogLevel(e)}},printTimeout:{value:100,validator:Q},printLimit:{value:50,validator:Q},consoleLimit:{value:300,validator:Q},newestOnTop:{value:!0},scrollIntoView:{value:!0},startTime:{value:new Date},lastTime:{value:new Date,readOnly:!0},collapsed:{value:!1},height:{value:"300px"},width:{value:"300px"},useBrowserConsole:{lazyAdd:!1,value:!1,getter:function(){return this._getUseBrowserConsole()},setter:function(e){return this._setUseBrowserConsole(e)}},style:{value:"separate",writeOnce:!0,validator:function(e){return this._validateStyle(e)}}}})},"3.7.2",{requires:["yui-log","widget"],skinnable:!0,lang:["en","es","ja"]});
diff --git a/lib/yuilib/3.7.1/build/console/console.js b/lib/yuilib/3.7.2/build/console/console.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/console/console.js
rename to lib/yuilib/3.7.2/build/console/console.js
index ee3e2ded260..7b11b73d588 100644
--- a/lib/yuilib/3.7.1/build/console/console.js
+++ b/lib/yuilib/3.7.2/build/console/console.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1520,4 +1520,4 @@ Y.Console = Y.extend(Console, Y.Widget,
});
-}, '3.7.1', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
+}, '3.7.2', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
diff --git a/lib/yuilib/3.7.1/build/console/lang/console.js b/lib/yuilib/3.7.2/build/console/lang/console.js
similarity index 82%
rename from lib/yuilib/3.7.1/build/console/lang/console.js
rename to lib/yuilib/3.7.2/build/console/lang/console.js
index 81154d24c2d..f6b00e62ddf 100644
--- a/lib/yuilib/3.7.1/build/console/lang/console.js
+++ b/lib/yuilib/3.7.2/build/console/lang/console.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/console",function(e){e.Intl.add("console","",{title:"Log Console",pause:"Pause",clear:"Clear",collapse:"Collapse",expand:"Expand"})},"3.7.1");
+YUI.add("lang/console",function(e){e.Intl.add("console","",{title:"Log Console",pause:"Pause",clear:"Clear",collapse:"Collapse",expand:"Expand"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/console/lang/console_en.js b/lib/yuilib/3.7.2/build/console/lang/console_en.js
similarity index 81%
rename from lib/yuilib/3.7.1/build/console/lang/console_en.js
rename to lib/yuilib/3.7.2/build/console/lang/console_en.js
index b191d246f16..feb260e6357 100644
--- a/lib/yuilib/3.7.1/build/console/lang/console_en.js
+++ b/lib/yuilib/3.7.2/build/console/lang/console_en.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/console_en",function(e){e.Intl.add("console","en",{title:"Log Console",pause:"Pause",clear:"Clear",collapse:"Collapse",expand:"Expand"})},"3.7.1");
+YUI.add("lang/console_en",function(e){e.Intl.add("console","en",{title:"Log Console",pause:"Pause",clear:"Clear",collapse:"Collapse",expand:"Expand"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/console/lang/console_es.js b/lib/yuilib/3.7.2/build/console/lang/console_es.js
similarity index 77%
rename from lib/yuilib/3.7.1/build/console/lang/console_es.js
rename to lib/yuilib/3.7.2/build/console/lang/console_es.js
index 40737db88f8..64e989a6ec3 100644
--- a/lib/yuilib/3.7.1/build/console/lang/console_es.js
+++ b/lib/yuilib/3.7.2/build/console/lang/console_es.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/console_es",function(e){e.Intl.add("console","es",{title:"Consola de informacion",pause:"Pausa",clear:"Borrar",collapse:"Colapsar",expand:"Expandir"})},"3.7.1");
+YUI.add("lang/console_es",function(e){e.Intl.add("console","es",{title:"Consola de informacion",pause:"Pausa",clear:"Borrar",collapse:"Colapsar",expand:"Expandir"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/console/lang/console_ja.js b/lib/yuilib/3.7.2/build/console/lang/console_ja.js
similarity index 81%
rename from lib/yuilib/3.7.1/build/console/lang/console_ja.js
rename to lib/yuilib/3.7.2/build/console/lang/console_ja.js
index 36e7497b7fc..269b3b534a5 100644
--- a/lib/yuilib/3.7.1/build/console/lang/console_ja.js
+++ b/lib/yuilib/3.7.2/build/console/lang/console_ja.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/console_ja",function(e){e.Intl.add("console","ja",{title:"\u30ed\u30b0\u30b3\u30f3\u30bd\u30fc\u30eb",pause:"\u4e00\u6642\u505c\u6b62",clear:"\u30af\u30ea\u30a2",collapse:"\u9589\u3058\u308b",expand:"\u958b\u304f"})},"3.7.1");
+YUI.add("lang/console_ja",function(e){e.Intl.add("console","ja",{title:"\u30ed\u30b0\u30b3\u30f3\u30bd\u30fc\u30eb",pause:"\u4e00\u6642\u505c\u6b62",clear:"\u30af\u30ea\u30a2",collapse:"\u9589\u3058\u308b",expand:"\u958b\u304f"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/cookie/cookie-coverage.js b/lib/yuilib/3.7.2/build/cookie/cookie-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/cookie/cookie-coverage.js
rename to lib/yuilib/3.7.2/build/cookie/cookie-coverage.js
index 69d7cda2df0..751b00d2a38 100644
--- a/lib/yuilib/3.7.1/build/cookie/cookie-coverage.js
+++ b/lib/yuilib/3.7.2/build/cookie/cookie-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/cookie/cookie.js"] = {
path: "build/cookie/cookie.js",
code: []
};
-_yuitest_coverage["build/cookie/cookie.js"].code=["YUI.add('cookie', function (Y, NAME) {","","/**"," * Utilities for cookie management"," * @module cookie"," */",""," //shortcuts"," var L = Y.Lang,"," O = Y.Object,"," NULL = null,"," "," //shortcuts to functions"," isString = L.isString,"," isObject = L.isObject,"," isUndefined = L.isUndefined,"," isFunction = L.isFunction,"," encode = encodeURIComponent,"," decode = decodeURIComponent,"," "," //shortcut to document"," doc = Y.config.doc;"," "," /*"," * Throws an error message."," */"," function error(message){"," throw new TypeError(message);"," } "," "," /*"," * Checks the validity of a cookie name."," */"," function validateCookieName(name){"," if (!isString(name) || name === \"\"){"," error(\"Cookie name must be a non-empty string.\");"," } "," }"," "," /*"," * Checks the validity of a subcookie name."," */ "," function validateSubcookieName(subName){"," if (!isString(subName) || subName === \"\"){"," error(\"Subcookie name must be a non-empty string.\");"," } "," }"," "," /**"," * Cookie utility."," * @class Cookie"," * @static"," */"," Y.Cookie = {"," "," //-------------------------------------------------------------------------"," // Private Methods"," //-------------------------------------------------------------------------"," "," /**"," * Creates a cookie string that can be assigned into document.cookie."," * @param {String} name The name of the cookie."," * @param {String} value The value of the cookie."," * @param {Boolean} encodeValue True to encode the value, false to leave as-is."," * @param {Object} options (Optional) Options for the cookie."," * @return {String} The formatted cookie string."," * @method _createCookieString"," * @private"," * @static"," */"," _createCookieString : function (name /*:String*/, value /*:Variant*/, encodeValue /*:Boolean*/, options /*:Object*/) /*:String*/ {"," "," options = options || {};"," "," var text /*:String*/ = encode(name) + \"=\" + (encodeValue ? encode(value) : value),"," expires = options.expires,"," path = options.path,"," domain = options.domain;"," "," "," if (isObject(options)){"," //expiration date"," if (expires instanceof Date){"," text += \"; expires=\" + expires.toUTCString();"," }"," "," //path"," if (isString(path) && path !== \"\"){"," text += \"; path=\" + path;"," }"," "," //domain"," if (isString(domain) && domain !== \"\"){"," text += \"; domain=\" + domain;"," }"," "," //secure"," if (options.secure === true){"," text += \"; secure\";"," }"," }"," "," return text;"," },"," "," /**"," * Formats a cookie value for an object containing multiple values."," * @param {Object} hash An object of key-value pairs to create a string for."," * @return {String} A string suitable for use as a cookie value."," * @method _createCookieHashString"," * @private"," * @static"," */"," _createCookieHashString : function (hash /*:Object*/) /*:String*/ {"," if (!isObject(hash)){"," error(\"Cookie._createCookieHashString(): Argument must be an object.\");"," }"," "," var text /*:Array*/ = [];",""," O.each(hash, function(value, key){"," if (!isFunction(value) && !isUndefined(value)){"," text.push(encode(key) + \"=\" + encode(String(value)));"," } "," });"," "," return text.join(\"&\");"," },"," "," /**"," * Parses a cookie hash string into an object."," * @param {String} text The cookie hash string to parse (format: n1=v1&n2=v2)."," * @return {Object} An object containing entries for each cookie value."," * @method _parseCookieHash"," * @private"," * @static"," */"," _parseCookieHash : function (text) {"," "," var hashParts = text.split(\"&\"),"," hashPart = NULL,"," hash = {};"," "," if (text.length){"," for (var i=0, len=hashParts.length; i < len; i++){"," hashPart = hashParts[i].split(\"=\");"," hash[decode(hashPart[0])] = decode(hashPart[1]);"," }"," }"," "," return hash; "," },"," "," /**"," * Parses a cookie string into an object representing all accessible cookies."," * @param {String} text The cookie string to parse."," * @param {Boolean} shouldDecode (Optional) Indicates if the cookie values should be decoded or not. Default is true."," * @return {Object} An object containing entries for each accessible cookie."," * @method _parseCookieString"," * @private"," * @static"," */"," _parseCookieString : function (text /*:String*/, shouldDecode /*:Boolean*/) /*:Object*/ {"," "," var cookies /*:Object*/ = {}; "," "," if (isString(text) && text.length > 0) {"," "," var decodeValue = (shouldDecode === false ? function(s){return s;} : decode), "," cookieParts = text.split(/;\\s/g),"," cookieName = NULL,"," cookieValue = NULL,"," cookieNameValue = NULL;"," "," for (var i=0, len=cookieParts.length; i < len; i++){"," "," //check for normally-formatted cookie (name-value)"," cookieNameValue = cookieParts[i].match(/([^=]+)=/i);"," if (cookieNameValue instanceof Array){"," try {"," cookieName = decode(cookieNameValue[1]);"," cookieValue = decodeValue(cookieParts[i].substring(cookieNameValue[1].length+1));"," } catch (ex){"," //intentionally ignore the cookie - the encoding is wrong"," }"," } else {"," //means the cookie does not have an \"=\", so treat it as a boolean flag"," cookieName = decode(cookieParts[i]);"," cookieValue = \"\";"," }"," cookies[cookieName] = cookieValue;"," }",""," }"," "," return cookies;"," }, "," "," /**"," * Sets the document object that the cookie utility uses for setting"," * cookies. This method is necessary to ensure that the cookie utility"," * unit tests can pass even when run on a domain instead of locally."," * This method should not be used otherwise; you should use "," * Y.config.doc to change the document that the cookie"," * utility uses for everyday purposes."," * @param {Object} newDoc The object to use as the document."," * @return {void}"," * @method _setDoc"," * @private"," */ "," _setDoc: function(newDoc){"," doc = newDoc;"," },"," "," //-------------------------------------------------------------------------"," // Public Methods"," //-------------------------------------------------------------------------"," "," /**"," * Determines if the cookie with the given name exists. This is useful for"," * Boolean cookies (those that do not follow the name=value convention)."," * @param {String} name The name of the cookie to check."," * @return {Boolean} True if the cookie exists, false if not."," * @method exists"," * @static"," */"," exists: function(name) {"," "," validateCookieName(name); //throws error"," "," var cookies = this._parseCookieString(doc.cookie, true);"," "," return cookies.hasOwnProperty(name);"," }, "," "," /**"," * Returns the cookie value for the given name."," * @param {String} name The name of the cookie to retrieve."," * @param {Function|Object} options (Optional) An object containing one or more"," * cookie options: raw (true/false) and converter (a function)."," * The converter function is run on the value before returning it. The"," * function is not used if the cookie doesn't exist. The function can be"," * passed instead of the options object for backwards compatibility. When"," * raw is set to true, the cookie value is not URI decoded."," * @return {Variant} If no converter is specified, returns a string or null if"," * the cookie doesn't exist. If the converter is specified, returns the value"," * returned from the converter or null if the cookie doesn't exist."," * @method get"," * @static"," */"," get : function (name, options) {"," "," validateCookieName(name); //throws error "," "," var cookies,"," cookie,"," converter;"," "," //if options is a function, then it's the converter"," if (isFunction(options)) {"," converter = options;"," options = {};"," } else if (isObject(options)) {"," converter = options.converter;"," } else {"," options = {};"," }"," "," cookies = this._parseCookieString(doc.cookie, !options.raw);"," cookie = cookies[name];"," "," //should return null, not undefined if the cookie doesn't exist"," if (isUndefined(cookie)) {"," return NULL;"," }"," "," if (!isFunction(converter)){"," return cookie;"," } else {"," return converter(cookie);"," }"," },"," "," /**"," * Returns the value of a subcookie."," * @param {String} name The name of the cookie to retrieve."," * @param {String} subName The name of the subcookie to retrieve."," * @param {Function} converter (Optional) A function to run on the value before returning"," * it. The function is not used if the cookie doesn't exist."," * @return {Variant} If the cookie doesn't exist, null is returned. If the subcookie"," * doesn't exist, null if also returned. If no converter is specified and the"," * subcookie exists, a string is returned. If a converter is specified and the"," * subcookie exists, the value returned from the converter is returned."," * @method getSub"," * @static"," */"," getSub : function (name /*:String*/, subName /*:String*/, converter /*:Function*/) /*:Variant*/ {"," "," var hash /*:Variant*/ = this.getSubs(name); "," "," if (hash !== NULL) {"," "," validateSubcookieName(subName); //throws error"," "," if (isUndefined(hash[subName])){"," return NULL;"," } "," "," if (!isFunction(converter)){"," return hash[subName];"," } else {"," return converter(hash[subName]);"," }"," } else {"," return NULL;"," }"," "," },"," "," /**"," * Returns an object containing name-value pairs stored in the cookie with the given name."," * @param {String} name The name of the cookie to retrieve."," * @return {Object} An object of name-value pairs if the cookie with the given name"," * exists, null if it does not."," * @method getSubs"," * @static"," */"," getSubs : function (name) {"," "," validateCookieName(name); //throws error"," "," var cookies = this._parseCookieString(doc.cookie, false);"," if (isString(cookies[name])){"," return this._parseCookieHash(cookies[name]);"," }"," return NULL;"," },"," "," /**"," * Removes a cookie from the machine by setting its expiration date to"," * sometime in the past."," * @param {String} name The name of the cookie to remove."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), "," * and secure (true/false). The expires option will be overwritten"," * by the method."," * @return {String} The created cookie string."," * @method remove"," * @static"," */"," remove : function (name, options) {"," "," validateCookieName(name); //throws error"," "," //set options"," options = Y.merge(options || {}, {"," expires: new Date(0)"," });"," "," //set cookie"," return this.set(name, \"\", options);"," },"," "," /**"," * Removes a sub cookie with a given name."," * @param {String} name The name of the cookie in which the subcookie exists."," * @param {String} subName The name of the subcookie to remove."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), expires (a Date object),"," * removeIfEmpty (true/false), and secure (true/false). This must be the same"," * settings as the original subcookie."," * @return {String} The created cookie string."," * @method removeSub"," * @static"," */"," removeSub : function(name, subName, options) {"," "," validateCookieName(name); //throws error"," "," validateSubcookieName(subName); //throws error"," "," options = options || {};"," "," //get all subcookies for this cookie"," var subs = this.getSubs(name);"," "," //delete the indicated subcookie"," if (isObject(subs) && subs.hasOwnProperty(subName)){"," delete subs[subName];"," "," if (!options.removeIfEmpty) {"," //reset the cookie"," "," return this.setSubs(name, subs, options);"," } else {"," //reset the cookie if there are subcookies left, else remove"," for (var key in subs){"," if (subs.hasOwnProperty(key) && !isFunction(subs[key]) && !isUndefined(subs[key])){"," return this.setSubs(name, subs, options);"," }"," }"," "," return this.remove(name, options);"," } "," } else {"," return \"\";"," }"," "," },"," "," /**"," * Sets a cookie with a given name and value."," * @param {String} name The name of the cookie to set."," * @param {Variant} value The value to set for the cookie."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), expires (a Date object),"," * secure (true/false), and raw (true/false). Setting raw to true indicates"," * that the cookie should not be URI encoded before being set."," * @return {String} The created cookie string."," * @method set"," * @static"," */"," set : function (name, value, options) {"," "," validateCookieName(name); //throws error"," "," if (isUndefined(value)){"," error(\"Cookie.set(): Value cannot be undefined.\");"," }"," "," options = options || {};"," "," var text = this._createCookieString(name, value, !options.raw, options);"," doc.cookie = text;"," return text;"," },"," "," /**"," * Sets a sub cookie with a given name to a particular value."," * @param {String} name The name of the cookie to set."," * @param {String} subName The name of the subcookie to set."," * @param {Variant} value The value to set."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), expires (a Date object),"," * and secure (true/false)."," * @return {String} The created cookie string."," * @method setSub"," * @static"," */"," setSub : function (name, subName, value, options) {",""," validateCookieName(name); //throws error"," "," validateSubcookieName(subName); //throws error"," "," if (isUndefined(value)){"," error(\"Cookie.setSub(): Subcookie value cannot be undefined.\");"," }"," "," var hash = this.getSubs(name);"," "," if (!isObject(hash)){"," hash = {};"," }"," "," hash[subName] = value; "," "," return this.setSubs(name, hash, options);"," "," },"," "," /**"," * Sets a cookie with a given name to contain a hash of name-value pairs."," * @param {String} name The name of the cookie to set."," * @param {Object} value An object containing name-value pairs."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), expires (a Date object),"," * and secure (true/false)."," * @return {String} The created cookie string."," * @method setSubs"," * @static"," */"," setSubs : function (name, value, options) {"," "," validateCookieName(name); //throws error"," "," if (!isObject(value)){"," error(\"Cookie.setSubs(): Cookie value must be an object.\");"," }"," "," var text /*:String*/ = this._createCookieString(name, this._createCookieHashString(value), false, options);"," doc.cookie = text;"," return text; "," } "," "," };","","","}, '3.7.1', {\"requires\": [\"yui-base\"]});"];
+_yuitest_coverage["build/cookie/cookie.js"].code=["YUI.add('cookie', function (Y, NAME) {","","/**"," * Utilities for cookie management"," * @module cookie"," */",""," //shortcuts"," var L = Y.Lang,"," O = Y.Object,"," NULL = null,"," "," //shortcuts to functions"," isString = L.isString,"," isObject = L.isObject,"," isUndefined = L.isUndefined,"," isFunction = L.isFunction,"," encode = encodeURIComponent,"," decode = decodeURIComponent,"," "," //shortcut to document"," doc = Y.config.doc;"," "," /*"," * Throws an error message."," */"," function error(message){"," throw new TypeError(message);"," } "," "," /*"," * Checks the validity of a cookie name."," */"," function validateCookieName(name){"," if (!isString(name) || name === \"\"){"," error(\"Cookie name must be a non-empty string.\");"," } "," }"," "," /*"," * Checks the validity of a subcookie name."," */ "," function validateSubcookieName(subName){"," if (!isString(subName) || subName === \"\"){"," error(\"Subcookie name must be a non-empty string.\");"," } "," }"," "," /**"," * Cookie utility."," * @class Cookie"," * @static"," */"," Y.Cookie = {"," "," //-------------------------------------------------------------------------"," // Private Methods"," //-------------------------------------------------------------------------"," "," /**"," * Creates a cookie string that can be assigned into document.cookie."," * @param {String} name The name of the cookie."," * @param {String} value The value of the cookie."," * @param {Boolean} encodeValue True to encode the value, false to leave as-is."," * @param {Object} options (Optional) Options for the cookie."," * @return {String} The formatted cookie string."," * @method _createCookieString"," * @private"," * @static"," */"," _createCookieString : function (name /*:String*/, value /*:Variant*/, encodeValue /*:Boolean*/, options /*:Object*/) /*:String*/ {"," "," options = options || {};"," "," var text /*:String*/ = encode(name) + \"=\" + (encodeValue ? encode(value) : value),"," expires = options.expires,"," path = options.path,"," domain = options.domain;"," "," "," if (isObject(options)){"," //expiration date"," if (expires instanceof Date){"," text += \"; expires=\" + expires.toUTCString();"," }"," "," //path"," if (isString(path) && path !== \"\"){"," text += \"; path=\" + path;"," }"," "," //domain"," if (isString(domain) && domain !== \"\"){"," text += \"; domain=\" + domain;"," }"," "," //secure"," if (options.secure === true){"," text += \"; secure\";"," }"," }"," "," return text;"," },"," "," /**"," * Formats a cookie value for an object containing multiple values."," * @param {Object} hash An object of key-value pairs to create a string for."," * @return {String} A string suitable for use as a cookie value."," * @method _createCookieHashString"," * @private"," * @static"," */"," _createCookieHashString : function (hash /*:Object*/) /*:String*/ {"," if (!isObject(hash)){"," error(\"Cookie._createCookieHashString(): Argument must be an object.\");"," }"," "," var text /*:Array*/ = [];",""," O.each(hash, function(value, key){"," if (!isFunction(value) && !isUndefined(value)){"," text.push(encode(key) + \"=\" + encode(String(value)));"," } "," });"," "," return text.join(\"&\");"," },"," "," /**"," * Parses a cookie hash string into an object."," * @param {String} text The cookie hash string to parse (format: n1=v1&n2=v2)."," * @return {Object} An object containing entries for each cookie value."," * @method _parseCookieHash"," * @private"," * @static"," */"," _parseCookieHash : function (text) {"," "," var hashParts = text.split(\"&\"),"," hashPart = NULL,"," hash = {};"," "," if (text.length){"," for (var i=0, len=hashParts.length; i < len; i++){"," hashPart = hashParts[i].split(\"=\");"," hash[decode(hashPart[0])] = decode(hashPart[1]);"," }"," }"," "," return hash; "," },"," "," /**"," * Parses a cookie string into an object representing all accessible cookies."," * @param {String} text The cookie string to parse."," * @param {Boolean} shouldDecode (Optional) Indicates if the cookie values should be decoded or not. Default is true."," * @return {Object} An object containing entries for each accessible cookie."," * @method _parseCookieString"," * @private"," * @static"," */"," _parseCookieString : function (text /*:String*/, shouldDecode /*:Boolean*/) /*:Object*/ {"," "," var cookies /*:Object*/ = {}; "," "," if (isString(text) && text.length > 0) {"," "," var decodeValue = (shouldDecode === false ? function(s){return s;} : decode), "," cookieParts = text.split(/;\\s/g),"," cookieName = NULL,"," cookieValue = NULL,"," cookieNameValue = NULL;"," "," for (var i=0, len=cookieParts.length; i < len; i++){"," "," //check for normally-formatted cookie (name-value)"," cookieNameValue = cookieParts[i].match(/([^=]+)=/i);"," if (cookieNameValue instanceof Array){"," try {"," cookieName = decode(cookieNameValue[1]);"," cookieValue = decodeValue(cookieParts[i].substring(cookieNameValue[1].length+1));"," } catch (ex){"," //intentionally ignore the cookie - the encoding is wrong"," }"," } else {"," //means the cookie does not have an \"=\", so treat it as a boolean flag"," cookieName = decode(cookieParts[i]);"," cookieValue = \"\";"," }"," cookies[cookieName] = cookieValue;"," }",""," }"," "," return cookies;"," }, "," "," /**"," * Sets the document object that the cookie utility uses for setting"," * cookies. This method is necessary to ensure that the cookie utility"," * unit tests can pass even when run on a domain instead of locally."," * This method should not be used otherwise; you should use "," * Y.config.doc to change the document that the cookie"," * utility uses for everyday purposes."," * @param {Object} newDoc The object to use as the document."," * @return {void}"," * @method _setDoc"," * @private"," */ "," _setDoc: function(newDoc){"," doc = newDoc;"," },"," "," //-------------------------------------------------------------------------"," // Public Methods"," //-------------------------------------------------------------------------"," "," /**"," * Determines if the cookie with the given name exists. This is useful for"," * Boolean cookies (those that do not follow the name=value convention)."," * @param {String} name The name of the cookie to check."," * @return {Boolean} True if the cookie exists, false if not."," * @method exists"," * @static"," */"," exists: function(name) {"," "," validateCookieName(name); //throws error"," "," var cookies = this._parseCookieString(doc.cookie, true);"," "," return cookies.hasOwnProperty(name);"," }, "," "," /**"," * Returns the cookie value for the given name."," * @param {String} name The name of the cookie to retrieve."," * @param {Function|Object} options (Optional) An object containing one or more"," * cookie options: raw (true/false) and converter (a function)."," * The converter function is run on the value before returning it. The"," * function is not used if the cookie doesn't exist. The function can be"," * passed instead of the options object for backwards compatibility. When"," * raw is set to true, the cookie value is not URI decoded."," * @return {Variant} If no converter is specified, returns a string or null if"," * the cookie doesn't exist. If the converter is specified, returns the value"," * returned from the converter or null if the cookie doesn't exist."," * @method get"," * @static"," */"," get : function (name, options) {"," "," validateCookieName(name); //throws error "," "," var cookies,"," cookie,"," converter;"," "," //if options is a function, then it's the converter"," if (isFunction(options)) {"," converter = options;"," options = {};"," } else if (isObject(options)) {"," converter = options.converter;"," } else {"," options = {};"," }"," "," cookies = this._parseCookieString(doc.cookie, !options.raw);"," cookie = cookies[name];"," "," //should return null, not undefined if the cookie doesn't exist"," if (isUndefined(cookie)) {"," return NULL;"," }"," "," if (!isFunction(converter)){"," return cookie;"," } else {"," return converter(cookie);"," }"," },"," "," /**"," * Returns the value of a subcookie."," * @param {String} name The name of the cookie to retrieve."," * @param {String} subName The name of the subcookie to retrieve."," * @param {Function} converter (Optional) A function to run on the value before returning"," * it. The function is not used if the cookie doesn't exist."," * @return {Variant} If the cookie doesn't exist, null is returned. If the subcookie"," * doesn't exist, null if also returned. If no converter is specified and the"," * subcookie exists, a string is returned. If a converter is specified and the"," * subcookie exists, the value returned from the converter is returned."," * @method getSub"," * @static"," */"," getSub : function (name /*:String*/, subName /*:String*/, converter /*:Function*/) /*:Variant*/ {"," "," var hash /*:Variant*/ = this.getSubs(name); "," "," if (hash !== NULL) {"," "," validateSubcookieName(subName); //throws error"," "," if (isUndefined(hash[subName])){"," return NULL;"," } "," "," if (!isFunction(converter)){"," return hash[subName];"," } else {"," return converter(hash[subName]);"," }"," } else {"," return NULL;"," }"," "," },"," "," /**"," * Returns an object containing name-value pairs stored in the cookie with the given name."," * @param {String} name The name of the cookie to retrieve."," * @return {Object} An object of name-value pairs if the cookie with the given name"," * exists, null if it does not."," * @method getSubs"," * @static"," */"," getSubs : function (name) {"," "," validateCookieName(name); //throws error"," "," var cookies = this._parseCookieString(doc.cookie, false);"," if (isString(cookies[name])){"," return this._parseCookieHash(cookies[name]);"," }"," return NULL;"," },"," "," /**"," * Removes a cookie from the machine by setting its expiration date to"," * sometime in the past."," * @param {String} name The name of the cookie to remove."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), "," * and secure (true/false). The expires option will be overwritten"," * by the method."," * @return {String} The created cookie string."," * @method remove"," * @static"," */"," remove : function (name, options) {"," "," validateCookieName(name); //throws error"," "," //set options"," options = Y.merge(options || {}, {"," expires: new Date(0)"," });"," "," //set cookie"," return this.set(name, \"\", options);"," },"," "," /**"," * Removes a sub cookie with a given name."," * @param {String} name The name of the cookie in which the subcookie exists."," * @param {String} subName The name of the subcookie to remove."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), expires (a Date object),"," * removeIfEmpty (true/false), and secure (true/false). This must be the same"," * settings as the original subcookie."," * @return {String} The created cookie string."," * @method removeSub"," * @static"," */"," removeSub : function(name, subName, options) {"," "," validateCookieName(name); //throws error"," "," validateSubcookieName(subName); //throws error"," "," options = options || {};"," "," //get all subcookies for this cookie"," var subs = this.getSubs(name);"," "," //delete the indicated subcookie"," if (isObject(subs) && subs.hasOwnProperty(subName)){"," delete subs[subName];"," "," if (!options.removeIfEmpty) {"," //reset the cookie"," "," return this.setSubs(name, subs, options);"," } else {"," //reset the cookie if there are subcookies left, else remove"," for (var key in subs){"," if (subs.hasOwnProperty(key) && !isFunction(subs[key]) && !isUndefined(subs[key])){"," return this.setSubs(name, subs, options);"," }"," }"," "," return this.remove(name, options);"," } "," } else {"," return \"\";"," }"," "," },"," "," /**"," * Sets a cookie with a given name and value."," * @param {String} name The name of the cookie to set."," * @param {Variant} value The value to set for the cookie."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), expires (a Date object),"," * secure (true/false), and raw (true/false). Setting raw to true indicates"," * that the cookie should not be URI encoded before being set."," * @return {String} The created cookie string."," * @method set"," * @static"," */"," set : function (name, value, options) {"," "," validateCookieName(name); //throws error"," "," if (isUndefined(value)){"," error(\"Cookie.set(): Value cannot be undefined.\");"," }"," "," options = options || {};"," "," var text = this._createCookieString(name, value, !options.raw, options);"," doc.cookie = text;"," return text;"," },"," "," /**"," * Sets a sub cookie with a given name to a particular value."," * @param {String} name The name of the cookie to set."," * @param {String} subName The name of the subcookie to set."," * @param {Variant} value The value to set."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), expires (a Date object),"," * and secure (true/false)."," * @return {String} The created cookie string."," * @method setSub"," * @static"," */"," setSub : function (name, subName, value, options) {",""," validateCookieName(name); //throws error"," "," validateSubcookieName(subName); //throws error"," "," if (isUndefined(value)){"," error(\"Cookie.setSub(): Subcookie value cannot be undefined.\");"," }"," "," var hash = this.getSubs(name);"," "," if (!isObject(hash)){"," hash = {};"," }"," "," hash[subName] = value; "," "," return this.setSubs(name, hash, options);"," "," },"," "," /**"," * Sets a cookie with a given name to contain a hash of name-value pairs."," * @param {String} name The name of the cookie to set."," * @param {Object} value An object containing name-value pairs."," * @param {Object} options (Optional) An object containing one or more"," * cookie options: path (a string), domain (a string), expires (a Date object),"," * and secure (true/false)."," * @return {String} The created cookie string."," * @method setSubs"," * @static"," */"," setSubs : function (name, value, options) {"," "," validateCookieName(name); //throws error"," "," if (!isObject(value)){"," error(\"Cookie.setSubs(): Cookie value must be an object.\");"," }"," "," var text /*:String*/ = this._createCookieString(name, this._createCookieHashString(value), false, options);"," doc.cookie = text;"," return text; "," } "," "," };","","","}, '3.7.2', {\"requires\": [\"yui-base\"]});"];
_yuitest_coverage["build/cookie/cookie.js"].lines = {"1":0,"9":0,"27":0,"28":0,"34":0,"35":0,"36":0,"43":0,"44":0,"45":0,"54":0,"73":0,"75":0,"81":0,"83":0,"84":0,"88":0,"89":0,"93":0,"94":0,"98":0,"99":0,"103":0,"115":0,"116":0,"119":0,"121":0,"122":0,"123":0,"127":0,"140":0,"144":0,"145":0,"146":0,"147":0,"151":0,"165":0,"167":0,"169":0,"175":0,"178":0,"179":0,"180":0,"181":0,"182":0,"188":0,"189":0,"191":0,"196":0,"212":0,"229":0,"231":0,"233":0,"253":0,"255":0,"260":0,"261":0,"262":0,"263":0,"264":0,"266":0,"269":0,"270":0,"273":0,"274":0,"277":0,"278":0,"280":0,"299":0,"301":0,"303":0,"305":0,"306":0,"309":0,"310":0,"312":0,"315":0,"330":0,"332":0,"333":0,"334":0,"336":0,"353":0,"356":0,"361":0,"378":0,"380":0,"382":0,"385":0,"388":0,"389":0,"391":0,"394":0,"397":0,"398":0,"399":0,"403":0,"406":0,"425":0,"427":0,"428":0,"431":0,"433":0,"434":0,"435":0,"452":0,"454":0,"456":0,"457":0,"460":0,"462":0,"463":0,"466":0,"468":0,"485":0,"487":0,"488":0,"491":0,"492":0,"493":0};
_yuitest_coverage["build/cookie/cookie.js"].functions = {"error:27":0,"validateCookieName:34":0,"validateSubcookieName:43":0,"_createCookieString:71":0,"(anonymous 2):121":0,"_createCookieHashString:114":0,"_parseCookieHash:138":0,"(anonymous 3):169":0,"_parseCookieString:163":0,"_setDoc:211":0,"exists:227":0,"get:251":0,"getSub:297":0,"getSubs:328":0,"remove:351":0,"removeSub:376":0,"set:423":0,"setSub:450":0,"setSubs:483":0,"(anonymous 1):1":0};
_yuitest_coverage["build/cookie/cookie.js"].coveredLines = 120;
@@ -675,4 +675,4 @@ return text;
};
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/cookie/cookie-debug.js b/lib/yuilib/3.7.2/build/cookie/cookie-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/cookie/cookie-debug.js
rename to lib/yuilib/3.7.2/build/cookie/cookie-debug.js
index 5d0a2ef2d0d..1076ef661a2 100644
--- a/lib/yuilib/3.7.1/build/cookie/cookie-debug.js
+++ b/lib/yuilib/3.7.2/build/cookie/cookie-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -502,4 +502,4 @@ YUI.add('cookie', function (Y, NAME) {
};
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/cookie/cookie-min.js b/lib/yuilib/3.7.2/build/cookie/cookie-min.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/cookie/cookie-min.js
rename to lib/yuilib/3.7.2/build/cookie/cookie-min.js
index d8124db8d2b..f41ad13fe0a 100644
--- a/lib/yuilib/3.7.1/build/cookie/cookie-min.js
+++ b/lib/yuilib/3.7.2/build/cookie/cookie-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("cookie",function(e,t){function h(e){throw new TypeError(e)}function p(e){(!s(e)||e==="")&&h("Cookie name must be a non-empty string.")}function d(e){(!s(e)||e==="")&&h("Subcookie name must be a non-empty string.")}var n=e.Lang,r=e.Object,i=null,s=n.isString,o=n.isObject,u=n.isUndefined,a=n.isFunction,f=encodeURIComponent,l=decodeURIComponent,c=e.config.doc;e.Cookie={_createCookieString:function(e,t,n,r){r=r||{};var i=f(e)+"="+(n?f(t):t),u=r.expires,a=r.path,l=r.domain;return o(r)&&(u instanceof Date&&(i+="; expires="+u.toUTCString()),s(a)&&a!==""&&(i+="; path="+a),s(l)&&l!==""&&(i+="; domain="+l),r.secure===!0&&(i+="; secure")),i},_createCookieHashString:function(e){o(e)||h("Cookie._createCookieHashString(): Argument must be an object.");var t=[];return r.each(e,function(e,n){!a(e)&&!u(e)&&t.push(f(n)+"="+f(String(e)))}),t.join("&")},_parseCookieHash:function(e){var t=e.split("&"),n=i,r={};if(e.length)for(var s=0,o=t.length;s0){var r=t===!1?function(e){return e}:l,o=e.split(/;\s/g),u=i,a=i,f=i;for(var c=0,h=o.length;c0){var r=t===!1?function(e){return e}:l,o=e.split(/;\s/g),u=i,a=i,f=i;for(var c=0,h=o.length;ccreatelink execCommand."," * @class Plugin.CreateLinkBase"," * @static"," * @submodule createlink-base"," * @module editor"," */"," "," var CreateLinkBase = {};"," /**"," * Strings used by the plugin"," * @property STRINGS"," * @static"," */"," CreateLinkBase.STRINGS = {"," /**"," * String used for the Prompt"," * @property PROMPT"," * @static"," */"," PROMPT: 'Please enter the URL for the link to point to:',"," /**"," * String used as the default value of the Prompt"," * @property DEFAULT"," * @static"," */"," DEFAULT: 'http://'"," };",""," Y.namespace('Plugin');"," Y.Plugin.CreateLinkBase = CreateLinkBase;",""," Y.mix(Y.Plugin.ExecCommand.COMMANDS, {"," /**"," * Override for the createlink method from the CreateLinkBase plugin."," * @for ExecCommand"," * @method COMMANDS.createlink"," * @static"," * @param {String} cmd The command executed: createlink"," * @return {Node} Node instance of the item touched by this command."," */"," createlink: function(cmd) {"," var inst = this.get('host').getInstance(), out, a, sel, holder,"," url = prompt(CreateLinkBase.STRINGS.PROMPT, CreateLinkBase.STRINGS.DEFAULT);",""," if (url) {"," holder = inst.config.doc.createElement('div');"," url = url.replace(/\"/g, '').replace(/'/g, ''); //Remove single & double quotes"," url = inst.config.doc.createTextNode(url);"," holder.appendChild(url);"," url = holder.innerHTML;","",""," this.get('host')._execCommand(cmd, url);"," sel = new inst.EditorSelection();"," out = sel.getSelected();"," if (!sel.isCollapsed && out.size()) {"," //We have a selection"," a = out.item(0).one('a');"," if (a) {"," out.item(0).replace(a);"," }"," if (Y.UA.gecko) {"," if (a.get('parentNode').test('span')) {"," if (a.get('parentNode').one('br.yui-cursor')) {"," a.get('parentNode').insert(a, 'before');"," }"," }"," }"," } else {"," //No selection, insert a new node.."," this.get('host').execCommand('inserthtml', '' + url + '');"," }"," }"," return a;"," }"," });","","","","}, '3.7.1', {\"requires\": [\"editor-base\"]});"];
+_yuitest_coverage["build/createlink-base/createlink-base.js"].code=["YUI.add('createlink-base', function (Y, NAME) {","",""," /**"," * Adds prompt style link creation. Adds an override for the createlink execCommand."," * @class Plugin.CreateLinkBase"," * @static"," * @submodule createlink-base"," * @module editor"," */"," "," var CreateLinkBase = {};"," /**"," * Strings used by the plugin"," * @property STRINGS"," * @static"," */"," CreateLinkBase.STRINGS = {"," /**"," * String used for the Prompt"," * @property PROMPT"," * @static"," */"," PROMPT: 'Please enter the URL for the link to point to:',"," /**"," * String used as the default value of the Prompt"," * @property DEFAULT"," * @static"," */"," DEFAULT: 'http://'"," };",""," Y.namespace('Plugin');"," Y.Plugin.CreateLinkBase = CreateLinkBase;",""," Y.mix(Y.Plugin.ExecCommand.COMMANDS, {"," /**"," * Override for the createlink method from the CreateLinkBase plugin."," * @for ExecCommand"," * @method COMMANDS.createlink"," * @static"," * @param {String} cmd The command executed: createlink"," * @return {Node} Node instance of the item touched by this command."," */"," createlink: function(cmd) {"," var inst = this.get('host').getInstance(), out, a, sel, holder,"," url = prompt(CreateLinkBase.STRINGS.PROMPT, CreateLinkBase.STRINGS.DEFAULT);",""," if (url) {"," holder = inst.config.doc.createElement('div');"," url = url.replace(/\"/g, '').replace(/'/g, ''); //Remove single & double quotes"," url = inst.config.doc.createTextNode(url);"," holder.appendChild(url);"," url = holder.innerHTML;","",""," this.get('host')._execCommand(cmd, url);"," sel = new inst.EditorSelection();"," out = sel.getSelected();"," if (!sel.isCollapsed && out.size()) {"," //We have a selection"," a = out.item(0).one('a');"," if (a) {"," out.item(0).replace(a);"," }"," if (Y.UA.gecko) {"," if (a.get('parentNode').test('span')) {"," if (a.get('parentNode').one('br.yui-cursor')) {"," a.get('parentNode').insert(a, 'before');"," }"," }"," }"," } else {"," //No selection, insert a new node.."," this.get('host').execCommand('inserthtml', '' + url + '');"," }"," }"," return a;"," }"," });","","","","}, '3.7.2', {\"requires\": [\"editor-base\"]});"];
_yuitest_coverage["build/createlink-base/createlink-base.js"].lines = {"1":0,"12":0,"18":0,"33":0,"34":0,"36":0,"46":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"57":0,"58":0,"59":0,"60":0,"62":0,"63":0,"64":0,"66":0,"67":0,"68":0,"69":0,"75":0,"78":0};
_yuitest_coverage["build/createlink-base/createlink-base.js"].functions = {"createlink:45":0,"(anonymous 1):1":0};
_yuitest_coverage["build/createlink-base/createlink-base.js"].coveredLines = 26;
@@ -148,4 +148,4 @@ return a;
-}, '3.7.1', {"requires": ["editor-base"]});
+}, '3.7.2', {"requires": ["editor-base"]});
diff --git a/lib/yuilib/3.7.1/build/createlink-base/createlink-base-debug.js b/lib/yuilib/3.7.2/build/createlink-base/createlink-base-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/createlink-base/createlink-base-debug.js
rename to lib/yuilib/3.7.2/build/createlink-base/createlink-base-debug.js
index da39ae9a519..766d8ccd809 100644
--- a/lib/yuilib/3.7.1/build/createlink-base/createlink-base-debug.js
+++ b/lib/yuilib/3.7.2/build/createlink-base/createlink-base-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -88,4 +88,4 @@ YUI.add('createlink-base', function (Y, NAME) {
-}, '3.7.1', {"requires": ["editor-base"]});
+}, '3.7.2', {"requires": ["editor-base"]});
diff --git a/lib/yuilib/3.7.1/build/createlink-base/createlink-base-min.js b/lib/yuilib/3.7.2/build/createlink-base/createlink-base-min.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/createlink-base/createlink-base-min.js
rename to lib/yuilib/3.7.2/build/createlink-base/createlink-base-min.js
index 2f0daccbefb..a1bf53f4a4c 100644
--- a/lib/yuilib/3.7.1/build/createlink-base/createlink-base-min.js
+++ b/lib/yuilib/3.7.2/build/createlink-base/createlink-base-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("createlink-base",function(e,t){var n={};n.STRINGS={PROMPT:"Please enter the URL for the link to point to:",DEFAULT:"http://"},e.namespace("Plugin"),e.Plugin.CreateLinkBase=n,e.mix(e.Plugin.ExecCommand.COMMANDS,{createlink:function(t){var r=this.get("host").getInstance(),i,s,o,u,a=prompt(n.STRINGS.PROMPT,n.STRINGS.DEFAULT);return a&&(u=r.config.doc.createElement("div"),a=a.replace(/"/g,"").replace(/'/g,""),a=r.config.doc.createTextNode(a),u.appendChild(a),a=u.innerHTML,this.get("host")._execCommand(t,a),o=new r.EditorSelection,i=o.getSelected(),!o.isCollapsed&&i.size()?(s=i.item(0).one("a"),s&&i.item(0).replace(s),e.UA.gecko&&s.get("parentNode").test("span")&&s.get("parentNode").one("br.yui-cursor")&&s.get("parentNode").insert(s,"before")):this.get("host").execCommand("inserthtml",''+a+"")),s}})},"3.7.1",{requires:["editor-base"]});
+YUI.add("createlink-base",function(e,t){var n={};n.STRINGS={PROMPT:"Please enter the URL for the link to point to:",DEFAULT:"http://"},e.namespace("Plugin"),e.Plugin.CreateLinkBase=n,e.mix(e.Plugin.ExecCommand.COMMANDS,{createlink:function(t){var r=this.get("host").getInstance(),i,s,o,u,a=prompt(n.STRINGS.PROMPT,n.STRINGS.DEFAULT);return a&&(u=r.config.doc.createElement("div"),a=a.replace(/"/g,"").replace(/'/g,""),a=r.config.doc.createTextNode(a),u.appendChild(a),a=u.innerHTML,this.get("host")._execCommand(t,a),o=new r.EditorSelection,i=o.getSelected(),!o.isCollapsed&&i.size()?(s=i.item(0).one("a"),s&&i.item(0).replace(s),e.UA.gecko&&s.get("parentNode").test("span")&&s.get("parentNode").one("br.yui-cursor")&&s.get("parentNode").insert(s,"before")):this.get("host").execCommand("inserthtml",''+a+"")),s}})},"3.7.2",{requires:["editor-base"]});
diff --git a/lib/yuilib/3.7.1/build/createlink-base/createlink-base.js b/lib/yuilib/3.7.2/build/createlink-base/createlink-base.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/createlink-base/createlink-base.js
rename to lib/yuilib/3.7.2/build/createlink-base/createlink-base.js
index db743a5fd03..e74490d10c0 100644
--- a/lib/yuilib/3.7.1/build/createlink-base/createlink-base.js
+++ b/lib/yuilib/3.7.2/build/createlink-base/createlink-base.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -87,4 +87,4 @@ YUI.add('createlink-base', function (Y, NAME) {
-}, '3.7.1', {"requires": ["editor-base"]});
+}, '3.7.2', {"requires": ["editor-base"]});
diff --git a/lib/yuilib/3.7.1/build/cssbase-context/base-context-min.css b/lib/yuilib/3.7.2/build/cssbase-context/base-context-min.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssbase-context/base-context-min.css
rename to lib/yuilib/3.7.2/build/cssbase-context/base-context-min.css
index 32df53cef53..d4266ebe610 100644
--- a/lib/yuilib/3.7.1/build/cssbase-context/base-context-min.css
+++ b/lib/yuilib/3.7.2/build/cssbase-context/base-context-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssbase-context/base-context.css b/lib/yuilib/3.7.2/build/cssbase-context/base-context.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/cssbase-context/base-context.css
rename to lib/yuilib/3.7.2/build/cssbase-context/base-context.css
index b364d8707f1..36e776feb92 100644
--- a/lib/yuilib/3.7.1/build/cssbase-context/base-context.css
+++ b/lib/yuilib/3.7.2/build/cssbase-context/base-context.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssbase-context/cssbase-context-min.css b/lib/yuilib/3.7.2/build/cssbase-context/cssbase-context-min.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssbase-context/cssbase-context-min.css
rename to lib/yuilib/3.7.2/build/cssbase-context/cssbase-context-min.css
index edaf2aa57e4..fd000d4cea0 100644
--- a/lib/yuilib/3.7.1/build/cssbase-context/cssbase-context-min.css
+++ b/lib/yuilib/3.7.2/build/cssbase-context/cssbase-context-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssbase-context/cssbase-context.css b/lib/yuilib/3.7.2/build/cssbase-context/cssbase-context.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/cssbase-context/cssbase-context.css
rename to lib/yuilib/3.7.2/build/cssbase-context/cssbase-context.css
index 513592bf3af..3fe7601fd0e 100644
--- a/lib/yuilib/3.7.1/build/cssbase-context/cssbase-context.css
+++ b/lib/yuilib/3.7.2/build/cssbase-context/cssbase-context.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssbase/base-min.css b/lib/yuilib/3.7.2/build/cssbase/base-min.css
similarity index 96%
rename from lib/yuilib/3.7.1/build/cssbase/base-min.css
rename to lib/yuilib/3.7.2/build/cssbase/base-min.css
index d21d2a0a7a0..cc94217d7eb 100644
--- a/lib/yuilib/3.7.1/build/cssbase/base-min.css
+++ b/lib/yuilib/3.7.2/build/cssbase/base-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssbase/base.css b/lib/yuilib/3.7.2/build/cssbase/base.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssbase/base.css
rename to lib/yuilib/3.7.2/build/cssbase/base.css
index 4f98712d880..2b9550d4161 100644
--- a/lib/yuilib/3.7.1/build/cssbase/base.css
+++ b/lib/yuilib/3.7.2/build/cssbase/base.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssbase/cssbase-min.css b/lib/yuilib/3.7.2/build/cssbase/cssbase-min.css
similarity index 96%
rename from lib/yuilib/3.7.1/build/cssbase/cssbase-min.css
rename to lib/yuilib/3.7.2/build/cssbase/cssbase-min.css
index 67b95c8744a..fea09b9b331 100644
--- a/lib/yuilib/3.7.1/build/cssbase/cssbase-min.css
+++ b/lib/yuilib/3.7.2/build/cssbase/cssbase-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssbase/cssbase.css b/lib/yuilib/3.7.2/build/cssbase/cssbase.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssbase/cssbase.css
rename to lib/yuilib/3.7.2/build/cssbase/cssbase.css
index 54ac21be653..39073b7d346 100644
--- a/lib/yuilib/3.7.1/build/cssbase/cssbase.css
+++ b/lib/yuilib/3.7.2/build/cssbase/cssbase.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssbutton/cssbutton-min.css b/lib/yuilib/3.7.2/build/cssbutton/cssbutton-min.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/cssbutton/cssbutton-min.css
rename to lib/yuilib/3.7.2/build/cssbutton/cssbutton-min.css
index 8dc76c2ecd1..f5934c0a184 100644
--- a/lib/yuilib/3.7.1/build/cssbutton/cssbutton-min.css
+++ b/lib/yuilib/3.7.2/build/cssbutton/cssbutton-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssbutton/cssbutton.css b/lib/yuilib/3.7.2/build/cssbutton/cssbutton.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/cssbutton/cssbutton.css
rename to lib/yuilib/3.7.2/build/cssbutton/cssbutton.css
index 86058deb360..2722c56078f 100644
--- a/lib/yuilib/3.7.1/build/cssbutton/cssbutton.css
+++ b/lib/yuilib/3.7.2/build/cssbutton/cssbutton.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssfonts-context/cssfonts-context-min.css b/lib/yuilib/3.7.2/build/cssfonts-context/cssfonts-context-min.css
similarity index 96%
rename from lib/yuilib/3.7.1/build/cssfonts-context/cssfonts-context-min.css
rename to lib/yuilib/3.7.2/build/cssfonts-context/cssfonts-context-min.css
index d96b90e3984..df05f51f192 100644
--- a/lib/yuilib/3.7.1/build/cssfonts-context/cssfonts-context-min.css
+++ b/lib/yuilib/3.7.2/build/cssfonts-context/cssfonts-context-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssfonts-context/cssfonts-context.css b/lib/yuilib/3.7.2/build/cssfonts-context/cssfonts-context.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/cssfonts-context/cssfonts-context.css
rename to lib/yuilib/3.7.2/build/cssfonts-context/cssfonts-context.css
index 93b11200b8b..2cb2eda7534 100644
--- a/lib/yuilib/3.7.1/build/cssfonts-context/cssfonts-context.css
+++ b/lib/yuilib/3.7.2/build/cssfonts-context/cssfonts-context.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssfonts-context/fonts-context-min.css b/lib/yuilib/3.7.2/build/cssfonts-context/fonts-context-min.css
similarity index 96%
rename from lib/yuilib/3.7.1/build/cssfonts-context/fonts-context-min.css
rename to lib/yuilib/3.7.2/build/cssfonts-context/fonts-context-min.css
index d6467a139f5..c12a97809d7 100644
--- a/lib/yuilib/3.7.1/build/cssfonts-context/fonts-context-min.css
+++ b/lib/yuilib/3.7.2/build/cssfonts-context/fonts-context-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssfonts-context/fonts-context.css b/lib/yuilib/3.7.2/build/cssfonts-context/fonts-context.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/cssfonts-context/fonts-context.css
rename to lib/yuilib/3.7.2/build/cssfonts-context/fonts-context.css
index 93b11200b8b..2cb2eda7534 100644
--- a/lib/yuilib/3.7.1/build/cssfonts-context/fonts-context.css
+++ b/lib/yuilib/3.7.2/build/cssfonts-context/fonts-context.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssfonts/cssfonts-min.css b/lib/yuilib/3.7.2/build/cssfonts/cssfonts-min.css
similarity index 94%
rename from lib/yuilib/3.7.1/build/cssfonts/cssfonts-min.css
rename to lib/yuilib/3.7.2/build/cssfonts/cssfonts-min.css
index 161e55f023f..3887867e44f 100644
--- a/lib/yuilib/3.7.1/build/cssfonts/cssfonts-min.css
+++ b/lib/yuilib/3.7.2/build/cssfonts/cssfonts-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssfonts/cssfonts.css b/lib/yuilib/3.7.2/build/cssfonts/cssfonts.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/cssfonts/cssfonts.css
rename to lib/yuilib/3.7.2/build/cssfonts/cssfonts.css
index 79a48735cb3..c7726d3d7b0 100644
--- a/lib/yuilib/3.7.1/build/cssfonts/cssfonts.css
+++ b/lib/yuilib/3.7.2/build/cssfonts/cssfonts.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssfonts/fonts-min.css b/lib/yuilib/3.7.2/build/cssfonts/fonts-min.css
similarity index 94%
rename from lib/yuilib/3.7.1/build/cssfonts/fonts-min.css
rename to lib/yuilib/3.7.2/build/cssfonts/fonts-min.css
index dd60d2f0f1e..dc5f94bc328 100644
--- a/lib/yuilib/3.7.1/build/cssfonts/fonts-min.css
+++ b/lib/yuilib/3.7.2/build/cssfonts/fonts-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssfonts/fonts.css b/lib/yuilib/3.7.2/build/cssfonts/fonts.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/cssfonts/fonts.css
rename to lib/yuilib/3.7.2/build/cssfonts/fonts.css
index 79a48735cb3..c7726d3d7b0 100644
--- a/lib/yuilib/3.7.1/build/cssfonts/fonts.css
+++ b/lib/yuilib/3.7.2/build/cssfonts/fonts.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids-base/cssgrids-base-min.css b/lib/yuilib/3.7.2/build/cssgrids-base/cssgrids-base-min.css
similarity index 93%
rename from lib/yuilib/3.7.1/build/cssgrids-base/cssgrids-base-min.css
rename to lib/yuilib/3.7.2/build/cssgrids-base/cssgrids-base-min.css
index 68813e70504..d41b9a32e86 100644
--- a/lib/yuilib/3.7.1/build/cssgrids-base/cssgrids-base-min.css
+++ b/lib/yuilib/3.7.2/build/cssgrids-base/cssgrids-base-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids-base/cssgrids-base.css b/lib/yuilib/3.7.2/build/cssgrids-base/cssgrids-base.css
similarity index 96%
rename from lib/yuilib/3.7.1/build/cssgrids-base/cssgrids-base.css
rename to lib/yuilib/3.7.2/build/cssgrids-base/cssgrids-base.css
index 982b23d0275..de83e492dc4 100644
--- a/lib/yuilib/3.7.1/build/cssgrids-base/cssgrids-base.css
+++ b/lib/yuilib/3.7.2/build/cssgrids-base/cssgrids-base.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids-context-deprecated/grids-context-min.css b/lib/yuilib/3.7.2/build/cssgrids-context-deprecated/grids-context-min.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/cssgrids-context-deprecated/grids-context-min.css
rename to lib/yuilib/3.7.2/build/cssgrids-context-deprecated/grids-context-min.css
index a1a64ed6dfc..a76f3a508af 100644
--- a/lib/yuilib/3.7.1/build/cssgrids-context-deprecated/grids-context-min.css
+++ b/lib/yuilib/3.7.2/build/cssgrids-context-deprecated/grids-context-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids-context-deprecated/grids-context.css b/lib/yuilib/3.7.2/build/cssgrids-context-deprecated/grids-context.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/cssgrids-context-deprecated/grids-context.css
rename to lib/yuilib/3.7.2/build/cssgrids-context-deprecated/grids-context.css
index 133f2388289..c1502680092 100644
--- a/lib/yuilib/3.7.1/build/cssgrids-context-deprecated/grids-context.css
+++ b/lib/yuilib/3.7.2/build/cssgrids-context-deprecated/grids-context.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids-units/cssgrids-units-min.css b/lib/yuilib/3.7.2/build/cssgrids-units/cssgrids-units-min.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssgrids-units/cssgrids-units-min.css
rename to lib/yuilib/3.7.2/build/cssgrids-units/cssgrids-units-min.css
index 6a9f579534d..c1f86332557 100644
--- a/lib/yuilib/3.7.1/build/cssgrids-units/cssgrids-units-min.css
+++ b/lib/yuilib/3.7.2/build/cssgrids-units/cssgrids-units-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids-units/cssgrids-units.css b/lib/yuilib/3.7.2/build/cssgrids-units/cssgrids-units.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssgrids-units/cssgrids-units.css
rename to lib/yuilib/3.7.2/build/cssgrids-units/cssgrids-units.css
index a2fb1104c56..86c59bac91d 100644
--- a/lib/yuilib/3.7.1/build/cssgrids-units/cssgrids-units.css
+++ b/lib/yuilib/3.7.2/build/cssgrids-units/cssgrids-units.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids/cssgrids-min.css b/lib/yuilib/3.7.2/build/cssgrids/cssgrids-min.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssgrids/cssgrids-min.css
rename to lib/yuilib/3.7.2/build/cssgrids/cssgrids-min.css
index a31643a9d48..54349f9d726 100644
--- a/lib/yuilib/3.7.1/build/cssgrids/cssgrids-min.css
+++ b/lib/yuilib/3.7.2/build/cssgrids/cssgrids-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids/cssgrids.css b/lib/yuilib/3.7.2/build/cssgrids/cssgrids.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssgrids/cssgrids.css
rename to lib/yuilib/3.7.2/build/cssgrids/cssgrids.css
index b35e671e19e..927204974ff 100644
--- a/lib/yuilib/3.7.1/build/cssgrids/cssgrids.css
+++ b/lib/yuilib/3.7.2/build/cssgrids/cssgrids.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids/grids-min.css b/lib/yuilib/3.7.2/build/cssgrids/grids-min.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssgrids/grids-min.css
rename to lib/yuilib/3.7.2/build/cssgrids/grids-min.css
index 52c06263713..a516c188954 100644
--- a/lib/yuilib/3.7.1/build/cssgrids/grids-min.css
+++ b/lib/yuilib/3.7.2/build/cssgrids/grids-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssgrids/grids.css b/lib/yuilib/3.7.2/build/cssgrids/grids.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssgrids/grids.css
rename to lib/yuilib/3.7.2/build/cssgrids/grids.css
index 9d4cd651731..1d1268ac5b3 100644
--- a/lib/yuilib/3.7.1/build/cssgrids/grids.css
+++ b/lib/yuilib/3.7.2/build/cssgrids/grids.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssreset-context/cssreset-context-min.css b/lib/yuilib/3.7.2/build/cssreset-context/cssreset-context-min.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssreset-context/cssreset-context-min.css
rename to lib/yuilib/3.7.2/build/cssreset-context/cssreset-context-min.css
index e1c124d374d..67a3e5f9e4e 100644
--- a/lib/yuilib/3.7.1/build/cssreset-context/cssreset-context-min.css
+++ b/lib/yuilib/3.7.2/build/cssreset-context/cssreset-context-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssreset-context/cssreset-context.css b/lib/yuilib/3.7.2/build/cssreset-context/cssreset-context.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/cssreset-context/cssreset-context.css
rename to lib/yuilib/3.7.2/build/cssreset-context/cssreset-context.css
index 1a73acbb150..ba25ac4b646 100644
--- a/lib/yuilib/3.7.1/build/cssreset-context/cssreset-context.css
+++ b/lib/yuilib/3.7.2/build/cssreset-context/cssreset-context.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssreset-context/reset-context-min.css b/lib/yuilib/3.7.2/build/cssreset-context/reset-context-min.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssreset-context/reset-context-min.css
rename to lib/yuilib/3.7.2/build/cssreset-context/reset-context-min.css
index 2706f6ad983..a3142440b42 100644
--- a/lib/yuilib/3.7.1/build/cssreset-context/reset-context-min.css
+++ b/lib/yuilib/3.7.2/build/cssreset-context/reset-context-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssreset-context/reset-context.css b/lib/yuilib/3.7.2/build/cssreset-context/reset-context.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/cssreset-context/reset-context.css
rename to lib/yuilib/3.7.2/build/cssreset-context/reset-context.css
index f1d4b47f129..4d5e893f237 100644
--- a/lib/yuilib/3.7.1/build/cssreset-context/reset-context.css
+++ b/lib/yuilib/3.7.2/build/cssreset-context/reset-context.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssreset/cssreset-min.css b/lib/yuilib/3.7.2/build/cssreset/cssreset-min.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/cssreset/cssreset-min.css
rename to lib/yuilib/3.7.2/build/cssreset/cssreset-min.css
index 6e885934c72..6cc953bbe0a 100644
--- a/lib/yuilib/3.7.1/build/cssreset/cssreset-min.css
+++ b/lib/yuilib/3.7.2/build/cssreset/cssreset-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssreset/cssreset.css b/lib/yuilib/3.7.2/build/cssreset/cssreset.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssreset/cssreset.css
rename to lib/yuilib/3.7.2/build/cssreset/cssreset.css
index 9ea5ae691bb..1348cc2429c 100644
--- a/lib/yuilib/3.7.1/build/cssreset/cssreset.css
+++ b/lib/yuilib/3.7.2/build/cssreset/cssreset.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssreset/reset-min.css b/lib/yuilib/3.7.2/build/cssreset/reset-min.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/cssreset/reset-min.css
rename to lib/yuilib/3.7.2/build/cssreset/reset-min.css
index 0aaf75fb45d..2b0a1ea6b27 100644
--- a/lib/yuilib/3.7.1/build/cssreset/reset-min.css
+++ b/lib/yuilib/3.7.2/build/cssreset/reset-min.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/cssreset/reset.css b/lib/yuilib/3.7.2/build/cssreset/reset.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/cssreset/reset.css
rename to lib/yuilib/3.7.2/build/cssreset/reset.css
index 97ae89d501a..5ca4348ebee 100644
--- a/lib/yuilib/3.7.1/build/cssreset/reset.css
+++ b/lib/yuilib/3.7.2/build/cssreset/reset.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/dataschema-array/dataschema-array-coverage.js b/lib/yuilib/3.7.2/build/dataschema-array/dataschema-array-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dataschema-array/dataschema-array-coverage.js
rename to lib/yuilib/3.7.2/build/dataschema-array/dataschema-array-coverage.js
index e086abbae91..ca3aa028e77 100644
--- a/lib/yuilib/3.7.1/build/dataschema-array/dataschema-array-coverage.js
+++ b/lib/yuilib/3.7.2/build/dataschema-array/dataschema-array-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dataschema-array/dataschema-array.js"] = {
path: "build/dataschema-array/dataschema-array.js",
code: []
};
-_yuitest_coverage["build/dataschema-array/dataschema-array.js"].code=["YUI.add('dataschema-array', function (Y, NAME) {","","/**"," * Provides a DataSchema implementation which can be used to work with data"," * stored in arrays."," *"," * @module dataschema"," * @submodule dataschema-array"," */","","/**","Provides a DataSchema implementation which can be used to work with data","stored in arrays.","","See the `apply` method below for usage.","","@class DataSchema.Array","@extends DataSchema.Base","@static","**/","var LANG = Y.Lang,",""," SchemaArray = {",""," ////////////////////////////////////////////////////////////////////////"," //"," // DataSchema.Array static methods"," //"," ////////////////////////////////////////////////////////////////////////",""," /**"," Applies a schema to an array of data, returning a normalized object"," with results in the `results` property. The `meta` property of the"," response object is present for consistency, but is assigned an empty"," object. If the input data is absent or not an array, an `error`"," property will be added.",""," The input array is expected to contain objects, arrays, or strings.",""," If _schema_ is not specified or _schema.resultFields_ is not an array,"," `response.results` will be assigned the input array unchanged.",""," When a _schema_ is specified, the following will occur:",""," If the input array contains strings, they will be copied as-is into the"," `response.results` array.",""," If the input array contains arrays, `response.results` will contain an"," array of objects with key:value pairs assuming the fields in"," _schema.resultFields_ are ordered in accordance with the data array"," values.",""," If the input array contains objects, the identified"," _schema.resultFields_ will be used to extract a value from those"," objects for the output result.",""," _schema.resultFields_ field identifiers are objects with the following properties:",""," * `key` : (required) The locator name (String)"," * `parser`: A function or the name of a function on `Y.Parsers` used"," to convert the input value into a normalized type. Parser"," functions are passed the value as input and are expected to"," return a value.",""," If no value parsing is needed, you can use strings as identifiers"," instead of objects (see example below).",""," @example"," // Process array of arrays"," var schema = { resultFields: [ 'fruit', 'color' ] },"," data = ["," [ 'Banana', 'yellow' ],"," [ 'Orange', 'orange' ],"," [ 'Eggplant', 'purple' ]"," ];",""," var response = Y.DataSchema.Array.apply(schema, data);",""," // response.results[0] is { fruit: \"Banana\", color: \"yellow\" }",""," "," // Process array of objects"," data = ["," { fruit: 'Banana', color: 'yellow', price: '1.96' },"," { fruit: 'Orange', color: 'orange', price: '2.04' },"," { fruit: 'Eggplant', color: 'purple', price: '4.31' }"," ];",""," response = Y.DataSchema.Array.apply(schema, data);",""," // response.results[0] is { fruit: \"Banana\", color: \"yellow\" }","",""," // Use parsers"," schema.resultFields = ["," {"," key: 'fruit',"," parser: function (val) { return val.toUpperCase(); }"," },"," {"," key: 'price',"," parser: 'number' // Uses Y.Parsers.number"," }"," ];",""," response = Y.DataSchema.Array.apply(schema, data);",""," // Note price was converted from a numeric string to a number"," // response.results[0] looks like { fruit: \"BANANA\", price: 1.96 }"," "," @method apply"," @param {Object} [schema] Schema to apply. Supported configuration"," properties are:"," @param {Array} [schema.resultFields] Field identifiers to"," locate/assign values in the response records. See above for"," details."," @param {Array} data Array data."," @return {Object} An Object with properties `results` and `meta`"," @static"," **/"," apply: function(schema, data) {"," var data_in = data,"," data_out = {results:[],meta:{}};",""," if(LANG.isArray(data_in)) {"," if(schema && LANG.isArray(schema.resultFields)) {"," // Parse results data"," data_out = SchemaArray._parseResults.call(this, schema.resultFields, data_in, data_out);"," }"," else {"," data_out.results = data_in;"," }"," }"," else {"," data_out.error = new Error(\"Array schema parse failure\");"," }",""," return data_out;"," },",""," /**"," * Schema-parsed list of results from full data"," *"," * @method _parseResults"," * @param fields {Array} Schema to parse against."," * @param array_in {Array} Array to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Parsed data object."," * @static"," * @protected"," */"," _parseResults: function(fields, array_in, data_out) {"," var results = [],"," result, item, type, field, key, value, i, j;",""," for(i=array_in.length-1; i>-1; i--) {"," result = {};"," item = array_in[i];"," type = (LANG.isObject(item) && !LANG.isFunction(item)) ? 2 : (LANG.isArray(item)) ? 1 : (LANG.isString(item)) ? 0 : -1;"," if(type > 0) {"," for(j=fields.length-1; j>-1; j--) {"," field = fields[j];"," key = (!LANG.isUndefined(field.key)) ? field.key : field;"," value = (!LANG.isUndefined(item[key])) ? item[key] : item[j];"," result[key] = Y.DataSchema.Base.parse.call(this, value, field);"," }"," }"," else if(type === 0) {"," result = item;"," }"," else {"," //TODO: null or {}?"," result = null;"," }"," results[i] = result;"," }"," data_out.results = results;",""," return data_out;"," }"," };","","Y.DataSchema.Array = Y.mix(SchemaArray, Y.DataSchema.Base);","","","}, '3.7.1', {\"requires\": [\"dataschema-base\"]});"];
+_yuitest_coverage["build/dataschema-array/dataschema-array.js"].code=["YUI.add('dataschema-array', function (Y, NAME) {","","/**"," * Provides a DataSchema implementation which can be used to work with data"," * stored in arrays."," *"," * @module dataschema"," * @submodule dataschema-array"," */","","/**","Provides a DataSchema implementation which can be used to work with data","stored in arrays.","","See the `apply` method below for usage.","","@class DataSchema.Array","@extends DataSchema.Base","@static","**/","var LANG = Y.Lang,",""," SchemaArray = {",""," ////////////////////////////////////////////////////////////////////////"," //"," // DataSchema.Array static methods"," //"," ////////////////////////////////////////////////////////////////////////",""," /**"," Applies a schema to an array of data, returning a normalized object"," with results in the `results` property. The `meta` property of the"," response object is present for consistency, but is assigned an empty"," object. If the input data is absent or not an array, an `error`"," property will be added.",""," The input array is expected to contain objects, arrays, or strings.",""," If _schema_ is not specified or _schema.resultFields_ is not an array,"," `response.results` will be assigned the input array unchanged.",""," When a _schema_ is specified, the following will occur:",""," If the input array contains strings, they will be copied as-is into the"," `response.results` array.",""," If the input array contains arrays, `response.results` will contain an"," array of objects with key:value pairs assuming the fields in"," _schema.resultFields_ are ordered in accordance with the data array"," values.",""," If the input array contains objects, the identified"," _schema.resultFields_ will be used to extract a value from those"," objects for the output result.",""," _schema.resultFields_ field identifiers are objects with the following properties:",""," * `key` : (required) The locator name (String)"," * `parser`: A function or the name of a function on `Y.Parsers` used"," to convert the input value into a normalized type. Parser"," functions are passed the value as input and are expected to"," return a value.",""," If no value parsing is needed, you can use strings as identifiers"," instead of objects (see example below).",""," @example"," // Process array of arrays"," var schema = { resultFields: [ 'fruit', 'color' ] },"," data = ["," [ 'Banana', 'yellow' ],"," [ 'Orange', 'orange' ],"," [ 'Eggplant', 'purple' ]"," ];",""," var response = Y.DataSchema.Array.apply(schema, data);",""," // response.results[0] is { fruit: \"Banana\", color: \"yellow\" }",""," "," // Process array of objects"," data = ["," { fruit: 'Banana', color: 'yellow', price: '1.96' },"," { fruit: 'Orange', color: 'orange', price: '2.04' },"," { fruit: 'Eggplant', color: 'purple', price: '4.31' }"," ];",""," response = Y.DataSchema.Array.apply(schema, data);",""," // response.results[0] is { fruit: \"Banana\", color: \"yellow\" }","",""," // Use parsers"," schema.resultFields = ["," {"," key: 'fruit',"," parser: function (val) { return val.toUpperCase(); }"," },"," {"," key: 'price',"," parser: 'number' // Uses Y.Parsers.number"," }"," ];",""," response = Y.DataSchema.Array.apply(schema, data);",""," // Note price was converted from a numeric string to a number"," // response.results[0] looks like { fruit: \"BANANA\", price: 1.96 }"," "," @method apply"," @param {Object} [schema] Schema to apply. Supported configuration"," properties are:"," @param {Array} [schema.resultFields] Field identifiers to"," locate/assign values in the response records. See above for"," details."," @param {Array} data Array data."," @return {Object} An Object with properties `results` and `meta`"," @static"," **/"," apply: function(schema, data) {"," var data_in = data,"," data_out = {results:[],meta:{}};",""," if(LANG.isArray(data_in)) {"," if(schema && LANG.isArray(schema.resultFields)) {"," // Parse results data"," data_out = SchemaArray._parseResults.call(this, schema.resultFields, data_in, data_out);"," }"," else {"," data_out.results = data_in;"," }"," }"," else {"," data_out.error = new Error(\"Array schema parse failure\");"," }",""," return data_out;"," },",""," /**"," * Schema-parsed list of results from full data"," *"," * @method _parseResults"," * @param fields {Array} Schema to parse against."," * @param array_in {Array} Array to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Parsed data object."," * @static"," * @protected"," */"," _parseResults: function(fields, array_in, data_out) {"," var results = [],"," result, item, type, field, key, value, i, j;",""," for(i=array_in.length-1; i>-1; i--) {"," result = {};"," item = array_in[i];"," type = (LANG.isObject(item) && !LANG.isFunction(item)) ? 2 : (LANG.isArray(item)) ? 1 : (LANG.isString(item)) ? 0 : -1;"," if(type > 0) {"," for(j=fields.length-1; j>-1; j--) {"," field = fields[j];"," key = (!LANG.isUndefined(field.key)) ? field.key : field;"," value = (!LANG.isUndefined(item[key])) ? item[key] : item[j];"," result[key] = Y.DataSchema.Base.parse.call(this, value, field);"," }"," }"," else if(type === 0) {"," result = item;"," }"," else {"," //TODO: null or {}?"," result = null;"," }"," results[i] = result;"," }"," data_out.results = results;",""," return data_out;"," }"," };","","Y.DataSchema.Array = Y.mix(SchemaArray, Y.DataSchema.Base);","","","}, '3.7.2', {\"requires\": [\"dataschema-base\"]});"];
_yuitest_coverage["build/dataschema-array/dataschema-array.js"].lines = {"1":0,"21":0,"122":0,"125":0,"126":0,"128":0,"131":0,"135":0,"138":0,"153":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"168":0,"169":0,"173":0,"175":0,"177":0,"179":0,"183":0};
_yuitest_coverage["build/dataschema-array/dataschema-array.js"].functions = {"apply:121":0,"_parseResults:152":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dataschema-array/dataschema-array.js"].coveredLines = 27;
@@ -252,4 +252,4 @@ _yuitest_coverline("build/dataschema-array/dataschema-array.js", 183);
Y.DataSchema.Array = Y.mix(SchemaArray, Y.DataSchema.Base);
-}, '3.7.1', {"requires": ["dataschema-base"]});
+}, '3.7.2', {"requires": ["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-array/dataschema-array-debug.js b/lib/yuilib/3.7.2/build/dataschema-array/dataschema-array-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dataschema-array/dataschema-array-debug.js
rename to lib/yuilib/3.7.2/build/dataschema-array/dataschema-array-debug.js
index 8411c16bc12..77639c3efd0 100644
--- a/lib/yuilib/3.7.1/build/dataschema-array/dataschema-array-debug.js
+++ b/lib/yuilib/3.7.2/build/dataschema-array/dataschema-array-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -192,4 +192,4 @@ var LANG = Y.Lang,
Y.DataSchema.Array = Y.mix(SchemaArray, Y.DataSchema.Base);
-}, '3.7.1', {"requires": ["dataschema-base"]});
+}, '3.7.2', {"requires": ["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-array/dataschema-array-min.js b/lib/yuilib/3.7.2/build/dataschema-array/dataschema-array-min.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/dataschema-array/dataschema-array-min.js
rename to lib/yuilib/3.7.2/build/dataschema-array/dataschema-array-min.js
index 25036fe47cc..a33eaa0ed28 100644
--- a/lib/yuilib/3.7.1/build/dataschema-array/dataschema-array-min.js
+++ b/lib/yuilib/3.7.2/build/dataschema-array/dataschema-array-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dataschema-array",function(e,t){var n=e.Lang,r={apply:function(e,t){var i=t,s={results:[],meta:{}};return n.isArray(i)?e&&n.isArray(e.resultFields)?s=r._parseResults.call(this,e.resultFields,i,s):s.results=i:s.error=new Error("Array schema parse failure"),s},_parseResults:function(t,r,i){var s=[],o,u,a,f,l,c,h,p;for(h=r.length-1;h>-1;h--){o={},u=r[h],a=n.isObject(u)&&!n.isFunction(u)?2:n.isArray(u)?1:n.isString(u)?0:-1;if(a>0)for(p=t.length-1;p>-1;p--)f=t[p],l=n.isUndefined(f.key)?f:f.key,c=n.isUndefined(u[l])?u[p]:u[l],o[l]=e.DataSchema.Base.parse.call(this,c,f);else a===0?o=u:o=null;s[h]=o}return i.results=s,i}};e.DataSchema.Array=e.mix(r,e.DataSchema.Base)},"3.7.1",{requires:["dataschema-base"]});
+YUI.add("dataschema-array",function(e,t){var n=e.Lang,r={apply:function(e,t){var i=t,s={results:[],meta:{}};return n.isArray(i)?e&&n.isArray(e.resultFields)?s=r._parseResults.call(this,e.resultFields,i,s):s.results=i:s.error=new Error("Array schema parse failure"),s},_parseResults:function(t,r,i){var s=[],o,u,a,f,l,c,h,p;for(h=r.length-1;h>-1;h--){o={},u=r[h],a=n.isObject(u)&&!n.isFunction(u)?2:n.isArray(u)?1:n.isString(u)?0:-1;if(a>0)for(p=t.length-1;p>-1;p--)f=t[p],l=n.isUndefined(f.key)?f:f.key,c=n.isUndefined(u[l])?u[p]:u[l],o[l]=e.DataSchema.Base.parse.call(this,c,f);else a===0?o=u:o=null;s[h]=o}return i.results=s,i}};e.DataSchema.Array=e.mix(r,e.DataSchema.Base)},"3.7.2",{requires:["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-array/dataschema-array.js b/lib/yuilib/3.7.2/build/dataschema-array/dataschema-array.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/dataschema-array/dataschema-array.js
rename to lib/yuilib/3.7.2/build/dataschema-array/dataschema-array.js
index 0e5933f140f..3afb70ed645 100644
--- a/lib/yuilib/3.7.1/build/dataschema-array/dataschema-array.js
+++ b/lib/yuilib/3.7.2/build/dataschema-array/dataschema-array.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -189,4 +189,4 @@ var LANG = Y.Lang,
Y.DataSchema.Array = Y.mix(SchemaArray, Y.DataSchema.Base);
-}, '3.7.1', {"requires": ["dataschema-base"]});
+}, '3.7.2', {"requires": ["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-base/dataschema-base-coverage.js b/lib/yuilib/3.7.2/build/dataschema-base/dataschema-base-coverage.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dataschema-base/dataschema-base-coverage.js
rename to lib/yuilib/3.7.2/build/dataschema-base/dataschema-base-coverage.js
index 34abc093b18..f3c4f61dbe9 100644
--- a/lib/yuilib/3.7.1/build/dataschema-base/dataschema-base-coverage.js
+++ b/lib/yuilib/3.7.2/build/dataschema-base/dataschema-base-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dataschema-base/dataschema-base.js"] = {
path: "build/dataschema-base/dataschema-base.js",
code: []
};
-_yuitest_coverage["build/dataschema-base/dataschema-base.js"].code=["YUI.add('dataschema-base', function (Y, NAME) {","","/**"," * The DataSchema utility provides a common configurable interface for widgets to"," * apply a given schema to a variety of data."," *"," * @module dataschema"," * @main dataschema"," */","","/**"," * Provides the base DataSchema implementation, which can be extended to "," * create DataSchemas for specific data formats, such XML, JSON, text and"," * arrays."," *"," * @module dataschema"," * @submodule dataschema-base"," */","","var LANG = Y.Lang,","/**"," * Base class for the YUI DataSchema Utility."," * @class DataSchema.Base"," * @static"," */"," SchemaBase = {"," /**"," * Overridable method returns data as-is."," *"," * @method apply"," * @param schema {Object} Schema to apply."," * @param data {Object} Data."," * @return {Object} Schema-parsed data."," * @static"," */"," apply: function(schema, data) {"," return data;"," },"," "," /**"," * Applies field parser, if defined"," *"," * @method parse"," * @param value {Object} Original value."," * @param field {Object} Field."," * @return {Object} Type-converted value."," */"," parse: function(value, field) {"," if(field.parser) {"," var parser = (LANG.isFunction(field.parser)) ?"," field.parser : Y.Parsers[field.parser+''];"," if(parser) {"," value = parser.call(this, value);"," }"," else {"," }"," }"," return value;"," }","};","","Y.namespace(\"DataSchema\").Base = SchemaBase;","Y.namespace(\"Parsers\");","","","}, '3.7.1', {\"requires\": [\"base\"]});"];
+_yuitest_coverage["build/dataschema-base/dataschema-base.js"].code=["YUI.add('dataschema-base', function (Y, NAME) {","","/**"," * The DataSchema utility provides a common configurable interface for widgets to"," * apply a given schema to a variety of data."," *"," * @module dataschema"," * @main dataschema"," */","","/**"," * Provides the base DataSchema implementation, which can be extended to "," * create DataSchemas for specific data formats, such XML, JSON, text and"," * arrays."," *"," * @module dataschema"," * @submodule dataschema-base"," */","","var LANG = Y.Lang,","/**"," * Base class for the YUI DataSchema Utility."," * @class DataSchema.Base"," * @static"," */"," SchemaBase = {"," /**"," * Overridable method returns data as-is."," *"," * @method apply"," * @param schema {Object} Schema to apply."," * @param data {Object} Data."," * @return {Object} Schema-parsed data."," * @static"," */"," apply: function(schema, data) {"," return data;"," },"," "," /**"," * Applies field parser, if defined"," *"," * @method parse"," * @param value {Object} Original value."," * @param field {Object} Field."," * @return {Object} Type-converted value."," */"," parse: function(value, field) {"," if(field.parser) {"," var parser = (LANG.isFunction(field.parser)) ?"," field.parser : Y.Parsers[field.parser+''];"," if(parser) {"," value = parser.call(this, value);"," }"," else {"," }"," }"," return value;"," }","};","","Y.namespace(\"DataSchema\").Base = SchemaBase;","Y.namespace(\"Parsers\");","","","}, '3.7.2', {\"requires\": [\"base\"]});"];
_yuitest_coverage["build/dataschema-base/dataschema-base.js"].lines = {"1":0,"20":0,"37":0,"49":0,"50":0,"52":0,"53":0,"58":0,"62":0,"63":0};
_yuitest_coverage["build/dataschema-base/dataschema-base.js"].functions = {"apply:36":0,"parse:48":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dataschema-base/dataschema-base.js"].coveredLines = 10;
@@ -115,4 +115,4 @@ _yuitest_coverline("build/dataschema-base/dataschema-base.js", 63);
Y.namespace("Parsers");
-}, '3.7.1', {"requires": ["base"]});
+}, '3.7.2', {"requires": ["base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-base/dataschema-base-debug.js b/lib/yuilib/3.7.2/build/dataschema-base/dataschema-base-debug.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/dataschema-base/dataschema-base-debug.js
rename to lib/yuilib/3.7.2/build/dataschema-base/dataschema-base-debug.js
index d6eda4dcfd8..8cea807ed45 100644
--- a/lib/yuilib/3.7.1/build/dataschema-base/dataschema-base-debug.js
+++ b/lib/yuilib/3.7.2/build/dataschema-base/dataschema-base-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -70,4 +70,4 @@ Y.namespace("DataSchema").Base = SchemaBase;
Y.namespace("Parsers");
-}, '3.7.1', {"requires": ["base"]});
+}, '3.7.2', {"requires": ["base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-base/dataschema-base-min.js b/lib/yuilib/3.7.2/build/dataschema-base/dataschema-base-min.js
similarity index 84%
rename from lib/yuilib/3.7.1/build/dataschema-base/dataschema-base-min.js
rename to lib/yuilib/3.7.2/build/dataschema-base/dataschema-base-min.js
index 1823ebdc10e..9c72eb40c39 100644
--- a/lib/yuilib/3.7.1/build/dataschema-base/dataschema-base-min.js
+++ b/lib/yuilib/3.7.2/build/dataschema-base/dataschema-base-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dataschema-base",function(e,t){var n=e.Lang,r={apply:function(e,t){return t},parse:function(t,r){if(r.parser){var i=n.isFunction(r.parser)?r.parser:e.Parsers[r.parser+""];i&&(t=i.call(this,t))}return t}};e.namespace("DataSchema").Base=r,e.namespace("Parsers")},"3.7.1",{requires:["base"]});
+YUI.add("dataschema-base",function(e,t){var n=e.Lang,r={apply:function(e,t){return t},parse:function(t,r){if(r.parser){var i=n.isFunction(r.parser)?r.parser:e.Parsers[r.parser+""];i&&(t=i.call(this,t))}return t}};e.namespace("DataSchema").Base=r,e.namespace("Parsers")},"3.7.2",{requires:["base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-base/dataschema-base.js b/lib/yuilib/3.7.2/build/dataschema-base/dataschema-base.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/dataschema-base/dataschema-base.js
rename to lib/yuilib/3.7.2/build/dataschema-base/dataschema-base.js
index 92de883f5fd..5090b579ecb 100644
--- a/lib/yuilib/3.7.1/build/dataschema-base/dataschema-base.js
+++ b/lib/yuilib/3.7.2/build/dataschema-base/dataschema-base.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -69,4 +69,4 @@ Y.namespace("DataSchema").Base = SchemaBase;
Y.namespace("Parsers");
-}, '3.7.1', {"requires": ["base"]});
+}, '3.7.2', {"requires": ["base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-json/dataschema-json-coverage.js b/lib/yuilib/3.7.2/build/dataschema-json/dataschema-json-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dataschema-json/dataschema-json-coverage.js
rename to lib/yuilib/3.7.2/build/dataschema-json/dataschema-json-coverage.js
index a822625f8bd..87d239b2906 100644
--- a/lib/yuilib/3.7.1/build/dataschema-json/dataschema-json-coverage.js
+++ b/lib/yuilib/3.7.2/build/dataschema-json/dataschema-json-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dataschema-json/dataschema-json.js"] = {
path: "build/dataschema-json/dataschema-json.js",
code: []
};
-_yuitest_coverage["build/dataschema-json/dataschema-json.js"].code=["YUI.add('dataschema-json', function (Y, NAME) {","","/**","Provides a DataSchema implementation which can be used to work with JSON data.","","@module dataschema","@submodule dataschema-json","**/","","/**","Provides a DataSchema implementation which can be used to work with JSON data.","","See the `apply` method for usage.","","@class DataSchema.JSON","@extends DataSchema.Base","@static","**/","var LANG = Y.Lang,"," isFunction = LANG.isFunction,"," isObject = LANG.isObject,"," isArray = LANG.isArray,"," // TODO: I don't think the calls to Base.* need to be done via Base since"," // Base is mixed into SchemaJSON. Investigate for later."," Base = Y.DataSchema.Base,",""," SchemaJSON;"," ","SchemaJSON = {","","/////////////////////////////////////////////////////////////////////////////","//","// DataSchema.JSON static methods","//","/////////////////////////////////////////////////////////////////////////////"," /**"," * Utility function converts JSON locator strings into walkable paths"," *"," * @method getPath"," * @param locator {String} JSON value locator."," * @return {String[]} Walkable path to data value."," * @static"," */"," getPath: function(locator) {"," var path = null,"," keys = [],"," i = 0;",""," if (locator) {"," // Strip the [\"string keys\"] and [1] array indexes"," // TODO: the first two steps can probably be reduced to one with"," // /\\[\\s*(['\"])?(.*?)\\1\\s*\\]/g, but the array indices would be"," // stored as strings. This is not likely an issue."," locator = locator."," replace(/\\[\\s*(['\"])(.*?)\\1\\s*\\]/g,"," function (x,$1,$2) {keys[i]=$2;return '.@'+(i++);})."," replace(/\\[(\\d+)\\]/g,"," function (x,$1) {keys[i]=parseInt($1,10)|0;return '.@'+(i++);})."," replace(/^\\./,''); // remove leading dot",""," // Validate against problematic characters."," // commented out because the path isn't sent to eval, so it"," // should be safe. I'm not sure what makes a locator invalid."," //if (!/[^\\w\\.\\$@]/.test(locator)) {"," path = locator.split('.');"," for (i=path.length-1; i >= 0; --i) {"," if (path[i].charAt(0) === '@') {"," path[i] = keys[parseInt(path[i].substr(1),10)];"," }"," }"," /*}"," else {"," }"," */"," }"," return path;"," },",""," /**"," * Utility function to walk a path and return the value located there."," *"," * @method getLocationValue"," * @param path {String[]} Locator path."," * @param data {String} Data to traverse."," * @return {Object} Data value at location."," * @static"," */"," getLocationValue: function (path, data) {"," var i = 0,"," len = path.length;"," for (;i(required) The path locator (String)"," * `parser`: A function or the name of a function on `Y.Parsers` used"," to convert the input value into a normalized type. Parser"," functions are passed the value as input and are expected to"," return a value.",""," If no value parsing is needed, you can use path locators (strings) "," instead of field identifiers (objects) -- see example below.",""," If no processing of the result list array is needed, _schema.resultFields_"," can be omitted; the `response.results` will point directly to the array.",""," If the result list contains arrays, `response.results` will contain an"," array of objects with key:value pairs assuming the fields in"," _schema.resultFields_ are ordered in accordance with the data array"," values.",""," If the result list contains objects, the identified _schema.resultFields_"," will be used to extract a value from those objects for the output result.",""," To extract additional information from the JSON, include an array of"," path locators in _schema.metaFields_. The collected values will be"," stored in `response.meta`.","",""," @example"," // Process array of arrays"," var schema = {"," resultListLocator: 'produce.fruit',"," resultFields: [ 'name', 'color' ]"," },"," data = {"," produce: {"," fruit: ["," [ 'Banana', 'yellow' ],"," [ 'Orange', 'orange' ],"," [ 'Eggplant', 'purple' ]"," ]"," }"," };",""," var response = Y.DataSchema.JSON.apply(schema, data);",""," // response.results[0] is { name: \"Banana\", color: \"yellow\" }",""," "," // Process array of objects + some metadata"," schema.metaFields = [ 'lastInventory' ];",""," data = {"," produce: {"," fruit: ["," { name: 'Banana', color: 'yellow', price: '1.96' },"," { name: 'Orange', color: 'orange', price: '2.04' },"," { name: 'Eggplant', color: 'purple', price: '4.31' }"," ]"," },"," lastInventory: '2011-07-19'"," };",""," response = Y.DataSchema.JSON.apply(schema, data);",""," // response.results[0] is { name: \"Banana\", color: \"yellow\" }"," // response.meta.lastInventory is '2001-07-19'","",""," // Use parsers"," schema.resultFields = ["," {"," key: 'name',"," parser: function (val) { return val.toUpperCase(); }"," },"," {"," key: 'price',"," parser: 'number' // Uses Y.Parsers.number"," }"," ];",""," response = Y.DataSchema.JSON.apply(schema, data);",""," // Note price was converted from a numeric string to a number"," // response.results[0] looks like { fruit: \"BANANA\", price: 1.96 }"," "," @method apply"," @param {Object} [schema] Schema to apply. Supported configuration"," properties are:"," @param {String} [schema.resultListLocator] Path locator for the"," location of the array of records to flatten into `response.results`"," @param {Array} [schema.resultFields] Field identifiers to"," locate/assign values in the response records. See above for"," details."," @param {Array} [schema.metaFields] Path locators to extract extra"," non-record related information from the data object."," @param {Object|Array|String} data JSON data or its string serialization."," @return {Object} An Object with properties `results` and `meta`"," @static"," **/"," apply: function(schema, data) {"," var data_in = data,"," data_out = { results: [], meta: {} };",""," // Convert incoming JSON strings"," if (!isObject(data)) {"," try {"," data_in = Y.JSON.parse(data);"," }"," catch(e) {"," data_out.error = e;"," return data_out;"," }"," }",""," if (isObject(data_in) && schema) {"," // Parse results data"," data_out = SchemaJSON._parseResults.call(this, schema, data_in, data_out);",""," // Parse meta data"," if (schema.metaFields !== undefined) {"," data_out = SchemaJSON._parseMeta(schema.metaFields, data_in, data_out);"," }"," }"," else {"," data_out.error = new Error(\"JSON schema parse failure\");"," }",""," return data_out;"," },",""," /**"," * Schema-parsed list of results from full data"," *"," * @method _parseResults"," * @param schema {Object} Schema to parse against."," * @param json_in {Object} JSON to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Parsed data object."," * @static"," * @protected"," */"," _parseResults: function(schema, json_in, data_out) {"," var getPath = SchemaJSON.getPath,"," getValue = SchemaJSON.getLocationValue,"," path = getPath(schema.resultListLocator),"," results = path ?"," (getValue(path, json_in) ||"," // Fall back to treat resultListLocator as a simple key"," json_in[schema.resultListLocator]) :"," // Or if no resultListLocator is supplied, use the input"," json_in;",""," if (isArray(results)) {"," // if no result fields are passed in, then just take"," // the results array whole-hog Sometimes you're getting"," // an array of strings, or want the whole object, so"," // resultFields don't make sense."," if (isArray(schema.resultFields)) {"," data_out = SchemaJSON._getFieldValues.call(this, schema.resultFields, results, data_out);"," } else {"," data_out.results = results;"," }"," } else if (schema.resultListLocator) {"," data_out.results = [];"," data_out.error = new Error(\"JSON results retrieval failure\");"," }",""," return data_out;"," },",""," /**"," * Get field data values out of list of full results"," *"," * @method _getFieldValues"," * @param fields {Array} Fields to find."," * @param array_in {Array} Results to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Parsed data object."," * @static"," * @protected"," */"," _getFieldValues: function(fields, array_in, data_out) {"," var results = [],"," len = fields.length,"," i, j,"," field, key, locator, path, parser, val,"," simplePaths = [], complexPaths = [], fieldParsers = [],"," result, record;",""," // First collect hashes of simple paths, complex paths, and parsers"," for (i=0; i=0; --i) {"," record = {};"," result = array_in[i];"," if(result) {"," // Cycle through complexLocators"," for (j=complexPaths.length - 1; j>=0; --j) {"," path = complexPaths[j];"," val = SchemaJSON.getLocationValue(path.path, result);"," if (val === undefined) {"," val = SchemaJSON.getLocationValue([path.locator], result);"," // Fail over keys like \"foo.bar\" from nested parsing"," // to single token parsing if a value is found in"," // results[\"foo.bar\"]"," if (val !== undefined) {"," simplePaths.push({"," key: path.key,"," path: path.locator"," });"," // Don't try to process the path as complex"," // for further results"," complexPaths.splice(i,1);"," continue;"," }"," }",""," record[path.key] = Base.parse.call(this,"," (SchemaJSON.getLocationValue(path.path, result)), path);"," }",""," // Cycle through simpleLocators"," for (j = simplePaths.length - 1; j >= 0; --j) {"," path = simplePaths[j];"," // Bug 1777850: The result might be an array instead of object"," record[path.key] = Base.parse.call(this,"," ((result[path.path] === undefined) ?"," result[j] : result[path.path]), path);"," }",""," // Cycle through fieldParsers"," for (j=fieldParsers.length-1; j>=0; --j) {"," key = fieldParsers[j].key;"," record[key] = fieldParsers[j].parser.call(this, record[key]);"," // Safety net"," if (record[key] === undefined) {"," record[key] = null;"," }"," }"," results[i] = record;"," }"," }"," data_out.results = results;"," return data_out;"," },",""," /**"," * Parses results data according to schema"," *"," * @method _parseMeta"," * @param metaFields {Object} Metafields definitions."," * @param json_in {Object} JSON to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Schema-parsed meta data."," * @static"," * @protected"," */"," _parseMeta: function(metaFields, json_in, data_out) {"," if (isObject(metaFields)) {"," var key, path;"," for(key in metaFields) {"," if (metaFields.hasOwnProperty(key)) {"," path = SchemaJSON.getPath(metaFields[key]);"," if (path && json_in) {"," data_out.meta[key] = SchemaJSON.getLocationValue(path, json_in);"," }"," }"," }"," }"," else {"," data_out.error = new Error(\"JSON meta data retrieval failure\");"," }"," return data_out;"," }","};","","// TODO: Y.Object + mix() might be better here","Y.DataSchema.JSON = Y.mix(SchemaJSON, Base);","","","}, '3.7.1', {\"requires\": [\"dataschema-base\", \"json\"]});"];
+_yuitest_coverage["build/dataschema-json/dataschema-json.js"].code=["YUI.add('dataschema-json', function (Y, NAME) {","","/**","Provides a DataSchema implementation which can be used to work with JSON data.","","@module dataschema","@submodule dataschema-json","**/","","/**","Provides a DataSchema implementation which can be used to work with JSON data.","","See the `apply` method for usage.","","@class DataSchema.JSON","@extends DataSchema.Base","@static","**/","var LANG = Y.Lang,"," isFunction = LANG.isFunction,"," isObject = LANG.isObject,"," isArray = LANG.isArray,"," // TODO: I don't think the calls to Base.* need to be done via Base since"," // Base is mixed into SchemaJSON. Investigate for later."," Base = Y.DataSchema.Base,",""," SchemaJSON;"," ","SchemaJSON = {","","/////////////////////////////////////////////////////////////////////////////","//","// DataSchema.JSON static methods","//","/////////////////////////////////////////////////////////////////////////////"," /**"," * Utility function converts JSON locator strings into walkable paths"," *"," * @method getPath"," * @param locator {String} JSON value locator."," * @return {String[]} Walkable path to data value."," * @static"," */"," getPath: function(locator) {"," var path = null,"," keys = [],"," i = 0;",""," if (locator) {"," // Strip the [\"string keys\"] and [1] array indexes"," // TODO: the first two steps can probably be reduced to one with"," // /\\[\\s*(['\"])?(.*?)\\1\\s*\\]/g, but the array indices would be"," // stored as strings. This is not likely an issue."," locator = locator."," replace(/\\[\\s*(['\"])(.*?)\\1\\s*\\]/g,"," function (x,$1,$2) {keys[i]=$2;return '.@'+(i++);})."," replace(/\\[(\\d+)\\]/g,"," function (x,$1) {keys[i]=parseInt($1,10)|0;return '.@'+(i++);})."," replace(/^\\./,''); // remove leading dot",""," // Validate against problematic characters."," // commented out because the path isn't sent to eval, so it"," // should be safe. I'm not sure what makes a locator invalid."," //if (!/[^\\w\\.\\$@]/.test(locator)) {"," path = locator.split('.');"," for (i=path.length-1; i >= 0; --i) {"," if (path[i].charAt(0) === '@') {"," path[i] = keys[parseInt(path[i].substr(1),10)];"," }"," }"," /*}"," else {"," }"," */"," }"," return path;"," },",""," /**"," * Utility function to walk a path and return the value located there."," *"," * @method getLocationValue"," * @param path {String[]} Locator path."," * @param data {String} Data to traverse."," * @return {Object} Data value at location."," * @static"," */"," getLocationValue: function (path, data) {"," var i = 0,"," len = path.length;"," for (;i(required) The path locator (String)"," * `parser`: A function or the name of a function on `Y.Parsers` used"," to convert the input value into a normalized type. Parser"," functions are passed the value as input and are expected to"," return a value.",""," If no value parsing is needed, you can use path locators (strings) "," instead of field identifiers (objects) -- see example below.",""," If no processing of the result list array is needed, _schema.resultFields_"," can be omitted; the `response.results` will point directly to the array.",""," If the result list contains arrays, `response.results` will contain an"," array of objects with key:value pairs assuming the fields in"," _schema.resultFields_ are ordered in accordance with the data array"," values.",""," If the result list contains objects, the identified _schema.resultFields_"," will be used to extract a value from those objects for the output result.",""," To extract additional information from the JSON, include an array of"," path locators in _schema.metaFields_. The collected values will be"," stored in `response.meta`.","",""," @example"," // Process array of arrays"," var schema = {"," resultListLocator: 'produce.fruit',"," resultFields: [ 'name', 'color' ]"," },"," data = {"," produce: {"," fruit: ["," [ 'Banana', 'yellow' ],"," [ 'Orange', 'orange' ],"," [ 'Eggplant', 'purple' ]"," ]"," }"," };",""," var response = Y.DataSchema.JSON.apply(schema, data);",""," // response.results[0] is { name: \"Banana\", color: \"yellow\" }",""," "," // Process array of objects + some metadata"," schema.metaFields = [ 'lastInventory' ];",""," data = {"," produce: {"," fruit: ["," { name: 'Banana', color: 'yellow', price: '1.96' },"," { name: 'Orange', color: 'orange', price: '2.04' },"," { name: 'Eggplant', color: 'purple', price: '4.31' }"," ]"," },"," lastInventory: '2011-07-19'"," };",""," response = Y.DataSchema.JSON.apply(schema, data);",""," // response.results[0] is { name: \"Banana\", color: \"yellow\" }"," // response.meta.lastInventory is '2001-07-19'","",""," // Use parsers"," schema.resultFields = ["," {"," key: 'name',"," parser: function (val) { return val.toUpperCase(); }"," },"," {"," key: 'price',"," parser: 'number' // Uses Y.Parsers.number"," }"," ];",""," response = Y.DataSchema.JSON.apply(schema, data);",""," // Note price was converted from a numeric string to a number"," // response.results[0] looks like { fruit: \"BANANA\", price: 1.96 }"," "," @method apply"," @param {Object} [schema] Schema to apply. Supported configuration"," properties are:"," @param {String} [schema.resultListLocator] Path locator for the"," location of the array of records to flatten into `response.results`"," @param {Array} [schema.resultFields] Field identifiers to"," locate/assign values in the response records. See above for"," details."," @param {Array} [schema.metaFields] Path locators to extract extra"," non-record related information from the data object."," @param {Object|Array|String} data JSON data or its string serialization."," @return {Object} An Object with properties `results` and `meta`"," @static"," **/"," apply: function(schema, data) {"," var data_in = data,"," data_out = { results: [], meta: {} };",""," // Convert incoming JSON strings"," if (!isObject(data)) {"," try {"," data_in = Y.JSON.parse(data);"," }"," catch(e) {"," data_out.error = e;"," return data_out;"," }"," }",""," if (isObject(data_in) && schema) {"," // Parse results data"," data_out = SchemaJSON._parseResults.call(this, schema, data_in, data_out);",""," // Parse meta data"," if (schema.metaFields !== undefined) {"," data_out = SchemaJSON._parseMeta(schema.metaFields, data_in, data_out);"," }"," }"," else {"," data_out.error = new Error(\"JSON schema parse failure\");"," }",""," return data_out;"," },",""," /**"," * Schema-parsed list of results from full data"," *"," * @method _parseResults"," * @param schema {Object} Schema to parse against."," * @param json_in {Object} JSON to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Parsed data object."," * @static"," * @protected"," */"," _parseResults: function(schema, json_in, data_out) {"," var getPath = SchemaJSON.getPath,"," getValue = SchemaJSON.getLocationValue,"," path = getPath(schema.resultListLocator),"," results = path ?"," (getValue(path, json_in) ||"," // Fall back to treat resultListLocator as a simple key"," json_in[schema.resultListLocator]) :"," // Or if no resultListLocator is supplied, use the input"," json_in;",""," if (isArray(results)) {"," // if no result fields are passed in, then just take"," // the results array whole-hog Sometimes you're getting"," // an array of strings, or want the whole object, so"," // resultFields don't make sense."," if (isArray(schema.resultFields)) {"," data_out = SchemaJSON._getFieldValues.call(this, schema.resultFields, results, data_out);"," } else {"," data_out.results = results;"," }"," } else if (schema.resultListLocator) {"," data_out.results = [];"," data_out.error = new Error(\"JSON results retrieval failure\");"," }",""," return data_out;"," },",""," /**"," * Get field data values out of list of full results"," *"," * @method _getFieldValues"," * @param fields {Array} Fields to find."," * @param array_in {Array} Results to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Parsed data object."," * @static"," * @protected"," */"," _getFieldValues: function(fields, array_in, data_out) {"," var results = [],"," len = fields.length,"," i, j,"," field, key, locator, path, parser, val,"," simplePaths = [], complexPaths = [], fieldParsers = [],"," result, record;",""," // First collect hashes of simple paths, complex paths, and parsers"," for (i=0; i=0; --i) {"," record = {};"," result = array_in[i];"," if(result) {"," // Cycle through complexLocators"," for (j=complexPaths.length - 1; j>=0; --j) {"," path = complexPaths[j];"," val = SchemaJSON.getLocationValue(path.path, result);"," if (val === undefined) {"," val = SchemaJSON.getLocationValue([path.locator], result);"," // Fail over keys like \"foo.bar\" from nested parsing"," // to single token parsing if a value is found in"," // results[\"foo.bar\"]"," if (val !== undefined) {"," simplePaths.push({"," key: path.key,"," path: path.locator"," });"," // Don't try to process the path as complex"," // for further results"," complexPaths.splice(i,1);"," continue;"," }"," }",""," record[path.key] = Base.parse.call(this,"," (SchemaJSON.getLocationValue(path.path, result)), path);"," }",""," // Cycle through simpleLocators"," for (j = simplePaths.length - 1; j >= 0; --j) {"," path = simplePaths[j];"," // Bug 1777850: The result might be an array instead of object"," record[path.key] = Base.parse.call(this,"," ((result[path.path] === undefined) ?"," result[j] : result[path.path]), path);"," }",""," // Cycle through fieldParsers"," for (j=fieldParsers.length-1; j>=0; --j) {"," key = fieldParsers[j].key;"," record[key] = fieldParsers[j].parser.call(this, record[key]);"," // Safety net"," if (record[key] === undefined) {"," record[key] = null;"," }"," }"," results[i] = record;"," }"," }"," data_out.results = results;"," return data_out;"," },",""," /**"," * Parses results data according to schema"," *"," * @method _parseMeta"," * @param metaFields {Object} Metafields definitions."," * @param json_in {Object} JSON to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Schema-parsed meta data."," * @static"," * @protected"," */"," _parseMeta: function(metaFields, json_in, data_out) {"," if (isObject(metaFields)) {"," var key, path;"," for(key in metaFields) {"," if (metaFields.hasOwnProperty(key)) {"," path = SchemaJSON.getPath(metaFields[key]);"," if (path && json_in) {"," data_out.meta[key] = SchemaJSON.getLocationValue(path, json_in);"," }"," }"," }"," }"," else {"," data_out.error = new Error(\"JSON meta data retrieval failure\");"," }"," return data_out;"," }","};","","// TODO: Y.Object + mix() might be better here","Y.DataSchema.JSON = Y.mix(SchemaJSON, Base);","","","}, '3.7.2', {\"requires\": [\"dataschema-base\", \"json\"]});"];
_yuitest_coverage["build/dataschema-json/dataschema-json.js"].lines = {"1":0,"19":0,"29":0,"45":0,"49":0,"54":0,"56":0,"58":0,"65":0,"66":0,"67":0,"68":0,"76":0,"89":0,"91":0,"92":0,"93":0,"95":0,"96":0,"99":0,"222":0,"226":0,"227":0,"228":0,"231":0,"232":0,"236":0,"238":0,"241":0,"242":0,"246":0,"249":0,"264":0,"274":0,"279":0,"280":0,"282":0,"284":0,"285":0,"286":0,"289":0,"304":0,"312":0,"313":0,"314":0,"315":0,"318":0,"319":0,"320":0,"321":0,"326":0,"337":0,"341":0,"342":0,"351":0,"352":0,"353":0,"354":0,"356":0,"357":0,"358":0,"359":0,"360":0,"364":0,"365":0,"371":0,"372":0,"376":0,"381":0,"382":0,"384":0,"390":0,"391":0,"392":0,"394":0,"395":0,"398":0,"401":0,"402":0,"417":0,"418":0,"419":0,"420":0,"421":0,"422":0,"423":0,"429":0,"431":0,"436":0};
_yuitest_coverage["build/dataschema-json/dataschema-json.js"].functions = {"(anonymous 2):56":0,"(anonymous 3):58":0,"getPath:44":0,"getLocationValue:88":0,"apply:221":0,"_parseResults:263":0,"_getFieldValues:303":0,"_parseMeta:416":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dataschema-json/dataschema-json.js"].coveredLines = 89;
@@ -573,4 +573,4 @@ _yuitest_coverline("build/dataschema-json/dataschema-json.js", 436);
Y.DataSchema.JSON = Y.mix(SchemaJSON, Base);
-}, '3.7.1', {"requires": ["dataschema-base", "json"]});
+}, '3.7.2', {"requires": ["dataschema-base", "json"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-json/dataschema-json-debug.js b/lib/yuilib/3.7.2/build/dataschema-json/dataschema-json-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dataschema-json/dataschema-json-debug.js
rename to lib/yuilib/3.7.2/build/dataschema-json/dataschema-json-debug.js
index 7b85f7552ef..f2e324092d6 100644
--- a/lib/yuilib/3.7.1/build/dataschema-json/dataschema-json-debug.js
+++ b/lib/yuilib/3.7.2/build/dataschema-json/dataschema-json-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -446,4 +446,4 @@ SchemaJSON = {
Y.DataSchema.JSON = Y.mix(SchemaJSON, Base);
-}, '3.7.1', {"requires": ["dataschema-base", "json"]});
+}, '3.7.2', {"requires": ["dataschema-base", "json"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-json/dataschema-json-min.js b/lib/yuilib/3.7.2/build/dataschema-json/dataschema-json-min.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/dataschema-json/dataschema-json-min.js
rename to lib/yuilib/3.7.2/build/dataschema-json/dataschema-json-min.js
index 121e564792e..05fe816a7cb 100644
--- a/lib/yuilib/3.7.1/build/dataschema-json/dataschema-json-min.js
+++ b/lib/yuilib/3.7.2/build/dataschema-json/dataschema-json-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dataschema-json",function(e,t){var n=e.Lang,r=n.isFunction,i=n.isObject,s=n.isArray,o=e.DataSchema.Base,u;u={getPath:function(e){var t=null,n=[],r=0;if(e){e=e.replace(/\[\s*(['"])(.*?)\1\s*\]/g,function(e,t,i){return n[r]=i,".@"+r++}).replace(/\[(\d+)\]/g,function(e,t){return n[r]=parseInt(t,10)|0,".@"+r++}).replace(/^\./,""),t=e.split(".");for(r=t.length-1;r>=0;--r)t[r].charAt(0)==="@"&&(t[r]=n[parseInt(t[r].substr(1),10)])}return t},getLocationValue:function(e,t){var n=0,r=e.length;for(;n=0;--f){E={},w=n[f];if(w){for(l=y.length-1;l>=0;--l){d=y[l],m=u.getLocationValue(d.path,w);if(m===undefined){m=u.getLocationValue([d.locator],w);if(m!==undefined){g.push({key:d.key,path:d.locator}),y.splice(f,1);continue}}E[d.key]=o.parse.call(this,u.getLocationValue(d.path,w),d)}for(l=g.length-1;l>=0;--l)d=g[l],E[d.key]=o.parse.call(this,w[d.path]===undefined?w[l]:w[d.path],d);for(l=b.length-1;l>=0;--l)h=b[l].key,E[h]=b[l].parser.call(this,E[h]),E[h]===undefined&&(E[h]=null);s[f]=E}}return i.results=s,i},_parseMeta:function(e,t,n){if(i(e)){var r,s;for(r in e)e.hasOwnProperty(r)&&(s=u.getPath(e[r]),s&&t&&(n.meta[r]=u.getLocationValue(s,t)))}else n.error=new Error("JSON meta data retrieval failure");return n}},e.DataSchema.JSON=e.mix(u,o)},"3.7.1",{requires:["dataschema-base","json"]});
+YUI.add("dataschema-json",function(e,t){var n=e.Lang,r=n.isFunction,i=n.isObject,s=n.isArray,o=e.DataSchema.Base,u;u={getPath:function(e){var t=null,n=[],r=0;if(e){e=e.replace(/\[\s*(['"])(.*?)\1\s*\]/g,function(e,t,i){return n[r]=i,".@"+r++}).replace(/\[(\d+)\]/g,function(e,t){return n[r]=parseInt(t,10)|0,".@"+r++}).replace(/^\./,""),t=e.split(".");for(r=t.length-1;r>=0;--r)t[r].charAt(0)==="@"&&(t[r]=n[parseInt(t[r].substr(1),10)])}return t},getLocationValue:function(e,t){var n=0,r=e.length;for(;n=0;--f){E={},w=n[f];if(w){for(l=y.length-1;l>=0;--l){d=y[l],m=u.getLocationValue(d.path,w);if(m===undefined){m=u.getLocationValue([d.locator],w);if(m!==undefined){g.push({key:d.key,path:d.locator}),y.splice(f,1);continue}}E[d.key]=o.parse.call(this,u.getLocationValue(d.path,w),d)}for(l=g.length-1;l>=0;--l)d=g[l],E[d.key]=o.parse.call(this,w[d.path]===undefined?w[l]:w[d.path],d);for(l=b.length-1;l>=0;--l)h=b[l].key,E[h]=b[l].parser.call(this,E[h]),E[h]===undefined&&(E[h]=null);s[f]=E}}return i.results=s,i},_parseMeta:function(e,t,n){if(i(e)){var r,s;for(r in e)e.hasOwnProperty(r)&&(s=u.getPath(e[r]),s&&t&&(n.meta[r]=u.getLocationValue(s,t)))}else n.error=new Error("JSON meta data retrieval failure");return n}},e.DataSchema.JSON=e.mix(u,o)},"3.7.2",{requires:["dataschema-base","json"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-json/dataschema-json.js b/lib/yuilib/3.7.2/build/dataschema-json/dataschema-json.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dataschema-json/dataschema-json.js
rename to lib/yuilib/3.7.2/build/dataschema-json/dataschema-json.js
index 174a992f386..0b7102c3712 100644
--- a/lib/yuilib/3.7.1/build/dataschema-json/dataschema-json.js
+++ b/lib/yuilib/3.7.2/build/dataschema-json/dataschema-json.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -442,4 +442,4 @@ SchemaJSON = {
Y.DataSchema.JSON = Y.mix(SchemaJSON, Base);
-}, '3.7.1', {"requires": ["dataschema-base", "json"]});
+}, '3.7.2', {"requires": ["dataschema-base", "json"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-text/dataschema-text-coverage.js b/lib/yuilib/3.7.2/build/dataschema-text/dataschema-text-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dataschema-text/dataschema-text-coverage.js
rename to lib/yuilib/3.7.2/build/dataschema-text/dataschema-text-coverage.js
index cc17067d575..064ce96ad16 100644
--- a/lib/yuilib/3.7.1/build/dataschema-text/dataschema-text-coverage.js
+++ b/lib/yuilib/3.7.2/build/dataschema-text/dataschema-text-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dataschema-text/dataschema-text.js"] = {
path: "build/dataschema-text/dataschema-text.js",
code: []
};
-_yuitest_coverage["build/dataschema-text/dataschema-text.js"].code=["YUI.add('dataschema-text', function (Y, NAME) {","","/**"," * Provides a DataSchema implementation which can be used to work with"," * delimited text data."," *"," * @module dataschema"," * @submodule dataschema-text"," */","","/**","Provides a DataSchema implementation which can be used to work with","delimited text data.","","See the `apply` method for usage.","","@class DataSchema.Text","@extends DataSchema.Base","@static","**/","","var Lang = Y.Lang,"," isString = Lang.isString,"," isUndef = Lang.isUndefined,",""," SchemaText = {",""," ////////////////////////////////////////////////////////////////////////"," //"," // DataSchema.Text static methods"," //"," ////////////////////////////////////////////////////////////////////////"," /**"," Applies a schema to a string of delimited data, returning a normalized"," object with results in the `results` property. The `meta` property of"," the response object is present for consistency, but is assigned an"," empty object. If the input data is absent or not a string, an `error`"," property will be added.",""," Use _schema.resultDelimiter_ and _schema.fieldDelimiter_ to instruct"," `apply` how to split up the string into an array of data arrays for"," processing.",""," Use _schema.resultFields_ to specify the keys in the generated result"," objects in `response.results`. The key:value pairs will be assigned"," in the order of the _schema.resultFields_ array, assuming the values"," in the data records are defined in the same order.",""," _schema.resultFields_ field identifiers are objects with the following"," properties:",""," * `key` : (required) The property name you want"," the data value assigned to in the result object (String)"," * `parser`: A function or the name of a function on `Y.Parsers` used"," to convert the input value into a normalized type. Parser"," functions are passed the value as input and are expected to"," return a value.",""," If no value parsing is needed, you can use just the desired property"," name string as the field identifier instead of an object (see example"," below).",""," @example"," // Process simple csv"," var schema = {"," resultDelimiter: \"\\n\","," fieldDelimiter: \",\","," resultFields: [ 'fruit', 'color' ]"," },"," data = \"Banana,yellow\\nOrange,orange\\nEggplant,purple\";",""," var response = Y.DataSchema.Text.apply(schema, data);",""," // response.results[0] is { fruit: \"Banana\", color: \"yellow\" }","",""," // Use parsers"," schema.resultFields = ["," {"," key: 'fruit',"," parser: function (val) { return val.toUpperCase(); }"," },"," 'color' // mix and match objects and strings"," ];",""," response = Y.DataSchema.Text.apply(schema, data);",""," // response.results[0] is { fruit: \"BANANA\", color: \"yellow\" }"," "," @method apply"," @param {Object} schema Schema to apply. Supported configuration"," properties are:"," @param {String} schema.resultDelimiter Character or character"," sequence that marks the end of one record and the start of"," another."," @param {String} [schema.fieldDelimiter] Character or character"," sequence that marks the end of a field and the start of"," another within the same record."," @param {Array} [schema.resultFields] Field identifiers to"," assign values in the response records. See above for details."," @param {String} data Text data."," @return {Object} An Object with properties `results` and `meta`"," @static"," **/"," apply: function(schema, data) {"," var data_in = data,"," data_out = { results: [], meta: {} };",""," if (isString(data) && schema && isString(schema.resultDelimiter)) {"," // Parse results data"," data_out = SchemaText._parseResults.call(this, schema, data_in, data_out);"," } else {"," data_out.error = new Error(\"Text schema parse failure\");"," }",""," return data_out;"," },",""," /**"," * Schema-parsed list of results from full data"," *"," * @method _parseResults"," * @param schema {Array} Schema to parse against."," * @param text_in {String} Text to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Parsed data object."," * @static"," * @protected"," */"," _parseResults: function(schema, text_in, data_out) {"," var resultDelim = schema.resultDelimiter,"," fieldDelim = isString(schema.fieldDelimiter) &&"," schema.fieldDelimiter,"," fields = schema.resultFields || [],"," results = [],"," parse = Y.DataSchema.Base.parse,"," results_in, fields_in, result, item,"," field, key, value, i, j;",""," // Delete final delimiter at end of string if there"," if (text_in.slice(-resultDelim.length) === resultDelim) {"," text_in = text_in.slice(0, -resultDelim.length);"," }",""," // Split into results"," results_in = text_in.split(schema.resultDelimiter);",""," if (fieldDelim) {"," for (i = results_in.length - 1; i >= 0; --i) {"," result = {};"," item = results_in[i];",""," fields_in = item.split(schema.fieldDelimiter);",""," for (j = fields.length - 1; j >= 0; --j) {"," field = fields[j];"," key = (!isUndef(field.key)) ? field.key : field;"," // FIXME: unless the key is an array index, this test"," // for fields_in[key] is useless."," value = (!isUndef(fields_in[key])) ?"," fields_in[key] :"," fields_in[j];",""," result[key] = parse.call(this, value, field);"," }",""," results[i] = result;"," }"," } else {"," results = results_in;"," }",""," data_out.results = results;",""," return data_out;"," }"," };","","Y.DataSchema.Text = Y.mix(SchemaText, Y.DataSchema.Base);","","","}, '3.7.1', {\"requires\": [\"dataschema-base\"]});"];
+_yuitest_coverage["build/dataschema-text/dataschema-text.js"].code=["YUI.add('dataschema-text', function (Y, NAME) {","","/**"," * Provides a DataSchema implementation which can be used to work with"," * delimited text data."," *"," * @module dataschema"," * @submodule dataschema-text"," */","","/**","Provides a DataSchema implementation which can be used to work with","delimited text data.","","See the `apply` method for usage.","","@class DataSchema.Text","@extends DataSchema.Base","@static","**/","","var Lang = Y.Lang,"," isString = Lang.isString,"," isUndef = Lang.isUndefined,",""," SchemaText = {",""," ////////////////////////////////////////////////////////////////////////"," //"," // DataSchema.Text static methods"," //"," ////////////////////////////////////////////////////////////////////////"," /**"," Applies a schema to a string of delimited data, returning a normalized"," object with results in the `results` property. The `meta` property of"," the response object is present for consistency, but is assigned an"," empty object. If the input data is absent or not a string, an `error`"," property will be added.",""," Use _schema.resultDelimiter_ and _schema.fieldDelimiter_ to instruct"," `apply` how to split up the string into an array of data arrays for"," processing.",""," Use _schema.resultFields_ to specify the keys in the generated result"," objects in `response.results`. The key:value pairs will be assigned"," in the order of the _schema.resultFields_ array, assuming the values"," in the data records are defined in the same order.",""," _schema.resultFields_ field identifiers are objects with the following"," properties:",""," * `key` : (required) The property name you want"," the data value assigned to in the result object (String)"," * `parser`: A function or the name of a function on `Y.Parsers` used"," to convert the input value into a normalized type. Parser"," functions are passed the value as input and are expected to"," return a value.",""," If no value parsing is needed, you can use just the desired property"," name string as the field identifier instead of an object (see example"," below).",""," @example"," // Process simple csv"," var schema = {"," resultDelimiter: \"\\n\","," fieldDelimiter: \",\","," resultFields: [ 'fruit', 'color' ]"," },"," data = \"Banana,yellow\\nOrange,orange\\nEggplant,purple\";",""," var response = Y.DataSchema.Text.apply(schema, data);",""," // response.results[0] is { fruit: \"Banana\", color: \"yellow\" }","",""," // Use parsers"," schema.resultFields = ["," {"," key: 'fruit',"," parser: function (val) { return val.toUpperCase(); }"," },"," 'color' // mix and match objects and strings"," ];",""," response = Y.DataSchema.Text.apply(schema, data);",""," // response.results[0] is { fruit: \"BANANA\", color: \"yellow\" }"," "," @method apply"," @param {Object} schema Schema to apply. Supported configuration"," properties are:"," @param {String} schema.resultDelimiter Character or character"," sequence that marks the end of one record and the start of"," another."," @param {String} [schema.fieldDelimiter] Character or character"," sequence that marks the end of a field and the start of"," another within the same record."," @param {Array} [schema.resultFields] Field identifiers to"," assign values in the response records. See above for details."," @param {String} data Text data."," @return {Object} An Object with properties `results` and `meta`"," @static"," **/"," apply: function(schema, data) {"," var data_in = data,"," data_out = { results: [], meta: {} };",""," if (isString(data) && schema && isString(schema.resultDelimiter)) {"," // Parse results data"," data_out = SchemaText._parseResults.call(this, schema, data_in, data_out);"," } else {"," data_out.error = new Error(\"Text schema parse failure\");"," }",""," return data_out;"," },",""," /**"," * Schema-parsed list of results from full data"," *"," * @method _parseResults"," * @param schema {Array} Schema to parse against."," * @param text_in {String} Text to parse."," * @param data_out {Object} In-progress parsed data to update."," * @return {Object} Parsed data object."," * @static"," * @protected"," */"," _parseResults: function(schema, text_in, data_out) {"," var resultDelim = schema.resultDelimiter,"," fieldDelim = isString(schema.fieldDelimiter) &&"," schema.fieldDelimiter,"," fields = schema.resultFields || [],"," results = [],"," parse = Y.DataSchema.Base.parse,"," results_in, fields_in, result, item,"," field, key, value, i, j;",""," // Delete final delimiter at end of string if there"," if (text_in.slice(-resultDelim.length) === resultDelim) {"," text_in = text_in.slice(0, -resultDelim.length);"," }",""," // Split into results"," results_in = text_in.split(schema.resultDelimiter);",""," if (fieldDelim) {"," for (i = results_in.length - 1; i >= 0; --i) {"," result = {};"," item = results_in[i];",""," fields_in = item.split(schema.fieldDelimiter);",""," for (j = fields.length - 1; j >= 0; --j) {"," field = fields[j];"," key = (!isUndef(field.key)) ? field.key : field;"," // FIXME: unless the key is an array index, this test"," // for fields_in[key] is useless."," value = (!isUndef(fields_in[key])) ?"," fields_in[key] :"," fields_in[j];",""," result[key] = parse.call(this, value, field);"," }",""," results[i] = result;"," }"," } else {"," results = results_in;"," }",""," data_out.results = results;",""," return data_out;"," }"," };","","Y.DataSchema.Text = Y.mix(SchemaText, Y.DataSchema.Base);","","","}, '3.7.2', {\"requires\": [\"dataschema-base\"]});"];
_yuitest_coverage["build/dataschema-text/dataschema-text.js"].lines = {"1":0,"22":0,"106":0,"109":0,"111":0,"113":0,"116":0,"131":0,"141":0,"142":0,"146":0,"148":0,"149":0,"150":0,"151":0,"153":0,"155":0,"156":0,"157":0,"160":0,"164":0,"167":0,"170":0,"173":0,"175":0,"179":0};
_yuitest_coverage["build/dataschema-text/dataschema-text.js"].functions = {"apply:105":0,"_parseResults:130":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dataschema-text/dataschema-text.js"].coveredLines = 26;
@@ -247,4 +247,4 @@ _yuitest_coverline("build/dataschema-text/dataschema-text.js", 179);
Y.DataSchema.Text = Y.mix(SchemaText, Y.DataSchema.Base);
-}, '3.7.1', {"requires": ["dataschema-base"]});
+}, '3.7.2', {"requires": ["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-text/dataschema-text-debug.js b/lib/yuilib/3.7.2/build/dataschema-text/dataschema-text-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/dataschema-text/dataschema-text-debug.js
rename to lib/yuilib/3.7.2/build/dataschema-text/dataschema-text-debug.js
index d295f6d69f1..f9d77d390ff 100644
--- a/lib/yuilib/3.7.1/build/dataschema-text/dataschema-text-debug.js
+++ b/lib/yuilib/3.7.2/build/dataschema-text/dataschema-text-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -186,4 +186,4 @@ var Lang = Y.Lang,
Y.DataSchema.Text = Y.mix(SchemaText, Y.DataSchema.Base);
-}, '3.7.1', {"requires": ["dataschema-base"]});
+}, '3.7.2', {"requires": ["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-text/dataschema-text-min.js b/lib/yuilib/3.7.2/build/dataschema-text/dataschema-text-min.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/dataschema-text/dataschema-text-min.js
rename to lib/yuilib/3.7.2/build/dataschema-text/dataschema-text-min.js
index 4ca7cff97bc..8e251b4629e 100644
--- a/lib/yuilib/3.7.1/build/dataschema-text/dataschema-text-min.js
+++ b/lib/yuilib/3.7.2/build/dataschema-text/dataschema-text-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dataschema-text",function(e,t){var n=e.Lang,r=n.isString,i=n.isUndefined,s={apply:function(e,t){var n=t,i={results:[],meta:{}};return r(t)&&e&&r(e.resultDelimiter)?i=s._parseResults.call(this,e,n,i):i.error=new Error("Text schema parse failure"),i},_parseResults:function(t,n,s){var o=t.resultDelimiter,u=r(t.fieldDelimiter)&&t.fieldDelimiter,a=t.resultFields||[],f=[],l=e.DataSchema.Base.parse,c,h,p,d,v,m,g,y,b;n.slice(-o.length)===o&&(n=n.slice(0,-o.length)),c=n.split(t.resultDelimiter);if(u)for(y=c.length-1;y>=0;--y){p={},d=c[y],h=d.split(t.fieldDelimiter);for(b=a.length-1;b>=0;--b)v=a[b],m=i(v.key)?v:v.key,g=i(h[m])?h[b]:h[m],p[m]=l.call(this,g,v);f[y]=p}else f=c;return s.results=f,s}};e.DataSchema.Text=e.mix(s,e.DataSchema.Base)},"3.7.1",{requires:["dataschema-base"]});
+YUI.add("dataschema-text",function(e,t){var n=e.Lang,r=n.isString,i=n.isUndefined,s={apply:function(e,t){var n=t,i={results:[],meta:{}};return r(t)&&e&&r(e.resultDelimiter)?i=s._parseResults.call(this,e,n,i):i.error=new Error("Text schema parse failure"),i},_parseResults:function(t,n,s){var o=t.resultDelimiter,u=r(t.fieldDelimiter)&&t.fieldDelimiter,a=t.resultFields||[],f=[],l=e.DataSchema.Base.parse,c,h,p,d,v,m,g,y,b;n.slice(-o.length)===o&&(n=n.slice(0,-o.length)),c=n.split(t.resultDelimiter);if(u)for(y=c.length-1;y>=0;--y){p={},d=c[y],h=d.split(t.fieldDelimiter);for(b=a.length-1;b>=0;--b)v=a[b],m=i(v.key)?v:v.key,g=i(h[m])?h[b]:h[m],p[m]=l.call(this,g,v);f[y]=p}else f=c;return s.results=f,s}};e.DataSchema.Text=e.mix(s,e.DataSchema.Base)},"3.7.2",{requires:["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-text/dataschema-text.js b/lib/yuilib/3.7.2/build/dataschema-text/dataschema-text.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/dataschema-text/dataschema-text.js
rename to lib/yuilib/3.7.2/build/dataschema-text/dataschema-text.js
index bfa8d186d73..5e0b514e8c1 100644
--- a/lib/yuilib/3.7.1/build/dataschema-text/dataschema-text.js
+++ b/lib/yuilib/3.7.2/build/dataschema-text/dataschema-text.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -185,4 +185,4 @@ var Lang = Y.Lang,
Y.DataSchema.Text = Y.mix(SchemaText, Y.DataSchema.Base);
-}, '3.7.1', {"requires": ["dataschema-base"]});
+}, '3.7.2', {"requires": ["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml-coverage.js b/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml-coverage.js
rename to lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-coverage.js
index 4662e0d4809..747ed0b6da7 100644
--- a/lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml-coverage.js
+++ b/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dataschema-xml/dataschema-xml.js"] = {
path: "build/dataschema-xml/dataschema-xml.js",
code: []
};
-_yuitest_coverage["build/dataschema-xml/dataschema-xml.js"].code=["YUI.add('dataschema-xml', function (Y, NAME) {","","/**","Provides a DataSchema implementation which can be used to work with XML data.","","@module dataschema","@submodule dataschema-xml","**/","","/**","Provides a DataSchema implementation which can be used to work with XML data.","","See the `apply` method for usage.","","@class DataSchema.XML","@extends DataSchema.Base","@static","**/","var Lang = Y.Lang,",""," okNodeType = {"," 1 : true,"," 9 : true,"," 11: true"," },",""," SchemaXML;","","SchemaXML = {",""," ////////////////////////////////////////////////////////////////////////////"," //"," // DataSchema.XML static methods"," //"," ////////////////////////////////////////////////////////////////////////////"," /**"," Applies a schema to an XML data tree, returning a normalized object with"," results in the `results` property. Additional information can be parsed out"," of the XML for inclusion in the `meta` property of the response object. If"," an error is encountered during processing, an `error` property will be"," added.",""," Field data in the nodes captured by the XPath in _schema.resultListLocator_"," is extracted with the field identifiers described in _schema.resultFields_."," Field identifiers are objects with the following properties:",""," * `key` : (required) The desired property name to use"," store the retrieved value in the result object. If `locator` is"," not specified, `key` is also used as the XPath locator (String)"," * `locator`: The XPath locator to the node or attribute within each"," result node found by _schema.resultListLocator_ containing the"," desired field data (String)"," * `parser` : A function or the name of a function on `Y.Parsers` used"," to convert the input value into a normalized type. Parser"," functions are passed the value as input and are expected to"," return a value."," * `schema` : Used to retrieve nested field data into an array for"," assignment as the result field value. This object follows the same"," conventions as _schema_.",""," If no value parsing or nested parsing is needed, you can use XPath locators"," (strings) instead of field identifiers (objects) -- see example below.",""," `response.results` will contain an array of objects with key:value pairs."," The keys are the field identifier `key`s, and the values are the data"," values extracted from the nodes or attributes found by the field `locator`"," (or `key` fallback)."," "," To extract additional information from the XML, include an array of"," XPath locators in _schema.metaFields_. The collected values will be"," stored in `response.meta` with the XPath locator as keys.",""," @example"," var schema = {"," resultListLocator: '//produce/item',"," resultFields: ["," {"," locator: 'name',"," key: 'name'"," },"," {"," locator: 'color',"," key: 'color',"," parser: function (val) { return val.toUpperCase(); }"," }"," ]"," };",""," // Assumes data like"," // "," // "," // Banana yellow "," // Orange orange "," // Eggplant purple "," // "," // ",""," var response = Y.DataSchema.JSON.apply(schema, data);",""," // response.results[0] is { name: \"Banana\", color: \"YELLOW\" }"," "," @method apply"," @param {Object} schema Schema to apply. Supported configuration"," properties are:"," @param {String} [schema.resultListLocator] XPath locator for the"," XML nodes that contain the data to flatten into `response.results`"," @param {Array} [schema.resultFields] Field identifiers to"," locate/assign values in the response records. See above for"," details."," @param {Array} [schema.metaFields] XPath locators to extract extra"," non-record related information from the XML data"," @param {XMLDoc} data XML data to parse"," @return {Object} An Object with properties `results` and `meta`"," @static"," **/"," apply: function(schema, data) {"," var xmldoc = data, // unnecessary variables"," data_out = { results: [], meta: {} };",""," if (xmldoc && okNodeType[xmldoc.nodeType] && schema) {"," // Parse results data"," data_out = SchemaXML._parseResults(schema, xmldoc, data_out);",""," // Parse meta data"," data_out = SchemaXML._parseMeta(schema.metaFields, xmldoc, data_out);"," } else {"," data_out.error = new Error(\"XML schema parse failure\");"," }",""," return data_out;"," },",""," /**"," * Get an XPath-specified value for a given field from an XML node or document."," *"," * @method _getLocationValue"," * @param field {String | Object} Field definition."," * @param context {Object} XML node or document to search within."," * @return {Object} Data value or null."," * @static"," * @protected"," */"," _getLocationValue: function(field, context) {"," var locator = field.locator || field.key || field,"," xmldoc = context.ownerDocument || context,"," result, res, value = null;",""," try {"," result = SchemaXML._getXPathResult(locator, context, xmldoc);"," while ((res = result.iterateNext())) {"," value = res.textContent || res.value || res.text || res.innerHTML || null;"," }",""," // FIXME: Why defer to a method that is mixed into this object?"," // DSchema.Base is mixed into DSchema.XML (et al), so"," // DSchema.XML.parse(...) will work. This supports the use case"," // where DSchema.Base.parse is changed, and that change is then"," // seen by all DSchema.* implementations, but does not support the"," // case where redefining DSchema.XML.parse changes behavior. In"," // fact, DSchema.XML.parse is never even called."," return Y.DataSchema.Base.parse.call(this, value, field);"," } catch (e) {"," }",""," return null;"," },",""," /**"," * Fetches the XPath-specified result for a given location in an XML node"," * or document."," * "," * @method _getXPathResult"," * @param locator {String} The XPath location."," * @param context {Object} XML node or document to search within."," * @param xmldoc {Object} XML document to resolve namespace."," * @return {Object} Data collection or null."," * @static"," * @protected"," */"," _getXPathResult: function(locator, context, xmldoc) {"," // Standards mode"," if (! Lang.isUndefined(xmldoc.evaluate)) {"," return xmldoc.evaluate(locator, context, xmldoc.createNSResolver(context.ownerDocument ? context.ownerDocument.documentElement : context.documentElement), 0, null);"," }"," // IE mode"," else {"," var values=[], locatorArray = locator.split(/\\b\\/\\b/), i=0, l=locatorArray.length, location, subloc, m, isNth;"," "," // XPath is supported"," try {"," // this fixes the IE 5.5+ issue where childnode selectors begin at 0 instead of 1"," xmldoc.setProperty(\"SelectionLanguage\", \"XPath\");"," values = context.selectNodes(locator);"," }"," // Fallback for DOM nodes and fragments"," catch (e) {"," // Iterate over each locator piece"," for (; i -1) && (location.indexOf(\"]\") > -1)) {"," subloc = location.slice(location.indexOf(\"[\")+1, location.indexOf(\"]\"));"," //XPath is 1-based while DOM is 0-based"," subloc--;"," context = context.children[subloc];"," isNth = true;"," }"," // grab attribute value @"," else if (location.indexOf(\"@\") > -1) {"," subloc = location.substr(location.indexOf(\"@\"));"," context = subloc ? context.getAttribute(subloc.replace('@', '')) : context;"," }"," // grab that last instance of tagName"," else if (-1 < location.indexOf(\"//\")) {"," subloc = context.getElementsByTagName(location.substr(2));"," context = subloc.length ? subloc[subloc.length - 1] : null;"," }"," // find the last matching location in children"," else if (l != i + 1) {"," for (m=context.childNodes.length-1; 0 <= m; m-=1) {"," if (location === context.childNodes[m].tagName) {"," context = context.childNodes[m];"," m = -1;"," }"," }"," }"," }"," "," if (context) {"," // attribute"," if (Lang.isString(context)) {"," values[0] = {value: context};"," }"," // nth child"," else if (isNth) {"," values[0] = {value: context.innerHTML};"," }"," // all children"," else {"," values = Y.Array(context.childNodes, 0, true);"," }"," }"," }",""," // returning a mock-standard object for IE"," return {"," index: 0,"," "," iterateNext: function() {"," if (this.index >= this.values.length) {return undefined;}"," var result = this.values[this.index];"," this.index += 1;"," return result;"," },",""," values: values"," };"," }"," },",""," /**"," * Schema-parsed result field."," *"," * @method _parseField"," * @param field {String | Object} Required. Field definition."," * @param result {Object} Required. Schema parsed data object."," * @param context {Object} Required. XML node or document to search within."," * @static"," * @protected"," */"," _parseField: function(field, result, context) {"," var key = field.key || field,"," parsed;",""," if (field.schema) {"," parsed = { results: [], meta: {} };"," parsed = SchemaXML._parseResults(field.schema, context, parsed);",""," result[key] = parsed.results;"," } else {"," result[key] = SchemaXML._getLocationValue(field, context);"," }"," },",""," /**"," * Parses results data according to schema"," *"," * @method _parseMeta"," * @param xmldoc_in {Object} XML document parse."," * @param data_out {Object} In-progress schema-parsed data to update."," * @return {Object} Schema-parsed data."," * @static"," * @protected"," */"," _parseMeta: function(metaFields, xmldoc_in, data_out) {"," if(Lang.isObject(metaFields)) {"," var key,"," xmldoc = xmldoc_in.ownerDocument || xmldoc_in;",""," for(key in metaFields) {"," if (metaFields.hasOwnProperty(key)) {"," data_out.meta[key] = SchemaXML._getLocationValue(metaFields[key], xmldoc);"," }"," }"," }"," return data_out;"," },",""," /**"," * Schema-parsed result to add to results list."," *"," * @method _parseResult"," * @param fields {Array} Required. A collection of field definition."," * @param context {Object} Required. XML node or document to search within."," * @return {Object} Schema-parsed data."," * @static"," * @protected"," */"," _parseResult: function(fields, context) {"," var result = {}, j;",""," // Find each field value"," for (j=fields.length-1; 0 <= j; j--) {"," SchemaXML._parseField(fields[j], result, context);"," }",""," return result;"," },",""," /**"," * Schema-parsed list of results from full data"," *"," * @method _parseResults"," * @param schema {Object} Schema to parse against."," * @param context {Object} XML node or document to parse."," * @param data_out {Object} In-progress schema-parsed data to update."," * @return {Object} Schema-parsed data."," * @static"," * @protected"," */"," _parseResults: function(schema, context, data_out) {"," if (schema.resultListLocator && Lang.isArray(schema.resultFields)) {"," var xmldoc = context.ownerDocument || context,"," fields = schema.resultFields,"," results = [],"," node, nodeList, i=0;",""," if (schema.resultListLocator.match(/^[:\\-\\w]+$/)) {"," nodeList = context.getElementsByTagName(schema.resultListLocator);"," "," // loop through each result node"," for (i = nodeList.length - 1; i >= 0; --i) {"," results[i] = SchemaXML._parseResult(fields, nodeList[i]);"," }"," } else {"," nodeList = SchemaXML._getXPathResult(schema.resultListLocator, context, xmldoc);",""," // loop through the nodelist"," while ((node = nodeList.iterateNext())) {"," results[i] = SchemaXML._parseResult(fields, node);"," i += 1;"," }"," }",""," if (results.length) {"," data_out.results = results;"," } else {"," data_out.error = new Error(\"XML schema result nodes retrieval failure\");"," }"," }"," return data_out;"," }","};","","Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base);","","","}, '3.7.1', {\"requires\": [\"dataschema-base\"]});"];
+_yuitest_coverage["build/dataschema-xml/dataschema-xml.js"].code=["YUI.add('dataschema-xml', function (Y, NAME) {","","/**","Provides a DataSchema implementation which can be used to work with XML data.","","@module dataschema","@submodule dataschema-xml","**/","","/**","Provides a DataSchema implementation which can be used to work with XML data.","","See the `apply` method for usage.","","@class DataSchema.XML","@extends DataSchema.Base","@static","**/","var Lang = Y.Lang,",""," okNodeType = {"," 1 : true,"," 9 : true,"," 11: true"," },",""," SchemaXML;","","SchemaXML = {",""," ////////////////////////////////////////////////////////////////////////////"," //"," // DataSchema.XML static methods"," //"," ////////////////////////////////////////////////////////////////////////////"," /**"," Applies a schema to an XML data tree, returning a normalized object with"," results in the `results` property. Additional information can be parsed out"," of the XML for inclusion in the `meta` property of the response object. If"," an error is encountered during processing, an `error` property will be"," added.",""," Field data in the nodes captured by the XPath in _schema.resultListLocator_"," is extracted with the field identifiers described in _schema.resultFields_."," Field identifiers are objects with the following properties:",""," * `key` : (required) The desired property name to use"," store the retrieved value in the result object. If `locator` is"," not specified, `key` is also used as the XPath locator (String)"," * `locator`: The XPath locator to the node or attribute within each"," result node found by _schema.resultListLocator_ containing the"," desired field data (String)"," * `parser` : A function or the name of a function on `Y.Parsers` used"," to convert the input value into a normalized type. Parser"," functions are passed the value as input and are expected to"," return a value."," * `schema` : Used to retrieve nested field data into an array for"," assignment as the result field value. This object follows the same"," conventions as _schema_.",""," If no value parsing or nested parsing is needed, you can use XPath locators"," (strings) instead of field identifiers (objects) -- see example below.",""," `response.results` will contain an array of objects with key:value pairs."," The keys are the field identifier `key`s, and the values are the data"," values extracted from the nodes or attributes found by the field `locator`"," (or `key` fallback)."," "," To extract additional information from the XML, include an array of"," XPath locators in _schema.metaFields_. The collected values will be"," stored in `response.meta` with the XPath locator as keys.",""," @example"," var schema = {"," resultListLocator: '//produce/item',"," resultFields: ["," {"," locator: 'name',"," key: 'name'"," },"," {"," locator: 'color',"," key: 'color',"," parser: function (val) { return val.toUpperCase(); }"," }"," ]"," };",""," // Assumes data like"," // "," // "," // Banana yellow "," // Orange orange "," // Eggplant purple "," // "," // ",""," var response = Y.DataSchema.JSON.apply(schema, data);",""," // response.results[0] is { name: \"Banana\", color: \"YELLOW\" }"," "," @method apply"," @param {Object} schema Schema to apply. Supported configuration"," properties are:"," @param {String} [schema.resultListLocator] XPath locator for the"," XML nodes that contain the data to flatten into `response.results`"," @param {Array} [schema.resultFields] Field identifiers to"," locate/assign values in the response records. See above for"," details."," @param {Array} [schema.metaFields] XPath locators to extract extra"," non-record related information from the XML data"," @param {XMLDoc} data XML data to parse"," @return {Object} An Object with properties `results` and `meta`"," @static"," **/"," apply: function(schema, data) {"," var xmldoc = data, // unnecessary variables"," data_out = { results: [], meta: {} };",""," if (xmldoc && okNodeType[xmldoc.nodeType] && schema) {"," // Parse results data"," data_out = SchemaXML._parseResults(schema, xmldoc, data_out);",""," // Parse meta data"," data_out = SchemaXML._parseMeta(schema.metaFields, xmldoc, data_out);"," } else {"," data_out.error = new Error(\"XML schema parse failure\");"," }",""," return data_out;"," },",""," /**"," * Get an XPath-specified value for a given field from an XML node or document."," *"," * @method _getLocationValue"," * @param field {String | Object} Field definition."," * @param context {Object} XML node or document to search within."," * @return {Object} Data value or null."," * @static"," * @protected"," */"," _getLocationValue: function(field, context) {"," var locator = field.locator || field.key || field,"," xmldoc = context.ownerDocument || context,"," result, res, value = null;",""," try {"," result = SchemaXML._getXPathResult(locator, context, xmldoc);"," while ((res = result.iterateNext())) {"," value = res.textContent || res.value || res.text || res.innerHTML || null;"," }",""," // FIXME: Why defer to a method that is mixed into this object?"," // DSchema.Base is mixed into DSchema.XML (et al), so"," // DSchema.XML.parse(...) will work. This supports the use case"," // where DSchema.Base.parse is changed, and that change is then"," // seen by all DSchema.* implementations, but does not support the"," // case where redefining DSchema.XML.parse changes behavior. In"," // fact, DSchema.XML.parse is never even called."," return Y.DataSchema.Base.parse.call(this, value, field);"," } catch (e) {"," }",""," return null;"," },",""," /**"," * Fetches the XPath-specified result for a given location in an XML node"," * or document."," * "," * @method _getXPathResult"," * @param locator {String} The XPath location."," * @param context {Object} XML node or document to search within."," * @param xmldoc {Object} XML document to resolve namespace."," * @return {Object} Data collection or null."," * @static"," * @protected"," */"," _getXPathResult: function(locator, context, xmldoc) {"," // Standards mode"," if (! Lang.isUndefined(xmldoc.evaluate)) {"," return xmldoc.evaluate(locator, context, xmldoc.createNSResolver(context.ownerDocument ? context.ownerDocument.documentElement : context.documentElement), 0, null);"," }"," // IE mode"," else {"," var values=[], locatorArray = locator.split(/\\b\\/\\b/), i=0, l=locatorArray.length, location, subloc, m, isNth;"," "," // XPath is supported"," try {"," // this fixes the IE 5.5+ issue where childnode selectors begin at 0 instead of 1"," xmldoc.setProperty(\"SelectionLanguage\", \"XPath\");"," values = context.selectNodes(locator);"," }"," // Fallback for DOM nodes and fragments"," catch (e) {"," // Iterate over each locator piece"," for (; i -1) && (location.indexOf(\"]\") > -1)) {"," subloc = location.slice(location.indexOf(\"[\")+1, location.indexOf(\"]\"));"," //XPath is 1-based while DOM is 0-based"," subloc--;"," context = context.children[subloc];"," isNth = true;"," }"," // grab attribute value @"," else if (location.indexOf(\"@\") > -1) {"," subloc = location.substr(location.indexOf(\"@\"));"," context = subloc ? context.getAttribute(subloc.replace('@', '')) : context;"," }"," // grab that last instance of tagName"," else if (-1 < location.indexOf(\"//\")) {"," subloc = context.getElementsByTagName(location.substr(2));"," context = subloc.length ? subloc[subloc.length - 1] : null;"," }"," // find the last matching location in children"," else if (l != i + 1) {"," for (m=context.childNodes.length-1; 0 <= m; m-=1) {"," if (location === context.childNodes[m].tagName) {"," context = context.childNodes[m];"," m = -1;"," }"," }"," }"," }"," "," if (context) {"," // attribute"," if (Lang.isString(context)) {"," values[0] = {value: context};"," }"," // nth child"," else if (isNth) {"," values[0] = {value: context.innerHTML};"," }"," // all children"," else {"," values = Y.Array(context.childNodes, 0, true);"," }"," }"," }",""," // returning a mock-standard object for IE"," return {"," index: 0,"," "," iterateNext: function() {"," if (this.index >= this.values.length) {return undefined;}"," var result = this.values[this.index];"," this.index += 1;"," return result;"," },",""," values: values"," };"," }"," },",""," /**"," * Schema-parsed result field."," *"," * @method _parseField"," * @param field {String | Object} Required. Field definition."," * @param result {Object} Required. Schema parsed data object."," * @param context {Object} Required. XML node or document to search within."," * @static"," * @protected"," */"," _parseField: function(field, result, context) {"," var key = field.key || field,"," parsed;",""," if (field.schema) {"," parsed = { results: [], meta: {} };"," parsed = SchemaXML._parseResults(field.schema, context, parsed);",""," result[key] = parsed.results;"," } else {"," result[key] = SchemaXML._getLocationValue(field, context);"," }"," },",""," /**"," * Parses results data according to schema"," *"," * @method _parseMeta"," * @param xmldoc_in {Object} XML document parse."," * @param data_out {Object} In-progress schema-parsed data to update."," * @return {Object} Schema-parsed data."," * @static"," * @protected"," */"," _parseMeta: function(metaFields, xmldoc_in, data_out) {"," if(Lang.isObject(metaFields)) {"," var key,"," xmldoc = xmldoc_in.ownerDocument || xmldoc_in;",""," for(key in metaFields) {"," if (metaFields.hasOwnProperty(key)) {"," data_out.meta[key] = SchemaXML._getLocationValue(metaFields[key], xmldoc);"," }"," }"," }"," return data_out;"," },",""," /**"," * Schema-parsed result to add to results list."," *"," * @method _parseResult"," * @param fields {Array} Required. A collection of field definition."," * @param context {Object} Required. XML node or document to search within."," * @return {Object} Schema-parsed data."," * @static"," * @protected"," */"," _parseResult: function(fields, context) {"," var result = {}, j;",""," // Find each field value"," for (j=fields.length-1; 0 <= j; j--) {"," SchemaXML._parseField(fields[j], result, context);"," }",""," return result;"," },",""," /**"," * Schema-parsed list of results from full data"," *"," * @method _parseResults"," * @param schema {Object} Schema to parse against."," * @param context {Object} XML node or document to parse."," * @param data_out {Object} In-progress schema-parsed data to update."," * @return {Object} Schema-parsed data."," * @static"," * @protected"," */"," _parseResults: function(schema, context, data_out) {"," if (schema.resultListLocator && Lang.isArray(schema.resultFields)) {"," var xmldoc = context.ownerDocument || context,"," fields = schema.resultFields,"," results = [],"," node, nodeList, i=0;",""," if (schema.resultListLocator.match(/^[:\\-\\w]+$/)) {"," nodeList = context.getElementsByTagName(schema.resultListLocator);"," "," // loop through each result node"," for (i = nodeList.length - 1; i >= 0; --i) {"," results[i] = SchemaXML._parseResult(fields, nodeList[i]);"," }"," } else {"," nodeList = SchemaXML._getXPathResult(schema.resultListLocator, context, xmldoc);",""," // loop through the nodelist"," while ((node = nodeList.iterateNext())) {"," results[i] = SchemaXML._parseResult(fields, node);"," i += 1;"," }"," }",""," if (results.length) {"," data_out.results = results;"," } else {"," data_out.error = new Error(\"XML schema result nodes retrieval failure\");"," }"," }"," return data_out;"," }","};","","Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base);","","","}, '3.7.2', {\"requires\": [\"dataschema-base\"]});"];
_yuitest_coverage["build/dataschema-xml/dataschema-xml.js"].lines = {"1":0,"19":0,"29":0,"117":0,"120":0,"122":0,"125":0,"127":0,"130":0,"144":0,"148":0,"149":0,"150":0,"151":0,"161":0,"165":0,"182":0,"183":0,"187":0,"190":0,"192":0,"193":0,"198":0,"199":0,"202":0,"203":0,"205":0,"206":0,"207":0,"210":0,"211":0,"212":0,"215":0,"216":0,"217":0,"220":0,"221":0,"222":0,"223":0,"224":0,"230":0,"232":0,"233":0,"236":0,"237":0,"241":0,"247":0,"251":0,"252":0,"253":0,"254":0,"273":0,"276":0,"277":0,"278":0,"280":0,"282":0,"297":0,"298":0,"301":0,"302":0,"303":0,"307":0,"321":0,"324":0,"325":0,"328":0,"343":0,"344":0,"349":0,"350":0,"353":0,"354":0,"357":0,"360":0,"361":0,"362":0,"366":0,"367":0,"369":0,"372":0,"376":0};
_yuitest_coverage["build/dataschema-xml/dataschema-xml.js"].functions = {"apply:116":0,"_getLocationValue:143":0,"iterateNext:250":0,"_getXPathResult:180":0,"_parseField:272":0,"_parseMeta:296":0,"_parseResult:320":0,"_parseResults:342":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dataschema-xml/dataschema-xml.js"].coveredLines = 82;
@@ -506,4 +506,4 @@ _yuitest_coverline("build/dataschema-xml/dataschema-xml.js", 376);
Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base);
-}, '3.7.1', {"requires": ["dataschema-base"]});
+}, '3.7.2', {"requires": ["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml-debug.js b/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml-debug.js
rename to lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-debug.js
index ce7ba1bdb9c..930d0347c78 100644
--- a/lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml-debug.js
+++ b/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -384,4 +384,4 @@ SchemaXML = {
Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base);
-}, '3.7.1', {"requires": ["dataschema-base"]});
+}, '3.7.2', {"requires": ["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml-min.js b/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml-min.js
rename to lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-min.js
index 2d42db15675..a035503f9e7 100644
--- a/lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml-min.js
+++ b/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dataschema-xml",function(e,t){var n=e.Lang,r={1:!0,9:!0,11:!0},i;i={apply:function(e,t){var n=t,s={results:[],meta:{}};return n&&r[n.nodeType]&&e?(s=i._parseResults(e,n,s),s=i._parseMeta(e.metaFields,n,s)):s.error=new Error("XML schema parse failure"),s},_getLocationValue:function(t,n){var r=t.locator||t.key||t,s=n.ownerDocument||n,o,u,a=null;try{o=i._getXPathResult(r,n,s);while(u=o.iterateNext())a=u.textContent||u.value||u.text||u.innerHTML||null;return e.DataSchema.Base.parse.call(this,a,t)}catch(f){}return null},_getXPathResult:function(t,r,i){if(!n.isUndefined(i.evaluate))return i.evaluate(t,r,i.createNSResolver(r.ownerDocument?r.ownerDocument.documentElement:r.documentElement),0,null);var s=[],o=t.split(/\b\/\b/),u=0,a=o.length,f,l,c,h;try{i.setProperty("SelectionLanguage","XPath"),s=r.selectNodes(t)}catch(p){for(;u-1&&f.indexOf("]")>-1)l=f.slice(f.indexOf("[")+1,f.indexOf("]")),l--,r=r.children[l],h=!0;else if(f.indexOf("@")>-1)l=f.substr(f.indexOf("@")),r=l?r.getAttribute(l.replace("@","")):r;else if(-1=this.values.length)return undefined;var e=this.values[this.index];return this.index+=1,e},values:s}},_parseField:function(e,t,n){var r=e.key||e,s;e.schema?(s={results:[],meta:{}},s=i._parseResults(e.schema,n,s),t[r]=s.results):t[r]=i._getLocationValue(e,n)},_parseMeta:function(e,t,r){if(n.isObject(e)){var s,o=t.ownerDocument||t;for(s in e)e.hasOwnProperty(s)&&(r.meta[s]=i._getLocationValue(e[s],o))}return r},_parseResult:function(e,t){var n={},r;for(r=e.length-1;0<=r;r--)i._parseField(e[r],n,t);return n},_parseResults:function(e,t,r){if(e.resultListLocator&&n.isArray(e.resultFields)){var s=t.ownerDocument||t,o=e.resultFields,u=[],a,f,l=0;if(e.resultListLocator.match(/^[:\-\w]+$/)){f=t.getElementsByTagName(e.resultListLocator);for(l=f.length-1;l>=0;--l)u[l]=i._parseResult(o,f[l])}else{f=i._getXPathResult(e.resultListLocator,t,s);while(a=f.iterateNext())u[l]=i._parseResult(o,a),l+=1}u.length?r.results=u:r.error=new Error("XML schema result nodes retrieval failure")}return r}},e.DataSchema.XML=e.mix(i,e.DataSchema.Base)},"3.7.1",{requires:["dataschema-base"]});
+YUI.add("dataschema-xml",function(e,t){var n=e.Lang,r={1:!0,9:!0,11:!0},i;i={apply:function(e,t){var n=t,s={results:[],meta:{}};return n&&r[n.nodeType]&&e?(s=i._parseResults(e,n,s),s=i._parseMeta(e.metaFields,n,s)):s.error=new Error("XML schema parse failure"),s},_getLocationValue:function(t,n){var r=t.locator||t.key||t,s=n.ownerDocument||n,o,u,a=null;try{o=i._getXPathResult(r,n,s);while(u=o.iterateNext())a=u.textContent||u.value||u.text||u.innerHTML||null;return e.DataSchema.Base.parse.call(this,a,t)}catch(f){}return null},_getXPathResult:function(t,r,i){if(!n.isUndefined(i.evaluate))return i.evaluate(t,r,i.createNSResolver(r.ownerDocument?r.ownerDocument.documentElement:r.documentElement),0,null);var s=[],o=t.split(/\b\/\b/),u=0,a=o.length,f,l,c,h;try{i.setProperty("SelectionLanguage","XPath"),s=r.selectNodes(t)}catch(p){for(;u-1&&f.indexOf("]")>-1)l=f.slice(f.indexOf("[")+1,f.indexOf("]")),l--,r=r.children[l],h=!0;else if(f.indexOf("@")>-1)l=f.substr(f.indexOf("@")),r=l?r.getAttribute(l.replace("@","")):r;else if(-1=this.values.length)return undefined;var e=this.values[this.index];return this.index+=1,e},values:s}},_parseField:function(e,t,n){var r=e.key||e,s;e.schema?(s={results:[],meta:{}},s=i._parseResults(e.schema,n,s),t[r]=s.results):t[r]=i._getLocationValue(e,n)},_parseMeta:function(e,t,r){if(n.isObject(e)){var s,o=t.ownerDocument||t;for(s in e)e.hasOwnProperty(s)&&(r.meta[s]=i._getLocationValue(e[s],o))}return r},_parseResult:function(e,t){var n={},r;for(r=e.length-1;0<=r;r--)i._parseField(e[r],n,t);return n},_parseResults:function(e,t,r){if(e.resultListLocator&&n.isArray(e.resultFields)){var s=t.ownerDocument||t,o=e.resultFields,u=[],a,f,l=0;if(e.resultListLocator.match(/^[:\-\w]+$/)){f=t.getElementsByTagName(e.resultListLocator);for(l=f.length-1;l>=0;--l)u[l]=i._parseResult(o,f[l])}else{f=i._getXPathResult(e.resultListLocator,t,s);while(a=f.iterateNext())u[l]=i._parseResult(o,a),l+=1}u.length?r.results=u:r.error=new Error("XML schema result nodes retrieval failure")}return r}},e.DataSchema.XML=e.mix(i,e.DataSchema.Base)},"3.7.2",{requires:["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml.js b/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml.js
rename to lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml.js
index 90a9722c817..b719f89898d 100644
--- a/lib/yuilib/3.7.1/build/dataschema-xml/dataschema-xml.js
+++ b/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -382,4 +382,4 @@ SchemaXML = {
Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base);
-}, '3.7.1', {"requires": ["dataschema-base"]});
+}, '3.7.2', {"requires": ["dataschema-base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema-coverage.js b/lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema-coverage.js
index 85cdf0e8b7d..5f935a3b09e 100644
--- a/lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-arrayschema/datasource-arrayschema.js"] = {
path: "build/datasource-arrayschema/datasource-arrayschema.js",
code: []
};
-_yuitest_coverage["build/datasource-arrayschema/datasource-arrayschema.js"].code=["YUI.add('datasource-arrayschema', function (Y, NAME) {","","/**"," * Extends DataSource with schema-parsing on array data."," *"," * @module datasource"," * @submodule datasource-arrayschema"," */","","/**"," * Adds schema-parsing to the DataSource Utility."," * @class DataSourceArraySchema"," * @extends Plugin.Base"," */ ","var DataSourceArraySchema = function() {"," DataSourceArraySchema.superclass.constructor.apply(this, arguments);","};","","Y.mix(DataSourceArraySchema, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"schema\""," */"," NS: \"schema\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceArraySchema\""," */"," NAME: \"dataSourceArraySchema\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSourceArraySchema Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," schema: {"," //value: {}"," }"," }","});","","Y.extend(DataSourceArraySchema, Y.Plugin.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defDataFn\", this._beforeDefDataFn);"," },",""," /**"," * Parses raw data into a normalized response."," *"," * @method _beforeDefDataFn"," * @param tId {Number} Unique transaction ID."," * @param request {Object} The request."," * @param callback {Object} The callback object with the following properties:"," * "," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * @param data {Object} Raw data."," * @protected"," */"," _beforeDefDataFn: function(e) {"," var data = (Y.DataSource.IO && (this.get(\"host\") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data,"," response = Y.DataSchema.Array.apply.call(this, this.get(\"schema\"), data),"," payload = e.details[0];"," "," // Default"," if (!response) {"," response = {"," meta: {},"," results: data"," };"," }"," "," payload.response = response;",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceArraySchema plugin halted _defDataFn\");"," }","});"," ","Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema;","","","}, '3.7.1', {\"requires\": [\"datasource-local\", \"plugin\", \"dataschema-array\"]});"];
+_yuitest_coverage["build/datasource-arrayschema/datasource-arrayschema.js"].code=["YUI.add('datasource-arrayschema', function (Y, NAME) {","","/**"," * Extends DataSource with schema-parsing on array data."," *"," * @module datasource"," * @submodule datasource-arrayschema"," */","","/**"," * Adds schema-parsing to the DataSource Utility."," * @class DataSourceArraySchema"," * @extends Plugin.Base"," */ ","var DataSourceArraySchema = function() {"," DataSourceArraySchema.superclass.constructor.apply(this, arguments);","};","","Y.mix(DataSourceArraySchema, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"schema\""," */"," NS: \"schema\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceArraySchema\""," */"," NAME: \"dataSourceArraySchema\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSourceArraySchema Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," schema: {"," //value: {}"," }"," }","});","","Y.extend(DataSourceArraySchema, Y.Plugin.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defDataFn\", this._beforeDefDataFn);"," },",""," /**"," * Parses raw data into a normalized response."," *"," * @method _beforeDefDataFn"," * @param tId {Number} Unique transaction ID."," * @param request {Object} The request."," * @param callback {Object} The callback object with the following properties:"," * "," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * @param data {Object} Raw data."," * @protected"," */"," _beforeDefDataFn: function(e) {"," var data = (Y.DataSource.IO && (this.get(\"host\") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data,"," response = Y.DataSchema.Array.apply.call(this, this.get(\"schema\"), data),"," payload = e.details[0];"," "," // Default"," if (!response) {"," response = {"," meta: {},"," results: data"," };"," }"," "," payload.response = response;",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceArraySchema plugin halted _defDataFn\");"," }","});"," ","Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema;","","","}, '3.7.2', {\"requires\": [\"datasource-local\", \"plugin\", \"dataschema-array\"]});"];
_yuitest_coverage["build/datasource-arrayschema/datasource-arrayschema.js"].lines = {"1":0,"15":0,"16":0,"19":0,"56":0,"65":0,"83":0,"88":0,"89":0,"95":0,"97":0,"99":0,"103":0};
_yuitest_coverage["build/datasource-arrayschema/datasource-arrayschema.js"].functions = {"DataSourceArraySchema:15":0,"initializer:64":0,"_beforeDefDataFn:82":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-arrayschema/datasource-arrayschema.js"].coveredLines = 13;
@@ -159,4 +159,4 @@ _yuitest_coverline("build/datasource-arrayschema/datasource-arrayschema.js", 103
Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema-debug.js b/lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema-debug.js
rename to lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema-debug.js
index c34320b270a..20bf9151440 100644
--- a/lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -109,4 +109,4 @@ Y.extend(DataSourceArraySchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema-min.js b/lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema-min.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema-min.js
rename to lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema-min.js
index 8895aec80d3..409e7bdc623 100644
--- a/lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-arrayschema",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NS:"schema",NAME:"dataSourceArraySchema",ATTRS:{schema:{}}}),e.extend(n,e.Plugin.Base,{initializer:function(e){this.doBefore("_defDataFn",this._beforeDefDataFn)},_beforeDefDataFn:function(t){var n=e.DataSource.IO&&this.get("host")instanceof e.DataSource.IO&&e.Lang.isString(t.data.responseText)?t.data.responseText:t.data,r=e.DataSchema.Array.apply.call(this,this.get("schema"),n),i=t.details[0];return r||(r={meta:{},results:n}),i.response=r,this.get("host").fire("response",i),new e.Do.Halt("DataSourceArraySchema plugin halted _defDataFn")}}),e.namespace("Plugin").DataSourceArraySchema=n},"3.7.1",{requires:["datasource-local","plugin","dataschema-array"]});
+YUI.add("datasource-arrayschema",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NS:"schema",NAME:"dataSourceArraySchema",ATTRS:{schema:{}}}),e.extend(n,e.Plugin.Base,{initializer:function(e){this.doBefore("_defDataFn",this._beforeDefDataFn)},_beforeDefDataFn:function(t){var n=e.DataSource.IO&&this.get("host")instanceof e.DataSource.IO&&e.Lang.isString(t.data.responseText)?t.data.responseText:t.data,r=e.DataSchema.Array.apply.call(this,this.get("schema"),n),i=t.details[0];return r||(r={meta:{},results:n}),i.response=r,this.get("host").fire("response",i),new e.Do.Halt("DataSourceArraySchema plugin halted _defDataFn")}}),e.namespace("Plugin").DataSourceArraySchema=n},"3.7.2",{requires:["datasource-local","plugin","dataschema-array"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema.js b/lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema.js
rename to lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema.js
index c34320b270a..20bf9151440 100644
--- a/lib/yuilib/3.7.1/build/datasource-arrayschema/datasource-arrayschema.js
+++ b/lib/yuilib/3.7.2/build/datasource-arrayschema/datasource-arrayschema.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -109,4 +109,4 @@ Y.extend(DataSourceArraySchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-cache/datasource-cache-coverage.js b/lib/yuilib/3.7.2/build/datasource-cache/datasource-cache-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-cache/datasource-cache-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-cache/datasource-cache-coverage.js
index 701f29f4553..fd5e8cd7e36 100644
--- a/lib/yuilib/3.7.1/build/datasource-cache/datasource-cache-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-cache/datasource-cache-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-cache/datasource-cache.js"] = {
path: "build/datasource-cache/datasource-cache.js",
code: []
};
-_yuitest_coverage["build/datasource-cache/datasource-cache.js"].code=["YUI.add('datasource-cache', function (Y, NAME) {","","/**"," * Plugs DataSource with caching functionality."," *"," * @module datasource"," * @submodule datasource-cache"," */","","/**"," * DataSourceCache extension binds Cache to DataSource."," * @class DataSourceCacheExtension"," */","var DataSourceCacheExtension = function() {","};","","Y.mix(DataSourceCacheExtension, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"cache\""," */"," NS: \"cache\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceCacheExtension\""," */"," NAME: \"dataSourceCacheExtension\"","});","","DataSourceCacheExtension.prototype = {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defRequestFn\", this._beforeDefRequestFn);"," this.doBefore(\"_defResponseFn\", this._beforeDefResponseFn);"," },",""," /**"," * First look for cached response, then send request to live data."," *"," * @method _beforeDefRequestFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object.
"," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _beforeDefRequestFn: function(e) {"," // Is response already in the Cache?"," var entry = (this.retrieve(e.request)) || null,"," payload = e.details[0];",""," if (entry && entry.response) {"," payload.cached = entry.cached;"," payload.response = entry.response;"," payload.data = entry.data;",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceCache extension halted _defRequestFn\");"," }"," },",""," /**"," * Adds data to cache before returning data."," *"," * @method _beforeDefResponseFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - data (Object)
- Raw data.
"," * - response (Object)
- Normalized response object with the following properties:"," *
"," * - cached (Object)
- True when response is cached.
"," * - results (Object)
- Parsed results.
"," * - meta (Object)
- Parsed meta data.
"," * - error (Object)
- Error object.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _beforeDefResponseFn: function(e) {"," // Add to Cache before returning"," if(e.response && !e.cached) {"," this.add(e.request, e.response);"," }"," }","};","","Y.namespace(\"Plugin\").DataSourceCacheExtension = DataSourceCacheExtension;","","","","/**"," * DataSource plugin adds cache functionality."," * @class DataSourceCache"," * @extends Cache"," * @uses Plugin.Base, DataSourceCachePlugin"," */","function DataSourceCache(config) {"," var cache = config && config.cache ? config.cache : Y.Cache,"," tmpclass = Y.Base.create(\"dataSourceCache\", cache, [Y.Plugin.Base, Y.Plugin.DataSourceCacheExtension]),"," tmpinstance = new tmpclass(config);"," tmpclass.NS = \"tmpClass\";"," return tmpinstance;","}","","Y.mix(DataSourceCache, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"cache\""," */"," NS: \"cache\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceCache\""," */"," NAME: \"dataSourceCache\"","});","","","Y.namespace(\"Plugin\").DataSourceCache = DataSourceCache;","","","}, '3.7.1', {\"requires\": [\"datasource-local\", \"plugin\", \"cache-base\"]});"];
+_yuitest_coverage["build/datasource-cache/datasource-cache.js"].code=["YUI.add('datasource-cache', function (Y, NAME) {","","/**"," * Plugs DataSource with caching functionality."," *"," * @module datasource"," * @submodule datasource-cache"," */","","/**"," * DataSourceCache extension binds Cache to DataSource."," * @class DataSourceCacheExtension"," */","var DataSourceCacheExtension = function() {","};","","Y.mix(DataSourceCacheExtension, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"cache\""," */"," NS: \"cache\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceCacheExtension\""," */"," NAME: \"dataSourceCacheExtension\"","});","","DataSourceCacheExtension.prototype = {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defRequestFn\", this._beforeDefRequestFn);"," this.doBefore(\"_defResponseFn\", this._beforeDefResponseFn);"," },",""," /**"," * First look for cached response, then send request to live data."," *"," * @method _beforeDefRequestFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object.
"," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _beforeDefRequestFn: function(e) {"," // Is response already in the Cache?"," var entry = (this.retrieve(e.request)) || null,"," payload = e.details[0];",""," if (entry && entry.response) {"," payload.cached = entry.cached;"," payload.response = entry.response;"," payload.data = entry.data;",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceCache extension halted _defRequestFn\");"," }"," },",""," /**"," * Adds data to cache before returning data."," *"," * @method _beforeDefResponseFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - data (Object)
- Raw data.
"," * - response (Object)
- Normalized response object with the following properties:"," *
"," * - cached (Object)
- True when response is cached.
"," * - results (Object)
- Parsed results.
"," * - meta (Object)
- Parsed meta data.
"," * - error (Object)
- Error object.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _beforeDefResponseFn: function(e) {"," // Add to Cache before returning"," if(e.response && !e.cached) {"," this.add(e.request, e.response);"," }"," }","};","","Y.namespace(\"Plugin\").DataSourceCacheExtension = DataSourceCacheExtension;","","","","/**"," * DataSource plugin adds cache functionality."," * @class DataSourceCache"," * @extends Cache"," * @uses Plugin.Base, DataSourceCachePlugin"," */","function DataSourceCache(config) {"," var cache = config && config.cache ? config.cache : Y.Cache,"," tmpclass = Y.Base.create(\"dataSourceCache\", cache, [Y.Plugin.Base, Y.Plugin.DataSourceCacheExtension]),"," tmpinstance = new tmpclass(config);"," tmpclass.NS = \"tmpClass\";"," return tmpinstance;","}","","Y.mix(DataSourceCache, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"cache\""," */"," NS: \"cache\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceCache\""," */"," NAME: \"dataSourceCache\"","});","","","Y.namespace(\"Plugin\").DataSourceCache = DataSourceCache;","","","}, '3.7.2', {\"requires\": [\"datasource-local\", \"plugin\", \"cache-base\"]});"];
_yuitest_coverage["build/datasource-cache/datasource-cache.js"].lines = {"1":0,"14":0,"17":0,"42":0,"51":0,"52":0,"70":0,"73":0,"74":0,"75":0,"76":0,"78":0,"80":0,"113":0,"114":0,"119":0,"129":0,"130":0,"133":0,"134":0,"137":0,"163":0};
_yuitest_coverage["build/datasource-cache/datasource-cache.js"].functions = {"initializer:50":0,"_beforeDefRequestFn:68":0,"_beforeDefResponseFn:111":0,"DataSourceCache:129":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-cache/datasource-cache.js"].coveredLines = 22;
@@ -229,4 +229,4 @@ _yuitest_coverline("build/datasource-cache/datasource-cache.js", 163);
Y.namespace("Plugin").DataSourceCache = DataSourceCache;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "cache-base"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "cache-base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-cache/datasource-cache-debug.js b/lib/yuilib/3.7.2/build/datasource-cache/datasource-cache-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-cache/datasource-cache-debug.js
rename to lib/yuilib/3.7.2/build/datasource-cache/datasource-cache-debug.js
index 4e57b6052d2..13b8b22d2ec 100644
--- a/lib/yuilib/3.7.1/build/datasource-cache/datasource-cache-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-cache/datasource-cache-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -169,4 +169,4 @@ Y.mix(DataSourceCache, {
Y.namespace("Plugin").DataSourceCache = DataSourceCache;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "cache-base"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "cache-base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-cache/datasource-cache-min.js b/lib/yuilib/3.7.2/build/datasource-cache/datasource-cache-min.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datasource-cache/datasource-cache-min.js
rename to lib/yuilib/3.7.2/build/datasource-cache/datasource-cache-min.js
index 214f3643800..2682c160691 100644
--- a/lib/yuilib/3.7.1/build/datasource-cache/datasource-cache-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-cache/datasource-cache-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-cache",function(e,t){function r(t){var n=t&&t.cache?t.cache:e.Cache,r=e.Base.create("dataSourceCache",n,[e.Plugin.Base,e.Plugin.DataSourceCacheExtension]),i=new r(t);return r.NS="tmpClass",i}var n=function(){};e.mix(n,{NS:"cache",NAME:"dataSourceCacheExtension"}),n.prototype={initializer:function(e){this.doBefore("_defRequestFn",this._beforeDefRequestFn),this.doBefore("_defResponseFn",this._beforeDefResponseFn)},_beforeDefRequestFn:function(t){var n=this.retrieve(t.request)||null,r=t.details[0];if(n&&n.response)return r.cached=n.cached,r.response=n.response,r.data=n.data,this.get("host").fire("response",r),new e.Do.Halt("DataSourceCache extension halted _defRequestFn")},_beforeDefResponseFn:function(e){e.response&&!e.cached&&this.add(e.request,e.response)}},e.namespace("Plugin").DataSourceCacheExtension=n,e.mix(r,{NS:"cache",NAME:"dataSourceCache"}),e.namespace("Plugin").DataSourceCache=r},"3.7.1",{requires:["datasource-local","plugin","cache-base"]});
+YUI.add("datasource-cache",function(e,t){function r(t){var n=t&&t.cache?t.cache:e.Cache,r=e.Base.create("dataSourceCache",n,[e.Plugin.Base,e.Plugin.DataSourceCacheExtension]),i=new r(t);return r.NS="tmpClass",i}var n=function(){};e.mix(n,{NS:"cache",NAME:"dataSourceCacheExtension"}),n.prototype={initializer:function(e){this.doBefore("_defRequestFn",this._beforeDefRequestFn),this.doBefore("_defResponseFn",this._beforeDefResponseFn)},_beforeDefRequestFn:function(t){var n=this.retrieve(t.request)||null,r=t.details[0];if(n&&n.response)return r.cached=n.cached,r.response=n.response,r.data=n.data,this.get("host").fire("response",r),new e.Do.Halt("DataSourceCache extension halted _defRequestFn")},_beforeDefResponseFn:function(e){e.response&&!e.cached&&this.add(e.request,e.response)}},e.namespace("Plugin").DataSourceCacheExtension=n,e.mix(r,{NS:"cache",NAME:"dataSourceCache"}),e.namespace("Plugin").DataSourceCache=r},"3.7.2",{requires:["datasource-local","plugin","cache-base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-cache/datasource-cache.js b/lib/yuilib/3.7.2/build/datasource-cache/datasource-cache.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-cache/datasource-cache.js
rename to lib/yuilib/3.7.2/build/datasource-cache/datasource-cache.js
index 4e57b6052d2..13b8b22d2ec 100644
--- a/lib/yuilib/3.7.1/build/datasource-cache/datasource-cache.js
+++ b/lib/yuilib/3.7.2/build/datasource-cache/datasource-cache.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -169,4 +169,4 @@ Y.mix(DataSourceCache, {
Y.namespace("Plugin").DataSourceCache = DataSourceCache;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "cache-base"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "cache-base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-function/datasource-function-coverage.js b/lib/yuilib/3.7.2/build/datasource-function/datasource-function-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-function/datasource-function-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-function/datasource-function-coverage.js
index c449bfc00b6..cac394ab5b3 100644
--- a/lib/yuilib/3.7.1/build/datasource-function/datasource-function-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-function/datasource-function-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-function/datasource-function.js"] = {
path: "build/datasource-function/datasource-function.js",
code: []
};
-_yuitest_coverage["build/datasource-function/datasource-function.js"].code=["YUI.add('datasource-function', function (Y, NAME) {","","/**"," * Provides a DataSource implementation which can be used to retrieve data from"," * a custom function."," *"," * @module datasource"," * @submodule datasource-function"," */","","/**"," * Function subclass for the DataSource Utility."," * @class DataSource.Function"," * @extends DataSource.Local"," * @constructor"," */ ","var LANG = Y.Lang,",""," DSFn = function() {"," DSFn.superclass.constructor.apply(this, arguments);"," };"," ",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.Function static properties"," //"," /////////////////////////////////////////////////////////////////////////////","Y.mix(DSFn, {"," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static "," * @final"," * @value \"dataSourceFunction\""," */"," NAME: \"dataSourceFunction\",","",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.Function Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," /**"," * Stores the function that will serve the response data."," *"," * @attribute source"," * @type {Any}"," * @default null"," */"," source: {"," validator: LANG.isFunction"," }"," }","});"," ","Y.extend(DSFn, Y.DataSource.Local, {"," /**"," * Passes query data to the source function. Fires response"," * event with the function results (synchronously)."," *"," * @method _defRequestFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object with the following"," * properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _defRequestFn: function(e) {"," var fn = this.get(\"source\"),"," payload = e.details[0];"," "," if (fn) {"," try {"," payload.data = fn(e.request, this, e);"," } catch (ex) {"," payload.error = ex;"," }"," } else {"," payload.error = new Error(\"Function data failure\");"," }",""," this.fire(\"data\", payload);"," "," return e.tId;"," }","});"," ","Y.DataSource.Function = DSFn;","","","}, '3.7.1', {\"requires\": [\"datasource-local\"]});"];
+_yuitest_coverage["build/datasource-function/datasource-function.js"].code=["YUI.add('datasource-function', function (Y, NAME) {","","/**"," * Provides a DataSource implementation which can be used to retrieve data from"," * a custom function."," *"," * @module datasource"," * @submodule datasource-function"," */","","/**"," * Function subclass for the DataSource Utility."," * @class DataSource.Function"," * @extends DataSource.Local"," * @constructor"," */ ","var LANG = Y.Lang,",""," DSFn = function() {"," DSFn.superclass.constructor.apply(this, arguments);"," };"," ",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.Function static properties"," //"," /////////////////////////////////////////////////////////////////////////////","Y.mix(DSFn, {"," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static "," * @final"," * @value \"dataSourceFunction\""," */"," NAME: \"dataSourceFunction\",","",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.Function Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," /**"," * Stores the function that will serve the response data."," *"," * @attribute source"," * @type {Any}"," * @default null"," */"," source: {"," validator: LANG.isFunction"," }"," }","});"," ","Y.extend(DSFn, Y.DataSource.Local, {"," /**"," * Passes query data to the source function. Fires response"," * event with the function results (synchronously)."," *"," * @method _defRequestFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object with the following"," * properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _defRequestFn: function(e) {"," var fn = this.get(\"source\"),"," payload = e.details[0];"," "," if (fn) {"," try {"," payload.data = fn(e.request, this, e);"," } catch (ex) {"," payload.error = ex;"," }"," } else {"," payload.error = new Error(\"Function data failure\");"," }",""," this.fire(\"data\", payload);"," "," return e.tId;"," }","});"," ","Y.DataSource.Function = DSFn;","","","}, '3.7.2', {\"requires\": [\"datasource-local\"]});"];
_yuitest_coverage["build/datasource-function/datasource-function.js"].lines = {"1":0,"17":0,"20":0,"29":0,"62":0,"84":0,"87":0,"88":0,"89":0,"91":0,"94":0,"97":0,"99":0,"103":0};
_yuitest_coverage["build/datasource-function/datasource-function.js"].functions = {"DSFn:19":0,"_defRequestFn:83":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-function/datasource-function.js"].coveredLines = 14;
@@ -159,4 +159,4 @@ _yuitest_coverline("build/datasource-function/datasource-function.js", 103);
Y.DataSource.Function = DSFn;
-}, '3.7.1', {"requires": ["datasource-local"]});
+}, '3.7.2', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-function/datasource-function-debug.js b/lib/yuilib/3.7.2/build/datasource-function/datasource-function-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datasource-function/datasource-function-debug.js
rename to lib/yuilib/3.7.2/build/datasource-function/datasource-function-debug.js
index c782062c91f..927d543a659 100644
--- a/lib/yuilib/3.7.1/build/datasource-function/datasource-function-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-function/datasource-function-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -111,4 +111,4 @@ Y.extend(DSFn, Y.DataSource.Local, {
Y.DataSource.Function = DSFn;
-}, '3.7.1', {"requires": ["datasource-local"]});
+}, '3.7.2', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-function/datasource-function-min.js b/lib/yuilib/3.7.2/build/datasource-function/datasource-function-min.js
similarity index 88%
rename from lib/yuilib/3.7.1/build/datasource-function/datasource-function-min.js
rename to lib/yuilib/3.7.2/build/datasource-function/datasource-function-min.js
index 4115fa54fd2..7f66a51d3c4 100644
--- a/lib/yuilib/3.7.1/build/datasource-function/datasource-function-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-function/datasource-function-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-function",function(e,t){var n=e.Lang,r=function(){r.superclass.constructor.apply(this,arguments)};e.mix(r,{NAME:"dataSourceFunction",ATTRS:{source:{validator:n.isFunction}}}),e.extend(r,e.DataSource.Local,{_defRequestFn:function(e){var t=this.get("source"),n=e.details[0];if(t)try{n.data=t(e.request,this,e)}catch(r){n.error=r}else n.error=new Error("Function data failure");return this.fire("data",n),e.tId}}),e.DataSource.Function=r},"3.7.1",{requires:["datasource-local"]});
+YUI.add("datasource-function",function(e,t){var n=e.Lang,r=function(){r.superclass.constructor.apply(this,arguments)};e.mix(r,{NAME:"dataSourceFunction",ATTRS:{source:{validator:n.isFunction}}}),e.extend(r,e.DataSource.Local,{_defRequestFn:function(e){var t=this.get("source"),n=e.details[0];if(t)try{n.data=t(e.request,this,e)}catch(r){n.error=r}else n.error=new Error("Function data failure");return this.fire("data",n),e.tId}}),e.DataSource.Function=r},"3.7.2",{requires:["datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-function/datasource-function.js b/lib/yuilib/3.7.2/build/datasource-function/datasource-function.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datasource-function/datasource-function.js
rename to lib/yuilib/3.7.2/build/datasource-function/datasource-function.js
index 556bdb3b946..e6cc9cab266 100644
--- a/lib/yuilib/3.7.1/build/datasource-function/datasource-function.js
+++ b/lib/yuilib/3.7.2/build/datasource-function/datasource-function.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -109,4 +109,4 @@ Y.extend(DSFn, Y.DataSource.Local, {
Y.DataSource.Function = DSFn;
-}, '3.7.1', {"requires": ["datasource-local"]});
+}, '3.7.2', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-get/datasource-get-coverage.js b/lib/yuilib/3.7.2/build/datasource-get/datasource-get-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datasource-get/datasource-get-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-get/datasource-get-coverage.js
index 2f9628726c2..5c9dd868e94 100644
--- a/lib/yuilib/3.7.1/build/datasource-get/datasource-get-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-get/datasource-get-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-get/datasource-get.js"] = {
path: "build/datasource-get/datasource-get.js",
code: []
};
-_yuitest_coverage["build/datasource-get/datasource-get.js"].code=["YUI.add('datasource-get', function (Y, NAME) {","","/**"," * Provides a DataSource implementation which can be used to retrieve data via the Get Utility."," *"," * @module datasource"," * @submodule datasource-get"," */","","/**"," * Get Utility subclass for the DataSource Utility."," * @class DataSource.Get"," * @extends DataSource.Local"," * @constructor"," */ ","var DSGet = function() {"," DSGet.superclass.constructor.apply(this, arguments);","};"," "," ","Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, {"," /**"," * Passes query string to Get Utility. Fires response event when"," * response is received asynchronously."," *"," * @method _defRequestFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _defRequestFn: function(e) {"," var uri = this.get(\"source\"),"," get = this.get(\"get\"),"," guid = Y.guid().replace(/\\-/g, '_'),"," generateRequest = this.get( \"generateRequestCallback\" ),"," payload = e.details[0],"," self = this;",""," /**"," * Stores the most recent request id for validation against stale"," * response handling."," *"," * @property _last"," * @type {String}"," * @protected"," */"," this._last = guid;",""," // Dynamically add handler function with a closure to the callback stack"," // for access to guid"," YUI.Env.DataSource.callbacks[guid] = function(response) {"," delete YUI.Env.DataSource.callbacks[guid];"," delete Y.DataSource.Local.transactions[e.tId];",""," var process = self.get('asyncMode') !== \"ignoreStaleResponses\" ||"," self._last === guid;",""," if (process) {"," payload.data = response;",""," self.fire(\"data\", payload);"," } else {"," }",""," };",""," // Add the callback param to the request url"," uri += e.request + generateRequest.call( this, guid );","",""," Y.DataSource.Local.transactions[e.tId] = get.script(uri, {"," autopurge: true,"," // Works in Firefox only...."," onFailure: function (o) {"," delete YUI.Env.DataSource.callbacks[guid];"," delete Y.DataSource.Local.transactions[e.tId];",""," payload.error = new Error(o.msg || \"Script node data failure\");","",""," self.fire(\"data\", payload);"," },"," onTimeout: function(o) {"," delete YUI.Env.DataSource.callbacks[guid];"," delete Y.DataSource.Local.transactions[e.tId];",""," payload.error = new Error(o.msg || \"Script node data timeout\");","",""," self.fire(\"data\", payload);"," }"," });",""," return e.tId;"," },","",""," /**"," * Default method for adding callback param to url. See"," * generateRequestCallback attribute."," *"," * @method _generateRequest"," * @param guid {String} unique identifier for callback function wrapper"," * @protected"," */"," _generateRequest: function (guid) {"," return \"&\" + this.get(\"scriptCallbackParam\") +"," \"=YUI.Env.DataSource.callbacks.\" + guid;"," }","","}, {",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static "," * @final"," * @value \"dataSourceGet\""," */"," NAME: \"dataSourceGet\",","",""," ////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.Get Attributes"," //"," ////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /**"," * Pointer to Get Utility."," *"," * @attribute get"," * @type Y.Get"," * @default Y.Get"," */"," get: {"," value: Y.Get,"," cloneDefaultValue: false"," },",""," /**"," * Defines request/response management in the following manner:"," * "," * "," * - ignoreStaleResponses
"," * - Send all requests, but handle only the response for the most"," * recently sent request.
"," * - allowAll
"," * - Send all requests and handle all responses.
"," *
"," *"," * @attribute asyncMode"," * @type String"," * @default \"allowAll\""," */"," asyncMode: {"," value: \"allowAll\""," },",""," /**"," * Callback string parameter name sent to the remote script. By default,"," * requests are sent to"," * <URI>?<scriptCallbackParam>=callbackFunction"," *"," * @attribute scriptCallbackParam"," * @type String"," * @default \"callback\""," */"," scriptCallbackParam : {"," value: \"callback\""," },",""," /**"," * Accepts the DataSource instance and a callback ID, and returns a callback"," * param/value string that gets appended to the script URI. Implementers"," * can customize this string to match their server's query syntax."," *"," * @attribute generateRequestCallback"," * @type Function"," */"," generateRequestCallback : {"," value: function () {"," return this._generateRequest.apply(this, arguments);"," }"," }"," }","});"," ","YUI.namespace(\"Env.DataSource.callbacks\");","","","}, '3.7.1', {\"requires\": [\"datasource-local\", \"get\"]});"];
+_yuitest_coverage["build/datasource-get/datasource-get.js"].code=["YUI.add('datasource-get', function (Y, NAME) {","","/**"," * Provides a DataSource implementation which can be used to retrieve data via the Get Utility."," *"," * @module datasource"," * @submodule datasource-get"," */","","/**"," * Get Utility subclass for the DataSource Utility."," * @class DataSource.Get"," * @extends DataSource.Local"," * @constructor"," */ ","var DSGet = function() {"," DSGet.superclass.constructor.apply(this, arguments);","};"," "," ","Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, {"," /**"," * Passes query string to Get Utility. Fires response event when"," * response is received asynchronously."," *"," * @method _defRequestFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _defRequestFn: function(e) {"," var uri = this.get(\"source\"),"," get = this.get(\"get\"),"," guid = Y.guid().replace(/\\-/g, '_'),"," generateRequest = this.get( \"generateRequestCallback\" ),"," payload = e.details[0],"," self = this;",""," /**"," * Stores the most recent request id for validation against stale"," * response handling."," *"," * @property _last"," * @type {String}"," * @protected"," */"," this._last = guid;",""," // Dynamically add handler function with a closure to the callback stack"," // for access to guid"," YUI.Env.DataSource.callbacks[guid] = function(response) {"," delete YUI.Env.DataSource.callbacks[guid];"," delete Y.DataSource.Local.transactions[e.tId];",""," var process = self.get('asyncMode') !== \"ignoreStaleResponses\" ||"," self._last === guid;",""," if (process) {"," payload.data = response;",""," self.fire(\"data\", payload);"," } else {"," }",""," };",""," // Add the callback param to the request url"," uri += e.request + generateRequest.call( this, guid );","",""," Y.DataSource.Local.transactions[e.tId] = get.script(uri, {"," autopurge: true,"," // Works in Firefox only...."," onFailure: function (o) {"," delete YUI.Env.DataSource.callbacks[guid];"," delete Y.DataSource.Local.transactions[e.tId];",""," payload.error = new Error(o.msg || \"Script node data failure\");","",""," self.fire(\"data\", payload);"," },"," onTimeout: function(o) {"," delete YUI.Env.DataSource.callbacks[guid];"," delete Y.DataSource.Local.transactions[e.tId];",""," payload.error = new Error(o.msg || \"Script node data timeout\");","",""," self.fire(\"data\", payload);"," }"," });",""," return e.tId;"," },","",""," /**"," * Default method for adding callback param to url. See"," * generateRequestCallback attribute."," *"," * @method _generateRequest"," * @param guid {String} unique identifier for callback function wrapper"," * @protected"," */"," _generateRequest: function (guid) {"," return \"&\" + this.get(\"scriptCallbackParam\") +"," \"=YUI.Env.DataSource.callbacks.\" + guid;"," }","","}, {",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static "," * @final"," * @value \"dataSourceGet\""," */"," NAME: \"dataSourceGet\",","",""," ////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.Get Attributes"," //"," ////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /**"," * Pointer to Get Utility."," *"," * @attribute get"," * @type Y.Get"," * @default Y.Get"," */"," get: {"," value: Y.Get,"," cloneDefaultValue: false"," },",""," /**"," * Defines request/response management in the following manner:"," * "," * "," * - ignoreStaleResponses
"," * - Send all requests, but handle only the response for the most"," * recently sent request.
"," * - allowAll
"," * - Send all requests and handle all responses.
"," *
"," *"," * @attribute asyncMode"," * @type String"," * @default \"allowAll\""," */"," asyncMode: {"," value: \"allowAll\""," },",""," /**"," * Callback string parameter name sent to the remote script. By default,"," * requests are sent to"," * <URI>?<scriptCallbackParam>=callbackFunction"," *"," * @attribute scriptCallbackParam"," * @type String"," * @default \"callback\""," */"," scriptCallbackParam : {"," value: \"callback\""," },",""," /**"," * Accepts the DataSource instance and a callback ID, and returns a callback"," * param/value string that gets appended to the script URI. Implementers"," * can customize this string to match their server's query syntax."," *"," * @attribute generateRequestCallback"," * @type Function"," */"," generateRequestCallback : {"," value: function () {"," return this._generateRequest.apply(this, arguments);"," }"," }"," }","});"," ","YUI.namespace(\"Env.DataSource.callbacks\");","","","}, '3.7.2', {\"requires\": [\"datasource-local\", \"get\"]});"];
_yuitest_coverage["build/datasource-get/datasource-get.js"].lines = {"1":0,"16":0,"17":0,"21":0,"42":0,"57":0,"61":0,"62":0,"63":0,"65":0,"68":0,"69":0,"71":0,"78":0,"81":0,"85":0,"86":0,"88":0,"91":0,"94":0,"95":0,"97":0,"100":0,"104":0,"117":0,"200":0,"206":0};
_yuitest_coverage["build/datasource-get/datasource-get.js"].functions = {"DSGet:16":0,"]:61":0,"onFailure:84":0,"onTimeout:93":0,"_defRequestFn:41":0,"_generateRequest:116":0,"value:199":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-get/datasource-get.js"].coveredLines = 27;
@@ -280,4 +280,4 @@ _yuitest_coverline("build/datasource-get/datasource-get.js", 206);
YUI.namespace("Env.DataSource.callbacks");
-}, '3.7.1', {"requires": ["datasource-local", "get"]});
+}, '3.7.2', {"requires": ["datasource-local", "get"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-get/datasource-get-debug.js b/lib/yuilib/3.7.2/build/datasource-get/datasource-get-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-get/datasource-get-debug.js
rename to lib/yuilib/3.7.2/build/datasource-get/datasource-get-debug.js
index a0c1189d169..d999b2bc87f 100644
--- a/lib/yuilib/3.7.1/build/datasource-get/datasource-get-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-get/datasource-get-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -216,4 +216,4 @@ Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, {
YUI.namespace("Env.DataSource.callbacks");
-}, '3.7.1', {"requires": ["datasource-local", "get"]});
+}, '3.7.2', {"requires": ["datasource-local", "get"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-get/datasource-get-min.js b/lib/yuilib/3.7.2/build/datasource-get/datasource-get-min.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datasource-get/datasource-get-min.js
rename to lib/yuilib/3.7.2/build/datasource-get/datasource-get-min.js
index ab08f4cd6e1..c33839ade27 100644
--- a/lib/yuilib/3.7.1/build/datasource-get/datasource-get-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-get/datasource-get-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-get",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.DataSource.Get=e.extend(n,e.DataSource.Local,{_defRequestFn:function(t){var n=this.get("source"),r=this.get("get"),i=e.guid().replace(/\-/g,"_"),s=this.get("generateRequestCallback"),o=t.details[0],u=this;return this._last=i,YUI.Env.DataSource.callbacks[i]=function(n){delete YUI.Env.DataSource.callbacks[i],delete e.DataSource.Local.transactions[t.tId];var r=u.get("asyncMode")!=="ignoreStaleResponses"||u._last===i;r&&(o.data=n,u.fire("data",o))},n+=t.request+s.call(this,i),e.DataSource.Local.transactions[t.tId]=r.script(n,{autopurge:!0,onFailure:function(n){delete YUI.Env.DataSource.callbacks[i],delete e.DataSource.Local.transactions[t.tId],o.error=new Error(n.msg||"Script node data failure"),u.fire("data",o)},onTimeout:function(n){delete YUI.Env.DataSource.callbacks[i],delete e.DataSource.Local.transactions[t.tId],o.error=new Error(n.msg||"Script node data timeout"),u.fire("data",o)}}),t.tId},_generateRequest:function(e){return"&"+this.get("scriptCallbackParam")+"=YUI.Env.DataSource.callbacks."+e}},{NAME:"dataSourceGet",ATTRS:{get:{value:e.Get,cloneDefaultValue:!1},asyncMode:{value:"allowAll"},scriptCallbackParam:{value:"callback"},generateRequestCallback:{value:function(){return this._generateRequest.apply(this,arguments)}}}}),YUI.namespace("Env.DataSource.callbacks")},"3.7.1",{requires:["datasource-local","get"]});
+YUI.add("datasource-get",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.DataSource.Get=e.extend(n,e.DataSource.Local,{_defRequestFn:function(t){var n=this.get("source"),r=this.get("get"),i=e.guid().replace(/\-/g,"_"),s=this.get("generateRequestCallback"),o=t.details[0],u=this;return this._last=i,YUI.Env.DataSource.callbacks[i]=function(n){delete YUI.Env.DataSource.callbacks[i],delete e.DataSource.Local.transactions[t.tId];var r=u.get("asyncMode")!=="ignoreStaleResponses"||u._last===i;r&&(o.data=n,u.fire("data",o))},n+=t.request+s.call(this,i),e.DataSource.Local.transactions[t.tId]=r.script(n,{autopurge:!0,onFailure:function(n){delete YUI.Env.DataSource.callbacks[i],delete e.DataSource.Local.transactions[t.tId],o.error=new Error(n.msg||"Script node data failure"),u.fire("data",o)},onTimeout:function(n){delete YUI.Env.DataSource.callbacks[i],delete e.DataSource.Local.transactions[t.tId],o.error=new Error(n.msg||"Script node data timeout"),u.fire("data",o)}}),t.tId},_generateRequest:function(e){return"&"+this.get("scriptCallbackParam")+"=YUI.Env.DataSource.callbacks."+e}},{NAME:"dataSourceGet",ATTRS:{get:{value:e.Get,cloneDefaultValue:!1},asyncMode:{value:"allowAll"},scriptCallbackParam:{value:"callback"},generateRequestCallback:{value:function(){return this._generateRequest.apply(this,arguments)}}}}),YUI.namespace("Env.DataSource.callbacks")},"3.7.2",{requires:["datasource-local","get"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-get/datasource-get.js b/lib/yuilib/3.7.2/build/datasource-get/datasource-get.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-get/datasource-get.js
rename to lib/yuilib/3.7.2/build/datasource-get/datasource-get.js
index 6cec177bd10..79583575d8e 100644
--- a/lib/yuilib/3.7.1/build/datasource-get/datasource-get.js
+++ b/lib/yuilib/3.7.2/build/datasource-get/datasource-get.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -212,4 +212,4 @@ Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, {
YUI.namespace("Env.DataSource.callbacks");
-}, '3.7.1', {"requires": ["datasource-local", "get"]});
+}, '3.7.2', {"requires": ["datasource-local", "get"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-io/datasource-io-coverage.js b/lib/yuilib/3.7.2/build/datasource-io/datasource-io-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datasource-io/datasource-io-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-io/datasource-io-coverage.js
index a30bf21b966..03dab4181e5 100644
--- a/lib/yuilib/3.7.1/build/datasource-io/datasource-io-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-io/datasource-io-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-io/datasource-io.js"] = {
path: "build/datasource-io/datasource-io.js",
code: []
};
-_yuitest_coverage["build/datasource-io/datasource-io.js"].code=["YUI.add('datasource-io', function (Y, NAME) {","","/**"," * Provides a DataSource implementation which can be used to retrieve data via the IO Utility."," *"," * @module datasource"," * @submodule datasource-io"," */","","/**"," * IO subclass for the DataSource Utility."," * @class DataSource.IO"," * @extends DataSource.Local"," * @constructor"," */ ","var DSIO = function() {"," DSIO.superclass.constructor.apply(this, arguments);","};"," ",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.IO static properties"," //"," /////////////////////////////////////////////////////////////////////////////","Y.mix(DSIO, {"," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static "," * @final"," * @value \"dataSourceIO\""," */"," NAME: \"dataSourceIO\",","",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.IO Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," /**"," * Pointer to IO Utility."," *"," * @attribute io"," * @type Y.io"," * @default Y.io"," */"," io: {"," value: Y.io,"," cloneDefaultValue: false"," },"," "," /**"," * Default IO Config."," *"," * @attribute ioConfig"," * @type Object"," * @default null"," */"," ioConfig: {"," value: null"," }"," }","});"," ","Y.extend(DSIO, Y.DataSource.Local, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this._queue = {interval:null, conn:null, requests:[]};"," },",""," /**"," * IO success callback."," *"," * @method successHandler"," * @param id {String} Transaction ID."," * @param response {String} Response."," * @param e {Event.Facade} Event facade."," * @private"," */"," successHandler: function (id, response, e) {"," var defIOConfig = this.get(\"ioConfig\"),"," payload = e.details[0];",""," delete Y.DataSource.Local.transactions[e.tId];",""," payload.data = response;"," this.fire(\"data\", payload);","",""," if (defIOConfig && defIOConfig.on && defIOConfig.on.success) {"," defIOConfig.on.success.apply(defIOConfig.context || Y, arguments);"," }"," },",""," /**"," * IO failure callback."," *"," * @method failureHandler"," * @param id {String} Transaction ID."," * @param response {String} Response."," * @param e {Event.Facade} Event facade."," * @private"," */"," failureHandler: function (id, response, e) {"," var defIOConfig = this.get(\"ioConfig\"),"," payload = e.details[0];"," "," delete Y.DataSource.Local.transactions[e.tId];",""," payload.error = new Error(\"IO data failure\");",""," payload.data = response;"," this.fire(\"data\", payload);","",""," if (defIOConfig && defIOConfig.on && defIOConfig.on.failure) {"," defIOConfig.on.failure.apply(defIOConfig.context || Y, arguments);"," }"," },"," "," /**"," * @property _queue"," * @description Object literal to manage asynchronous request/response"," * cycles enabled if queue needs to be managed (asyncMode/ioConnMode):"," * "," * - interval {Number}
"," * - Interval ID of in-progress queue.
"," * - conn
"," * - In-progress connection identifier (if applicable).
"," * - requests {Object[]}
"," * - Array of queued request objects: {request:request, callback:callback}.
"," *
"," * @type Object"," * @default {interval:null, conn:null, requests:[]}"," * @private"," */"," _queue: null,",""," /**"," * Passes query string to IO. Fires response event when"," * response is received asynchronously."," *"," * @method _defRequestFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _defRequestFn: function(e) {"," var uri = this.get(\"source\"),"," io = this.get(\"io\"),"," defIOConfig = this.get(\"ioConfig\"),"," request = e.request,"," cfg = Y.merge(defIOConfig, e.cfg, {"," on: Y.merge(defIOConfig, {"," success: this.successHandler,"," failure: this.failureHandler"," }),"," context: this,"," \"arguments\": e"," });"," "," // Support for POST transactions"," if(Y.Lang.isString(request)) {"," if(cfg.method && (cfg.method.toUpperCase() === \"POST\")) {"," cfg.data = cfg.data ? cfg.data+request : request;"," }"," else {"," uri += request;"," }"," }"," Y.DataSource.Local.transactions[e.tId] = io(uri, cfg);"," return e.tId;"," }","});"," ","Y.DataSource.IO = DSIO;","","","}, '3.7.1', {\"requires\": [\"datasource-local\", \"io-base\"]});"];
+_yuitest_coverage["build/datasource-io/datasource-io.js"].code=["YUI.add('datasource-io', function (Y, NAME) {","","/**"," * Provides a DataSource implementation which can be used to retrieve data via the IO Utility."," *"," * @module datasource"," * @submodule datasource-io"," */","","/**"," * IO subclass for the DataSource Utility."," * @class DataSource.IO"," * @extends DataSource.Local"," * @constructor"," */ ","var DSIO = function() {"," DSIO.superclass.constructor.apply(this, arguments);","};"," ",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.IO static properties"," //"," /////////////////////////////////////////////////////////////////////////////","Y.mix(DSIO, {"," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static "," * @final"," * @value \"dataSourceIO\""," */"," NAME: \"dataSourceIO\",","",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource.IO Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," /**"," * Pointer to IO Utility."," *"," * @attribute io"," * @type Y.io"," * @default Y.io"," */"," io: {"," value: Y.io,"," cloneDefaultValue: false"," },"," "," /**"," * Default IO Config."," *"," * @attribute ioConfig"," * @type Object"," * @default null"," */"," ioConfig: {"," value: null"," }"," }","});"," ","Y.extend(DSIO, Y.DataSource.Local, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this._queue = {interval:null, conn:null, requests:[]};"," },",""," /**"," * IO success callback."," *"," * @method successHandler"," * @param id {String} Transaction ID."," * @param response {String} Response."," * @param e {Event.Facade} Event facade."," * @private"," */"," successHandler: function (id, response, e) {"," var defIOConfig = this.get(\"ioConfig\"),"," payload = e.details[0];",""," delete Y.DataSource.Local.transactions[e.tId];",""," payload.data = response;"," this.fire(\"data\", payload);","",""," if (defIOConfig && defIOConfig.on && defIOConfig.on.success) {"," defIOConfig.on.success.apply(defIOConfig.context || Y, arguments);"," }"," },",""," /**"," * IO failure callback."," *"," * @method failureHandler"," * @param id {String} Transaction ID."," * @param response {String} Response."," * @param e {Event.Facade} Event facade."," * @private"," */"," failureHandler: function (id, response, e) {"," var defIOConfig = this.get(\"ioConfig\"),"," payload = e.details[0];"," "," delete Y.DataSource.Local.transactions[e.tId];",""," payload.error = new Error(\"IO data failure\");",""," payload.data = response;"," this.fire(\"data\", payload);","",""," if (defIOConfig && defIOConfig.on && defIOConfig.on.failure) {"," defIOConfig.on.failure.apply(defIOConfig.context || Y, arguments);"," }"," },"," "," /**"," * @property _queue"," * @description Object literal to manage asynchronous request/response"," * cycles enabled if queue needs to be managed (asyncMode/ioConnMode):"," * "," * - interval {Number}
"," * - Interval ID of in-progress queue.
"," * - conn
"," * - In-progress connection identifier (if applicable).
"," * - requests {Object[]}
"," * - Array of queued request objects: {request:request, callback:callback}.
"," *
"," * @type Object"," * @default {interval:null, conn:null, requests:[]}"," * @private"," */"," _queue: null,",""," /**"," * Passes query string to IO. Fires response event when"," * response is received asynchronously."," *"," * @method _defRequestFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _defRequestFn: function(e) {"," var uri = this.get(\"source\"),"," io = this.get(\"io\"),"," defIOConfig = this.get(\"ioConfig\"),"," request = e.request,"," cfg = Y.merge(defIOConfig, e.cfg, {"," on: Y.merge(defIOConfig, {"," success: this.successHandler,"," failure: this.failureHandler"," }),"," context: this,"," \"arguments\": e"," });"," "," // Support for POST transactions"," if(Y.Lang.isString(request)) {"," if(cfg.method && (cfg.method.toUpperCase() === \"POST\")) {"," cfg.data = cfg.data ? cfg.data+request : request;"," }"," else {"," uri += request;"," }"," }"," Y.DataSource.Local.transactions[e.tId] = io(uri, cfg);"," return e.tId;"," }","});"," ","Y.DataSource.IO = DSIO;","","","}, '3.7.2', {\"requires\": [\"datasource-local\", \"io-base\"]});"];
_yuitest_coverage["build/datasource-io/datasource-io.js"].lines = {"1":0,"16":0,"17":0,"26":0,"71":0,"80":0,"93":0,"96":0,"98":0,"99":0,"102":0,"103":0,"117":0,"120":0,"122":0,"124":0,"125":0,"128":0,"129":0,"171":0,"185":0,"186":0,"187":0,"190":0,"193":0,"194":0,"198":0};
_yuitest_coverage["build/datasource-io/datasource-io.js"].functions = {"DSIO:16":0,"initializer:79":0,"successHandler:92":0,"failureHandler:116":0,"_defRequestFn:170":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-io/datasource-io.js"].coveredLines = 27;
@@ -270,4 +270,4 @@ _yuitest_coverline("build/datasource-io/datasource-io.js", 198);
Y.DataSource.IO = DSIO;
-}, '3.7.1', {"requires": ["datasource-local", "io-base"]});
+}, '3.7.2', {"requires": ["datasource-local", "io-base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-io/datasource-io-debug.js b/lib/yuilib/3.7.2/build/datasource-io/datasource-io-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-io/datasource-io-debug.js
rename to lib/yuilib/3.7.2/build/datasource-io/datasource-io-debug.js
index 54e0c50ce0e..421ff829eef 100644
--- a/lib/yuilib/3.7.1/build/datasource-io/datasource-io-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-io/datasource-io-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -207,4 +207,4 @@ Y.extend(DSIO, Y.DataSource.Local, {
Y.DataSource.IO = DSIO;
-}, '3.7.1', {"requires": ["datasource-local", "io-base"]});
+}, '3.7.2', {"requires": ["datasource-local", "io-base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-io/datasource-io-min.js b/lib/yuilib/3.7.2/build/datasource-io/datasource-io-min.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datasource-io/datasource-io-min.js
rename to lib/yuilib/3.7.2/build/datasource-io/datasource-io-min.js
index 082668d725a..ab701a9fee2 100644
--- a/lib/yuilib/3.7.1/build/datasource-io/datasource-io-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-io/datasource-io-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-io",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NAME:"dataSourceIO",ATTRS:{io:{value:e.io,cloneDefaultValue:!1},ioConfig:{value:null}}}),e.extend(n,e.DataSource.Local,{initializer:function(e){this._queue={interval:null,conn:null,requests:[]}},successHandler:function(t,n,r){var i=this.get("ioConfig"),s=r.details[0];delete e.DataSource.Local.transactions[r.tId],s.data=n,this.fire("data",s),i&&i.on&&i.on.success&&i.on.success.apply(i.context||e,arguments)},failureHandler:function(t,n,r){var i=this.get("ioConfig"),s=r.details[0];delete e.DataSource.Local.transactions[r.tId],s.error=new Error("IO data failure"),s.data=n,this.fire("data",s),i&&i.on&&i.on.failure&&i.on.failure.apply(i.context||e,arguments)},_queue:null,_defRequestFn:function(t){var n=this.get("source"),r=this.get("io"),i=this.get("ioConfig"),s=t.request,o=e.merge(i,t.cfg,{on:e.merge(i,{success:this.successHandler,failure:this.failureHandler}),context:this,arguments:t});return e.Lang.isString(s)&&(o.method&&o.method.toUpperCase()==="POST"?o.data=o.data?o.data+s:s:n+=s),e.DataSource.Local.transactions[t.tId]=r(n,o),t.tId}}),e.DataSource.IO=n},"3.7.1",{requires:["datasource-local","io-base"]});
+YUI.add("datasource-io",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NAME:"dataSourceIO",ATTRS:{io:{value:e.io,cloneDefaultValue:!1},ioConfig:{value:null}}}),e.extend(n,e.DataSource.Local,{initializer:function(e){this._queue={interval:null,conn:null,requests:[]}},successHandler:function(t,n,r){var i=this.get("ioConfig"),s=r.details[0];delete e.DataSource.Local.transactions[r.tId],s.data=n,this.fire("data",s),i&&i.on&&i.on.success&&i.on.success.apply(i.context||e,arguments)},failureHandler:function(t,n,r){var i=this.get("ioConfig"),s=r.details[0];delete e.DataSource.Local.transactions[r.tId],s.error=new Error("IO data failure"),s.data=n,this.fire("data",s),i&&i.on&&i.on.failure&&i.on.failure.apply(i.context||e,arguments)},_queue:null,_defRequestFn:function(t){var n=this.get("source"),r=this.get("io"),i=this.get("ioConfig"),s=t.request,o=e.merge(i,t.cfg,{on:e.merge(i,{success:this.successHandler,failure:this.failureHandler}),context:this,arguments:t});return e.Lang.isString(s)&&(o.method&&o.method.toUpperCase()==="POST"?o.data=o.data?o.data+s:s:n+=s),e.DataSource.Local.transactions[t.tId]=r(n,o),t.tId}}),e.DataSource.IO=n},"3.7.2",{requires:["datasource-local","io-base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-io/datasource-io.js b/lib/yuilib/3.7.2/build/datasource-io/datasource-io.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-io/datasource-io.js
rename to lib/yuilib/3.7.2/build/datasource-io/datasource-io.js
index e27340e6177..3838ce36528 100644
--- a/lib/yuilib/3.7.1/build/datasource-io/datasource-io.js
+++ b/lib/yuilib/3.7.2/build/datasource-io/datasource-io.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -204,4 +204,4 @@ Y.extend(DSIO, Y.DataSource.Local, {
Y.DataSource.IO = DSIO;
-}, '3.7.1', {"requires": ["datasource-local", "io-base"]});
+}, '3.7.2', {"requires": ["datasource-local", "io-base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema-coverage.js b/lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema-coverage.js
index 2f62e6835ca..9dbf454772d 100644
--- a/lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-jsonschema/datasource-jsonschema.js"] = {
path: "build/datasource-jsonschema/datasource-jsonschema.js",
code: []
};
-_yuitest_coverage["build/datasource-jsonschema/datasource-jsonschema.js"].code=["YUI.add('datasource-jsonschema', function (Y, NAME) {","","/**"," * Extends DataSource with schema-parsing on JSON data."," *"," * @module datasource"," * @submodule datasource-jsonschema"," */","","/**"," * Adds schema-parsing to the DataSource Utility."," * @class DataSourceJSONSchema"," * @extends Plugin.Base"," */ ","var DataSourceJSONSchema = function() {"," DataSourceJSONSchema.superclass.constructor.apply(this, arguments);","};","","Y.mix(DataSourceJSONSchema, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"schema\""," */"," NS: \"schema\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceJSONSchema\""," */"," NAME: \"dataSourceJSONSchema\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSourceJSONSchema Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," schema: {"," //value: {}"," }"," }","});","","Y.extend(DataSourceJSONSchema, Y.Plugin.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defDataFn\", this._beforeDefDataFn);"," },",""," /**"," * Parses raw data into a normalized response. To accommodate XHR responses,"," * will first look for data in data.responseText. Otherwise will just work"," * with data."," *"," * @method _beforeDefDataFn"," * @param tId {Number} Unique transaction ID."," * @param request {Object} The request."," * @param callback {Object} The callback object with the following properties:"," * "," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * @param data {Object} Raw data."," * @protected"," */"," _beforeDefDataFn: function(e) {"," var data = e.data && (e.data.responseText || e.data),"," schema = this.get('schema'),"," payload = e.details[0];"," "," payload.response = Y.DataSchema.JSON.apply.call(this, schema, data) || {"," meta: {},"," results: data"," };",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceJSONSchema plugin halted _defDataFn\");"," }","});"," ","Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema;","","","}, '3.7.1', {\"requires\": [\"datasource-local\", \"plugin\", \"dataschema-json\"]});"];
+_yuitest_coverage["build/datasource-jsonschema/datasource-jsonschema.js"].code=["YUI.add('datasource-jsonschema', function (Y, NAME) {","","/**"," * Extends DataSource with schema-parsing on JSON data."," *"," * @module datasource"," * @submodule datasource-jsonschema"," */","","/**"," * Adds schema-parsing to the DataSource Utility."," * @class DataSourceJSONSchema"," * @extends Plugin.Base"," */ ","var DataSourceJSONSchema = function() {"," DataSourceJSONSchema.superclass.constructor.apply(this, arguments);","};","","Y.mix(DataSourceJSONSchema, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"schema\""," */"," NS: \"schema\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceJSONSchema\""," */"," NAME: \"dataSourceJSONSchema\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSourceJSONSchema Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," schema: {"," //value: {}"," }"," }","});","","Y.extend(DataSourceJSONSchema, Y.Plugin.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defDataFn\", this._beforeDefDataFn);"," },",""," /**"," * Parses raw data into a normalized response. To accommodate XHR responses,"," * will first look for data in data.responseText. Otherwise will just work"," * with data."," *"," * @method _beforeDefDataFn"," * @param tId {Number} Unique transaction ID."," * @param request {Object} The request."," * @param callback {Object} The callback object with the following properties:"," * "," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * @param data {Object} Raw data."," * @protected"," */"," _beforeDefDataFn: function(e) {"," var data = e.data && (e.data.responseText || e.data),"," schema = this.get('schema'),"," payload = e.details[0];"," "," payload.response = Y.DataSchema.JSON.apply.call(this, schema, data) || {"," meta: {},"," results: data"," };",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceJSONSchema plugin halted _defDataFn\");"," }","});"," ","Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema;","","","}, '3.7.2', {\"requires\": [\"datasource-local\", \"plugin\", \"dataschema-json\"]});"];
_yuitest_coverage["build/datasource-jsonschema/datasource-jsonschema.js"].lines = {"1":0,"15":0,"16":0,"19":0,"56":0,"65":0,"85":0,"89":0,"94":0,"96":0,"100":0};
_yuitest_coverage["build/datasource-jsonschema/datasource-jsonschema.js"].functions = {"DataSourceJSONSchema:15":0,"initializer:64":0,"_beforeDefDataFn:84":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-jsonschema/datasource-jsonschema.js"].coveredLines = 11;
@@ -154,4 +154,4 @@ _yuitest_coverline("build/datasource-jsonschema/datasource-jsonschema.js", 100);
Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema-debug.js b/lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema-debug.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema-debug.js
rename to lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema-debug.js
index e61a10ed94b..5d597ea3dad 100644
--- a/lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -106,4 +106,4 @@ Y.extend(DataSourceJSONSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema-min.js b/lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema-min.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema-min.js
rename to lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema-min.js
index 54020de8a2c..5bf3e7e32fd 100644
--- a/lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-jsonschema",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NS:"schema",NAME:"dataSourceJSONSchema",ATTRS:{schema:{}}}),e.extend(n,e.Plugin.Base,{initializer:function(e){this.doBefore("_defDataFn",this._beforeDefDataFn)},_beforeDefDataFn:function(t){var n=t.data&&(t.data.responseText||t.data),r=this.get("schema"),i=t.details[0];return i.response=e.DataSchema.JSON.apply.call(this,r,n)||{meta:{},results:n},this.get("host").fire("response",i),new e.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn")}}),e.namespace("Plugin").DataSourceJSONSchema=n},"3.7.1",{requires:["datasource-local","plugin","dataschema-json"]});
+YUI.add("datasource-jsonschema",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NS:"schema",NAME:"dataSourceJSONSchema",ATTRS:{schema:{}}}),e.extend(n,e.Plugin.Base,{initializer:function(e){this.doBefore("_defDataFn",this._beforeDefDataFn)},_beforeDefDataFn:function(t){var n=t.data&&(t.data.responseText||t.data),r=this.get("schema"),i=t.details[0];return i.response=e.DataSchema.JSON.apply.call(this,r,n)||{meta:{},results:n},this.get("host").fire("response",i),new e.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn")}}),e.namespace("Plugin").DataSourceJSONSchema=n},"3.7.2",{requires:["datasource-local","plugin","dataschema-json"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema.js b/lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema.js
rename to lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema.js
index e61a10ed94b..5d597ea3dad 100644
--- a/lib/yuilib/3.7.1/build/datasource-jsonschema/datasource-jsonschema.js
+++ b/lib/yuilib/3.7.2/build/datasource-jsonschema/datasource-jsonschema.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -106,4 +106,4 @@ Y.extend(DataSourceJSONSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-local/datasource-local-coverage.js b/lib/yuilib/3.7.2/build/datasource-local/datasource-local-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datasource-local/datasource-local-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-local/datasource-local-coverage.js
index 15e2a9ee25d..37aed882711 100644
--- a/lib/yuilib/3.7.1/build/datasource-local/datasource-local-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-local/datasource-local-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-local/datasource-local.js"] = {
path: "build/datasource-local/datasource-local.js",
code: []
};
-_yuitest_coverage["build/datasource-local/datasource-local.js"].code=["YUI.add('datasource-local', function (Y, NAME) {","","/**"," * The DataSource utility provides a common configurable interface for widgets to"," * access a variety of data, from JavaScript arrays to online database servers."," *"," * @module datasource"," * @main datasource"," */"," ","/**"," * Provides the base DataSource implementation, which can be extended to"," * create DataSources for specific data protocols, such as the IO Utility, the"," * Get Utility, or custom functions."," *"," * @module datasource"," * @submodule datasource-local"," */","","/**"," * Base class for the DataSource Utility."," * @class DataSource.Local"," * @extends Base"," * @constructor"," */ ","var LANG = Y.Lang,","","DSLocal = function() {"," DSLocal.superclass.constructor.apply(this, arguments);","};"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource static properties"," //"," /////////////////////////////////////////////////////////////////////////////","Y.mix(DSLocal, {"," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static "," * @final"," * @value \"dataSourceLocal\""," */"," NAME: \"dataSourceLocal\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," /**"," * @attribute source"," * @description Pointer to live data."," * @type MIXED"," * @default null "," */"," source: {"," value: null"," }"," },",""," /**"," * Global transaction counter."," *"," * @property _tId"," * @type Number"," * @static"," * @private"," * @default 0"," */"," _tId: 0,",""," /**"," * Global in-progress transaction objects."," *"," * @property transactions"," * @type Object"," * @static"," */"," transactions: {},",""," /**"," * Returns data to callback."," *"," * @method issueCallback"," * @param e {EventFacade} Event Facade."," * @param caller {DataSource} Calling DataSource instance."," * @static"," */"," issueCallback: function (e, caller) {"," var callbacks = e.on || e.callback,"," callback = callbacks && callbacks.success,"," payload = e.details[0];",""," payload.error = (e.error || e.response.error);",""," if (payload.error) {"," caller.fire(\"error\", payload);"," callback = callbacks && callbacks.failure;"," }",""," if (callback) {"," //TODO: this should be executed from a specific context"," callback(payload);"," }"," }","});"," ","Y.extend(DSLocal, Y.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private "," */"," initializer: function(config) {"," this._initEvents();"," },",""," /**"," * This method creates all the events for this module."," * @method _initEvents"," * @private "," */"," _initEvents: function() {"," /**"," * Fired when a data request is received."," *"," * @event request"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object"," * (deprecated, refer to on
"," * - on (Object)
- The map of configured callback"," * functions.
"," * - cfg (Object)
- Configuration object.
"," *
"," * @preventable _defRequestFn"," */"," this.publish(\"request\", {defaultFn: Y.bind(\"_defRequestFn\", this), queuable:true});"," "," /**"," * Fired when raw data is received."," *"," * @event data"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," *
"," * @preventable _defDataFn"," */"," this.publish(\"data\", {defaultFn: Y.bind(\"_defDataFn\", this), queuable:true});",""," /**"," * Fired when response is returned."," *"," * @event response"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," * - response (Object)
"," * - Normalized response object with the following properties:"," *
"," * - results (Object)
- Parsed results.
"," * - meta (Object)
- Parsed meta data.
"," * - error (Boolean)
- Error flag.
"," *
"," * "," * - error
"," * - Any error that occurred along the transaction lifecycle.
"," *
"," * @preventable _defResponseFn"," */"," this.publish(\"response\", {defaultFn: Y.bind(\"_defResponseFn\", this), queuable:true});",""," /**"," * Fired when an error is encountered."," *"," * @event error"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," * - response (Object)
"," * - Normalized response object with the following properties:"," *
"," * - results (Object)
- Parsed results.
"," * - meta (Object)
- Parsed meta data.
"," * - error (Object)
- Error object.
"," *
"," * "," * - error
"," * - Any error that occurred along the transaction lifecycle.
"," *
"," */",""," },",""," /**"," * Manages request/response transaction. Must fire response"," * event when response is received. This method should be implemented by"," * subclasses to achieve more complex behavior such as accessing remote data."," *"," * @method _defRequestFn"," * @param e {Event.Facade} Event Facadewith the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _defRequestFn: function(e) {"," var data = this.get(\"source\"),"," payload = e.details[0];"," "," // Problematic data"," if(LANG.isUndefined(data)) {"," payload.error = new Error(\"Local source undefined\");"," }",""," payload.data = data;"," this.fire(\"data\", payload);"," },",""," /**"," * Normalizes raw data into a response that includes results and meta properties."," *"," * @method _defDataFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," *
"," * @protected"," */"," _defDataFn: function(e) {"," var data = e.data,"," meta = e.meta,"," response = {"," results: (LANG.isArray(data)) ? data : [data],"," meta: (meta) ? meta : {}"," },"," payload = e.details[0];",""," payload.response = response;"," this.fire(\"response\", payload);"," },",""," /**"," * Sends data as a normalized response to callback."," *"," * @method _defResponseFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," * - response (Object)
- Normalized response object with the following properties:"," *
"," * - results (Object)
- Parsed results.
"," * - meta (Object)
- Parsed meta data.
"," * - error (Boolean)
- Error flag.
"," *
"," * "," *
"," * @protected"," */"," _defResponseFn: function(e) {"," // Send the response back to the callback"," DSLocal.issueCallback(e, this);"," },"," "," /**"," * Generates a unique transaction ID and fires request event."," * Note: the property callback is a"," * deprecated alias for the on transaction configuration"," * property described below."," *"," * @method sendRequest"," * @param [request] {Object} An object literal with the following properties:"," * "," * request "," * - The request to send to the live data source, if any.
"," * on "," * - An object literal with the following properties:"," *
"," * success "," * - The function to call when the data is ready.
"," * failure "," * - The function to call upon a response failure condition.
"," * argument "," * - Arbitrary data payload that will be passed back to the success and failure handlers.
"," *
"," * "," * cfg "," * - Configuration object, if any.
"," *
"," * @return {Number} Transaction ID."," */"," sendRequest: function(request) {"," var tId = DSLocal._tId++,"," callbacks;",""," request = request || {};",""," callbacks = request.on || request.callback;",""," this.fire(\"request\", {"," tId: tId,"," request: request.request,"," on: callbacks,"," callback: callbacks,"," cfg: request.cfg || {}"," });","",""," return tId;"," }","});"," ","Y.namespace(\"DataSource\").Local = DSLocal;","","","}, '3.7.1', {\"requires\": [\"base\"]});"];
+_yuitest_coverage["build/datasource-local/datasource-local.js"].code=["YUI.add('datasource-local', function (Y, NAME) {","","/**"," * The DataSource utility provides a common configurable interface for widgets to"," * access a variety of data, from JavaScript arrays to online database servers."," *"," * @module datasource"," * @main datasource"," */"," ","/**"," * Provides the base DataSource implementation, which can be extended to"," * create DataSources for specific data protocols, such as the IO Utility, the"," * Get Utility, or custom functions."," *"," * @module datasource"," * @submodule datasource-local"," */","","/**"," * Base class for the DataSource Utility."," * @class DataSource.Local"," * @extends Base"," * @constructor"," */ ","var LANG = Y.Lang,","","DSLocal = function() {"," DSLocal.superclass.constructor.apply(this, arguments);","};"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource static properties"," //"," /////////////////////////////////////////////////////////////////////////////","Y.mix(DSLocal, {"," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static "," * @final"," * @value \"dataSourceLocal\""," */"," NAME: \"dataSourceLocal\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSource Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," /**"," * @attribute source"," * @description Pointer to live data."," * @type MIXED"," * @default null "," */"," source: {"," value: null"," }"," },",""," /**"," * Global transaction counter."," *"," * @property _tId"," * @type Number"," * @static"," * @private"," * @default 0"," */"," _tId: 0,",""," /**"," * Global in-progress transaction objects."," *"," * @property transactions"," * @type Object"," * @static"," */"," transactions: {},",""," /**"," * Returns data to callback."," *"," * @method issueCallback"," * @param e {EventFacade} Event Facade."," * @param caller {DataSource} Calling DataSource instance."," * @static"," */"," issueCallback: function (e, caller) {"," var callbacks = e.on || e.callback,"," callback = callbacks && callbacks.success,"," payload = e.details[0];",""," payload.error = (e.error || e.response.error);",""," if (payload.error) {"," caller.fire(\"error\", payload);"," callback = callbacks && callbacks.failure;"," }",""," if (callback) {"," //TODO: this should be executed from a specific context"," callback(payload);"," }"," }","});"," ","Y.extend(DSLocal, Y.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private "," */"," initializer: function(config) {"," this._initEvents();"," },",""," /**"," * This method creates all the events for this module."," * @method _initEvents"," * @private "," */"," _initEvents: function() {"," /**"," * Fired when a data request is received."," *"," * @event request"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- The callback object"," * (deprecated, refer to on
"," * - on (Object)
- The map of configured callback"," * functions.
"," * - cfg (Object)
- Configuration object.
"," *
"," * @preventable _defRequestFn"," */"," this.publish(\"request\", {defaultFn: Y.bind(\"_defRequestFn\", this), queuable:true});"," "," /**"," * Fired when raw data is received."," *"," * @event data"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," *
"," * @preventable _defDataFn"," */"," this.publish(\"data\", {defaultFn: Y.bind(\"_defDataFn\", this), queuable:true});",""," /**"," * Fired when response is returned."," *"," * @event response"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," * - response (Object)
"," * - Normalized response object with the following properties:"," *
"," * - results (Object)
- Parsed results.
"," * - meta (Object)
- Parsed meta data.
"," * - error (Boolean)
- Error flag.
"," *
"," * "," * - error
"," * - Any error that occurred along the transaction lifecycle.
"," *
"," * @preventable _defResponseFn"," */"," this.publish(\"response\", {defaultFn: Y.bind(\"_defResponseFn\", this), queuable:true});",""," /**"," * Fired when an error is encountered."," *"," * @event error"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," * - response (Object)
"," * - Normalized response object with the following properties:"," *
"," * - results (Object)
- Parsed results.
"," * - meta (Object)
- Parsed meta data.
"," * - error (Object)
- Error object.
"," *
"," * "," * - error
"," * - Any error that occurred along the transaction lifecycle.
"," *
"," */",""," },",""," /**"," * Manages request/response transaction. Must fire response"," * event when response is received. This method should be implemented by"," * subclasses to achieve more complex behavior such as accessing remote data."," *"," * @method _defRequestFn"," * @param e {Event.Facade} Event Facadewith the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," *
"," * @protected"," */"," _defRequestFn: function(e) {"," var data = this.get(\"source\"),"," payload = e.details[0];"," "," // Problematic data"," if(LANG.isUndefined(data)) {"," payload.error = new Error(\"Local source undefined\");"," }",""," payload.data = data;"," this.fire(\"data\", payload);"," },",""," /**"," * Normalizes raw data into a response that includes results and meta properties."," *"," * @method _defDataFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," *
"," * @protected"," */"," _defDataFn: function(e) {"," var data = e.data,"," meta = e.meta,"," response = {"," results: (LANG.isArray(data)) ? data : [data],"," meta: (meta) ? meta : {}"," },"," payload = e.details[0];",""," payload.response = response;"," this.fire(\"response\", payload);"," },",""," /**"," * Sends data as a normalized response to callback."," *"," * @method _defResponseFn"," * @param e {Event.Facade} Event Facade with the following properties:"," * "," * - tId (Number)
- Unique transaction ID.
"," * - request (Object)
- The request.
"," * - callback (Object)
- Deprecated alias for the"," * on property
"," * - on (Object)
- The map of configured transaction"," * callbacks. An object with the following properties:"," *
"," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * "," * - cfg (Object)
- Configuration object.
"," * - data (Object)
- Raw data.
"," * - response (Object)
- Normalized response object with the following properties:"," *
"," * - results (Object)
- Parsed results.
"," * - meta (Object)
- Parsed meta data.
"," * - error (Boolean)
- Error flag.
"," *
"," * "," *
"," * @protected"," */"," _defResponseFn: function(e) {"," // Send the response back to the callback"," DSLocal.issueCallback(e, this);"," },"," "," /**"," * Generates a unique transaction ID and fires request event."," * Note: the property callback is a"," * deprecated alias for the on transaction configuration"," * property described below."," *"," * @method sendRequest"," * @param [request] {Object} An object literal with the following properties:"," * "," * request "," * - The request to send to the live data source, if any.
"," * on "," * - An object literal with the following properties:"," *
"," * success "," * - The function to call when the data is ready.
"," * failure "," * - The function to call upon a response failure condition.
"," * argument "," * - Arbitrary data payload that will be passed back to the success and failure handlers.
"," *
"," * "," * cfg "," * - Configuration object, if any.
"," *
"," * @return {Number} Transaction ID."," */"," sendRequest: function(request) {"," var tId = DSLocal._tId++,"," callbacks;",""," request = request || {};",""," callbacks = request.on || request.callback;",""," this.fire(\"request\", {"," tId: tId,"," request: request.request,"," on: callbacks,"," callback: callbacks,"," cfg: request.cfg || {}"," });","",""," return tId;"," }","});"," ","Y.namespace(\"DataSource\").Local = DSLocal;","","","}, '3.7.2', {\"requires\": [\"base\"]});"];
_yuitest_coverage["build/datasource-local/datasource-local.js"].lines = {"1":0,"26":0,"29":0,"37":0,"96":0,"100":0,"102":0,"103":0,"104":0,"107":0,"109":0,"114":0,"123":0,"148":0,"172":0,"206":0,"266":0,"270":0,"271":0,"274":0,"275":0,"301":0,"309":0,"310":0,"344":0,"375":0,"378":0,"380":0,"382":0,"391":0,"395":0};
_yuitest_coverage["build/datasource-local/datasource-local.js"].functions = {"DSLocal:28":0,"issueCallback:95":0,"initializer:122":0,"_initEvents:131":0,"_defRequestFn:265":0,"_defDataFn:300":0,"_defResponseFn:342":0,"sendRequest:374":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-local/datasource-local.js"].coveredLines = 31;
@@ -474,4 +474,4 @@ _yuitest_coverline("build/datasource-local/datasource-local.js", 395);
Y.namespace("DataSource").Local = DSLocal;
-}, '3.7.1', {"requires": ["base"]});
+}, '3.7.2', {"requires": ["base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-local/datasource-local-debug.js b/lib/yuilib/3.7.2/build/datasource-local/datasource-local-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datasource-local/datasource-local-debug.js
rename to lib/yuilib/3.7.2/build/datasource-local/datasource-local-debug.js
index 6bbff6f724a..af17e2b8d02 100644
--- a/lib/yuilib/3.7.1/build/datasource-local/datasource-local-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-local/datasource-local-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -405,4 +405,4 @@ Y.extend(DSLocal, Y.Base, {
Y.namespace("DataSource").Local = DSLocal;
-}, '3.7.1', {"requires": ["base"]});
+}, '3.7.2', {"requires": ["base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-local/datasource-local-min.js b/lib/yuilib/3.7.2/build/datasource-local/datasource-local-min.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/datasource-local/datasource-local-min.js
rename to lib/yuilib/3.7.2/build/datasource-local/datasource-local-min.js
index 2655f95945a..8e275f780c4 100644
--- a/lib/yuilib/3.7.1/build/datasource-local/datasource-local-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-local/datasource-local-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-local",function(e,t){var n=e.Lang,r=function(){r.superclass.constructor.apply(this,arguments)};e.mix(r,{NAME:"dataSourceLocal",ATTRS:{source:{value:null}},_tId:0,transactions:{},issueCallback:function(e,t){var n=e.on||e.callback,r=n&&n.success,i=e.details[0];i.error=e.error||e.response.error,i.error&&(t.fire("error",i),r=n&&n.failure),r&&r(i)}}),e.extend(r,e.Base,{initializer:function(e){this._initEvents()},_initEvents:function(){this.publish("request",{defaultFn:e.bind("_defRequestFn",this),queuable:!0}),this.publish("data",{defaultFn:e.bind("_defDataFn",this),queuable:!0}),this.publish("response",{defaultFn:e.bind("_defResponseFn",this),queuable:!0})},_defRequestFn:function(e){var t=this.get("source"),r=e.details[0];n.isUndefined(t)&&(r.error=new Error("Local source undefined")),r.data=t,this.fire("data",r)},_defDataFn:function(e){var t=e.data,r=e.meta,i={results:n.isArray(t)?t:[t],meta:r?r:{}},s=e.details[0];s.response=i,this.fire("response",s)},_defResponseFn:function(e){r.issueCallback(e,this)},sendRequest:function(e){var t=r._tId++,n;return e=e||{},n=e.on||e.callback,this.fire("request",{tId:t,request:e.request,on:n,callback:n,cfg:e.cfg||{}}),t}}),e.namespace("DataSource").Local=r},"3.7.1",{requires:["base"]});
+YUI.add("datasource-local",function(e,t){var n=e.Lang,r=function(){r.superclass.constructor.apply(this,arguments)};e.mix(r,{NAME:"dataSourceLocal",ATTRS:{source:{value:null}},_tId:0,transactions:{},issueCallback:function(e,t){var n=e.on||e.callback,r=n&&n.success,i=e.details[0];i.error=e.error||e.response.error,i.error&&(t.fire("error",i),r=n&&n.failure),r&&r(i)}}),e.extend(r,e.Base,{initializer:function(e){this._initEvents()},_initEvents:function(){this.publish("request",{defaultFn:e.bind("_defRequestFn",this),queuable:!0}),this.publish("data",{defaultFn:e.bind("_defDataFn",this),queuable:!0}),this.publish("response",{defaultFn:e.bind("_defResponseFn",this),queuable:!0})},_defRequestFn:function(e){var t=this.get("source"),r=e.details[0];n.isUndefined(t)&&(r.error=new Error("Local source undefined")),r.data=t,this.fire("data",r)},_defDataFn:function(e){var t=e.data,r=e.meta,i={results:n.isArray(t)?t:[t],meta:r?r:{}},s=e.details[0];s.response=i,this.fire("response",s)},_defResponseFn:function(e){r.issueCallback(e,this)},sendRequest:function(e){var t=r._tId++,n;return e=e||{},n=e.on||e.callback,this.fire("request",{tId:t,request:e.request,on:n,callback:n,cfg:e.cfg||{}}),t}}),e.namespace("DataSource").Local=r},"3.7.2",{requires:["base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-local/datasource-local.js b/lib/yuilib/3.7.2/build/datasource-local/datasource-local.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datasource-local/datasource-local.js
rename to lib/yuilib/3.7.2/build/datasource-local/datasource-local.js
index ce05714e830..729e46a07e8 100644
--- a/lib/yuilib/3.7.1/build/datasource-local/datasource-local.js
+++ b/lib/yuilib/3.7.2/build/datasource-local/datasource-local.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -401,4 +401,4 @@ Y.extend(DSLocal, Y.Base, {
Y.namespace("DataSource").Local = DSLocal;
-}, '3.7.1', {"requires": ["base"]});
+}, '3.7.2', {"requires": ["base"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-polling/datasource-polling-coverage.js b/lib/yuilib/3.7.2/build/datasource-polling/datasource-polling-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-polling/datasource-polling-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-polling/datasource-polling-coverage.js
index e2f6e4c94b9..02f951f38dd 100644
--- a/lib/yuilib/3.7.1/build/datasource-polling/datasource-polling-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-polling/datasource-polling-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-polling/datasource-polling.js"] = {
path: "build/datasource-polling/datasource-polling.js",
code: []
};
-_yuitest_coverage["build/datasource-polling/datasource-polling.js"].code=["YUI.add('datasource-polling', function (Y, NAME) {","","/**"," * Extends DataSource with polling functionality."," *"," * @module datasource"," * @submodule datasource-polling"," */"," ","/**"," * Adds polling to the DataSource Utility."," * @class Pollable"," * @extends DataSource.Local"," */ ","function Pollable() {"," this._intervals = {};","}","","Pollable.prototype = {",""," /**"," * @property _intervals"," * @description Hash of polling interval IDs that have been enabled,"," * stored here to be able to clear all intervals."," * @private"," */"," _intervals: null,",""," /**"," * Sets up a polling mechanism to send requests at set intervals and"," * forward responses to given callback."," *"," * @method setInterval"," * @param msec {Number} Length of interval in milliseconds."," * @param [request] {Object} An object literal with the following properties:"," * "," * request "," * - The request to send to the live data source, if any.
"," * callback "," * - An object literal with the following properties:"," *
"," * success "," * - The function to call when the data is ready.
"," * failure "," * - The function to call upon a response failure condition.
"," * argument "," * - Arbitrary data payload that will be passed back to the success and failure handlers.
"," *
"," * "," * cfg "," * - Configuration object, if any.
"," *
"," * @return {Number} Interval ID."," */"," setInterval: function(msec, request) {"," var x = Y.later(msec, this, this.sendRequest, [ request ], true);"," this._intervals[x.id] = x;"," // First call happens immediately, but async"," Y.later(0, this, this.sendRequest, [request]);"," return x.id;"," },",""," /**"," * Disables polling mechanism associated with the given interval ID."," *"," * @method clearInterval"," * @param id {Number} Interval ID."," */"," clearInterval: function(id, key) {"," // In case of being called by clearAllIntervals()"," id = key || id;"," if(this._intervals[id]) {"," // Clear the interval"," this._intervals[id].cancel();"," // Clear from tracker"," delete this._intervals[id];"," }"," },",""," /**"," * Clears all intervals."," *"," * @method clearAllIntervals"," */"," clearAllIntervals: function() {"," Y.each(this._intervals, this.clearInterval, this);"," }","};"," ","Y.augment(Y.DataSource.Local, Pollable);","","","}, '3.7.1', {\"requires\": [\"datasource-local\"]});"];
+_yuitest_coverage["build/datasource-polling/datasource-polling.js"].code=["YUI.add('datasource-polling', function (Y, NAME) {","","/**"," * Extends DataSource with polling functionality."," *"," * @module datasource"," * @submodule datasource-polling"," */"," ","/**"," * Adds polling to the DataSource Utility."," * @class Pollable"," * @extends DataSource.Local"," */ ","function Pollable() {"," this._intervals = {};","}","","Pollable.prototype = {",""," /**"," * @property _intervals"," * @description Hash of polling interval IDs that have been enabled,"," * stored here to be able to clear all intervals."," * @private"," */"," _intervals: null,",""," /**"," * Sets up a polling mechanism to send requests at set intervals and"," * forward responses to given callback."," *"," * @method setInterval"," * @param msec {Number} Length of interval in milliseconds."," * @param [request] {Object} An object literal with the following properties:"," * "," * request "," * - The request to send to the live data source, if any.
"," * callback "," * - An object literal with the following properties:"," *
"," * success "," * - The function to call when the data is ready.
"," * failure "," * - The function to call upon a response failure condition.
"," * argument "," * - Arbitrary data payload that will be passed back to the success and failure handlers.
"," *
"," * "," * cfg "," * - Configuration object, if any.
"," *
"," * @return {Number} Interval ID."," */"," setInterval: function(msec, request) {"," var x = Y.later(msec, this, this.sendRequest, [ request ], true);"," this._intervals[x.id] = x;"," // First call happens immediately, but async"," Y.later(0, this, this.sendRequest, [request]);"," return x.id;"," },",""," /**"," * Disables polling mechanism associated with the given interval ID."," *"," * @method clearInterval"," * @param id {Number} Interval ID."," */"," clearInterval: function(id, key) {"," // In case of being called by clearAllIntervals()"," id = key || id;"," if(this._intervals[id]) {"," // Clear the interval"," this._intervals[id].cancel();"," // Clear from tracker"," delete this._intervals[id];"," }"," },",""," /**"," * Clears all intervals."," *"," * @method clearAllIntervals"," */"," clearAllIntervals: function() {"," Y.each(this._intervals, this.clearInterval, this);"," }","};"," ","Y.augment(Y.DataSource.Local, Pollable);","","","}, '3.7.2', {\"requires\": [\"datasource-local\"]});"];
_yuitest_coverage["build/datasource-polling/datasource-polling.js"].lines = {"1":0,"15":0,"16":0,"19":0,"56":0,"57":0,"59":0,"60":0,"71":0,"72":0,"74":0,"76":0,"86":0,"90":0};
_yuitest_coverage["build/datasource-polling/datasource-polling.js"].functions = {"Pollable:15":0,"setInterval:55":0,"clearInterval:69":0,"clearAllIntervals:85":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-polling/datasource-polling.js"].coveredLines = 14;
@@ -148,4 +148,4 @@ _yuitest_coverline("build/datasource-polling/datasource-polling.js", 90);
Y.augment(Y.DataSource.Local, Pollable);
-}, '3.7.1', {"requires": ["datasource-local"]});
+}, '3.7.2', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-polling/datasource-polling-debug.js b/lib/yuilib/3.7.2/build/datasource-polling/datasource-polling-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datasource-polling/datasource-polling-debug.js
rename to lib/yuilib/3.7.2/build/datasource-polling/datasource-polling-debug.js
index 02a7d898273..fa47683007f 100644
--- a/lib/yuilib/3.7.1/build/datasource-polling/datasource-polling-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-polling/datasource-polling-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -96,4 +96,4 @@ Pollable.prototype = {
Y.augment(Y.DataSource.Local, Pollable);
-}, '3.7.1', {"requires": ["datasource-local"]});
+}, '3.7.2', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-polling/datasource-polling-min.js b/lib/yuilib/3.7.2/build/datasource-polling/datasource-polling-min.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datasource-polling/datasource-polling-min.js
rename to lib/yuilib/3.7.2/build/datasource-polling/datasource-polling-min.js
index 429d643f4f3..6fc023cf4c7 100644
--- a/lib/yuilib/3.7.1/build/datasource-polling/datasource-polling-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-polling/datasource-polling-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-polling",function(e,t){function n(){this._intervals={}}n.prototype={_intervals:null,setInterval:function(t,n){var r=e.later(t,this,this.sendRequest,[n],!0);return this._intervals[r.id]=r,e.later(0,this,this.sendRequest,[n]),r.id},clearInterval:function(e,t){e=t||e,this._intervals[e]&&(this._intervals[e].cancel(),delete this._intervals[e])},clearAllIntervals:function(){e.each(this._intervals,this.clearInterval,this)}},e.augment(e.DataSource.Local,n)},"3.7.1",{requires:["datasource-local"]});
+YUI.add("datasource-polling",function(e,t){function n(){this._intervals={}}n.prototype={_intervals:null,setInterval:function(t,n){var r=e.later(t,this,this.sendRequest,[n],!0);return this._intervals[r.id]=r,e.later(0,this,this.sendRequest,[n]),r.id},clearInterval:function(e,t){e=t||e,this._intervals[e]&&(this._intervals[e].cancel(),delete this._intervals[e])},clearAllIntervals:function(){e.each(this._intervals,this.clearInterval,this)}},e.augment(e.DataSource.Local,n)},"3.7.2",{requires:["datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-polling/datasource-polling.js b/lib/yuilib/3.7.2/build/datasource-polling/datasource-polling.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datasource-polling/datasource-polling.js
rename to lib/yuilib/3.7.2/build/datasource-polling/datasource-polling.js
index 02a7d898273..fa47683007f 100644
--- a/lib/yuilib/3.7.1/build/datasource-polling/datasource-polling.js
+++ b/lib/yuilib/3.7.2/build/datasource-polling/datasource-polling.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -96,4 +96,4 @@ Pollable.prototype = {
Y.augment(Y.DataSource.Local, Pollable);
-}, '3.7.1', {"requires": ["datasource-local"]});
+}, '3.7.2', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema-coverage.js b/lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema-coverage.js
index 2c720b366ae..7bf34d00514 100644
--- a/lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-textschema/datasource-textschema.js"] = {
path: "build/datasource-textschema/datasource-textschema.js",
code: []
};
-_yuitest_coverage["build/datasource-textschema/datasource-textschema.js"].code=["YUI.add('datasource-textschema', function (Y, NAME) {","","/**"," * Extends DataSource with schema-parsing on text data."," *"," * @module datasource"," * @submodule datasource-textschema"," */","","/**"," * Adds schema-parsing to the DataSource Utility."," * @class DataSourceTextSchema"," * @extends Plugin.Base"," */ ","var DataSourceTextSchema = function() {"," DataSourceTextSchema.superclass.constructor.apply(this, arguments);","};","","Y.mix(DataSourceTextSchema, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"schema\""," */"," NS: \"schema\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceTextSchema\""," */"," NAME: \"dataSourceTextSchema\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSourceTextSchema Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," schema: {"," //value: {}"," }"," }","});","","Y.extend(DataSourceTextSchema, Y.Plugin.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defDataFn\", this._beforeDefDataFn);"," },",""," /**"," * Parses raw data into a normalized response."," *"," * @method _beforeDefDataFn"," * @param tId {Number} Unique transaction ID."," * @param request {Object} The request."," * @param callback {Object} The callback object with the following properties:"," * "," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * @param data {Object} Raw data."," * @protected"," */"," _beforeDefDataFn: function(e) {"," var schema = this.get('schema'),"," payload = e.details[0],"," // TODO: Do I need to sniff for DS.IO + isString(responseText)?"," data = e.data.responseText || e.data;",""," payload.response = Y.DataSchema.Text.apply.call(this, schema, data) || {"," meta: {},"," results: data"," };",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceTextSchema plugin halted _defDataFn\");"," }","});"," ","Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema;","","","}, '3.7.1', {\"requires\": [\"datasource-local\", \"plugin\", \"dataschema-text\"]});"];
+_yuitest_coverage["build/datasource-textschema/datasource-textschema.js"].code=["YUI.add('datasource-textschema', function (Y, NAME) {","","/**"," * Extends DataSource with schema-parsing on text data."," *"," * @module datasource"," * @submodule datasource-textschema"," */","","/**"," * Adds schema-parsing to the DataSource Utility."," * @class DataSourceTextSchema"," * @extends Plugin.Base"," */ ","var DataSourceTextSchema = function() {"," DataSourceTextSchema.superclass.constructor.apply(this, arguments);","};","","Y.mix(DataSourceTextSchema, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"schema\""," */"," NS: \"schema\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceTextSchema\""," */"," NAME: \"dataSourceTextSchema\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSourceTextSchema Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," schema: {"," //value: {}"," }"," }","});","","Y.extend(DataSourceTextSchema, Y.Plugin.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defDataFn\", this._beforeDefDataFn);"," },",""," /**"," * Parses raw data into a normalized response."," *"," * @method _beforeDefDataFn"," * @param tId {Number} Unique transaction ID."," * @param request {Object} The request."," * @param callback {Object} The callback object with the following properties:"," * "," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * @param data {Object} Raw data."," * @protected"," */"," _beforeDefDataFn: function(e) {"," var schema = this.get('schema'),"," payload = e.details[0],"," // TODO: Do I need to sniff for DS.IO + isString(responseText)?"," data = e.data.responseText || e.data;",""," payload.response = Y.DataSchema.Text.apply.call(this, schema, data) || {"," meta: {},"," results: data"," };",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceTextSchema plugin halted _defDataFn\");"," }","});"," ","Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema;","","","}, '3.7.2', {\"requires\": [\"datasource-local\", \"plugin\", \"dataschema-text\"]});"];
_yuitest_coverage["build/datasource-textschema/datasource-textschema.js"].lines = {"1":0,"15":0,"16":0,"19":0,"56":0,"65":0,"83":0,"88":0,"93":0,"95":0,"99":0};
_yuitest_coverage["build/datasource-textschema/datasource-textschema.js"].functions = {"DataSourceTextSchema:15":0,"initializer:64":0,"_beforeDefDataFn:82":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-textschema/datasource-textschema.js"].coveredLines = 11;
@@ -153,4 +153,4 @@ _yuitest_coverline("build/datasource-textschema/datasource-textschema.js", 99);
Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema-debug.js b/lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema-debug.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema-debug.js
rename to lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema-debug.js
index a7e62dbcd24..5e82930c1d6 100644
--- a/lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -105,4 +105,4 @@ Y.extend(DataSourceTextSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema-min.js b/lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema-min.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema-min.js
rename to lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema-min.js
index 2792c117f4f..86118cc87c5 100644
--- a/lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-textschema",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NS:"schema",NAME:"dataSourceTextSchema",ATTRS:{schema:{}}}),e.extend(n,e.Plugin.Base,{initializer:function(e){this.doBefore("_defDataFn",this._beforeDefDataFn)},_beforeDefDataFn:function(t){var n=this.get("schema"),r=t.details[0],i=t.data.responseText||t.data;return r.response=e.DataSchema.Text.apply.call(this,n,i)||{meta:{},results:i},this.get("host").fire("response",r),new e.Do.Halt("DataSourceTextSchema plugin halted _defDataFn")}}),e.namespace("Plugin").DataSourceTextSchema=n},"3.7.1",{requires:["datasource-local","plugin","dataschema-text"]});
+YUI.add("datasource-textschema",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NS:"schema",NAME:"dataSourceTextSchema",ATTRS:{schema:{}}}),e.extend(n,e.Plugin.Base,{initializer:function(e){this.doBefore("_defDataFn",this._beforeDefDataFn)},_beforeDefDataFn:function(t){var n=this.get("schema"),r=t.details[0],i=t.data.responseText||t.data;return r.response=e.DataSchema.Text.apply.call(this,n,i)||{meta:{},results:i},this.get("host").fire("response",r),new e.Do.Halt("DataSourceTextSchema plugin halted _defDataFn")}}),e.namespace("Plugin").DataSourceTextSchema=n},"3.7.2",{requires:["datasource-local","plugin","dataschema-text"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema.js b/lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema.js
rename to lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema.js
index a7e62dbcd24..5e82930c1d6 100644
--- a/lib/yuilib/3.7.1/build/datasource-textschema/datasource-textschema.js
+++ b/lib/yuilib/3.7.2/build/datasource-textschema/datasource-textschema.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -105,4 +105,4 @@ Y.extend(DataSourceTextSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema-coverage.js b/lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema-coverage.js
rename to lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema-coverage.js
index 6b9a96d81a8..e3f6758cdd0 100644
--- a/lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema-coverage.js
+++ b/lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datasource-xmlschema/datasource-xmlschema.js"] = {
path: "build/datasource-xmlschema/datasource-xmlschema.js",
code: []
};
-_yuitest_coverage["build/datasource-xmlschema/datasource-xmlschema.js"].code=["YUI.add('datasource-xmlschema', function (Y, NAME) {","","/**"," * Extends DataSource with schema-parsing on XML data."," *"," * @module datasource"," * @submodule datasource-xmlschema"," */","","/**"," * Adds schema-parsing to the DataSource Utility."," * @class DataSourceXMLSchema"," * @extends Plugin.Base"," */ ","var DataSourceXMLSchema = function() {"," DataSourceXMLSchema.superclass.constructor.apply(this, arguments);","};","","Y.mix(DataSourceXMLSchema, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"schema\""," */"," NS: \"schema\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceXMLSchema\""," */"," NAME: \"dataSourceXMLSchema\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSourceXMLSchema Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," schema: {"," //value: {}"," }"," }","});","","Y.extend(DataSourceXMLSchema, Y.Plugin.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defDataFn\", this._beforeDefDataFn);"," },",""," /**"," * Parses raw data into a normalized response."," *"," * @method _beforeDefDataFn"," * @param tId {Number} Unique transaction ID."," * @param request {Object} The request."," * @param callback {Object} The callback object with the following properties:"," * "," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * @param data {Object} Raw data."," * @protected"," */"," _beforeDefDataFn: function(e) {"," var schema = this.get('schema'),"," payload = e.details[0],"," // TODO: Do I need to sniff for DS.IO + responseXML.nodeType 9?"," data = e.data.responseXML || e.data;",""," payload.response = Y.DataSchema.XML.apply.call(this, schema, data) || {"," meta: {},"," results: data"," };",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceXMLSchema plugin halted _defDataFn\");"," }","});"," ","Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema;","","","}, '3.7.1', {\"requires\": [\"datasource-local\", \"plugin\", \"dataschema-xml\"]});"];
+_yuitest_coverage["build/datasource-xmlschema/datasource-xmlschema.js"].code=["YUI.add('datasource-xmlschema', function (Y, NAME) {","","/**"," * Extends DataSource with schema-parsing on XML data."," *"," * @module datasource"," * @submodule datasource-xmlschema"," */","","/**"," * Adds schema-parsing to the DataSource Utility."," * @class DataSourceXMLSchema"," * @extends Plugin.Base"," */ ","var DataSourceXMLSchema = function() {"," DataSourceXMLSchema.superclass.constructor.apply(this, arguments);","};","","Y.mix(DataSourceXMLSchema, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"schema\""," */"," NS: \"schema\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataSourceXMLSchema\""," */"," NAME: \"dataSourceXMLSchema\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // DataSourceXMLSchema Attributes"," //"," /////////////////////////////////////////////////////////////////////////////",""," ATTRS: {"," schema: {"," //value: {}"," }"," }","});","","Y.extend(DataSourceXMLSchema, Y.Plugin.Base, {"," /**"," * Internal init() handler."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," this.doBefore(\"_defDataFn\", this._beforeDefDataFn);"," },",""," /**"," * Parses raw data into a normalized response."," *"," * @method _beforeDefDataFn"," * @param tId {Number} Unique transaction ID."," * @param request {Object} The request."," * @param callback {Object} The callback object with the following properties:"," * "," * - success (Function)
- Success handler.
"," * - failure (Function)
- Failure handler.
"," *
"," * @param data {Object} Raw data."," * @protected"," */"," _beforeDefDataFn: function(e) {"," var schema = this.get('schema'),"," payload = e.details[0],"," // TODO: Do I need to sniff for DS.IO + responseXML.nodeType 9?"," data = e.data.responseXML || e.data;",""," payload.response = Y.DataSchema.XML.apply.call(this, schema, data) || {"," meta: {},"," results: data"," };",""," this.get(\"host\").fire(\"response\", payload);",""," return new Y.Do.Halt(\"DataSourceXMLSchema plugin halted _defDataFn\");"," }","});"," ","Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema;","","","}, '3.7.2', {\"requires\": [\"datasource-local\", \"plugin\", \"dataschema-xml\"]});"];
_yuitest_coverage["build/datasource-xmlschema/datasource-xmlschema.js"].lines = {"1":0,"15":0,"16":0,"19":0,"56":0,"65":0,"83":0,"88":0,"93":0,"95":0,"99":0};
_yuitest_coverage["build/datasource-xmlschema/datasource-xmlschema.js"].functions = {"DataSourceXMLSchema:15":0,"initializer:64":0,"_beforeDefDataFn:82":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datasource-xmlschema/datasource-xmlschema.js"].coveredLines = 11;
@@ -153,4 +153,4 @@ _yuitest_coverline("build/datasource-xmlschema/datasource-xmlschema.js", 99);
Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-xml"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-xml"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema-debug.js b/lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema-debug.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema-debug.js
rename to lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema-debug.js
index 72a9453cd8d..a92b3e3c2e2 100644
--- a/lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema-debug.js
+++ b/lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -105,4 +105,4 @@ Y.extend(DataSourceXMLSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-xml"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-xml"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema-min.js b/lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema-min.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema-min.js
rename to lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema-min.js
index 173a9215d2e..8281094fc11 100644
--- a/lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema-min.js
+++ b/lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datasource-xmlschema",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NS:"schema",NAME:"dataSourceXMLSchema",ATTRS:{schema:{}}}),e.extend(n,e.Plugin.Base,{initializer:function(e){this.doBefore("_defDataFn",this._beforeDefDataFn)},_beforeDefDataFn:function(t){var n=this.get("schema"),r=t.details[0],i=t.data.responseXML||t.data;return r.response=e.DataSchema.XML.apply.call(this,n,i)||{meta:{},results:i},this.get("host").fire("response",r),new e.Do.Halt("DataSourceXMLSchema plugin halted _defDataFn")}}),e.namespace("Plugin").DataSourceXMLSchema=n},"3.7.1",{requires:["datasource-local","plugin","dataschema-xml"]});
+YUI.add("datasource-xmlschema",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.mix(n,{NS:"schema",NAME:"dataSourceXMLSchema",ATTRS:{schema:{}}}),e.extend(n,e.Plugin.Base,{initializer:function(e){this.doBefore("_defDataFn",this._beforeDefDataFn)},_beforeDefDataFn:function(t){var n=this.get("schema"),r=t.details[0],i=t.data.responseXML||t.data;return r.response=e.DataSchema.XML.apply.call(this,n,i)||{meta:{},results:i},this.get("host").fire("response",r),new e.Do.Halt("DataSourceXMLSchema plugin halted _defDataFn")}}),e.namespace("Plugin").DataSourceXMLSchema=n},"3.7.2",{requires:["datasource-local","plugin","dataschema-xml"]});
diff --git a/lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema.js b/lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema.js
rename to lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema.js
index 72a9453cd8d..a92b3e3c2e2 100644
--- a/lib/yuilib/3.7.1/build/datasource-xmlschema/datasource-xmlschema.js
+++ b/lib/yuilib/3.7.2/build/datasource-xmlschema/datasource-xmlschema.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -105,4 +105,4 @@ Y.extend(DataSourceXMLSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema;
-}, '3.7.1', {"requires": ["datasource-local", "plugin", "dataschema-xml"]});
+}, '3.7.2', {"requires": ["datasource-local", "plugin", "dataschema-xml"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
index fe59642b3d2..d9c9be02205 100644
--- a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
+++ b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
index 2026ffecdbe..f8791cca4e6 100644
--- a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
+++ b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
index 9058a414070..c30a76a61a8 100644
--- a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
+++ b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
index 285e23b7580..97e998a1da9 100644
--- a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
+++ b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
index a7f761d60b6..612b4e581b7 100644
--- a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
+++ b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-dn.png b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-dn.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-dn.png
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-dn.png
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-up.png b/lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-up.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-up.png
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-up.png
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js b/lib/yuilib/3.7.2/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
index f93d7989a14..2f153ecb0f5 100644
--- a/lib/yuilib/3.7.1/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["/build/datatable-base-deprecated/datatable-base-deprecated.js
path: "/build/datatable-base-deprecated/datatable-base-deprecated.js",
code: []
};
-_yuitest_coverage["/build/datatable-base-deprecated/datatable-base-deprecated.js"].code=["YUI.add('datatable-base-deprecated', function(Y) {","","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","var YLang = Y.Lang,"," YisValue = YLang.isValue,"," fromTemplate = Y.Lang.sub,"," YNode = Y.Node,"," Ycreate = YNode.create,"," YgetClassName = Y.ClassNameManager.getClassName,",""," DATATABLE = \"datatable\","," COLUMN = \"column\","," "," FOCUS = \"focus\","," KEYDOWN = \"keydown\","," MOUSEENTER = \"mouseenter\","," MOUSELEAVE = \"mouseleave\","," MOUSEUP = \"mouseup\","," MOUSEDOWN = \"mousedown\","," CLICK = \"click\","," DBLCLICK = \"dblclick\",",""," CLASS_COLUMNS = YgetClassName(DATATABLE, \"columns\"),"," CLASS_DATA = YgetClassName(DATATABLE, \"data\"),"," CLASS_MSG = YgetClassName(DATATABLE, \"msg\"),"," CLASS_LINER = YgetClassName(DATATABLE, \"liner\"),"," CLASS_FIRST = YgetClassName(DATATABLE, \"first\"),"," CLASS_LAST = YgetClassName(DATATABLE, \"last\"),"," CLASS_EVEN = YgetClassName(DATATABLE, \"even\"),"," CLASS_ODD = YgetClassName(DATATABLE, \"odd\"),",""," TEMPLATE_TABLE = '
',"," TEMPLATE_COL = ' ',"," TEMPLATE_THEAD = '',"," TEMPLATE_TBODY = '',"," TEMPLATE_TH = '{value} ',"," TEMPLATE_TR = ' ',"," TEMPLATE_TD = '{value} ',"," TEMPLATE_VALUE = '{value}',"," TEMPLATE_MSG = '';"," ","","","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","/*"," * The Column class defines and manages attributes of Columns for DataTable."," *"," * @class Column"," * @extends Widget"," * @constructor"," */","function Column(config) {"," Column.superclass.constructor.apply(this, arguments);","}","","/////////////////////////////////////////////////////////////////////////////","//","// STATIC PROPERTIES","//","/////////////////////////////////////////////////////////////////////////////","Y.mix(Column, {"," /*"," * Class name."," *"," * @property NAME"," * @type {String}"," * @static"," * @final"," * @value \"column\""," */"," NAME: \"column\",","","/////////////////////////////////////////////////////////////////////////////","//","// ATTRIBUTES","//","/////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /*"," Unique internal identifier, used to stamp ID on TH element."," "," @attribute id"," @type {String}"," @readOnly"," **/"," id: {"," valueFn: \"_defaultId\","," readOnly: true"," },"," "," /*"," User-supplied identifier. Defaults to id."," @attribute key"," @type {String}"," **/"," key: {"," valueFn: \"_defaultKey\""," },",""," /*"," Points to underlying data field (for sorting or formatting, for"," example). Useful when column doesn't hold any data itself, but is just"," a visual representation of data from another column or record field."," Defaults to key.",""," @attribute field"," @type {String}"," @default (column key)"," **/"," field: {"," valueFn: \"_defaultField\""," },",""," /*"," Display label for column header. Defaults to key.",""," @attribute label"," @type {String}"," **/"," label: {"," valueFn: \"_defaultLabel\""," },"," "," /*"," Array of child column definitions (for nested headers).",""," @attribute children"," @type {String}"," @default null"," **/"," children: {"," value: null"," },"," "," /*"," TH abbr attribute.",""," @attribute abbr"," @type {String}"," @default \"\""," **/"," abbr: {"," value: \"\""," },",""," //TODO: support custom classnames"," // TH CSS classnames"," classnames: {"," readOnly: true,"," getter: \"_getClassnames\""," },"," "," /*"," Formating template string or function for cells in this column.",""," Function formatters receive a single object (described below) and are"," expected to output the `innerHTML` of the cell.",""," String templates can include markup and {placeholder} tokens to be"," filled in from the object passed to function formatters.",""," @attribute formatter"," @type {String|Function}"," @param {Object} data Data relevant to the rendering of this cell"," @param {String} data.classnames CSS classes to add to the cell"," @param {Column} data.column This Column instance"," @param {Object} data.data The raw object data from the Record"," @param {String} data.field This Column's \"field\" attribute value"," @param {String} data.headers TH ids to reference in the cell's"," \"headers\" attribute"," @param {Record} data.record The Record instance for this row"," @param {Number} data.rowindex The index for this row"," @param {Node} data.tbody The TBODY Node that will house the cell"," @param {Node} data.tr The row TR Node that will house the cell"," @param {Any} data.value The raw Record data for this cell"," **/"," formatter: {},",""," /*"," The default markup to display in cells that have no corresponding record"," data or content from formatters.",""," @attribute emptyCellValue"," @type {String}"," @default ''"," **/"," emptyCellValue: {"," value: '',"," validator: Y.Lang.isString"," },",""," //requires datatable-sort"," sortable: {"," value: false"," },"," //sortOptions:defaultDir, sortFn, field",""," //TODO: support editable columns"," // Column editor"," editor: {},",""," //TODO: support resizeable columns"," //TODO: support setting widths"," // requires datatable-colresize"," width: {},"," resizeable: {},"," minimized: {},"," minWidth: {},"," maxAutoWidth: {}"," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(Column, Y.Widget, {"," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTE HELPERS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Return ID for instance."," *"," * @method _defaultId"," * @return {String}"," * @private"," */"," _defaultId: function() {"," return Y.guid();"," },",""," /*"," * Return key for instance. Defaults to ID if one was not provided."," *"," * @method _defaultKey"," * @return {String}"," * @private"," */"," _defaultKey: function() {"," return Y.guid();"," },",""," /*"," * Return field for instance. Defaults to key if one was not provided."," *"," * @method _defaultField"," * @return {String}"," * @private"," */"," _defaultField: function() {"," return this.get(\"key\");"," },",""," /*"," * Return label for instance. Defaults to key if one was not provided."," *"," * @method _defaultLabel"," * @return {String}"," * @private"," */"," _defaultLabel: function() {"," return this.get(\"key\");"," },",""," /*"," * Updates the UI if changes are made to abbr."," *"," * @method _afterAbbrChange"," * @param e {Event} Custom event for the attribute change."," * @private"," */"," _afterAbbrChange: function (e) {"," this._uiSetAbbr(e.newVal);"," },",""," /////////////////////////////////////////////////////////////////////////////"," //"," // PROPERTIES"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Reference to Column's current position index within its Columnset's keys"," * array, if applicable. This property only applies to non-nested and bottom-"," * level child Columns. Value is set by Columnset code."," *"," * @property keyIndex"," * @type {Number}"," */"," keyIndex: null,"," "," /*"," * Array of TH IDs associated with this column, for TD \"headers\" attribute."," * Value is set by Columnset code"," *"," * @property headers"," * @type {String[]}"," */"," headers: null,",""," /*"," * Number of cells the header spans. Value is set by Columnset code."," *"," * @property colSpan"," * @type {Number}"," * @default 1"," */"," colSpan: 1,"," "," /*"," * Number of rows the header spans. Value is set by Columnset code."," *"," * @property rowSpan"," * @type {Number}"," * @default 1"," */"," rowSpan: 1,",""," /*"," * Column's parent Column instance, if applicable. Value is set by Columnset"," * code."," *"," * @property parent"," * @type {Column}"," */"," parent: null,",""," /*"," * The Node reference to the associated TH element."," *"," * @property thNode"," * @type {Node}"," */"," "," thNode: null,",""," /*TODO"," * The Node reference to the associated liner element."," *"," * @property thLinerNode"," * @type {Node}"," "," thLinerNode: null,*/"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Initializer."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," },",""," /*"," * Destructor."," *"," * @method destructor"," * @private"," */"," destructor: function() {"," },",""," /*"," * Returns classnames for Column."," *"," * @method _getClassnames"," * @private"," */"," _getClassnames: function () {"," return Y.ClassNameManager.getClassName(COLUMN, this.get(\"key\").replace(/[^\\w\\-]/g,\"\"));"," },",""," ////////////////////////////////////////////////////////////////////////////"," //"," // SYNC"," //"," ////////////////////////////////////////////////////////////////////////////"," /*"," * Syncs UI to intial state."," *"," * @method syncUI"," * @private"," */"," syncUI: function() {"," this._uiSetAbbr(this.get(\"abbr\"));"," },",""," /*"," * Updates abbr."," *"," * @method _uiSetAbbr"," * @param val {String} New abbr."," * @protected"," */"," _uiSetAbbr: function(val) {"," this.thNode.set(\"abbr\", val);"," }","});","","Y.Column = Column;","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","/*"," * The Columnset class defines and manages a collection of Columns."," *"," * @class Columnset"," * @extends Base"," * @constructor"," */","function Columnset(config) {"," Columnset.superclass.constructor.apply(this, arguments);","}","","/////////////////////////////////////////////////////////////////////////////","//","// STATIC PROPERTIES","//","/////////////////////////////////////////////////////////////////////////////","Y.mix(Columnset, {"," /*"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"columnset\""," */"," NAME: \"columnset\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTES"," //"," /////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /*"," * @attribute definitions"," * @description Array of column definitions that will populate this Columnset."," * @type Array"," */"," definitions: {"," setter: \"_setDefinitions\""," }",""," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(Columnset, Y.Base, {"," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTE HELPERS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * @method _setDefinitions"," * @description Clones definitions before setting."," * @param definitions {Array} Array of column definitions."," * @return Array"," * @private"," */"," _setDefinitions: function(definitions) {"," return Y.clone(definitions);"," },"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // PROPERTIES"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Top-down tree representation of Column hierarchy. Used to create DOM"," * elements."," *"," * @property tree"," * @type {Column[]}"," */"," tree: null,",""," /*"," * Hash of all Columns by ID."," *"," * @property idHash"," * @type Object"," */"," idHash: null,",""," /*"," * Hash of all Columns by key."," *"," * @property keyHash"," * @type Object"," */"," keyHash: null,",""," /*"," * Array of only Columns that are meant to be displayed in DOM."," *"," * @property keys"," * @type {Column[]}"," */"," keys: null,",""," /////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Initializer. Generates all internal representations of the collection of"," * Columns."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function() {",""," // DOM tree representation of all Columns"," var tree = [],"," // Hash of all Columns by ID"," idHash = {},"," // Hash of all Columns by key"," keyHash = {},"," // Flat representation of only Columns that are meant to display data"," keys = [],"," // Original definitions"," definitions = this.get(\"definitions\"),",""," self = this;",""," // Internal recursive function to define Column instances"," function parseColumns(depth, currentDefinitions, parent) {"," var i=0,"," len = currentDefinitions.length,"," currentDefinition,"," column,"," currentChildren;",""," // One level down"," depth++;",""," // Create corresponding dom node if not already there for this depth"," if(!tree[depth]) {"," tree[depth] = [];"," }",""," // Parse each node at this depth for attributes and any children"," for(; i maxRowDepth) {"," maxRowDepth = tmpRowDepth;"," }"," }"," }"," }",""," // Count max row depth for each row"," for(m=0; m'"," */"," trTemplate: {"," value: TEMPLATE_TR"," }"," },","","/////////////////////////////////////////////////////////////////////////////","//","// TODO: HTML_PARSER","//","/////////////////////////////////////////////////////////////////////////////"," HTML_PARSER: {"," /*caption: function (srcNode) {"," "," }*/"," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(DTBase, Y.Widget, {"," /*"," * @property thTemplate"," * @description Tokenized markup template for TH node creation."," * @type String"," * @default '{value} '"," */"," thTemplate: TEMPLATE_TH,",""," /*"," * @property tdTemplate"," * @description Tokenized markup template for TD node creation."," * @type String"," * @default '{value} '"," */"," tdTemplate: TEMPLATE_TD,"," "," /*"," * @property _theadNode"," * @description Pointer to THEAD node."," * @type {Node}"," * @private"," */"," _theadNode: null,"," "," /*"," * @property _tbodyNode"," * @description Pointer to TBODY node."," * @type {Node}"," * @private"," */"," _tbodyNode: null,"," "," /*"," * @property _msgNode"," * @description Pointer to message display node."," * @type {Node}"," * @private"," */"," _msgNode: null,",""," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTE HELPERS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * @method _setColumnset"," * @description Converts Array to Y.Columnset."," * @param columns {Array | Y.Columnset}"," * @return {Columnset}"," * @private"," */"," _setColumnset: function(columns) {"," return YLang.isArray(columns) ? new Y.Columnset({definitions:columns}) : columns;"," },",""," /*"," * Updates the UI if Columnset is changed."," *"," * @method _afterColumnsetChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterColumnsetChange: function (e) {"," this._uiSetColumnset(e.newVal);"," },",""," /*"," * @method _setRecordset"," * @description Converts Array to Y.Recordset."," * @param records {Array | Recordset}"," * @return {Recordset}"," * @private"," */"," _setRecordset: function(rs) {"," if(YLang.isArray(rs)) {"," rs = new Y.Recordset({records:rs});"," }",""," rs.addTarget(this);"," return rs;"," },"," "," /*"," * Updates the UI if Recordset is changed."," *"," * @method _afterRecordsetChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterRecordsetChange: function (e) {"," this._uiSetRecordset(e.newVal);"," },",""," /*"," * Updates the UI if Recordset records are changed."," *"," * @method _afterRecordsChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterRecordsChange: function (e) {"," this._uiSetRecordset(this.get('recordset'));"," },",""," /*"," * Updates the UI if summary is changed."," *"," * @method _afterSummaryChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterSummaryChange: function (e) {"," this._uiSetSummary(e.newVal);"," },",""," /*"," * Updates the UI if caption is changed."," *"," * @method _afterCaptionChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterCaptionChange: function (e) {"," this._uiSetCaption(e.newVal);"," },",""," ////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," ////////////////////////////////////////////////////////////////////////////",""," /*"," * Destructor."," *"," * @method destructor"," * @private"," */"," destructor: function() {"," this.get(\"recordset\").removeTarget(this);"," },"," "," ////////////////////////////////////////////////////////////////////////////"," //"," // RENDER"," //"," ////////////////////////////////////////////////////////////////////////////",""," /*"," * Renders UI."," *"," * @method renderUI"," * @private"," */"," renderUI: function() {"," // TABLE"," this._addTableNode(this.get(\"contentBox\"));",""," // COLGROUP"," this._addColgroupNode(this._tableNode);",""," // THEAD"," this._addTheadNode(this._tableNode);",""," // Primary TBODY"," this._addTbodyNode(this._tableNode);",""," // Message TBODY"," this._addMessageNode(this._tableNode);",""," // CAPTION"," this._addCaptionNode(this._tableNode);"," },",""," /*"," * Creates and attaches TABLE element to given container."," *"," * @method _addTableNode"," * @param containerNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addTableNode: function(containerNode) {"," if (!this._tableNode) {"," this._tableNode = containerNode.appendChild(Ycreate(TEMPLATE_TABLE));"," }"," return this._tableNode;"," },",""," /*"," * Creates and attaches COLGROUP element to given TABLE."," *"," * @method _addColgroupNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addColgroupNode: function(tableNode) {"," // Add COLs to DOCUMENT FRAGMENT"," var len = this.get(\"columnset\").keys.length,"," i = 0,"," allCols = [\"\"];",""," for(; i\");",""," // Create COLGROUP"," this._colgroupNode = tableNode.insertBefore(Ycreate(allCols.join(\"\")), tableNode.get(\"firstChild\"));",""," return this._colgroupNode;"," },",""," /*"," * Creates and attaches THEAD element to given container."," *"," * @method _addTheadNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addTheadNode: function(tableNode) {"," if(tableNode) {"," this._theadNode = tableNode.insertBefore(Ycreate(TEMPLATE_THEAD), this._colgroupNode.next());"," return this._theadNode;"," }"," },",""," /*"," * Creates and attaches TBODY element to given container."," *"," * @method _addTbodyNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addTbodyNode: function(tableNode) {"," this._tbodyNode = tableNode.appendChild(Ycreate(TEMPLATE_TBODY));"," return this._tbodyNode;"," },",""," /*"," * Creates and attaches message display element to given container."," *"," * @method _addMessageNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addMessageNode: function(tableNode) {"," this._msgNode = tableNode.insertBefore(Ycreate(TEMPLATE_MSG), this._tbodyNode);"," return this._msgNode;"," },",""," /*"," * Creates and attaches CAPTION element to given container."," *"," * @method _addCaptionNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addCaptionNode: function(tableNode) {"," this._captionNode = Y.Node.create(' ');"," },",""," ////////////////////////////////////////////////////////////////////////////"," //"," // BIND"," //"," ////////////////////////////////////////////////////////////////////////////",""," /*"," * Binds events."," *"," * @method bindUI"," * @private"," */"," bindUI: function() {"," this.after({"," columnsetChange: this._afterColumnsetChange,"," summaryChange : this._afterSummaryChange,"," captionChange : this._afterCaptionChange,"," recordsetChange: this._afterRecordsChange,"," \"recordset:tableChange\": this._afterRecordsChange"," });"," },"," "," delegate: function(type) {"," //TODO: is this necessary?"," if(type===\"dblclick\") {"," this.get(\"boundingBox\").delegate.apply(this.get(\"boundingBox\"), arguments);"," }"," else {"," this.get(\"contentBox\").delegate.apply(this.get(\"contentBox\"), arguments);"," }"," },"," ",""," ////////////////////////////////////////////////////////////////////////////"," //"," // SYNC"," //"," ////////////////////////////////////////////////////////////////////////////",""," /*"," * Syncs UI to intial state."," *"," * @method syncUI"," * @private"," */"," syncUI: function() {"," // THEAD ROWS"," this._uiSetColumnset(this.get(\"columnset\"));"," // DATA ROWS"," this._uiSetRecordset(this.get(\"recordset\"));"," // SUMMARY"," this._uiSetSummary(this.get(\"summary\"));"," // CAPTION"," this._uiSetCaption(this.get(\"caption\"));"," },",""," /*"," * Updates summary."," *"," * @method _uiSetSummary"," * @param val {String} New summary."," * @protected"," */"," _uiSetSummary: function(val) {"," val = YisValue(val) ? val : \"\";"," this._tableNode.set(\"summary\", val);"," },",""," /*"," * Updates caption."," *"," * @method _uiSetCaption"," * @param val {String} New caption."," * @protected"," */"," _uiSetCaption: function(val) {"," var caption = this._captionNode,"," inDoc = caption.inDoc(),"," method = val ? (!inDoc && 'prepend') : (inDoc && 'removeChild');",""," caption.setContent(val || '');",""," if (method) {"," // prepend of remove necessary"," this._tableNode[method](caption);"," }"," },","",""," ////////////////////////////////////////////////////////////////////////////"," //"," // THEAD/COLUMNSET FUNCTIONALITY"," //"," ////////////////////////////////////////////////////////////////////////////"," /*"," * Updates THEAD."," *"," * @method _uiSetColumnset"," * @param cs {Columnset} New Columnset."," * @protected"," */"," _uiSetColumnset: function(cs) {"," var tree = cs.tree,"," thead = this._theadNode,"," i = 0,"," len = tree.length,"," parent = thead.get(\"parentNode\"),"," nextSibling = thead.next();"," "," // Move THEAD off DOM"," thead.remove();"," "," thead.get(\"children\").remove(true);",""," // Iterate tree of columns to add THEAD rows"," for(; i= 0; --i) {"," column = columns[i];"," o.columns[i] = {"," column : column,"," fields : column.get('field'),"," classnames : column.get('classnames'),"," emptyCellValue: column.get('emptyCellValue')"," }",""," formatter = column.get('formatter');",""," if (YLang.isFunction(formatter)) {"," // function formatters need to run before checking if the value"," // needs defaulting from column.emptyCellValue"," formatter = Y.bind(this._functionFormatter, this, formatter);"," } else {"," if (!YLang.isString(formatter)) {"," formatter = cellValueTemplate;"," }",""," // string formatters need the value defaulted before processing"," formatter = Y.bind(this._templateFormatter, this, formatter);"," }",""," o.columns[i].formatter = formatter;"," }","",""," // Iterate Recordset to use existing TR when possible or add new TR"," // TODO i = this.get(\"state.offsetIndex\")"," // TODO len =this.get(\"state.pageLength\")"," for (i = 0, len = rs.size(); i < len; ++i) {"," o.record = rs.item(i);"," o.data = o.record.get(\"data\");"," o.rowindex = i;"," this._addTbodyTrNode(o); //TODO: sometimes rowindex != recordindex"," }"," "," // TBODY to DOM"," parent.insert(this._tbodyNode, nextSibling);"," },",""," _functionFormatter: function (formatter, o) {"," var value = formatter.call(this, o);",""," return (value !== undefined) ? value : o.emptyCellValue;"," },",""," _templateFormatter: function (template, o) {"," if (o.value === undefined) {"," o.value = o.emptyCellValue;"," }",""," return fromTemplate(template, o);"," },",""," /*"," * Creates and attaches data row element."," *"," * @method _addTbodyTrNode"," * @param o {Object} {tbody, record}"," * @protected"," */"," _addTbodyTrNode: function(o) {"," var row = o.tbody.one(\"#\" + o.record.get(\"id\"));",""," o.tr = row || this._createTbodyTrNode(o);",""," this._attachTbodyTrNode(o);"," },",""," /*"," * Creates data row element."," *"," * @method _createTbodyTrNode"," * @param o {Object} {tbody, record}"," * @protected"," * @return {Node}"," */"," _createTbodyTrNode: function(o) {"," var columns = o.columns,"," i, len, columnInfo;",""," o.tr = Ycreate(fromTemplate(o.rowTemplate, { id: o.record.get('id') }));"," "," for (i = 0, len = columns.length; i < len; ++i) {"," columnInfo = columns[i];"," o.column = columnInfo.column;"," o.field = columnInfo.fields;"," o.classnames = columnInfo.classnames;"," o.formatter = columnInfo.formatter;"," o.emptyCellValue= columnInfo.emptyCellValue;",""," this._addTbodyTdNode(o);"," }"," "," return o.tr;"," },",""," /*"," * Attaches data row element."," *"," * @method _attachTbodyTrNode"," * @param o {Object} {tbody, record, tr}."," * @protected"," */"," _attachTbodyTrNode: function(o) {"," var tbody = o.tbody,"," tr = o.tr,"," index = o.rowindex,"," nextSibling = tbody.get(\"children\").item(index) || null,"," isOdd = (index % 2);"," "," if(isOdd) {"," tr.replaceClass(CLASS_EVEN, CLASS_ODD);"," } else {"," tr.replaceClass(CLASS_ODD, CLASS_EVEN);"," }"," "," tbody.insertBefore(tr, nextSibling);"," },",""," /*"," * Creates and attaches data cell element."," *"," * @method _addTbodyTdNode"," * @param o {Object} {record, column, tr}."," * @protected"," */"," _addTbodyTdNode: function(o) {"," o.td = this._createTbodyTdNode(o);"," this._attachTbodyTdNode(o);"," delete o.td;"," },"," "," /*"," Creates a TD Node from the tdTemplate property using the input object as"," template {placeholder} values. The created Node is also assigned to the"," `td` property on the input object.",""," If the input object already has a `td` property, it is returned an no new"," Node is created.",""," @method createCell"," @param {Object} data Template values"," @return {Node}"," **/"," createCell: function (data) {"," return data && (data.td ||"," (data.td = Ycreate(fromTemplate(this.tdTemplate, data))));"," },",""," /*"," * Creates data cell element."," *"," * @method _createTbodyTdNode"," * @param o {Object} {record, column, tr}."," * @protected"," * @return {Node}"," */"," _createTbodyTdNode: function(o) {"," o.headers = o.column.headers;"," o.value = this.formatDataCell(o);",""," return o.td || this.createCell(o);"," },"," "," /*"," * Attaches data cell element."," *"," * @method _attachTbodyTdNode"," * @param o {Object} {record, column, tr, headers, classnames, value}."," * @protected"," */"," _attachTbodyTdNode: function(o) {"," o.tr.appendChild(o.td);"," },",""," /*"," * Returns markup to insert into data cell element."," *"," * @method formatDataCell"," * @param @param o {Object} {record, column, tr, headers, classnames}."," */"," formatDataCell: function (o) {"," o.value = o.data[o.field];",""," return o.formatter.call(this, o);"," },",""," _initRecordset: function () {"," return new Y.Recordset({ records: [] });"," }","});","","Y.namespace(\"DataTable\").Base = DTBase;","","","}, '3.7.1' ,{requires:['recordset-base','widget','substitute','event-mouseenter']});"];
+_yuitest_coverage["/build/datatable-base-deprecated/datatable-base-deprecated.js"].code=["YUI.add('datatable-base-deprecated', function(Y) {","","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","var YLang = Y.Lang,"," YisValue = YLang.isValue,"," fromTemplate = Y.Lang.sub,"," YNode = Y.Node,"," Ycreate = YNode.create,"," YgetClassName = Y.ClassNameManager.getClassName,",""," DATATABLE = \"datatable\","," COLUMN = \"column\","," "," FOCUS = \"focus\","," KEYDOWN = \"keydown\","," MOUSEENTER = \"mouseenter\","," MOUSELEAVE = \"mouseleave\","," MOUSEUP = \"mouseup\","," MOUSEDOWN = \"mousedown\","," CLICK = \"click\","," DBLCLICK = \"dblclick\",",""," CLASS_COLUMNS = YgetClassName(DATATABLE, \"columns\"),"," CLASS_DATA = YgetClassName(DATATABLE, \"data\"),"," CLASS_MSG = YgetClassName(DATATABLE, \"msg\"),"," CLASS_LINER = YgetClassName(DATATABLE, \"liner\"),"," CLASS_FIRST = YgetClassName(DATATABLE, \"first\"),"," CLASS_LAST = YgetClassName(DATATABLE, \"last\"),"," CLASS_EVEN = YgetClassName(DATATABLE, \"even\"),"," CLASS_ODD = YgetClassName(DATATABLE, \"odd\"),",""," TEMPLATE_TABLE = '
',"," TEMPLATE_COL = ' ',"," TEMPLATE_THEAD = '',"," TEMPLATE_TBODY = '',"," TEMPLATE_TH = '{value} ',"," TEMPLATE_TR = ' ',"," TEMPLATE_TD = '{value} ',"," TEMPLATE_VALUE = '{value}',"," TEMPLATE_MSG = '';"," ","","","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","/*"," * The Column class defines and manages attributes of Columns for DataTable."," *"," * @class Column"," * @extends Widget"," * @constructor"," */","function Column(config) {"," Column.superclass.constructor.apply(this, arguments);","}","","/////////////////////////////////////////////////////////////////////////////","//","// STATIC PROPERTIES","//","/////////////////////////////////////////////////////////////////////////////","Y.mix(Column, {"," /*"," * Class name."," *"," * @property NAME"," * @type {String}"," * @static"," * @final"," * @value \"column\""," */"," NAME: \"column\",","","/////////////////////////////////////////////////////////////////////////////","//","// ATTRIBUTES","//","/////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /*"," Unique internal identifier, used to stamp ID on TH element."," "," @attribute id"," @type {String}"," @readOnly"," **/"," id: {"," valueFn: \"_defaultId\","," readOnly: true"," },"," "," /*"," User-supplied identifier. Defaults to id."," @attribute key"," @type {String}"," **/"," key: {"," valueFn: \"_defaultKey\""," },",""," /*"," Points to underlying data field (for sorting or formatting, for"," example). Useful when column doesn't hold any data itself, but is just"," a visual representation of data from another column or record field."," Defaults to key.",""," @attribute field"," @type {String}"," @default (column key)"," **/"," field: {"," valueFn: \"_defaultField\""," },",""," /*"," Display label for column header. Defaults to key.",""," @attribute label"," @type {String}"," **/"," label: {"," valueFn: \"_defaultLabel\""," },"," "," /*"," Array of child column definitions (for nested headers).",""," @attribute children"," @type {String}"," @default null"," **/"," children: {"," value: null"," },"," "," /*"," TH abbr attribute.",""," @attribute abbr"," @type {String}"," @default \"\""," **/"," abbr: {"," value: \"\""," },",""," //TODO: support custom classnames"," // TH CSS classnames"," classnames: {"," readOnly: true,"," getter: \"_getClassnames\""," },"," "," /*"," Formating template string or function for cells in this column.",""," Function formatters receive a single object (described below) and are"," expected to output the `innerHTML` of the cell.",""," String templates can include markup and {placeholder} tokens to be"," filled in from the object passed to function formatters.",""," @attribute formatter"," @type {String|Function}"," @param {Object} data Data relevant to the rendering of this cell"," @param {String} data.classnames CSS classes to add to the cell"," @param {Column} data.column This Column instance"," @param {Object} data.data The raw object data from the Record"," @param {String} data.field This Column's \"field\" attribute value"," @param {String} data.headers TH ids to reference in the cell's"," \"headers\" attribute"," @param {Record} data.record The Record instance for this row"," @param {Number} data.rowindex The index for this row"," @param {Node} data.tbody The TBODY Node that will house the cell"," @param {Node} data.tr The row TR Node that will house the cell"," @param {Any} data.value The raw Record data for this cell"," **/"," formatter: {},",""," /*"," The default markup to display in cells that have no corresponding record"," data or content from formatters.",""," @attribute emptyCellValue"," @type {String}"," @default ''"," **/"," emptyCellValue: {"," value: '',"," validator: Y.Lang.isString"," },",""," //requires datatable-sort"," sortable: {"," value: false"," },"," //sortOptions:defaultDir, sortFn, field",""," //TODO: support editable columns"," // Column editor"," editor: {},",""," //TODO: support resizeable columns"," //TODO: support setting widths"," // requires datatable-colresize"," width: {},"," resizeable: {},"," minimized: {},"," minWidth: {},"," maxAutoWidth: {}"," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(Column, Y.Widget, {"," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTE HELPERS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Return ID for instance."," *"," * @method _defaultId"," * @return {String}"," * @private"," */"," _defaultId: function() {"," return Y.guid();"," },",""," /*"," * Return key for instance. Defaults to ID if one was not provided."," *"," * @method _defaultKey"," * @return {String}"," * @private"," */"," _defaultKey: function() {"," return Y.guid();"," },",""," /*"," * Return field for instance. Defaults to key if one was not provided."," *"," * @method _defaultField"," * @return {String}"," * @private"," */"," _defaultField: function() {"," return this.get(\"key\");"," },",""," /*"," * Return label for instance. Defaults to key if one was not provided."," *"," * @method _defaultLabel"," * @return {String}"," * @private"," */"," _defaultLabel: function() {"," return this.get(\"key\");"," },",""," /*"," * Updates the UI if changes are made to abbr."," *"," * @method _afterAbbrChange"," * @param e {Event} Custom event for the attribute change."," * @private"," */"," _afterAbbrChange: function (e) {"," this._uiSetAbbr(e.newVal);"," },",""," /////////////////////////////////////////////////////////////////////////////"," //"," // PROPERTIES"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Reference to Column's current position index within its Columnset's keys"," * array, if applicable. This property only applies to non-nested and bottom-"," * level child Columns. Value is set by Columnset code."," *"," * @property keyIndex"," * @type {Number}"," */"," keyIndex: null,"," "," /*"," * Array of TH IDs associated with this column, for TD \"headers\" attribute."," * Value is set by Columnset code"," *"," * @property headers"," * @type {String[]}"," */"," headers: null,",""," /*"," * Number of cells the header spans. Value is set by Columnset code."," *"," * @property colSpan"," * @type {Number}"," * @default 1"," */"," colSpan: 1,"," "," /*"," * Number of rows the header spans. Value is set by Columnset code."," *"," * @property rowSpan"," * @type {Number}"," * @default 1"," */"," rowSpan: 1,",""," /*"," * Column's parent Column instance, if applicable. Value is set by Columnset"," * code."," *"," * @property parent"," * @type {Column}"," */"," parent: null,",""," /*"," * The Node reference to the associated TH element."," *"," * @property thNode"," * @type {Node}"," */"," "," thNode: null,",""," /*TODO"," * The Node reference to the associated liner element."," *"," * @property thLinerNode"," * @type {Node}"," "," thLinerNode: null,*/"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Initializer."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," },",""," /*"," * Destructor."," *"," * @method destructor"," * @private"," */"," destructor: function() {"," },",""," /*"," * Returns classnames for Column."," *"," * @method _getClassnames"," * @private"," */"," _getClassnames: function () {"," return Y.ClassNameManager.getClassName(COLUMN, this.get(\"key\").replace(/[^\\w\\-]/g,\"\"));"," },",""," ////////////////////////////////////////////////////////////////////////////"," //"," // SYNC"," //"," ////////////////////////////////////////////////////////////////////////////"," /*"," * Syncs UI to intial state."," *"," * @method syncUI"," * @private"," */"," syncUI: function() {"," this._uiSetAbbr(this.get(\"abbr\"));"," },",""," /*"," * Updates abbr."," *"," * @method _uiSetAbbr"," * @param val {String} New abbr."," * @protected"," */"," _uiSetAbbr: function(val) {"," this.thNode.set(\"abbr\", val);"," }","});","","Y.Column = Column;","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","/*"," * The Columnset class defines and manages a collection of Columns."," *"," * @class Columnset"," * @extends Base"," * @constructor"," */","function Columnset(config) {"," Columnset.superclass.constructor.apply(this, arguments);","}","","/////////////////////////////////////////////////////////////////////////////","//","// STATIC PROPERTIES","//","/////////////////////////////////////////////////////////////////////////////","Y.mix(Columnset, {"," /*"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"columnset\""," */"," NAME: \"columnset\",",""," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTES"," //"," /////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /*"," * @attribute definitions"," * @description Array of column definitions that will populate this Columnset."," * @type Array"," */"," definitions: {"," setter: \"_setDefinitions\""," }",""," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(Columnset, Y.Base, {"," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTE HELPERS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * @method _setDefinitions"," * @description Clones definitions before setting."," * @param definitions {Array} Array of column definitions."," * @return Array"," * @private"," */"," _setDefinitions: function(definitions) {"," return Y.clone(definitions);"," },"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // PROPERTIES"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Top-down tree representation of Column hierarchy. Used to create DOM"," * elements."," *"," * @property tree"," * @type {Column[]}"," */"," tree: null,",""," /*"," * Hash of all Columns by ID."," *"," * @property idHash"," * @type Object"," */"," idHash: null,",""," /*"," * Hash of all Columns by key."," *"," * @property keyHash"," * @type Object"," */"," keyHash: null,",""," /*"," * Array of only Columns that are meant to be displayed in DOM."," *"," * @property keys"," * @type {Column[]}"," */"," keys: null,",""," /////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Initializer. Generates all internal representations of the collection of"," * Columns."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function() {",""," // DOM tree representation of all Columns"," var tree = [],"," // Hash of all Columns by ID"," idHash = {},"," // Hash of all Columns by key"," keyHash = {},"," // Flat representation of only Columns that are meant to display data"," keys = [],"," // Original definitions"," definitions = this.get(\"definitions\"),",""," self = this;",""," // Internal recursive function to define Column instances"," function parseColumns(depth, currentDefinitions, parent) {"," var i=0,"," len = currentDefinitions.length,"," currentDefinition,"," column,"," currentChildren;",""," // One level down"," depth++;",""," // Create corresponding dom node if not already there for this depth"," if(!tree[depth]) {"," tree[depth] = [];"," }",""," // Parse each node at this depth for attributes and any children"," for(; i maxRowDepth) {"," maxRowDepth = tmpRowDepth;"," }"," }"," }"," }",""," // Count max row depth for each row"," for(m=0; m'"," */"," trTemplate: {"," value: TEMPLATE_TR"," }"," },","","/////////////////////////////////////////////////////////////////////////////","//","// TODO: HTML_PARSER","//","/////////////////////////////////////////////////////////////////////////////"," HTML_PARSER: {"," /*caption: function (srcNode) {"," "," }*/"," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(DTBase, Y.Widget, {"," /*"," * @property thTemplate"," * @description Tokenized markup template for TH node creation."," * @type String"," * @default '{value} '"," */"," thTemplate: TEMPLATE_TH,",""," /*"," * @property tdTemplate"," * @description Tokenized markup template for TD node creation."," * @type String"," * @default '{value} '"," */"," tdTemplate: TEMPLATE_TD,"," "," /*"," * @property _theadNode"," * @description Pointer to THEAD node."," * @type {Node}"," * @private"," */"," _theadNode: null,"," "," /*"," * @property _tbodyNode"," * @description Pointer to TBODY node."," * @type {Node}"," * @private"," */"," _tbodyNode: null,"," "," /*"," * @property _msgNode"," * @description Pointer to message display node."," * @type {Node}"," * @private"," */"," _msgNode: null,",""," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTE HELPERS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * @method _setColumnset"," * @description Converts Array to Y.Columnset."," * @param columns {Array | Y.Columnset}"," * @return {Columnset}"," * @private"," */"," _setColumnset: function(columns) {"," return YLang.isArray(columns) ? new Y.Columnset({definitions:columns}) : columns;"," },",""," /*"," * Updates the UI if Columnset is changed."," *"," * @method _afterColumnsetChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterColumnsetChange: function (e) {"," this._uiSetColumnset(e.newVal);"," },",""," /*"," * @method _setRecordset"," * @description Converts Array to Y.Recordset."," * @param records {Array | Recordset}"," * @return {Recordset}"," * @private"," */"," _setRecordset: function(rs) {"," if(YLang.isArray(rs)) {"," rs = new Y.Recordset({records:rs});"," }",""," rs.addTarget(this);"," return rs;"," },"," "," /*"," * Updates the UI if Recordset is changed."," *"," * @method _afterRecordsetChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterRecordsetChange: function (e) {"," this._uiSetRecordset(e.newVal);"," },",""," /*"," * Updates the UI if Recordset records are changed."," *"," * @method _afterRecordsChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterRecordsChange: function (e) {"," this._uiSetRecordset(this.get('recordset'));"," },",""," /*"," * Updates the UI if summary is changed."," *"," * @method _afterSummaryChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterSummaryChange: function (e) {"," this._uiSetSummary(e.newVal);"," },",""," /*"," * Updates the UI if caption is changed."," *"," * @method _afterCaptionChange"," * @param e {Event} Custom event for the attribute change."," * @protected"," */"," _afterCaptionChange: function (e) {"," this._uiSetCaption(e.newVal);"," },",""," ////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," ////////////////////////////////////////////////////////////////////////////",""," /*"," * Destructor."," *"," * @method destructor"," * @private"," */"," destructor: function() {"," this.get(\"recordset\").removeTarget(this);"," },"," "," ////////////////////////////////////////////////////////////////////////////"," //"," // RENDER"," //"," ////////////////////////////////////////////////////////////////////////////",""," /*"," * Renders UI."," *"," * @method renderUI"," * @private"," */"," renderUI: function() {"," // TABLE"," this._addTableNode(this.get(\"contentBox\"));",""," // COLGROUP"," this._addColgroupNode(this._tableNode);",""," // THEAD"," this._addTheadNode(this._tableNode);",""," // Primary TBODY"," this._addTbodyNode(this._tableNode);",""," // Message TBODY"," this._addMessageNode(this._tableNode);",""," // CAPTION"," this._addCaptionNode(this._tableNode);"," },",""," /*"," * Creates and attaches TABLE element to given container."," *"," * @method _addTableNode"," * @param containerNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addTableNode: function(containerNode) {"," if (!this._tableNode) {"," this._tableNode = containerNode.appendChild(Ycreate(TEMPLATE_TABLE));"," }"," return this._tableNode;"," },",""," /*"," * Creates and attaches COLGROUP element to given TABLE."," *"," * @method _addColgroupNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addColgroupNode: function(tableNode) {"," // Add COLs to DOCUMENT FRAGMENT"," var len = this.get(\"columnset\").keys.length,"," i = 0,"," allCols = [\"\"];",""," for(; i\");",""," // Create COLGROUP"," this._colgroupNode = tableNode.insertBefore(Ycreate(allCols.join(\"\")), tableNode.get(\"firstChild\"));",""," return this._colgroupNode;"," },",""," /*"," * Creates and attaches THEAD element to given container."," *"," * @method _addTheadNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addTheadNode: function(tableNode) {"," if(tableNode) {"," this._theadNode = tableNode.insertBefore(Ycreate(TEMPLATE_THEAD), this._colgroupNode.next());"," return this._theadNode;"," }"," },",""," /*"," * Creates and attaches TBODY element to given container."," *"," * @method _addTbodyNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addTbodyNode: function(tableNode) {"," this._tbodyNode = tableNode.appendChild(Ycreate(TEMPLATE_TBODY));"," return this._tbodyNode;"," },",""," /*"," * Creates and attaches message display element to given container."," *"," * @method _addMessageNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addMessageNode: function(tableNode) {"," this._msgNode = tableNode.insertBefore(Ycreate(TEMPLATE_MSG), this._tbodyNode);"," return this._msgNode;"," },",""," /*"," * Creates and attaches CAPTION element to given container."," *"," * @method _addCaptionNode"," * @param tableNode {Node} Parent node."," * @protected"," * @return {Node}"," */"," _addCaptionNode: function(tableNode) {"," this._captionNode = Y.Node.create(' ');"," },",""," ////////////////////////////////////////////////////////////////////////////"," //"," // BIND"," //"," ////////////////////////////////////////////////////////////////////////////",""," /*"," * Binds events."," *"," * @method bindUI"," * @private"," */"," bindUI: function() {"," this.after({"," columnsetChange: this._afterColumnsetChange,"," summaryChange : this._afterSummaryChange,"," captionChange : this._afterCaptionChange,"," recordsetChange: this._afterRecordsChange,"," \"recordset:tableChange\": this._afterRecordsChange"," });"," },"," "," delegate: function(type) {"," //TODO: is this necessary?"," if(type===\"dblclick\") {"," this.get(\"boundingBox\").delegate.apply(this.get(\"boundingBox\"), arguments);"," }"," else {"," this.get(\"contentBox\").delegate.apply(this.get(\"contentBox\"), arguments);"," }"," },"," ",""," ////////////////////////////////////////////////////////////////////////////"," //"," // SYNC"," //"," ////////////////////////////////////////////////////////////////////////////",""," /*"," * Syncs UI to intial state."," *"," * @method syncUI"," * @private"," */"," syncUI: function() {"," // THEAD ROWS"," this._uiSetColumnset(this.get(\"columnset\"));"," // DATA ROWS"," this._uiSetRecordset(this.get(\"recordset\"));"," // SUMMARY"," this._uiSetSummary(this.get(\"summary\"));"," // CAPTION"," this._uiSetCaption(this.get(\"caption\"));"," },",""," /*"," * Updates summary."," *"," * @method _uiSetSummary"," * @param val {String} New summary."," * @protected"," */"," _uiSetSummary: function(val) {"," val = YisValue(val) ? val : \"\";"," this._tableNode.set(\"summary\", val);"," },",""," /*"," * Updates caption."," *"," * @method _uiSetCaption"," * @param val {String} New caption."," * @protected"," */"," _uiSetCaption: function(val) {"," var caption = this._captionNode,"," inDoc = caption.inDoc(),"," method = val ? (!inDoc && 'prepend') : (inDoc && 'removeChild');",""," caption.setContent(val || '');",""," if (method) {"," // prepend of remove necessary"," this._tableNode[method](caption);"," }"," },","",""," ////////////////////////////////////////////////////////////////////////////"," //"," // THEAD/COLUMNSET FUNCTIONALITY"," //"," ////////////////////////////////////////////////////////////////////////////"," /*"," * Updates THEAD."," *"," * @method _uiSetColumnset"," * @param cs {Columnset} New Columnset."," * @protected"," */"," _uiSetColumnset: function(cs) {"," var tree = cs.tree,"," thead = this._theadNode,"," i = 0,"," len = tree.length,"," parent = thead.get(\"parentNode\"),"," nextSibling = thead.next();"," "," // Move THEAD off DOM"," thead.remove();"," "," thead.get(\"children\").remove(true);",""," // Iterate tree of columns to add THEAD rows"," for(; i= 0; --i) {"," column = columns[i];"," o.columns[i] = {"," column : column,"," fields : column.get('field'),"," classnames : column.get('classnames'),"," emptyCellValue: column.get('emptyCellValue')"," }",""," formatter = column.get('formatter');",""," if (YLang.isFunction(formatter)) {"," // function formatters need to run before checking if the value"," // needs defaulting from column.emptyCellValue"," formatter = Y.bind(this._functionFormatter, this, formatter);"," } else {"," if (!YLang.isString(formatter)) {"," formatter = cellValueTemplate;"," }",""," // string formatters need the value defaulted before processing"," formatter = Y.bind(this._templateFormatter, this, formatter);"," }",""," o.columns[i].formatter = formatter;"," }","",""," // Iterate Recordset to use existing TR when possible or add new TR"," // TODO i = this.get(\"state.offsetIndex\")"," // TODO len =this.get(\"state.pageLength\")"," for (i = 0, len = rs.size(); i < len; ++i) {"," o.record = rs.item(i);"," o.data = o.record.get(\"data\");"," o.rowindex = i;"," this._addTbodyTrNode(o); //TODO: sometimes rowindex != recordindex"," }"," "," // TBODY to DOM"," parent.insert(this._tbodyNode, nextSibling);"," },",""," _functionFormatter: function (formatter, o) {"," var value = formatter.call(this, o);",""," return (value !== undefined) ? value : o.emptyCellValue;"," },",""," _templateFormatter: function (template, o) {"," if (o.value === undefined) {"," o.value = o.emptyCellValue;"," }",""," return fromTemplate(template, o);"," },",""," /*"," * Creates and attaches data row element."," *"," * @method _addTbodyTrNode"," * @param o {Object} {tbody, record}"," * @protected"," */"," _addTbodyTrNode: function(o) {"," var row = o.tbody.one(\"#\" + o.record.get(\"id\"));",""," o.tr = row || this._createTbodyTrNode(o);",""," this._attachTbodyTrNode(o);"," },",""," /*"," * Creates data row element."," *"," * @method _createTbodyTrNode"," * @param o {Object} {tbody, record}"," * @protected"," * @return {Node}"," */"," _createTbodyTrNode: function(o) {"," var columns = o.columns,"," i, len, columnInfo;",""," o.tr = Ycreate(fromTemplate(o.rowTemplate, { id: o.record.get('id') }));"," "," for (i = 0, len = columns.length; i < len; ++i) {"," columnInfo = columns[i];"," o.column = columnInfo.column;"," o.field = columnInfo.fields;"," o.classnames = columnInfo.classnames;"," o.formatter = columnInfo.formatter;"," o.emptyCellValue= columnInfo.emptyCellValue;",""," this._addTbodyTdNode(o);"," }"," "," return o.tr;"," },",""," /*"," * Attaches data row element."," *"," * @method _attachTbodyTrNode"," * @param o {Object} {tbody, record, tr}."," * @protected"," */"," _attachTbodyTrNode: function(o) {"," var tbody = o.tbody,"," tr = o.tr,"," index = o.rowindex,"," nextSibling = tbody.get(\"children\").item(index) || null,"," isOdd = (index % 2);"," "," if(isOdd) {"," tr.replaceClass(CLASS_EVEN, CLASS_ODD);"," } else {"," tr.replaceClass(CLASS_ODD, CLASS_EVEN);"," }"," "," tbody.insertBefore(tr, nextSibling);"," },",""," /*"," * Creates and attaches data cell element."," *"," * @method _addTbodyTdNode"," * @param o {Object} {record, column, tr}."," * @protected"," */"," _addTbodyTdNode: function(o) {"," o.td = this._createTbodyTdNode(o);"," this._attachTbodyTdNode(o);"," delete o.td;"," },"," "," /*"," Creates a TD Node from the tdTemplate property using the input object as"," template {placeholder} values. The created Node is also assigned to the"," `td` property on the input object.",""," If the input object already has a `td` property, it is returned an no new"," Node is created.",""," @method createCell"," @param {Object} data Template values"," @return {Node}"," **/"," createCell: function (data) {"," return data && (data.td ||"," (data.td = Ycreate(fromTemplate(this.tdTemplate, data))));"," },",""," /*"," * Creates data cell element."," *"," * @method _createTbodyTdNode"," * @param o {Object} {record, column, tr}."," * @protected"," * @return {Node}"," */"," _createTbodyTdNode: function(o) {"," o.headers = o.column.headers;"," o.value = this.formatDataCell(o);",""," return o.td || this.createCell(o);"," },"," "," /*"," * Attaches data cell element."," *"," * @method _attachTbodyTdNode"," * @param o {Object} {record, column, tr, headers, classnames, value}."," * @protected"," */"," _attachTbodyTdNode: function(o) {"," o.tr.appendChild(o.td);"," },",""," /*"," * Returns markup to insert into data cell element."," *"," * @method formatDataCell"," * @param @param o {Object} {record, column, tr, headers, classnames}."," */"," formatDataCell: function (o) {"," o.value = o.data[o.field];",""," return o.formatter.call(this, o);"," },",""," _initRecordset: function () {"," return new Y.Recordset({ records: [] });"," }","});","","Y.namespace(\"DataTable\").Base = DTBase;","","","}, '3.7.2' ,{requires:['recordset-base','widget','substitute','event-mouseenter']});"];
_yuitest_coverage["/build/datatable-base-deprecated/datatable-base-deprecated.js"].lines = {"1":0,"6":0,"56":0,"57":0,"65":0,"222":0,"236":0,"247":0,"258":0,"269":0,"280":0,"382":0,"397":0,"408":0,"412":0,"423":0,"424":0,"432":0,"467":0,"481":0,"538":0,"551":0,"552":0,"559":0,"562":0,"563":0,"567":0,"568":0,"570":0,"573":0,"576":0,"579":0,"580":0,"583":0,"584":0,"588":0,"589":0,"590":0,"592":0,"594":0,"597":0,"598":0,"600":0,"604":0,"607":0,"611":0,"613":0,"617":0,"621":0,"622":0,"623":0,"624":0,"626":0,"627":0,"652":0,"657":0,"658":0,"659":0,"660":0,"662":0,"663":0,"665":0,"666":0,"668":0,"669":0,"671":0,"672":0,"674":0,"675":0,"677":0,"678":0,"680":0,"681":0,"683":0,"684":0,"698":0,"700":0,"701":0,"706":0,"708":0,"709":0,"713":0,"717":0,"718":0,"728":0,"729":0,"735":0,"736":0,"738":0,"742":0,"743":0,"745":0,"746":0,"747":0,"748":0,"751":0,"752":0,"753":0,"754":0,"758":0,"759":0,"766":0,"767":0,"768":0,"771":0,"772":0,"773":0,"774":0,"781":0,"784":0,"793":0,"797":0,"798":0,"799":0,"800":0,"803":0,"804":0,"805":0,"806":0,"807":0,"816":0,"866":0,"867":0,"875":0,"989":0,"1043":0,"1054":0,"1065":0,"1066":0,"1069":0,"1070":0,"1081":0,"1092":0,"1103":0,"1114":0,"1130":0,"1147":0,"1150":0,"1153":0,"1156":0,"1159":0,"1162":0,"1174":0,"1175":0,"1177":0,"1190":0,"1194":0,"1195":0,"1198":0,"1201":0,"1203":0,"1215":0,"1216":0,"1217":0,"1230":0,"1231":0,"1243":0,"1244":0,"1256":0,"1272":0,"1283":0,"1284":0,"1287":0,"1306":0,"1308":0,"1310":0,"1312":0,"1323":0,"1324":0,"1335":0,"1339":0,"1341":0,"1343":0,"1361":0,"1369":0,"1371":0,"1374":0,"1375":0,"1387":0,"1401":0,"1402":0,"1418":0,"1425":0,"1426":0,"1428":0,"1429":0,"1432":0,"1433":0,"1434":0,"1437":0,"1448":0,"1459":0,"1460":0,"1462":0,"1474":0,"1477":0,"1478":0,"1479":0,"1480":0,"1481":0,"1482":0,"1491":0,"1502":0,"1518":0,"1529":0,"1530":0,"1531":0,"1532":0,"1533":0,"1534":0,"1536":0,"1537":0,"1541":0,"1542":0,"1543":0,"1550":0,"1552":0,"1555":0,"1557":0,"1558":0,"1562":0,"1565":0,"1572":0,"1573":0,"1574":0,"1575":0,"1576":0,"1580":0,"1584":0,"1586":0,"1590":0,"1591":0,"1594":0,"1605":0,"1607":0,"1609":0,"1621":0,"1624":0,"1626":0,"1627":0,"1628":0,"1629":0,"1630":0,"1631":0,"1632":0,"1634":0,"1637":0,"1648":0,"1654":0,"1655":0,"1657":0,"1660":0,"1671":0,"1672":0,"1673":0,"1689":0,"1702":0,"1703":0,"1705":0,"1716":0,"1726":0,"1728":0,"1732":0,"1736":0};
_yuitest_coverage["/build/datatable-base-deprecated/datatable-base-deprecated.js"].functions = {"Column:56":0,"_defaultId:235":0,"_defaultKey:246":0,"_defaultField:257":0,"_defaultLabel:268":0,"_afterAbbrChange:279":0,"_getClassnames:381":0,"syncUI:396":0,"_uiSetAbbr:407":0,"Columnset:423":0,"_setDefinitions:480":0,"parseColumns:551":0,"initializer:535":0,"_cascadePropertiesToChildren:650":0,"countTerminalChildNodes:700":0,"_setColSpans:696":0,"countMaxRowDepth:735":0,"parseDomTreeForRowSpan:728":0,"_setRowSpans:726":0,"recurseAncestorsForHeaders:797":0,"_setHeaders:792":0,"DTBase:866":0,"_setColumnset:1042":0,"_afterColumnsetChange:1053":0,"_setRecordset:1064":0,"_afterRecordsetChange:1080":0,"_afterRecordsChange:1091":0,"_afterSummaryChange:1102":0,"_afterCaptionChange:1113":0,"destructor:1129":0,"renderUI:1145":0,"_addTableNode:1173":0,"_addColgroupNode:1188":0,"_addTheadNode:1214":0,"_addTbodyNode:1229":0,"_addMessageNode:1242":0,"_addCaptionNode:1255":0,"bindUI:1271":0,"delegate:1281":0,"syncUI:1304":0,"_uiSetSummary:1322":0,"_uiSetCaption:1334":0,"_uiSetColumnset:1360":0,"_addTheadTrNode:1400":0,"_createTheadTrNode:1416":0,"_attachTheadTrNode:1447":0,"_addTheadThNode:1458":0,"_createTheadThNode:1473":0,"_attachTheadThNode:1501":0,"_uiSetRecordset:1517":0,"_functionFormatter:1583":0,"_templateFormatter:1589":0,"_addTbodyTrNode:1604":0,"_createTbodyTrNode:1620":0,"_attachTbodyTrNode:1647":0,"_addTbodyTdNode:1670":0,"createCell:1688":0,"_createTbodyTdNode:1701":0,"_attachTbodyTdNode:1715":0,"formatDataCell:1725":0,"_initRecordset:1731":0,"(anonymous 1):1":0};
_yuitest_coverage["/build/datatable-base-deprecated/datatable-base-deprecated.js"].coveredLines = 264;
@@ -2101,4 +2101,4 @@ _yuitest_coverline("/build/datatable-base-deprecated/datatable-base-deprecated.j
Y.namespace("DataTable").Base = DTBase;
-}, '3.7.1' ,{requires:['recordset-base','widget','substitute','event-mouseenter']});
+}, '3.7.2' ,{requires:['recordset-base','widget','substitute','event-mouseenter']});
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/datatable-base-deprecated-debug.js b/lib/yuilib/3.7.2/build/datatable-base-deprecated/datatable-base-deprecated-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/datatable-base-deprecated-debug.js
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/datatable-base-deprecated-debug.js
index 3c4676b7b04..cadd43123d3 100644
--- a/lib/yuilib/3.7.1/build/datatable-base-deprecated/datatable-base-deprecated-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-base-deprecated/datatable-base-deprecated-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1742,4 +1742,4 @@ Y.extend(DTBase, Y.Widget, {
Y.namespace("DataTable").Base = DTBase;
-}, '3.7.1' ,{requires:['recordset-base','widget','substitute','event-mouseenter']});
+}, '3.7.2' ,{requires:['recordset-base','widget','substitute','event-mouseenter']});
diff --git a/lib/yuilib/3.7.1/build/datatable-base-deprecated/datatable-base-deprecated-min.js b/lib/yuilib/3.7.2/build/datatable-base-deprecated/datatable-base-deprecated-min.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-base-deprecated/datatable-base-deprecated-min.js
rename to lib/yuilib/3.7.2/build/datatable-base-deprecated/datatable-base-deprecated-min.js
index c9c998a14cb..a020506a78f 100644
--- a/lib/yuilib/3.7.1/build/datatable-base-deprecated/datatable-base-deprecated-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-base-deprecated/datatable-base-deprecated-min.js
@@ -1,8 +1,8 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
YUI.add("datatable-base-deprecated",function(c){var w=c.Lang,g=w.isValue,F=c.Lang.sub,d=c.Node,t=d.create,p=c.ClassNameManager.getClassName,q="datatable",r="column",H="focus",K="keydown",h="mouseenter",o="mouseleave",k="mouseup",z="mousedown",C="click",v="dblclick",e=p(q,"columns"),B=p(q,"data"),b=p(q,"msg"),l=p(q,"liner"),E=p(q,"first"),i=p(q,"last"),u=p(q,"even"),A=p(q,"odd"),D="
",x=" ",I='',f='',J='{value} ',G=' ',a='{value} ',j="{value}",n='';function m(L){m.superclass.constructor.apply(this,arguments);}c.mix(m,{NAME:"column",ATTRS:{id:{valueFn:"_defaultId",readOnly:true},key:{valueFn:"_defaultKey"},field:{valueFn:"_defaultField"},label:{valueFn:"_defaultLabel"},children:{value:null},abbr:{value:""},classnames:{readOnly:true,getter:"_getClassnames"},formatter:{},emptyCellValue:{value:"",validator:c.Lang.isString},sortable:{value:false},editor:{},width:{},resizeable:{},minimized:{},minWidth:{},maxAutoWidth:{}}});c.extend(m,c.Widget,{_defaultId:function(){return c.guid();},_defaultKey:function(){return c.guid();},_defaultField:function(){return this.get("key");},_defaultLabel:function(){return this.get("key");},_afterAbbrChange:function(L){this._uiSetAbbr(L.newVal);},keyIndex:null,headers:null,colSpan:1,rowSpan:1,parent:null,thNode:null,initializer:function(L){},destructor:function(){},_getClassnames:function(){return c.ClassNameManager.getClassName(r,this.get("key").replace(/[^\w\-]/g,""));},syncUI:function(){this._uiSetAbbr(this.get("abbr"));},_uiSetAbbr:function(L){this.thNode.set("abbr",L);}});c.Column=m;function y(L){y.superclass.constructor.apply(this,arguments);}c.mix(y,{NAME:"columnset",ATTRS:{definitions:{setter:"_setDefinitions"}}});c.extend(y,c.Base,{_setDefinitions:function(L){return c.clone(L);},tree:null,idHash:null,keyHash:null,keys:null,initializer:function(){var L=[],Q={},R={},P=[],O=this.get("definitions"),M=this;function N(Z,Y,X){var U=0,T=Y.length,W,V,S;Z++;if(!L[Z]){L[Z]=[];}for(;UO){O=W;}}}}}for(M=0;M"];for(;M");this._colgroupNode=N.insertBefore(t(O.join("")),N.get("firstChild"));return this._colgroupNode;},_addTheadNode:function(L){if(L){this._theadNode=L.insertBefore(t(I),this._colgroupNode.next());return this._theadNode;}},_addTbodyNode:function(L){this._tbodyNode=L.appendChild(t(f));
-return this._tbodyNode;},_addMessageNode:function(L){this._msgNode=L.insertBefore(t(n),this._tbodyNode);return this._msgNode;},_addCaptionNode:function(L){this._captionNode=c.Node.create(" ");},bindUI:function(){this.after({columnsetChange:this._afterColumnsetChange,summaryChange:this._afterSummaryChange,captionChange:this._afterCaptionChange,recordsetChange:this._afterRecordsChange,"recordset:tableChange":this._afterRecordsChange});},delegate:function(L){if(L==="dblclick"){this.get("boundingBox").delegate.apply(this.get("boundingBox"),arguments);}else{this.get("contentBox").delegate.apply(this.get("contentBox"),arguments);}},syncUI:function(){this._uiSetColumnset(this.get("columnset"));this._uiSetRecordset(this.get("recordset"));this._uiSetSummary(this.get("summary"));this._uiSetCaption(this.get("caption"));},_uiSetSummary:function(L){L=g(L)?L:"";this._tableNode.set("summary",L);},_uiSetCaption:function(N){var L=this._captionNode,M=L.inDoc(),O=N?(!M&&"prepend"):(M&&"removeChild");L.setContent(N||"");if(O){this._tableNode[O](L);}},_uiSetColumnset:function(P){var M=P.tree,R=this._theadNode,N=0,L=M.length,O=R.get("parentNode"),Q=R.next();R.remove();R.get("children").remove(true);for(;N=0;--Q){M=N[Q];L.columns[Q]={column:M,fields:M.get("field"),classnames:M.get("classnames"),emptyCellValue:M.get("emptyCellValue")};V=M.get("formatter");if(w.isFunction(V)){V=c.bind(this._functionFormatter,this,V);}else{if(!w.isString(V)){V=R;}V=c.bind(this._templateFormatter,this,V);}L.columns[Q].formatter=V;}for(Q=0,S=O.size();Q");},bindUI:function(){this.after({columnsetChange:this._afterColumnsetChange,summaryChange:this._afterSummaryChange,captionChange:this._afterCaptionChange,recordsetChange:this._afterRecordsChange,"recordset:tableChange":this._afterRecordsChange});},delegate:function(L){if(L==="dblclick"){this.get("boundingBox").delegate.apply(this.get("boundingBox"),arguments);}else{this.get("contentBox").delegate.apply(this.get("contentBox"),arguments);}},syncUI:function(){this._uiSetColumnset(this.get("columnset"));this._uiSetRecordset(this.get("recordset"));this._uiSetSummary(this.get("summary"));this._uiSetCaption(this.get("caption"));},_uiSetSummary:function(L){L=g(L)?L:"";this._tableNode.set("summary",L);},_uiSetCaption:function(N){var L=this._captionNode,M=L.inDoc(),O=N?(!M&&"prepend"):(M&&"removeChild");L.setContent(N||"");if(O){this._tableNode[O](L);}},_uiSetColumnset:function(P){var M=P.tree,R=this._theadNode,N=0,L=M.length,O=R.get("parentNode"),Q=R.next();R.remove();R.get("children").remove(true);for(;N=0;--Q){M=N[Q];L.columns[Q]={column:M,fields:M.get("field"),classnames:M.get("classnames"),emptyCellValue:M.get("emptyCellValue")};V=M.get("formatter");if(w.isFunction(V)){V=c.bind(this._functionFormatter,this,V);}else{if(!w.isString(V)){V=R;}V=c.bind(this._templateFormatter,this,V);}L.columns[Q].formatter=V;}for(Q=0,S=O.size();Q","// The functionality of this table would require additional modules be use()d,","// but the feature APIs are aggregated onto Y.DataTable.","// (Snippet is for illustration. Not all features are available today.)","var table = new Y.DataTable({"," columns: ["," { type: 'checkbox', defaultChecked: true },"," { key: 'firstName', sortable: true, resizable: true },"," { key: 'lastName', sortable: true },"," { key: 'role', formatter: toRoleName }"," ],"," data: {"," source: 'http://myserver.com/service/json',"," type: 'json',"," schema: {"," resultListLocator: 'results.users',"," fields: ["," 'username',"," 'firstName',"," 'lastName',"," { key: 'role', type: 'number' }"," ]"," }"," },"," recordType: UserModel,"," pagedData: {"," location: 'footer',"," pageSizes: [20, 50, 'all'],"," rowsPerPage: 20,"," pageLinks: 5"," },"," editable: true","});","","","### Column Configuration","","The column configurations are set in the form of an array of objects, where","each object corresponds to a column. For columns populated directly from the","row data, a 'key' property is required to bind the column to that property or","attribute in the row data.","","Not all columns need to relate to row data, nor do all properties or attributes","of the row data need to have a corresponding column. However, only those","columns included in the `columns` configuration attribute will be rendered.","","Other column configuration properties are supported by the configured","`view`, class as well as any features added by plugins or class extensions.","See the description of DataTable.TableView and its subviews","DataTable.HeaderView, DataTable.BodyView, and DataTable.FooterView (and other","DataTable feature classes) to see what column properties they support.","","Some examples of column configurations would be:","","","// Basic","var columns = [{ key: 'firstName' }, { key: 'lastName' }, { key: 'age' }];","","// For columns without any additional configuration, strings can be used","var columns = ['firstName', 'lastName', 'age'];","","// Multi-row column headers (see DataTable.HeaderView for details)","var columns = ["," {"," label: 'Name',"," children: ["," { key: 'firstName' },"," { key: 'lastName' }"," ]"," },"," 'age' // mixing and matching objects and strings is ok","];","","// Including columns that are not related 1:1 to row data fields/attributes","// (See DataTable.BodyView for details)","var columns = ["," {"," label: 'Name', // Needed for the column header"," formatter: function (o) {"," // Fill the column cells with data from firstName and lastName"," if (o.data.age > 55) {"," o.className += ' senior';"," }"," return o.data.lastName + ', ' + o.data.firstName;"," }"," },"," 'age'","];","","// Columns that include feature configurations (for illustration; not all","// features are available today).","var columns = ["," { type: 'checkbox', defaultChecked: true },"," { key: 'firstName', sortable: true, resizable: true, min-width: '300px' },"," { key: 'lastName', sortable: true, resizable: true, min-width: '300px' },"," { key: 'age', emptyCellValue: 'unknown' }","];","
","","### Row Data Configuration","","The `data` configuration attribute is responsible for housing the data objects that will be rendered as rows. You can provide this information in two ways by default:","","1. An array of simple objects with key:value pairs","2. A ModelList of Base-based class instances (presumably Model subclass"," instances)","","If an array of objects is passed, it will be translated into a ModelList filled","with instances of the class provided to the `recordType` attribute. This","attribute can also create a custom Model subclass from an array of field names","or an object of attribute configurations. If no `recordType` is provided, one","will be created for you from available information (see `_initRecordType`).","Providing either your own ModelList instance for `data`, or at least Model","class for `recordType`, is the best way to control client-server","synchronization when modifying data on the client side.","","The ModelList instance that manages the table's data is available in the `data`","property on the DataTable instance.","","","### Rendering","","Table rendering is a collaborative process between the DataTable and its","configured `view`. The DataTable creates an instance of the configured `view`","(DataTable.TableView by default), and calls its `render()` method.","DataTable.TableView, for instance, then creates the `` and ``,","then delegates the rendering of the specific sections of the table to subviews,","which can be configured as `headerView`, `bodyView`, and `footerView`.","DataTable.TableView defaults the `headerView` to DataTable.HeaderView and the","`bodyView` to DataTable.BodyView, but leaves the `footerView` unassigned.","Setting any subview to `null` will result in that table section not being","rendered.","","@class DataTable","@extends DataTable.Base","@since 3.5.0","**/","","// DataTable API docs included before DataTable.Base to make yuidoc work","/**","The baseline implementation of a DataTable. This class should be used","primarily as a superclass for a custom DataTable with a specific set of","features. Because features can be composed onto `Y.DataTable`, custom","subclasses of DataTable.Base will remain unmodified when new feature modules","are loaded.","","Example usage might look like this:","","","// Custom subclass with only sorting and mutability added. If other datatable","// feature modules are loaded, this class will not be affected.","var MyTableClass = Y.Base.create('table', Y.DataTable.Base,"," [ Y.DataTable.Sortable, Y.DataTable.Mutable ]);","","var table = new MyTableClass({"," columns: ['firstName', 'lastName', 'age'],"," data: ["," { firstName: 'Frank', lastName: 'Zappa', age: 71 },"," { firstName: 'Frank', lastName: 'Lloyd Wright', age: 144 },"," { firstName: 'Albert', lastName: 'Einstein', age: 132 },"," ..."," ]","});","","table.render('#over-there');","","// DataTable.Base can be instantiated if a featureless table is needed.","var table = new Y.DataTable.Base({"," columns: ['firstName', 'lastName', 'age'],"," data: ["," { firstName: 'Frank', lastName: 'Zappa', age: 71 },"," { firstName: 'Frank', lastName: 'Lloyd Wright', age: 144 },"," { firstName: 'Albert', lastName: 'Einstein', age: 132 },"," ..."," ]","});","","table.render('#in-here');","
","","DataTable.Base is built from DataTable.Core, and sets the default `view`","to `Y.DataTable.TableView`.","","@class Base","@extends Widget","@uses DataTable.Core","@namespace DataTable","@since 3.5.0","**/","Y.DataTable.Base = Y.Base.create('datatable', Y.Widget, [Y.DataTable.Core], {",""," /**"," Pass through to `delegate()` called from the `contentBox`.",""," @method delegate"," @param type {String} the event type to delegate"," @param fn {Function} the callback function to execute. This function"," will be provided the event object for the delegated event."," @param spec {String|Function} a selector that must match the target of the"," event or a function to test target and its parents for a match"," @param context {Object} optional argument that specifies what 'this' refers to"," @param args* {any} 0..n additional arguments to pass on to the callback"," function. These arguments will be added after the event object."," @return {EventHandle} the detach handle"," @since 3.5.0"," **/"," delegate: function () {"," var contentBox = this.get('contentBox');",""," return contentBox.delegate.apply(contentBox, arguments);"," },",""," /**"," Destroys the table `View` if it's been created.",""," @method destructor"," @protected"," @since 3.6.0"," **/"," destructor: function () {"," if (this.view) {"," this.view.destroy();"," }"," },",""," /**"," Returns the `` Node from the given row and column index. Alternately,"," the `seed` can be a Node. If so, the nearest ancestor cell is returned."," If the `seed` is a cell, it is returned. If there is no cell at the given"," coordinates, `null` is returned.",""," Optionally, include an offset array or string to return a cell near the"," cell identified by the `seed`. The offset can be an array containing the"," number of rows to shift followed by the number of columns to shift, or one"," of \"above\", \"below\", \"next\", or \"previous\".",""," // Previous cell in the previous row"," var cell = table.getCell(e.target, [-1, -1]);",""," // Next cell"," var cell = table.getCell(e.target, 'next');"," var cell = table.getCell(e.taregt, [0, 1];
",""," This is actually just a pass through to the `view` instance's method"," by the same name.",""," @method getCell"," @param {Number[]|Node} seed Array of row and column indexes, or a Node that"," is either the cell itself or a descendant of one."," @param {Number[]|String} [shift] Offset by which to identify the returned"," cell Node"," @return {Node}"," @since 3.5.0"," **/"," getCell: function (seed, shift) {"," return this.view && this.view.getCell &&"," this.view.getCell.apply(this.view, arguments);"," },",""," /**"," Returns the ` ` Node from the given row index, Model, or Model's"," `clientId`. If the rows haven't been rendered yet, or if the row can't be"," found by the input, `null` is returned.",""," This is actually just a pass through to the `view` instance's method"," by the same name.",""," @method getRow"," @param {Number|String|Model} id Row index, Model instance, or clientId"," @return {Node}"," @since 3.5.0"," **/"," getRow: function (id) {"," return this.view && this.view.getRow &&"," this.view.getRow.apply(this.view, arguments);"," },",""," /**"," Updates the `_displayColumns` property.",""," @method _afterDisplayColumnsChange"," @param {EventFacade} e The `columnsChange` event"," @protected"," @since 3.6.0"," **/"," // FIXME: This is a kludge for back compat with features that reference"," // _displayColumns. They should be updated to TableView plugins."," _afterDisplayColumnsChange: function (e) {"," this._extractDisplayColumns(e.newVal || []);"," },",""," /**"," Attaches subscriptions to relay core change events to the view.",""," @method bindUI"," @protected"," @since 3.6.0"," **/"," bindUI: function () {"," this._eventHandles.relayCoreChanges = this.after("," ['columnsChange',"," 'dataChange',"," 'summaryChange',"," 'captionChange',"," 'widthChange'],"," Y.bind('_relayCoreAttrChange', this));"," },",""," /**"," The default behavior of the `renderView` event. Calls `render()` on the"," `View` instance on the event.",""," @method _defRenderViewFn"," @param {EventFacade} e The `renderView` event"," @protected"," **/"," _defRenderViewFn: function (e) {"," e.view.render();"," },",""," /**"," Processes the full column array, distilling the columns down to those that"," correspond to cell data columns.",""," @method _extractDisplayColumns"," @param {Object[]} columns The full set of table columns"," @protected"," **/"," // FIXME: this is a kludge for back compat, duplicating logic in the"," // tableView"," _extractDisplayColumns: function (columns) {"," var displayColumns = [];",""," function process(cols) {"," var i, len, col;",""," for (i = 0, len = cols.length; i < len; ++i) {"," col = cols[i];",""," if (Y.Lang.isArray(col.children)) {"," process(col.children);"," } else {"," displayColumns.push(col);"," }"," }"," }",""," process(columns);",""," /**"," Array of the columns that correspond to those with value cells in the"," data rows. Excludes colspan header columns (configured with `children`).",""," @property _displayColumns"," @type {Object[]}"," @since 3.5.0"," **/"," this._displayColumns = displayColumns;"," },",""," /**"," Sets up the instance's events.",""," @method initializer"," @param {Object} [config] Configuration object passed at construction"," @protected"," @since 3.6.0"," **/"," initializer: function () {"," this.publish('renderView', {"," defaultFn: Y.bind('_defRenderViewFn', this)"," });",""," // Have to use get('columns'), not config.columns because the setter"," // needs to transform string columns to objects."," this._extractDisplayColumns(this.get('columns') || []);",""," // FIXME: kludge for back compat of features that reference"," // _displayColumns on the instance. They need to be updated to"," // TableView plugins, most likely."," this.after('columnsChange', Y.bind('_afterDisplayColumnsChange', this));"," },",""," /**"," Relays attribute changes to the instance's `view`.",""," @method _relayCoreAttrChange"," @param {EventFacade} e The change event"," @protected"," @since 3.6.0"," **/"," _relayCoreAttrChange: function (e) {"," var attr = (e.attrName === 'data') ? 'modelList' : e.attrName;",""," this.view.set(attr, e.newVal);"," },",""," /**"," Instantiates the configured `view` class that will be responsible for"," setting up the View class.",""," @method @renderUI"," @protected"," @since 3.6.0"," **/"," renderUI: function () {"," var self = this,"," View = this.get('view');",""," if (View) {"," this.view = new View("," Y.merge("," this.getAttrs(),"," {"," host : this,"," container: this.get('contentBox'),"," modelList: this.data"," },"," this.get('viewConfig')));",""," // For back compat, share the view instances and primary nodes"," // on this instance."," // TODO: Remove this?"," if (!this._eventHandles.legacyFeatureProps) {"," this._eventHandles.legacyFeatureProps = this.view.after({"," renderHeader: function (e) {"," self.head = e.view;"," self._theadNode = e.view.theadNode;"," // TODO: clean up the repetition."," // This is here so that subscribers to renderHeader etc"," // have access to this._tableNode from the DT instance"," self._tableNode = e.view.get('container');"," },"," renderFooter: function (e) {"," self.foot = e.view;"," self._tfootNode = e.view.tfootNode;"," self._tableNode = e.view.get('container');"," },"," renderBody: function (e) {"," self.body = e.view;"," self._tbodyNode = e.view.tbodyNode;"," self._tableNode = e.view.get('container');"," },"," // FIXME: guarantee that the properties are available, even"," // if the configured (or omitted) views don't create them"," renderTable: function (e) {"," var contentBox = this.get('container');",""," self._tableNode = this.tableNode ||"," contentBox.one('.' + this.getClassName('table') +"," ', table');",""," // FIXME: _captionNode isn't available until after"," // renderTable unless in the renderX subs I look for"," // it under the container's parentNode (to account for"," // scroll breaking out the caption table)."," self._captionNode = this.captionNode ||"," contentBox.one('caption');",""," if (!self._theadNode) {"," self._theadNode = contentBox.one("," '.' + this.getClassName('columns') + ', thead');"," }",""," if (!self._tbodyNode) {"," self._tbodyNode = contentBox.one("," '.' + this.getClassName('data') + ', tbody');"," }",""," if (!self._tfootNode) {"," self._tfootNode = contentBox.one("," '.' + this.getClassName('footer') + ', tfoot');"," }"," }"," });"," }",""," // To *somewhat* preserve table.on('renderHeader', fn) in the"," // form of table.on('table:renderHeader', fn), because I couldn't"," // figure out another option."," this.view.addTarget(this);"," }"," },",""," /**"," Fires the `renderView` event, delegating UI updates to the configured View.",""," @method syncUI"," @since 3.5.0"," **/"," syncUI: function () {"," if (this.view) {"," this.fire('renderView', { view: this.view });"," }"," },",""," /**"," Verifies the input value is a function with a `render` method on its"," prototype. `null` is also accepted to remove the default View.",""," @method _validateView"," @protected"," @since 3.5.0"," **/"," _validateView: function (val) {"," // TODO support View instances?"," return val === null || (Y.Lang.isFunction(val) && val.prototype.render);"," }","}, {"," ATTRS: {"," /**"," The View class used to render the `` into the Widget's"," `contentBox`. This View can handle the entire table rendering itself"," or delegate to other Views.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," When the DataTable is rendered, an instance of this View will be"," created and its `render()` method called. The View instance will be"," assigned to the DataTable instance's `view` property.",""," @attribute view"," @type {Function}"," @default Y.DataTable.TableView"," @since 3.6.0"," **/"," view: {"," value: Y.DataTable.TableView,"," validator: '_validateView'"," },",""," /**"," Configuration object passed to the class constructor in `view`"," during render.",""," @attribute viewConfig"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.6.0"," **/"," viewConfig: {}",""," /**"," If the View class assigned to the DataTable's `view` attribute supports"," it, this class will be used for rendering the contents of the"," ``—the column headers for the table."," "," Similar to `view`, the instance of this View will be assigned to the"," DataTable instance's `head` property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute headerView"," @type {Function|Object}"," @default Y.DataTable.HeaderView"," @since 3.5.0"," **/"," /*"," headerView: {"," value: Y.DataTable.HeaderView,"," validator: '_validateView'"," },"," */",""," /**"," Configuration object passed to the class constructor in `headerView`"," during render.",""," @attribute headerConfig"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.6.0"," **/"," //headConfig: {},",""," /**"," If the View class assigned to the DataTable's `view` attribute supports"," it, this class will be used for rendering the contents of the ``."," "," Similar to `view`, the instance of this View will be assigned to the"," DataTable instance's `foot` property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute footerView"," @type {Function|Object}"," @since 3.5.0"," **/"," /*"," footerView: {"," validator: '_validateView'"," },"," */",""," /**"," Configuration object passed to the class constructor in `footerView`"," during render.",""," @attribute footerConfig"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.6.0"," **/"," //footerConfig: {},",""," /**"," If the View class assigned to the DataTable's `view` attribute supports"," it, this class will be used for rendering the contents of the ``"," including all data rows."," "," Similar to `view`, the instance of this View will be assigned to the"," DataTable instance's `body` property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute bodyView"," @type {Function}"," @default Y.DataTable.BodyView"," @since 3.5.0"," **/"," /*"," bodyView: {"," value: Y.DataTable.BodyView,"," validator: '_validateView'"," },"," */",""," /**"," Configuration object passed to the class constructor in `bodyView`"," during render.",""," @attribute bodyConfig"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.6.0"," **/"," //bodyConfig: {}"," }","});","","// The DataTable API docs are above DataTable.Base docs.","Y.DataTable = Y.mix("," Y.Base.create('datatable', Y.DataTable.Base, []), // Create the class"," Y.DataTable); // Migrate static and namespaced classes","","","}, '3.7.1', {\"requires\": [\"datatable-core\", \"datatable-table\", \"datatable-head\", \"datatable-body\", \"base-build\", \"widget\"], \"skinnable\": true});"];
+_yuitest_coverage["build/datatable-base/datatable-base.js"].code=["YUI.add('datatable-base', function (Y, NAME) {","","/**","A Widget for displaying tabular data. The base implementation of DataTable","provides the ability to dynamically generate an HTML table from a set of column","configurations and row data.","","Two classes are included in the `datatable-base` module: `Y.DataTable` and","`Y.DataTable.Base`.","","@module datatable","@submodule datatable-base","@main datatable","@since 3.5.0","**/","","// DataTable API docs included before DataTable.Base to make yuidoc work","/**","A Widget for displaying tabular data. Before feature modules are `use()`d,","this class is functionally equivalent to DataTable.Base. However, feature","modules can modify this class in non-destructive ways, expanding the API and","functionality.","","This is the primary DataTable class. Out of the box, it provides the ability","to dynamically generate an HTML table from a set of column configurations and","row data. But feature module inclusion can add table sorting, pagintaion,","highlighting, selection, and more.","","","// The functionality of this table would require additional modules be use()d,","// but the feature APIs are aggregated onto Y.DataTable.","// (Snippet is for illustration. Not all features are available today.)","var table = new Y.DataTable({"," columns: ["," { type: 'checkbox', defaultChecked: true },"," { key: 'firstName', sortable: true, resizable: true },"," { key: 'lastName', sortable: true },"," { key: 'role', formatter: toRoleName }"," ],"," data: {"," source: 'http://myserver.com/service/json',"," type: 'json',"," schema: {"," resultListLocator: 'results.users',"," fields: ["," 'username',"," 'firstName',"," 'lastName',"," { key: 'role', type: 'number' }"," ]"," }"," },"," recordType: UserModel,"," pagedData: {"," location: 'footer',"," pageSizes: [20, 50, 'all'],"," rowsPerPage: 20,"," pageLinks: 5"," },"," editable: true","});","
","","### Column Configuration","","The column configurations are set in the form of an array of objects, where","each object corresponds to a column. For columns populated directly from the","row data, a 'key' property is required to bind the column to that property or","attribute in the row data.","","Not all columns need to relate to row data, nor do all properties or attributes","of the row data need to have a corresponding column. However, only those","columns included in the `columns` configuration attribute will be rendered.","","Other column configuration properties are supported by the configured","`view`, class as well as any features added by plugins or class extensions.","See the description of DataTable.TableView and its subviews","DataTable.HeaderView, DataTable.BodyView, and DataTable.FooterView (and other","DataTable feature classes) to see what column properties they support.","","Some examples of column configurations would be:","","","// Basic","var columns = [{ key: 'firstName' }, { key: 'lastName' }, { key: 'age' }];","","// For columns without any additional configuration, strings can be used","var columns = ['firstName', 'lastName', 'age'];","","// Multi-row column headers (see DataTable.HeaderView for details)","var columns = ["," {"," label: 'Name',"," children: ["," { key: 'firstName' },"," { key: 'lastName' }"," ]"," },"," 'age' // mixing and matching objects and strings is ok","];","","// Including columns that are not related 1:1 to row data fields/attributes","// (See DataTable.BodyView for details)","var columns = ["," {"," label: 'Name', // Needed for the column header"," formatter: function (o) {"," // Fill the column cells with data from firstName and lastName"," if (o.data.age > 55) {"," o.className += ' senior';"," }"," return o.data.lastName + ', ' + o.data.firstName;"," }"," },"," 'age'","];","","// Columns that include feature configurations (for illustration; not all","// features are available today).","var columns = ["," { type: 'checkbox', defaultChecked: true },"," { key: 'firstName', sortable: true, resizable: true, min-width: '300px' },"," { key: 'lastName', sortable: true, resizable: true, min-width: '300px' },"," { key: 'age', emptyCellValue: 'unknown' }","];","
","","### Row Data Configuration","","The `data` configuration attribute is responsible for housing the data objects that will be rendered as rows. You can provide this information in two ways by default:","","1. An array of simple objects with key:value pairs","2. A ModelList of Base-based class instances (presumably Model subclass"," instances)","","If an array of objects is passed, it will be translated into a ModelList filled","with instances of the class provided to the `recordType` attribute. This","attribute can also create a custom Model subclass from an array of field names","or an object of attribute configurations. If no `recordType` is provided, one","will be created for you from available information (see `_initRecordType`).","Providing either your own ModelList instance for `data`, or at least Model","class for `recordType`, is the best way to control client-server","synchronization when modifying data on the client side.","","The ModelList instance that manages the table's data is available in the `data`","property on the DataTable instance.","","","### Rendering","","Table rendering is a collaborative process between the DataTable and its","configured `view`. The DataTable creates an instance of the configured `view`","(DataTable.TableView by default), and calls its `render()` method.","DataTable.TableView, for instance, then creates the `` and ``,","then delegates the rendering of the specific sections of the table to subviews,","which can be configured as `headerView`, `bodyView`, and `footerView`.","DataTable.TableView defaults the `headerView` to DataTable.HeaderView and the","`bodyView` to DataTable.BodyView, but leaves the `footerView` unassigned.","Setting any subview to `null` will result in that table section not being","rendered.","","@class DataTable","@extends DataTable.Base","@since 3.5.0","**/","","// DataTable API docs included before DataTable.Base to make yuidoc work","/**","The baseline implementation of a DataTable. This class should be used","primarily as a superclass for a custom DataTable with a specific set of","features. Because features can be composed onto `Y.DataTable`, custom","subclasses of DataTable.Base will remain unmodified when new feature modules","are loaded.","","Example usage might look like this:","","","// Custom subclass with only sorting and mutability added. If other datatable","// feature modules are loaded, this class will not be affected.","var MyTableClass = Y.Base.create('table', Y.DataTable.Base,"," [ Y.DataTable.Sortable, Y.DataTable.Mutable ]);","","var table = new MyTableClass({"," columns: ['firstName', 'lastName', 'age'],"," data: ["," { firstName: 'Frank', lastName: 'Zappa', age: 71 },"," { firstName: 'Frank', lastName: 'Lloyd Wright', age: 144 },"," { firstName: 'Albert', lastName: 'Einstein', age: 132 },"," ..."," ]","});","","table.render('#over-there');","","// DataTable.Base can be instantiated if a featureless table is needed.","var table = new Y.DataTable.Base({"," columns: ['firstName', 'lastName', 'age'],"," data: ["," { firstName: 'Frank', lastName: 'Zappa', age: 71 },"," { firstName: 'Frank', lastName: 'Lloyd Wright', age: 144 },"," { firstName: 'Albert', lastName: 'Einstein', age: 132 },"," ..."," ]","});","","table.render('#in-here');","
","","DataTable.Base is built from DataTable.Core, and sets the default `view`","to `Y.DataTable.TableView`.","","@class Base","@extends Widget","@uses DataTable.Core","@namespace DataTable","@since 3.5.0","**/","Y.DataTable.Base = Y.Base.create('datatable', Y.Widget, [Y.DataTable.Core], {",""," /**"," Pass through to `delegate()` called from the `contentBox`.",""," @method delegate"," @param type {String} the event type to delegate"," @param fn {Function} the callback function to execute. This function"," will be provided the event object for the delegated event."," @param spec {String|Function} a selector that must match the target of the"," event or a function to test target and its parents for a match"," @param context {Object} optional argument that specifies what 'this' refers to"," @param args* {any} 0..n additional arguments to pass on to the callback"," function. These arguments will be added after the event object."," @return {EventHandle} the detach handle"," @since 3.5.0"," **/"," delegate: function () {"," var contentBox = this.get('contentBox');",""," return contentBox.delegate.apply(contentBox, arguments);"," },",""," /**"," Destroys the table `View` if it's been created.",""," @method destructor"," @protected"," @since 3.6.0"," **/"," destructor: function () {"," if (this.view) {"," this.view.destroy();"," }"," },",""," /**"," Returns the `` Node from the given row and column index. Alternately,"," the `seed` can be a Node. If so, the nearest ancestor cell is returned."," If the `seed` is a cell, it is returned. If there is no cell at the given"," coordinates, `null` is returned.",""," Optionally, include an offset array or string to return a cell near the"," cell identified by the `seed`. The offset can be an array containing the"," number of rows to shift followed by the number of columns to shift, or one"," of \"above\", \"below\", \"next\", or \"previous\".",""," // Previous cell in the previous row"," var cell = table.getCell(e.target, [-1, -1]);",""," // Next cell"," var cell = table.getCell(e.target, 'next');"," var cell = table.getCell(e.taregt, [0, 1];
",""," This is actually just a pass through to the `view` instance's method"," by the same name.",""," @method getCell"," @param {Number[]|Node} seed Array of row and column indexes, or a Node that"," is either the cell itself or a descendant of one."," @param {Number[]|String} [shift] Offset by which to identify the returned"," cell Node"," @return {Node}"," @since 3.5.0"," **/"," getCell: function (seed, shift) {"," return this.view && this.view.getCell &&"," this.view.getCell.apply(this.view, arguments);"," },",""," /**"," Returns the ` ` Node from the given row index, Model, or Model's"," `clientId`. If the rows haven't been rendered yet, or if the row can't be"," found by the input, `null` is returned.",""," This is actually just a pass through to the `view` instance's method"," by the same name.",""," @method getRow"," @param {Number|String|Model} id Row index, Model instance, or clientId"," @return {Node}"," @since 3.5.0"," **/"," getRow: function (id) {"," return this.view && this.view.getRow &&"," this.view.getRow.apply(this.view, arguments);"," },",""," /**"," Updates the `_displayColumns` property.",""," @method _afterDisplayColumnsChange"," @param {EventFacade} e The `columnsChange` event"," @protected"," @since 3.6.0"," **/"," // FIXME: This is a kludge for back compat with features that reference"," // _displayColumns. They should be updated to TableView plugins."," _afterDisplayColumnsChange: function (e) {"," this._extractDisplayColumns(e.newVal || []);"," },",""," /**"," Attaches subscriptions to relay core change events to the view.",""," @method bindUI"," @protected"," @since 3.6.0"," **/"," bindUI: function () {"," this._eventHandles.relayCoreChanges = this.after("," ['columnsChange',"," 'dataChange',"," 'summaryChange',"," 'captionChange',"," 'widthChange'],"," Y.bind('_relayCoreAttrChange', this));"," },",""," /**"," The default behavior of the `renderView` event. Calls `render()` on the"," `View` instance on the event.",""," @method _defRenderViewFn"," @param {EventFacade} e The `renderView` event"," @protected"," **/"," _defRenderViewFn: function (e) {"," e.view.render();"," },",""," /**"," Processes the full column array, distilling the columns down to those that"," correspond to cell data columns.",""," @method _extractDisplayColumns"," @param {Object[]} columns The full set of table columns"," @protected"," **/"," // FIXME: this is a kludge for back compat, duplicating logic in the"," // tableView"," _extractDisplayColumns: function (columns) {"," var displayColumns = [];",""," function process(cols) {"," var i, len, col;",""," for (i = 0, len = cols.length; i < len; ++i) {"," col = cols[i];",""," if (Y.Lang.isArray(col.children)) {"," process(col.children);"," } else {"," displayColumns.push(col);"," }"," }"," }",""," process(columns);",""," /**"," Array of the columns that correspond to those with value cells in the"," data rows. Excludes colspan header columns (configured with `children`).",""," @property _displayColumns"," @type {Object[]}"," @since 3.5.0"," **/"," this._displayColumns = displayColumns;"," },",""," /**"," Sets up the instance's events.",""," @method initializer"," @param {Object} [config] Configuration object passed at construction"," @protected"," @since 3.6.0"," **/"," initializer: function () {"," this.publish('renderView', {"," defaultFn: Y.bind('_defRenderViewFn', this)"," });",""," // Have to use get('columns'), not config.columns because the setter"," // needs to transform string columns to objects."," this._extractDisplayColumns(this.get('columns') || []);",""," // FIXME: kludge for back compat of features that reference"," // _displayColumns on the instance. They need to be updated to"," // TableView plugins, most likely."," this.after('columnsChange', Y.bind('_afterDisplayColumnsChange', this));"," },",""," /**"," Relays attribute changes to the instance's `view`.",""," @method _relayCoreAttrChange"," @param {EventFacade} e The change event"," @protected"," @since 3.6.0"," **/"," _relayCoreAttrChange: function (e) {"," var attr = (e.attrName === 'data') ? 'modelList' : e.attrName;",""," this.view.set(attr, e.newVal);"," },",""," /**"," Instantiates the configured `view` class that will be responsible for"," setting up the View class.",""," @method @renderUI"," @protected"," @since 3.6.0"," **/"," renderUI: function () {"," var self = this,"," View = this.get('view');",""," if (View) {"," this.view = new View("," Y.merge("," this.getAttrs(),"," {"," host : this,"," container: this.get('contentBox'),"," modelList: this.data"," },"," this.get('viewConfig')));",""," // For back compat, share the view instances and primary nodes"," // on this instance."," // TODO: Remove this?"," if (!this._eventHandles.legacyFeatureProps) {"," this._eventHandles.legacyFeatureProps = this.view.after({"," renderHeader: function (e) {"," self.head = e.view;"," self._theadNode = e.view.theadNode;"," // TODO: clean up the repetition."," // This is here so that subscribers to renderHeader etc"," // have access to this._tableNode from the DT instance"," self._tableNode = e.view.get('container');"," },"," renderFooter: function (e) {"," self.foot = e.view;"," self._tfootNode = e.view.tfootNode;"," self._tableNode = e.view.get('container');"," },"," renderBody: function (e) {"," self.body = e.view;"," self._tbodyNode = e.view.tbodyNode;"," self._tableNode = e.view.get('container');"," },"," // FIXME: guarantee that the properties are available, even"," // if the configured (or omitted) views don't create them"," renderTable: function (e) {"," var contentBox = this.get('container');",""," self._tableNode = this.tableNode ||"," contentBox.one('.' + this.getClassName('table') +"," ', table');",""," // FIXME: _captionNode isn't available until after"," // renderTable unless in the renderX subs I look for"," // it under the container's parentNode (to account for"," // scroll breaking out the caption table)."," self._captionNode = this.captionNode ||"," contentBox.one('caption');",""," if (!self._theadNode) {"," self._theadNode = contentBox.one("," '.' + this.getClassName('columns') + ', thead');"," }",""," if (!self._tbodyNode) {"," self._tbodyNode = contentBox.one("," '.' + this.getClassName('data') + ', tbody');"," }",""," if (!self._tfootNode) {"," self._tfootNode = contentBox.one("," '.' + this.getClassName('footer') + ', tfoot');"," }"," }"," });"," }",""," // To *somewhat* preserve table.on('renderHeader', fn) in the"," // form of table.on('table:renderHeader', fn), because I couldn't"," // figure out another option."," this.view.addTarget(this);"," }"," },",""," /**"," Fires the `renderView` event, delegating UI updates to the configured View.",""," @method syncUI"," @since 3.5.0"," **/"," syncUI: function () {"," if (this.view) {"," this.fire('renderView', { view: this.view });"," }"," },",""," /**"," Verifies the input value is a function with a `render` method on its"," prototype. `null` is also accepted to remove the default View.",""," @method _validateView"," @protected"," @since 3.5.0"," **/"," _validateView: function (val) {"," // TODO support View instances?"," return val === null || (Y.Lang.isFunction(val) && val.prototype.render);"," }","}, {"," ATTRS: {"," /**"," The View class used to render the `` into the Widget's"," `contentBox`. This View can handle the entire table rendering itself"," or delegate to other Views.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," When the DataTable is rendered, an instance of this View will be"," created and its `render()` method called. The View instance will be"," assigned to the DataTable instance's `view` property.",""," @attribute view"," @type {Function}"," @default Y.DataTable.TableView"," @since 3.6.0"," **/"," view: {"," value: Y.DataTable.TableView,"," validator: '_validateView'"," },",""," /**"," Configuration object passed to the class constructor in `view`"," during render.",""," @attribute viewConfig"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.6.0"," **/"," viewConfig: {}",""," /**"," If the View class assigned to the DataTable's `view` attribute supports"," it, this class will be used for rendering the contents of the"," ``—the column headers for the table."," "," Similar to `view`, the instance of this View will be assigned to the"," DataTable instance's `head` property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute headerView"," @type {Function|Object}"," @default Y.DataTable.HeaderView"," @since 3.5.0"," **/"," /*"," headerView: {"," value: Y.DataTable.HeaderView,"," validator: '_validateView'"," },"," */",""," /**"," Configuration object passed to the class constructor in `headerView`"," during render.",""," @attribute headerConfig"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.6.0"," **/"," //headConfig: {},",""," /**"," If the View class assigned to the DataTable's `view` attribute supports"," it, this class will be used for rendering the contents of the ``."," "," Similar to `view`, the instance of this View will be assigned to the"," DataTable instance's `foot` property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute footerView"," @type {Function|Object}"," @since 3.5.0"," **/"," /*"," footerView: {"," validator: '_validateView'"," },"," */",""," /**"," Configuration object passed to the class constructor in `footerView`"," during render.",""," @attribute footerConfig"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.6.0"," **/"," //footerConfig: {},",""," /**"," If the View class assigned to the DataTable's `view` attribute supports"," it, this class will be used for rendering the contents of the ``"," including all data rows."," "," Similar to `view`, the instance of this View will be assigned to the"," DataTable instance's `body` property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute bodyView"," @type {Function}"," @default Y.DataTable.BodyView"," @since 3.5.0"," **/"," /*"," bodyView: {"," value: Y.DataTable.BodyView,"," validator: '_validateView'"," },"," */",""," /**"," Configuration object passed to the class constructor in `bodyView`"," during render.",""," @attribute bodyConfig"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.6.0"," **/"," //bodyConfig: {}"," }","});","","// The DataTable API docs are above DataTable.Base docs.","Y.DataTable = Y.mix("," Y.Base.create('datatable', Y.DataTable.Base, []), // Create the class"," Y.DataTable); // Migrate static and namespaced classes","","","}, '3.7.2', {\"requires\": [\"datatable-core\", \"datatable-table\", \"datatable-head\", \"datatable-body\", \"base-build\", \"widget\"], \"skinnable\": true});"];
_yuitest_coverage["build/datatable-base/datatable-base.js"].lines = {"1":0,"218":0,"236":0,"238":0,"249":0,"250":0,"284":0,"302":0,"317":0,"328":0,"346":0,"360":0,"362":0,"363":0,"365":0,"366":0,"368":0,"369":0,"371":0,"376":0,"386":0,"398":0,"404":0,"409":0,"421":0,"423":0,"435":0,"438":0,"439":0,"452":0,"453":0,"455":0,"456":0,"460":0,"463":0,"464":0,"465":0,"468":0,"469":0,"470":0,"475":0,"477":0,"485":0,"488":0,"489":0,"493":0,"494":0,"498":0,"499":0,"509":0,"520":0,"521":0,"535":0,"678":0};
_yuitest_coverage["build/datatable-base/datatable-base.js"].functions = {"delegate:235":0,"destructor:248":0,"getCell:283":0,"getRow:301":0,"_afterDisplayColumnsChange:316":0,"bindUI:327":0,"_defRenderViewFn:345":0,"process:362":0,"_extractDisplayColumns:359":0,"initializer:397":0,"_relayCoreAttrChange:420":0,"renderHeader:454":0,"renderFooter:462":0,"renderBody:467":0,"renderTable:474":0,"renderUI:434":0,"syncUI:519":0,"_validateView:533":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-base/datatable-base.js"].coveredLines = 54;
@@ -792,4 +792,4 @@ Y.DataTable = Y.mix(
Y.DataTable); // Migrate static and namespaced classes
-}, '3.7.1', {"requires": ["datatable-core", "datatable-table", "datatable-head", "datatable-body", "base-build", "widget"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-core", "datatable-table", "datatable-head", "datatable-body", "base-build", "widget"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-base/datatable-base-debug.js b/lib/yuilib/3.7.2/build/datatable-base/datatable-base-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-base/datatable-base-debug.js
rename to lib/yuilib/3.7.2/build/datatable-base/datatable-base-debug.js
index 639756898dc..4c19fd6a87b 100644
--- a/lib/yuilib/3.7.1/build/datatable-base/datatable-base-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-base/datatable-base-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -686,4 +686,4 @@ Y.DataTable = Y.mix(
Y.DataTable); // Migrate static and namespaced classes
-}, '3.7.1', {"requires": ["datatable-core", "datatable-table", "datatable-head", "datatable-body", "base-build", "widget"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-core", "datatable-table", "datatable-head", "datatable-body", "base-build", "widget"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-base/datatable-base-min.js b/lib/yuilib/3.7.2/build/datatable-base/datatable-base-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatable-base/datatable-base-min.js
rename to lib/yuilib/3.7.2/build/datatable-base/datatable-base-min.js
index 21b8702f0c2..bfa150d98e3 100644
--- a/lib/yuilib/3.7.1/build/datatable-base/datatable-base-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-base/datatable-base-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-base",function(e,t){e.DataTable.Base=e.Base.create("datatable",e.Widget,[e.DataTable.Core],{delegate:function(){var e=this.get("contentBox");return e.delegate.apply(e,arguments)},destructor:function(){this.view&&this.view.destroy()},getCell:function(e,t){return this.view&&this.view.getCell&&this.view.getCell.apply(this.view,arguments)},getRow:function(e){return this.view&&this.view.getRow&&this.view.getRow.apply(this.view,arguments)},_afterDisplayColumnsChange:function(e){this._extractDisplayColumns(e.newVal||[])},bindUI:function(){this._eventHandles.relayCoreChanges=this.after(["columnsChange","dataChange","summaryChange","captionChange","widthChange"],e.bind("_relayCoreAttrChange",this))},_defRenderViewFn:function(e){e.view.render()},_extractDisplayColumns:function(t){function r(t){var i,s,o;for(i=0,s=t.length;i` section of a table. Used as","the default `bodyView` for `Y.DataTable.Base` and `Y.DataTable` classes.","","@module datatable","@submodule datatable-body","@since 3.5.0","**/","var Lang = Y.Lang,"," isArray = Lang.isArray,"," isNumber = Lang.isNumber,"," isString = Lang.isString,"," fromTemplate = Lang.sub,"," htmlEscape = Y.Escape.html,"," toArray = Y.Array,"," bind = Y.bind,"," YObject = Y.Object;","","/**","View class responsible for rendering the `` section of a table. Used as","the default `bodyView` for `Y.DataTable.Base` and `Y.DataTable` classes.","","Translates the provided `modelList` into a rendered `` based on the data","in the constituent Models, altered or ammended by any special column","configurations.","","The `columns` configuration, passed to the constructor, determines which","columns will be rendered.","","The rendering process involves constructing an HTML template for a complete row","of data, built by concatenating a customized copy of the instance's","`CELL_TEMPLATE` into the `ROW_TEMPLATE` once for each column. This template is","then populated with values from each Model in the `modelList`, aggregating a","complete HTML string of all row and column data. A `` Node is then created from the markup and any column `nodeFormatter`s are applied.","","Supported properties of the column objects include:",""," * `key` - Used to link a column to an attribute in a Model."," * `name` - Used for columns that don't relate to an attribute in the Model"," (`formatter` or `nodeFormatter` only) if the implementer wants a"," predictable name to refer to in their CSS."," * `cellTemplate` - Overrides the instance's `CELL_TEMPLATE` for cells in this"," column only."," * `formatter` - Used to customize or override the content value from the"," Model. These do not have access to the cell or row Nodes and should"," return string (HTML) content."," * `nodeFormatter` - Used to provide content for a cell as well as perform any"," custom modifications on the cell or row Node that could not be performed by"," `formatter`s. Should be used sparingly for better performance."," * `emptyCellValue` - String (HTML) value to use if the Model data for a"," column, or the content generated by a `formatter`, is the empty string,"," `null`, or `undefined`."," * `allowHTML` - Set to `true` if a column value, `formatter`, or"," `emptyCellValue` can contain HTML. This defaults to `false` to protect"," against XSS."," * `className` - Space delimited CSS classes to add to all ``s in a column.","","Column `formatter`s are passed an object (`o`) with the following properties:",""," * `value` - The current value of the column's associated attribute, if any."," * `data` - An object map of Model keys to their current values."," * `record` - The Model instance."," * `column` - The column configuration object for the current column."," * `className` - Initially empty string to allow `formatter`s to add CSS "," classes to the cell's ` `."," * `rowIndex` - The zero-based row number."," * `rowClass` - Initially empty string to allow `formatter`s to add CSS"," classes to the cell's containing row ` `.","","They may return a value or update `o.value` to assign specific HTML content. A","returned value has higher precedence.","","Column `nodeFormatter`s are passed an object (`o`) with the following","properties:",""," * `value` - The current value of the column's associated attribute, if any."," * `td` - The `` Node instance."," * `cell` - The `` liner Node instance if present, otherwise, the ``."," When adding content to the cell, prefer appending into this property."," * `data` - An object map of Model keys to their current values."," * `record` - The Model instance."," * `column` - The column configuration object for the current column."," * `rowIndex` - The zero-based row number.","","They are expected to inject content into the cell's Node directly, including","any \"empty\" cell content. Each `nodeFormatter` will have access through the","Node API to all cells and rows in the ` `, but not to the ``, as","it will not be attached yet.","","If a `nodeFormatter` returns `false`, the `o.td` and `o.cell` Nodes will be","`destroy()`ed to remove them from the Node cache and free up memory. The DOM","elements will remain as will any content added to them. _It is highly","advisable to always return `false` from your `nodeFormatter`s_.","","@class BodyView","@namespace DataTable","@extends View","@since 3.5.0","**/","Y.namespace('DataTable').BodyView = Y.Base.create('tableBody', Y.View, [], {"," // -- Instance properties -------------------------------------------------",""," /**"," HTML template used to create table cells.",""," @property CELL_TEMPLATE"," @type {HTML}"," @default '{content} '"," @since 3.5.0"," **/"," CELL_TEMPLATE: '{content} ',",""," /**"," CSS class applied to even rows. This is assigned at instantiation."," "," For DataTable, this will be `yui3-datatable-even`.",""," @property CLASS_EVEN"," @type {String}"," @default 'yui3-table-even'"," @since 3.5.0"," **/"," //CLASS_EVEN: null",""," /**"," CSS class applied to odd rows. This is assigned at instantiation."," "," When used by DataTable instances, this will be `yui3-datatable-odd`.",""," @property CLASS_ODD"," @type {String}"," @default 'yui3-table-odd'"," @since 3.5.0"," **/"," //CLASS_ODD: null",""," /**"," HTML template used to create table rows.",""," @property ROW_TEMPLATE"," @type {HTML}"," @default '{content} '"," @since 3.5.0"," **/"," ROW_TEMPLATE : '{content} ',",""," /**"," The object that serves as the source of truth for column and row data."," This property is assigned at instantiation from the `host` property of"," the configuration object passed to the constructor.",""," @property host"," @type {Object}"," @default (initially unset)"," @since 3.5.0"," **/"," //TODO: should this be protected?"," //host: null,",""," /**"," HTML templates used to create the `` containing the table rows.",""," @property TBODY_TEMPLATE"," @type {HTML}"," @default '{content}'"," @since 3.6.0"," **/"," TBODY_TEMPLATE: '',",""," // -- Public methods ------------------------------------------------------",""," /**"," Returns the `` Node from the given row and column index. Alternately,"," the `seed` can be a Node. If so, the nearest ancestor cell is returned."," If the `seed` is a cell, it is returned. If there is no cell at the given"," coordinates, `null` is returned.",""," Optionally, include an offset array or string to return a cell near the"," cell identified by the `seed`. The offset can be an array containing the"," number of rows to shift followed by the number of columns to shift, or one"," of \"above\", \"below\", \"next\", or \"previous\".",""," // Previous cell in the previous row"," var cell = table.getCell(e.target, [-1, -1]);",""," // Next cell"," var cell = table.getCell(e.target, 'next');"," var cell = table.getCell(e.taregt, [0, 1];
",""," @method getCell"," @param {Number[]|Node} seed Array of row and column indexes, or a Node that"," is either the cell itself or a descendant of one."," @param {Number[]|String} [shift] Offset by which to identify the returned"," cell Node"," @return {Node}"," @since 3.5.0"," **/"," getCell: function (seed, shift) {"," var tbody = this.tbodyNode,"," row, cell, index, rowIndexOffset;",""," if (seed && tbody) {"," if (isArray(seed)) {"," row = tbody.get('children').item(seed[0]);"," cell = row && row.get('children').item(seed[1]);"," } else if (Y.instanceOf(seed, Y.Node)) {"," cell = seed.ancestor('.' + this.getClassName('cell'), true);"," }",""," if (cell && shift) {"," rowIndexOffset = tbody.get('firstChild.rowIndex');"," if (isString(shift)) {"," // TODO this should be a static object map"," switch (shift) {"," case 'above' : shift = [-1, 0]; break;"," case 'below' : shift = [1, 0]; break;"," case 'next' : shift = [0, 1]; break;"," case 'previous': shift = [0, -1]; break;"," }"," }",""," if (isArray(shift)) {"," index = cell.get('parentNode.rowIndex') +"," shift[0] - rowIndexOffset;"," row = tbody.get('children').item(index);",""," index = cell.get('cellIndex') + shift[1];"," cell = row && row.get('children').item(index);"," }"," }"," }"," "," return cell || null;"," },",""," /**"," 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.5.0"," **/"," getClassName: function () {"," var host = this.host,"," args;",""," if (host && host.getClassName) {"," return host.getClassName.apply(host, arguments);"," } else {"," args = toArray(arguments);"," args.unshift(this.constructor.NAME);"," return Y.ClassNameManager.getClassName"," .apply(Y.ClassNameManager, args);"," }"," },",""," /**"," Returns the Model associated to the row Node or id provided. Passing the"," Node or id for a descendant of the row also works.",""," If no Model can be found, `null` is returned.",""," @method getRecord"," @param {String|Node} seed Row Node or `id`, or one for a descendant of a row"," @return {Model}"," @since 3.5.0"," **/"," getRecord: function (seed) {"," var modelList = this.get('modelList'),"," tbody = this.tbodyNode,"," row = null,"," record;",""," if (tbody) {"," if (isString(seed)) {"," seed = tbody.one('#' + seed);"," }",""," if (Y.instanceOf(seed, Y.Node)) {"," row = seed.ancestor(function (node) {"," return node.get('parentNode').compareTo(tbody);"," }, true);",""," record = row &&"," modelList.getByClientId(row.getData('yui3-record'));"," }"," }",""," return record || null;"," },",""," /**"," Returns the ` ` Node from the given row index, Model, or Model's"," `clientId`. If the rows haven't been rendered yet, or if the row can't be"," found by the input, `null` is returned.",""," @method getRow"," @param {Number|String|Model} id Row index, Model instance, or clientId"," @return {Node}"," @since 3.5.0"," **/"," getRow: function (id) {"," var tbody = this.tbodyNode,"," row = null;",""," if (tbody) {"," if (id) {"," id = this._idMap[id.get ? id.get('clientId') : id] || id;"," }",""," row = isNumber(id) ?"," tbody.get('children').item(id) :"," tbody.one('#' + id);"," }",""," return row;"," },",""," /**"," Creates the table's ` ` content by assembling markup generated by"," populating the `ROW\\_TEMPLATE`, and `CELL\\_TEMPLATE` templates with content"," from the `columns` and `modelList` attributes.",""," The rendering process happens in three stages:",""," 1. A row template is assembled from the `columns` attribute (see"," `_createRowTemplate`)",""," 2. An HTML string is built up by concatening the application of the data in"," each Model in the `modelList` to the row template. For cells with"," `formatter`s, the function is called to generate cell content. Cells"," with `nodeFormatter`s are ignored. For all other cells, the data value"," from the Model attribute for the given column key is used. The"," accumulated row markup is then inserted into the container.",""," 3. If any column is configured with a `nodeFormatter`, the `modelList` is"," iterated again to apply the `nodeFormatter`s.",""," Supported properties of the column objects include:",""," * `key` - Used to link a column to an attribute in a Model."," * `name` - Used for columns that don't relate to an attribute in the Model"," (`formatter` or `nodeFormatter` only) if the implementer wants a"," predictable name to refer to in their CSS."," * `cellTemplate` - Overrides the instance's `CELL_TEMPLATE` for cells in"," this column only."," * `formatter` - Used to customize or override the content value from the"," Model. These do not have access to the cell or row Nodes and should"," return string (HTML) content."," * `nodeFormatter` - Used to provide content for a cell as well as perform"," any custom modifications on the cell or row Node that could not be"," performed by `formatter`s. Should be used sparingly for better"," performance."," * `emptyCellValue` - String (HTML) value to use if the Model data for a"," column, or the content generated by a `formatter`, is the empty string,"," `null`, or `undefined`."," * `allowHTML` - Set to `true` if a column value, `formatter`, or"," `emptyCellValue` can contain HTML. This defaults to `false` to protect"," against XSS."," * `className` - Space delimited CSS classes to add to all ``s in a"," column.",""," Column `formatter`s are passed an object (`o`) with the following"," properties:",""," * `value` - The current value of the column's associated attribute, if"," any."," * `data` - An object map of Model keys to their current values."," * `record` - The Model instance."," * `column` - The column configuration object for the current column."," * `className` - Initially empty string to allow `formatter`s to add CSS "," classes to the cell's ` `."," * `rowIndex` - The zero-based row number."," * `rowClass` - Initially empty string to allow `formatter`s to add CSS"," classes to the cell's containing row ` `.",""," They may return a value or update `o.value` to assign specific HTML"," content. A returned value has higher precedence.",""," Column `nodeFormatter`s are passed an object (`o`) with the following"," properties:",""," * `value` - The current value of the column's associated attribute, if"," any."," * `td` - The `` Node instance."," * `cell` - The `` liner Node instance if present, otherwise, the"," ``. When adding content to the cell, prefer appending into this"," property."," * `data` - An object map of Model keys to their current values."," * `record` - The Model instance."," * `column` - The column configuration object for the current column."," * `rowIndex` - The zero-based row number.",""," They are expected to inject content into the cell's Node directly, including"," any \"empty\" cell content. Each `nodeFormatter` will have access through the"," Node API to all cells and rows in the ` `, but not to the ``,"," as it will not be attached yet.",""," If a `nodeFormatter` returns `false`, the `o.td` and `o.cell` Nodes will be"," `destroy()`ed to remove them from the Node cache and free up memory. The"," DOM elements will remain as will any content added to them. _It is highly"," advisable to always return `false` from your `nodeFormatter`s_.",""," @method render"," @return {BodyView} The instance"," @chainable"," @since 3.5.0"," **/"," render: function () {"," var table = this.get('container'),"," data = this.get('modelList'),"," columns = this.get('columns'),"," tbody = this.tbodyNode ||"," (this.tbodyNode = this._createTBodyNode());"," "," // Needed for mutation"," this._createRowTemplate(columns);",""," if (data) {"," tbody.setHTML(this._createDataHTML(columns));",""," this._applyNodeFormatters(tbody, columns);"," }",""," if (tbody.get('parentNode') !== table) {"," table.appendChild(tbody);"," }",""," this.bindUI();",""," return this;"," },",""," // -- Protected and private methods ---------------------------------------"," /**"," Handles changes in the source's columns attribute. Redraws the table data.",""," @method _afterColumnsChange"," @param {EventFacade} e The `columnsChange` event object"," @protected"," @since 3.5.0"," **/"," // TODO: Preserve existing DOM"," // This will involve parsing and comparing the old and new column configs"," // and reacting to four types of changes:"," // 1. formatter, nodeFormatter, emptyCellValue changes"," // 2. column deletions"," // 3. column additions"," // 4. column moves (preserve cells)"," _afterColumnsChange: function (e) {"," this.render();"," },",""," /**"," Handles modelList changes, including additions, deletions, and updates.",""," Modifies the existing table DOM accordingly.",""," @method _afterDataChange"," @param {EventFacade} e The `change` event from the ModelList"," @protected"," @since 3.5.0"," **/"," _afterDataChange: function (e) {"," //var type = e.type.slice(e.type.lastIndexOf(':') + 1);",""," // TODO: Isolate changes"," this.render();"," },",""," /**"," Handles replacement of the modelList.",""," Rerenders the `` contents.",""," @method _afterModelListChange"," @param {EventFacade} e The `modelListChange` event"," @protected"," @since 3.6.0"," **/"," _afterModelListChange: function (e) {"," var handles = this._eventHandles;",""," if (handles.dataChange) {"," handles.dataChange.detach();"," delete handles.dataChange;"," this.bindUI();"," }",""," if (this.tbodyNode) {"," this.render();"," }"," },",""," /**"," Iterates the `modelList`, and calls any `nodeFormatter`s found in the"," `columns` param on the appropriate cell Nodes in the `tbody`.",""," @method _applyNodeFormatters"," @param {Node} tbody The `` Node whose columns to update"," @param {Object[]} columns The column configurations"," @protected"," @since 3.5.0"," **/"," _applyNodeFormatters: function (tbody, columns) {"," var host = this.host,"," data = this.get('modelList'),"," formatters = [],"," linerQuery = '.' + this.getClassName('liner'),"," rows, i, len;",""," // Only iterate the ModelList again if there are nodeFormatters"," for (i = 0, len = columns.length; i < len; ++i) {"," if (columns[i].nodeFormatter) {"," formatters.push(i);"," }"," }",""," if (data && formatters.length) {"," rows = tbody.get('childNodes');",""," data.each(function (record, index) {"," var formatterData = {"," data : record.toJSON(),"," record : record,"," rowIndex : index"," },"," row = rows.item(index),"," i, len, col, key, cells, cell, keep;","",""," if (row) {"," cells = row.get('childNodes');"," for (i = 0, len = formatters.length; i < len; ++i) {"," cell = cells.item(formatters[i]);",""," if (cell) {"," col = formatterData.column = columns[formatters[i]];"," key = col.key || col.id;",""," formatterData.value = record.get(key);"," formatterData.td = cell;"," formatterData.cell = cell.one(linerQuery) || cell;",""," keep = col.nodeFormatter.call(host,formatterData);",""," if (keep === false) {"," // Remove from the Node cache to reduce"," // memory footprint. This also purges events,"," // which you shouldn't be scoping to a cell"," // anyway. You've been warned. Incidentally,"," // you should always return false. Just sayin."," cell.destroy(true);"," }"," }"," }"," }"," });"," }"," },",""," /**"," Binds event subscriptions from the UI and the host (if assigned).",""," @method bindUI"," @protected"," @since 3.5.0"," **/"," bindUI: function () {"," var handles = this._eventHandles,"," modelList = this.get('modelList'),"," changeEvent = modelList.model.NAME + ':change';",""," if (!handles.columnsChange) {"," handles.columnsChange = this.after('columnsChange',"," bind('_afterColumnsChange', this));"," }",""," if (modelList && !handles.dataChange) {"," handles.dataChange = modelList.after("," ['add', 'remove', 'reset', changeEvent],"," bind('_afterDataChange', this));"," }"," },",""," /**"," Iterates the `modelList` and applies each Model to the `_rowTemplate`,"," allowing any column `formatter` or `emptyCellValue` to override cell"," content for the appropriate column. The aggregated HTML string is"," returned.",""," @method _createDataHTML"," @param {Object[]} columns The column configurations to customize the"," generated cell content or class names"," @return {HTML} The markup for all Models in the `modelList`, each applied"," to the `_rowTemplate`"," @protected"," @since 3.5.0"," **/"," _createDataHTML: function (columns) {"," var data = this.get('modelList'),"," html = '';",""," if (data) {"," data.each(function (model, index) {"," html += this._createRowHTML(model, index, columns);"," }, this);"," }",""," return html;"," },",""," /**"," Applies the data of a given Model, modified by any column formatters and"," supplemented by other template values to the instance's `_rowTemplate` (see"," `_createRowTemplate`). The generated string is then returned.",""," The data from Model's attributes is fetched by `toJSON` and this data"," object is appended with other properties to supply values to {placeholders}"," in the template. For a template generated from a Model with 'foo' and 'bar'"," attributes, the data object would end up with the following properties"," before being used to populate the `_rowTemplate`:",""," * `clientID` - From Model, used the assign the ``'s 'id' attribute."," * `foo` - The value to populate the 'foo' column cell content. This"," value will be the value stored in the Model's `foo` attribute, or the"," result of the column's `formatter` if assigned. If the value is '', "," `null`, or `undefined`, and the column's `emptyCellValue` is assigned,"," that value will be used."," * `bar` - Same for the 'bar' column cell content."," * `foo-className` - String of CSS classes to apply to the ``."," * `bar-className` - Same."," * `rowClass` - String of CSS classes to apply to the ` `. This"," will be the odd/even class per the specified index plus any additional"," classes assigned by column formatters (via `o.rowClass`).",""," Because this object is available to formatters, any additional properties"," can be added to fill in custom {placeholders} in the `_rowTemplate`.",""," @method _createRowHTML"," @param {Model} model The Model instance to apply to the row template"," @param {Number} index The index the row will be appearing"," @param {Object[]} columns The column configurations"," @return {HTML} The markup for the provided Model, less any `nodeFormatter`s"," @protected"," @since 3.5.0"," **/"," _createRowHTML: function (model, index, columns) {"," var data = model.toJSON(),"," clientId = model.get('clientId'),"," values = {"," rowId : this._getRowId(clientId),"," clientId: clientId,"," rowClass: (index % 2) ? this.CLASS_ODD : this.CLASS_EVEN"," },"," host = this.host || this,"," i, len, col, token, value, formatterData;",""," for (i = 0, len = columns.length; i < len; ++i) {"," col = columns[i];"," value = data[col.key];"," token = col._id || col.key;",""," values[token + '-className'] = '';",""," if (col.formatter) {"," formatterData = {"," value : value,"," data : data,"," column : col,"," record : model,"," className: '',"," rowClass : '',"," rowIndex : index"," };",""," if (typeof col.formatter === 'string') {"," if (value !== undefined) {"," // TODO: look for known formatters by string name"," value = fromTemplate(col.formatter, formatterData);"," }"," } else {"," // Formatters can either return a value"," value = col.formatter.call(host, formatterData);",""," // or update the value property of the data obj passed"," if (value === undefined) {"," value = formatterData.value;"," }",""," values[token + '-className'] = formatterData.className;"," values.rowClass += ' ' + formatterData.rowClass;"," }"," }",""," if (value === undefined || value === null || value === '') {"," value = col.emptyCellValue || '';"," }",""," values[token] = col.allowHTML ? value : htmlEscape(value);",""," values.rowClass = values.rowClass.replace(/\\s+/g, ' ');"," }",""," return fromTemplate(this._rowTemplate, values);"," },",""," /**"," Creates a custom HTML template string for use in generating the markup for"," individual table rows with {placeholder}s to capture data from the Models"," in the `modelList` attribute or from column `formatter`s.",""," Assigns the `_rowTemplate` property.",""," @method _createRowTemplate"," @param {Object[]} columns Array of column configuration objects"," @protected"," @since 3.5.0"," **/"," _createRowTemplate: function (columns) {"," var html = '',"," cellTemplate = this.CELL_TEMPLATE,"," i, len, col, key, token, headers, tokenValues;",""," for (i = 0, len = columns.length; i < len; ++i) {"," col = columns[i];"," key = col.key;"," token = col._id || key;"," // Only include headers if there are more than one"," headers = (col._headers || []).length > 1 ?"," 'headers=\"' + col._headers.join(' ') + '\"' : '';",""," tokenValues = {"," content : '{' + token + '}',"," headers : headers,"," className: this.getClassName('col', token) + ' ' +"," (col.className || '') + ' ' +"," this.getClassName('cell') +"," ' {' + token + '-className}'"," };",""," if (col.nodeFormatter) {"," // Defer all node decoration to the formatter"," tokenValues.content = '';"," }",""," html += fromTemplate(col.cellTemplate || cellTemplate, tokenValues);"," }",""," this._rowTemplate = fromTemplate(this.ROW_TEMPLATE, {"," content: html"," });"," },",""," /**"," Creates the ` ` node that will store the data rows.",""," @method _createTBodyNode"," @return {Node}"," @protected"," @since 3.6.0"," **/"," _createTBodyNode: function () {"," return Y.Node.create(fromTemplate(this.TBODY_TEMPLATE, {"," className: this.getClassName('data')"," }));"," },",""," /**"," Destroys the instance.",""," @method destructor"," @protected"," @since 3.5.0"," **/"," destructor: function () {"," (new Y.EventHandle(YObject.values(this._eventHandles))).detach();"," },",""," /**"," Holds the event subscriptions needing to be detached when the instance is"," `destroy()`ed.",""," @property _eventHandles"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.5.0"," **/"," //_eventHandles: null,",""," /**"," Returns the row ID associated with a Model's clientId.",""," @method _getRowId"," @param {String} clientId The Model clientId"," @return {String}"," @protected"," **/"," _getRowId: function (clientId) {"," return this._idMap[clientId] || (this._idMap[clientId] = Y.guid());"," },",""," /**"," Map of Model clientIds to row ids.",""," @property _idMap"," @type {Object}"," @protected"," **/"," //_idMap,",""," /**"," Initializes the instance. Reads the following configuration properties in"," addition to the instance attributes:",""," * `columns` - (REQUIRED) The initial column information"," * `host` - The object to serve as source of truth for column info and"," for generating class names",""," @method initializer"," @param {Object} config Configuration data"," @protected"," @since 3.5.0"," **/"," initializer: function (config) {"," this.host = config.host;",""," this._eventHandles = {"," modelListChange: this.after('modelListChange',"," bind('_afterModelListChange', this))"," };"," this._idMap = {};",""," this.CLASS_ODD = this.getClassName('odd');"," this.CLASS_EVEN = this.getClassName('even');",""," }",""," /**"," The HTML template used to create a full row of markup for a single Model in"," the `modelList` plus any customizations defined in the column"," configurations.",""," @property _rowTemplate"," @type {HTML}"," @default (initially unset)"," @protected"," @since 3.5.0"," **/"," //_rowTemplate: null","});","","","}, '3.7.1', {\"requires\": [\"datatable-core\", \"view\", \"classnamemanager\"]});"];
+_yuitest_coverage["build/datatable-body/datatable-body.js"].code=["YUI.add('datatable-body', function (Y, NAME) {","","/**","View class responsible for rendering the `` section of a table. Used as","the default `bodyView` for `Y.DataTable.Base` and `Y.DataTable` classes.","","@module datatable","@submodule datatable-body","@since 3.5.0","**/","var Lang = Y.Lang,"," isArray = Lang.isArray,"," isNumber = Lang.isNumber,"," isString = Lang.isString,"," fromTemplate = Lang.sub,"," htmlEscape = Y.Escape.html,"," toArray = Y.Array,"," bind = Y.bind,"," YObject = Y.Object;","","/**","View class responsible for rendering the `` section of a table. Used as","the default `bodyView` for `Y.DataTable.Base` and `Y.DataTable` classes.","","Translates the provided `modelList` into a rendered `` based on the data","in the constituent Models, altered or ammended by any special column","configurations.","","The `columns` configuration, passed to the constructor, determines which","columns will be rendered.","","The rendering process involves constructing an HTML template for a complete row","of data, built by concatenating a customized copy of the instance's","`CELL_TEMPLATE` into the `ROW_TEMPLATE` once for each column. This template is","then populated with values from each Model in the `modelList`, aggregating a","complete HTML string of all row and column data. A `` Node is then created from the markup and any column `nodeFormatter`s are applied.","","Supported properties of the column objects include:",""," * `key` - Used to link a column to an attribute in a Model."," * `name` - Used for columns that don't relate to an attribute in the Model"," (`formatter` or `nodeFormatter` only) if the implementer wants a"," predictable name to refer to in their CSS."," * `cellTemplate` - Overrides the instance's `CELL_TEMPLATE` for cells in this"," column only."," * `formatter` - Used to customize or override the content value from the"," Model. These do not have access to the cell or row Nodes and should"," return string (HTML) content."," * `nodeFormatter` - Used to provide content for a cell as well as perform any"," custom modifications on the cell or row Node that could not be performed by"," `formatter`s. Should be used sparingly for better performance."," * `emptyCellValue` - String (HTML) value to use if the Model data for a"," column, or the content generated by a `formatter`, is the empty string,"," `null`, or `undefined`."," * `allowHTML` - Set to `true` if a column value, `formatter`, or"," `emptyCellValue` can contain HTML. This defaults to `false` to protect"," against XSS."," * `className` - Space delimited CSS classes to add to all ``s in a column.","","Column `formatter`s are passed an object (`o`) with the following properties:",""," * `value` - The current value of the column's associated attribute, if any."," * `data` - An object map of Model keys to their current values."," * `record` - The Model instance."," * `column` - The column configuration object for the current column."," * `className` - Initially empty string to allow `formatter`s to add CSS "," classes to the cell's ` `."," * `rowIndex` - The zero-based row number."," * `rowClass` - Initially empty string to allow `formatter`s to add CSS"," classes to the cell's containing row ` `.","","They may return a value or update `o.value` to assign specific HTML content. A","returned value has higher precedence.","","Column `nodeFormatter`s are passed an object (`o`) with the following","properties:",""," * `value` - The current value of the column's associated attribute, if any."," * `td` - The `` Node instance."," * `cell` - The `` liner Node instance if present, otherwise, the ``."," When adding content to the cell, prefer appending into this property."," * `data` - An object map of Model keys to their current values."," * `record` - The Model instance."," * `column` - The column configuration object for the current column."," * `rowIndex` - The zero-based row number.","","They are expected to inject content into the cell's Node directly, including","any \"empty\" cell content. Each `nodeFormatter` will have access through the","Node API to all cells and rows in the ` `, but not to the ``, as","it will not be attached yet.","","If a `nodeFormatter` returns `false`, the `o.td` and `o.cell` Nodes will be","`destroy()`ed to remove them from the Node cache and free up memory. The DOM","elements will remain as will any content added to them. _It is highly","advisable to always return `false` from your `nodeFormatter`s_.","","@class BodyView","@namespace DataTable","@extends View","@since 3.5.0","**/","Y.namespace('DataTable').BodyView = Y.Base.create('tableBody', Y.View, [], {"," // -- Instance properties -------------------------------------------------",""," /**"," HTML template used to create table cells.",""," @property CELL_TEMPLATE"," @type {HTML}"," @default '{content} '"," @since 3.5.0"," **/"," CELL_TEMPLATE: '{content} ',",""," /**"," CSS class applied to even rows. This is assigned at instantiation."," "," For DataTable, this will be `yui3-datatable-even`.",""," @property CLASS_EVEN"," @type {String}"," @default 'yui3-table-even'"," @since 3.5.0"," **/"," //CLASS_EVEN: null",""," /**"," CSS class applied to odd rows. This is assigned at instantiation."," "," When used by DataTable instances, this will be `yui3-datatable-odd`.",""," @property CLASS_ODD"," @type {String}"," @default 'yui3-table-odd'"," @since 3.5.0"," **/"," //CLASS_ODD: null",""," /**"," HTML template used to create table rows.",""," @property ROW_TEMPLATE"," @type {HTML}"," @default '{content} '"," @since 3.5.0"," **/"," ROW_TEMPLATE : '{content} ',",""," /**"," The object that serves as the source of truth for column and row data."," This property is assigned at instantiation from the `host` property of"," the configuration object passed to the constructor.",""," @property host"," @type {Object}"," @default (initially unset)"," @since 3.5.0"," **/"," //TODO: should this be protected?"," //host: null,",""," /**"," HTML templates used to create the `` containing the table rows.",""," @property TBODY_TEMPLATE"," @type {HTML}"," @default '{content}'"," @since 3.6.0"," **/"," TBODY_TEMPLATE: '',",""," // -- Public methods ------------------------------------------------------",""," /**"," Returns the `` Node from the given row and column index. Alternately,"," the `seed` can be a Node. If so, the nearest ancestor cell is returned."," If the `seed` is a cell, it is returned. If there is no cell at the given"," coordinates, `null` is returned.",""," Optionally, include an offset array or string to return a cell near the"," cell identified by the `seed`. The offset can be an array containing the"," number of rows to shift followed by the number of columns to shift, or one"," of \"above\", \"below\", \"next\", or \"previous\".",""," // Previous cell in the previous row"," var cell = table.getCell(e.target, [-1, -1]);",""," // Next cell"," var cell = table.getCell(e.target, 'next');"," var cell = table.getCell(e.taregt, [0, 1];
",""," @method getCell"," @param {Number[]|Node} seed Array of row and column indexes, or a Node that"," is either the cell itself or a descendant of one."," @param {Number[]|String} [shift] Offset by which to identify the returned"," cell Node"," @return {Node}"," @since 3.5.0"," **/"," getCell: function (seed, shift) {"," var tbody = this.tbodyNode,"," row, cell, index, rowIndexOffset;",""," if (seed && tbody) {"," if (isArray(seed)) {"," row = tbody.get('children').item(seed[0]);"," cell = row && row.get('children').item(seed[1]);"," } else if (Y.instanceOf(seed, Y.Node)) {"," cell = seed.ancestor('.' + this.getClassName('cell'), true);"," }",""," if (cell && shift) {"," rowIndexOffset = tbody.get('firstChild.rowIndex');"," if (isString(shift)) {"," // TODO this should be a static object map"," switch (shift) {"," case 'above' : shift = [-1, 0]; break;"," case 'below' : shift = [1, 0]; break;"," case 'next' : shift = [0, 1]; break;"," case 'previous': shift = [0, -1]; break;"," }"," }",""," if (isArray(shift)) {"," index = cell.get('parentNode.rowIndex') +"," shift[0] - rowIndexOffset;"," row = tbody.get('children').item(index);",""," index = cell.get('cellIndex') + shift[1];"," cell = row && row.get('children').item(index);"," }"," }"," }"," "," return cell || null;"," },",""," /**"," 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.5.0"," **/"," getClassName: function () {"," var host = this.host,"," args;",""," if (host && host.getClassName) {"," return host.getClassName.apply(host, arguments);"," } else {"," args = toArray(arguments);"," args.unshift(this.constructor.NAME);"," return Y.ClassNameManager.getClassName"," .apply(Y.ClassNameManager, args);"," }"," },",""," /**"," Returns the Model associated to the row Node or id provided. Passing the"," Node or id for a descendant of the row also works.",""," If no Model can be found, `null` is returned.",""," @method getRecord"," @param {String|Node} seed Row Node or `id`, or one for a descendant of a row"," @return {Model}"," @since 3.5.0"," **/"," getRecord: function (seed) {"," var modelList = this.get('modelList'),"," tbody = this.tbodyNode,"," row = null,"," record;",""," if (tbody) {"," if (isString(seed)) {"," seed = tbody.one('#' + seed);"," }",""," if (Y.instanceOf(seed, Y.Node)) {"," row = seed.ancestor(function (node) {"," return node.get('parentNode').compareTo(tbody);"," }, true);",""," record = row &&"," modelList.getByClientId(row.getData('yui3-record'));"," }"," }",""," return record || null;"," },",""," /**"," Returns the ` ` Node from the given row index, Model, or Model's"," `clientId`. If the rows haven't been rendered yet, or if the row can't be"," found by the input, `null` is returned.",""," @method getRow"," @param {Number|String|Model} id Row index, Model instance, or clientId"," @return {Node}"," @since 3.5.0"," **/"," getRow: function (id) {"," var tbody = this.tbodyNode,"," row = null;",""," if (tbody) {"," if (id) {"," id = this._idMap[id.get ? id.get('clientId') : id] || id;"," }",""," row = isNumber(id) ?"," tbody.get('children').item(id) :"," tbody.one('#' + id);"," }",""," return row;"," },",""," /**"," Creates the table's ` ` content by assembling markup generated by"," populating the `ROW\\_TEMPLATE`, and `CELL\\_TEMPLATE` templates with content"," from the `columns` and `modelList` attributes.",""," The rendering process happens in three stages:",""," 1. A row template is assembled from the `columns` attribute (see"," `_createRowTemplate`)",""," 2. An HTML string is built up by concatening the application of the data in"," each Model in the `modelList` to the row template. For cells with"," `formatter`s, the function is called to generate cell content. Cells"," with `nodeFormatter`s are ignored. For all other cells, the data value"," from the Model attribute for the given column key is used. The"," accumulated row markup is then inserted into the container.",""," 3. If any column is configured with a `nodeFormatter`, the `modelList` is"," iterated again to apply the `nodeFormatter`s.",""," Supported properties of the column objects include:",""," * `key` - Used to link a column to an attribute in a Model."," * `name` - Used for columns that don't relate to an attribute in the Model"," (`formatter` or `nodeFormatter` only) if the implementer wants a"," predictable name to refer to in their CSS."," * `cellTemplate` - Overrides the instance's `CELL_TEMPLATE` for cells in"," this column only."," * `formatter` - Used to customize or override the content value from the"," Model. These do not have access to the cell or row Nodes and should"," return string (HTML) content."," * `nodeFormatter` - Used to provide content for a cell as well as perform"," any custom modifications on the cell or row Node that could not be"," performed by `formatter`s. Should be used sparingly for better"," performance."," * `emptyCellValue` - String (HTML) value to use if the Model data for a"," column, or the content generated by a `formatter`, is the empty string,"," `null`, or `undefined`."," * `allowHTML` - Set to `true` if a column value, `formatter`, or"," `emptyCellValue` can contain HTML. This defaults to `false` to protect"," against XSS."," * `className` - Space delimited CSS classes to add to all ``s in a"," column.",""," Column `formatter`s are passed an object (`o`) with the following"," properties:",""," * `value` - The current value of the column's associated attribute, if"," any."," * `data` - An object map of Model keys to their current values."," * `record` - The Model instance."," * `column` - The column configuration object for the current column."," * `className` - Initially empty string to allow `formatter`s to add CSS "," classes to the cell's ` `."," * `rowIndex` - The zero-based row number."," * `rowClass` - Initially empty string to allow `formatter`s to add CSS"," classes to the cell's containing row ` `.",""," They may return a value or update `o.value` to assign specific HTML"," content. A returned value has higher precedence.",""," Column `nodeFormatter`s are passed an object (`o`) with the following"," properties:",""," * `value` - The current value of the column's associated attribute, if"," any."," * `td` - The `` Node instance."," * `cell` - The `` liner Node instance if present, otherwise, the"," ``. When adding content to the cell, prefer appending into this"," property."," * `data` - An object map of Model keys to their current values."," * `record` - The Model instance."," * `column` - The column configuration object for the current column."," * `rowIndex` - The zero-based row number.",""," They are expected to inject content into the cell's Node directly, including"," any \"empty\" cell content. Each `nodeFormatter` will have access through the"," Node API to all cells and rows in the ` `, but not to the ``,"," as it will not be attached yet.",""," If a `nodeFormatter` returns `false`, the `o.td` and `o.cell` Nodes will be"," `destroy()`ed to remove them from the Node cache and free up memory. The"," DOM elements will remain as will any content added to them. _It is highly"," advisable to always return `false` from your `nodeFormatter`s_.",""," @method render"," @return {BodyView} The instance"," @chainable"," @since 3.5.0"," **/"," render: function () {"," var table = this.get('container'),"," data = this.get('modelList'),"," columns = this.get('columns'),"," tbody = this.tbodyNode ||"," (this.tbodyNode = this._createTBodyNode());"," "," // Needed for mutation"," this._createRowTemplate(columns);",""," if (data) {"," tbody.setHTML(this._createDataHTML(columns));",""," this._applyNodeFormatters(tbody, columns);"," }",""," if (tbody.get('parentNode') !== table) {"," table.appendChild(tbody);"," }",""," this.bindUI();",""," return this;"," },",""," // -- Protected and private methods ---------------------------------------"," /**"," Handles changes in the source's columns attribute. Redraws the table data.",""," @method _afterColumnsChange"," @param {EventFacade} e The `columnsChange` event object"," @protected"," @since 3.5.0"," **/"," // TODO: Preserve existing DOM"," // This will involve parsing and comparing the old and new column configs"," // and reacting to four types of changes:"," // 1. formatter, nodeFormatter, emptyCellValue changes"," // 2. column deletions"," // 3. column additions"," // 4. column moves (preserve cells)"," _afterColumnsChange: function (e) {"," this.render();"," },",""," /**"," Handles modelList changes, including additions, deletions, and updates.",""," Modifies the existing table DOM accordingly.",""," @method _afterDataChange"," @param {EventFacade} e The `change` event from the ModelList"," @protected"," @since 3.5.0"," **/"," _afterDataChange: function (e) {"," //var type = e.type.slice(e.type.lastIndexOf(':') + 1);",""," // TODO: Isolate changes"," this.render();"," },",""," /**"," Handles replacement of the modelList.",""," Rerenders the `` contents.",""," @method _afterModelListChange"," @param {EventFacade} e The `modelListChange` event"," @protected"," @since 3.6.0"," **/"," _afterModelListChange: function (e) {"," var handles = this._eventHandles;",""," if (handles.dataChange) {"," handles.dataChange.detach();"," delete handles.dataChange;"," this.bindUI();"," }",""," if (this.tbodyNode) {"," this.render();"," }"," },",""," /**"," Iterates the `modelList`, and calls any `nodeFormatter`s found in the"," `columns` param on the appropriate cell Nodes in the `tbody`.",""," @method _applyNodeFormatters"," @param {Node} tbody The `` Node whose columns to update"," @param {Object[]} columns The column configurations"," @protected"," @since 3.5.0"," **/"," _applyNodeFormatters: function (tbody, columns) {"," var host = this.host,"," data = this.get('modelList'),"," formatters = [],"," linerQuery = '.' + this.getClassName('liner'),"," rows, i, len;",""," // Only iterate the ModelList again if there are nodeFormatters"," for (i = 0, len = columns.length; i < len; ++i) {"," if (columns[i].nodeFormatter) {"," formatters.push(i);"," }"," }",""," if (data && formatters.length) {"," rows = tbody.get('childNodes');",""," data.each(function (record, index) {"," var formatterData = {"," data : record.toJSON(),"," record : record,"," rowIndex : index"," },"," row = rows.item(index),"," i, len, col, key, cells, cell, keep;","",""," if (row) {"," cells = row.get('childNodes');"," for (i = 0, len = formatters.length; i < len; ++i) {"," cell = cells.item(formatters[i]);",""," if (cell) {"," col = formatterData.column = columns[formatters[i]];"," key = col.key || col.id;",""," formatterData.value = record.get(key);"," formatterData.td = cell;"," formatterData.cell = cell.one(linerQuery) || cell;",""," keep = col.nodeFormatter.call(host,formatterData);",""," if (keep === false) {"," // Remove from the Node cache to reduce"," // memory footprint. This also purges events,"," // which you shouldn't be scoping to a cell"," // anyway. You've been warned. Incidentally,"," // you should always return false. Just sayin."," cell.destroy(true);"," }"," }"," }"," }"," });"," }"," },",""," /**"," Binds event subscriptions from the UI and the host (if assigned).",""," @method bindUI"," @protected"," @since 3.5.0"," **/"," bindUI: function () {"," var handles = this._eventHandles,"," modelList = this.get('modelList'),"," changeEvent = modelList.model.NAME + ':change';",""," if (!handles.columnsChange) {"," handles.columnsChange = this.after('columnsChange',"," bind('_afterColumnsChange', this));"," }",""," if (modelList && !handles.dataChange) {"," handles.dataChange = modelList.after("," ['add', 'remove', 'reset', changeEvent],"," bind('_afterDataChange', this));"," }"," },",""," /**"," Iterates the `modelList` and applies each Model to the `_rowTemplate`,"," allowing any column `formatter` or `emptyCellValue` to override cell"," content for the appropriate column. The aggregated HTML string is"," returned.",""," @method _createDataHTML"," @param {Object[]} columns The column configurations to customize the"," generated cell content or class names"," @return {HTML} The markup for all Models in the `modelList`, each applied"," to the `_rowTemplate`"," @protected"," @since 3.5.0"," **/"," _createDataHTML: function (columns) {"," var data = this.get('modelList'),"," html = '';",""," if (data) {"," data.each(function (model, index) {"," html += this._createRowHTML(model, index, columns);"," }, this);"," }",""," return html;"," },",""," /**"," Applies the data of a given Model, modified by any column formatters and"," supplemented by other template values to the instance's `_rowTemplate` (see"," `_createRowTemplate`). The generated string is then returned.",""," The data from Model's attributes is fetched by `toJSON` and this data"," object is appended with other properties to supply values to {placeholders}"," in the template. For a template generated from a Model with 'foo' and 'bar'"," attributes, the data object would end up with the following properties"," before being used to populate the `_rowTemplate`:",""," * `clientID` - From Model, used the assign the ``'s 'id' attribute."," * `foo` - The value to populate the 'foo' column cell content. This"," value will be the value stored in the Model's `foo` attribute, or the"," result of the column's `formatter` if assigned. If the value is '', "," `null`, or `undefined`, and the column's `emptyCellValue` is assigned,"," that value will be used."," * `bar` - Same for the 'bar' column cell content."," * `foo-className` - String of CSS classes to apply to the ``."," * `bar-className` - Same."," * `rowClass` - String of CSS classes to apply to the ` `. This"," will be the odd/even class per the specified index plus any additional"," classes assigned by column formatters (via `o.rowClass`).",""," Because this object is available to formatters, any additional properties"," can be added to fill in custom {placeholders} in the `_rowTemplate`.",""," @method _createRowHTML"," @param {Model} model The Model instance to apply to the row template"," @param {Number} index The index the row will be appearing"," @param {Object[]} columns The column configurations"," @return {HTML} The markup for the provided Model, less any `nodeFormatter`s"," @protected"," @since 3.5.0"," **/"," _createRowHTML: function (model, index, columns) {"," var data = model.toJSON(),"," clientId = model.get('clientId'),"," values = {"," rowId : this._getRowId(clientId),"," clientId: clientId,"," rowClass: (index % 2) ? this.CLASS_ODD : this.CLASS_EVEN"," },"," host = this.host || this,"," i, len, col, token, value, formatterData;",""," for (i = 0, len = columns.length; i < len; ++i) {"," col = columns[i];"," value = data[col.key];"," token = col._id || col.key;",""," values[token + '-className'] = '';",""," if (col.formatter) {"," formatterData = {"," value : value,"," data : data,"," column : col,"," record : model,"," className: '',"," rowClass : '',"," rowIndex : index"," };",""," if (typeof col.formatter === 'string') {"," if (value !== undefined) {"," // TODO: look for known formatters by string name"," value = fromTemplate(col.formatter, formatterData);"," }"," } else {"," // Formatters can either return a value"," value = col.formatter.call(host, formatterData);",""," // or update the value property of the data obj passed"," if (value === undefined) {"," value = formatterData.value;"," }",""," values[token + '-className'] = formatterData.className;"," values.rowClass += ' ' + formatterData.rowClass;"," }"," }",""," if (value === undefined || value === null || value === '') {"," value = col.emptyCellValue || '';"," }",""," values[token] = col.allowHTML ? value : htmlEscape(value);",""," values.rowClass = values.rowClass.replace(/\\s+/g, ' ');"," }",""," return fromTemplate(this._rowTemplate, values);"," },",""," /**"," Creates a custom HTML template string for use in generating the markup for"," individual table rows with {placeholder}s to capture data from the Models"," in the `modelList` attribute or from column `formatter`s.",""," Assigns the `_rowTemplate` property.",""," @method _createRowTemplate"," @param {Object[]} columns Array of column configuration objects"," @protected"," @since 3.5.0"," **/"," _createRowTemplate: function (columns) {"," var html = '',"," cellTemplate = this.CELL_TEMPLATE,"," i, len, col, key, token, headers, tokenValues;",""," for (i = 0, len = columns.length; i < len; ++i) {"," col = columns[i];"," key = col.key;"," token = col._id || key;"," // Only include headers if there are more than one"," headers = (col._headers || []).length > 1 ?"," 'headers=\"' + col._headers.join(' ') + '\"' : '';",""," tokenValues = {"," content : '{' + token + '}',"," headers : headers,"," className: this.getClassName('col', token) + ' ' +"," (col.className || '') + ' ' +"," this.getClassName('cell') +"," ' {' + token + '-className}'"," };",""," if (col.nodeFormatter) {"," // Defer all node decoration to the formatter"," tokenValues.content = '';"," }",""," html += fromTemplate(col.cellTemplate || cellTemplate, tokenValues);"," }",""," this._rowTemplate = fromTemplate(this.ROW_TEMPLATE, {"," content: html"," });"," },",""," /**"," Creates the ` ` node that will store the data rows.",""," @method _createTBodyNode"," @return {Node}"," @protected"," @since 3.6.0"," **/"," _createTBodyNode: function () {"," return Y.Node.create(fromTemplate(this.TBODY_TEMPLATE, {"," className: this.getClassName('data')"," }));"," },",""," /**"," Destroys the instance.",""," @method destructor"," @protected"," @since 3.5.0"," **/"," destructor: function () {"," (new Y.EventHandle(YObject.values(this._eventHandles))).detach();"," },",""," /**"," Holds the event subscriptions needing to be detached when the instance is"," `destroy()`ed.",""," @property _eventHandles"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.5.0"," **/"," //_eventHandles: null,",""," /**"," Returns the row ID associated with a Model's clientId.",""," @method _getRowId"," @param {String} clientId The Model clientId"," @return {String}"," @protected"," **/"," _getRowId: function (clientId) {"," return this._idMap[clientId] || (this._idMap[clientId] = Y.guid());"," },",""," /**"," Map of Model clientIds to row ids.",""," @property _idMap"," @type {Object}"," @protected"," **/"," //_idMap,",""," /**"," Initializes the instance. Reads the following configuration properties in"," addition to the instance attributes:",""," * `columns` - (REQUIRED) The initial column information"," * `host` - The object to serve as source of truth for column info and"," for generating class names",""," @method initializer"," @param {Object} config Configuration data"," @protected"," @since 3.5.0"," **/"," initializer: function (config) {"," this.host = config.host;",""," this._eventHandles = {"," modelListChange: this.after('modelListChange',"," bind('_afterModelListChange', this))"," };"," this._idMap = {};",""," this.CLASS_ODD = this.getClassName('odd');"," this.CLASS_EVEN = this.getClassName('even');",""," }",""," /**"," The HTML template used to create a full row of markup for a single Model in"," the `modelList` plus any customizations defined in the column"," configurations.",""," @property _rowTemplate"," @type {HTML}"," @default (initially unset)"," @protected"," @since 3.5.0"," **/"," //_rowTemplate: null","});","","","}, '3.7.2', {\"requires\": [\"datatable-core\", \"view\", \"classnamemanager\"]});"];
_yuitest_coverage["build/datatable-body/datatable-body.js"].lines = {"1":0,"11":0,"102":0,"201":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"212":0,"213":0,"214":0,"216":0,"217":0,"218":0,"219":0,"220":0,"224":0,"225":0,"227":0,"229":0,"230":0,"235":0,"254":0,"257":0,"258":0,"260":0,"261":0,"262":0,"279":0,"284":0,"285":0,"286":0,"289":0,"290":0,"291":0,"294":0,"299":0,"313":0,"316":0,"317":0,"318":0,"321":0,"326":0,"420":0,"427":0,"429":0,"430":0,"432":0,"435":0,"436":0,"439":0,"441":0,"461":0,"478":0,"492":0,"494":0,"495":0,"496":0,"497":0,"500":0,"501":0,"516":0,"523":0,"524":0,"525":0,"529":0,"530":0,"532":0,"533":0,"542":0,"543":0,"544":0,"545":0,"547":0,"548":0,"549":0,"551":0,"552":0,"553":0,"555":0,"557":0,"563":0,"580":0,"584":0,"585":0,"589":0,"590":0,"611":0,"614":0,"615":0,"616":0,"620":0,"659":0,"669":0,"670":0,"671":0,"672":0,"674":0,"676":0,"677":0,"687":0,"688":0,"690":0,"694":0,"697":0,"698":0,"701":0,"702":0,"706":0,"707":0,"710":0,"712":0,"715":0,"731":0,"735":0,"736":0,"737":0,"738":0,"740":0,"743":0,"752":0,"754":0,"757":0,"760":0,"774":0,"787":0,"811":0,"837":0,"839":0,"843":0,"845":0,"846":0};
_yuitest_coverage["build/datatable-body/datatable-body.js"].functions = {"getCell:200":0,"getClassName:253":0,"(anonymous 2):290":0,"getRecord:278":0,"getRow:312":0,"render:419":0,"_afterColumnsChange:460":0,"_afterDataChange:474":0,"_afterModelListChange:491":0,"(anonymous 3):532":0,"_applyNodeFormatters:515":0,"bindUI:579":0,"(anonymous 4):615":0,"_createDataHTML:610":0,"_createRowHTML:658":0,"_createRowTemplate:730":0,"_createTBodyNode:773":0,"destructor:786":0,"_getRowId:810":0,"initializer:836":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-body/datatable-body.js"].coveredLines = 134;
@@ -1056,4 +1056,4 @@ this.CLASS_EVEN = this.getClassName('even');
});
-}, '3.7.1', {"requires": ["datatable-core", "view", "classnamemanager"]});
+}, '3.7.2', {"requires": ["datatable-core", "view", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-body/datatable-body-debug.js b/lib/yuilib/3.7.2/build/datatable-body/datatable-body-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-body/datatable-body-debug.js
rename to lib/yuilib/3.7.2/build/datatable-body/datatable-body-debug.js
index 449d4928785..75552e2d318 100644
--- a/lib/yuilib/3.7.1/build/datatable-body/datatable-body-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-body/datatable-body-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -868,4 +868,4 @@ Y.namespace('DataTable').BodyView = Y.Base.create('tableBody', Y.View, [], {
});
-}, '3.7.1', {"requires": ["datatable-core", "view", "classnamemanager"]});
+}, '3.7.2', {"requires": ["datatable-core", "view", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-body/datatable-body-min.js b/lib/yuilib/3.7.2/build/datatable-body/datatable-body-min.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-body/datatable-body-min.js
rename to lib/yuilib/3.7.2/build/datatable-body/datatable-body-min.js
index e84b280ea54..7b3238502ea 100644
--- a/lib/yuilib/3.7.1/build/datatable-body/datatable-body-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-body/datatable-body-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-body",function(e,t){var n=e.Lang,r=n.isArray,i=n.isNumber,s=n.isString,o=n.sub,u=e.Escape.html,a=e.Array,f=e.bind,l=e.Object;e.namespace("DataTable").BodyView=e.Base.create("tableBody",e.View,[],{CELL_TEMPLATE:'{content} ',ROW_TEMPLATE:'{content} ',TBODY_TEMPLATE:'',getCell:function(t,n){var i=this.tbodyNode,o,u,a,f;if(t&&i){r(t)?(o=i.get("children").item(t[0]),u=o&&o.get("children").item(t[1])):e.instanceOf(t,e.Node)&&(u=t.ancestor("."+this.getClassName("cell"),!0));if(u&&n){f=i.get("firstChild.rowIndex");if(s(n))switch(n){case"above":n=[-1,0];break;case"below":n=[1,0];break;case"next":n=[0,1];break;case"previous":n=[0,-1]}r(n)&&(a=u.get("parentNode.rowIndex")+n[0]-f,o=i.get("children").item(a),a=u.get("cellIndex")+n[1],u=o&&o.get("children").item(a))}}return u||null},getClassName:function(){var t=this.host,n;return t&&t.getClassName?t.getClassName.apply(t,arguments):(n=a(arguments),n.unshift(this.constructor.NAME),e.ClassNameManager.getClassName.apply(e.ClassNameManager,n))},getRecord:function(t){var n=this.get("modelList"),r=this.tbodyNode,i=null,o;return r&&(s(t)&&(t=r.one("#"+t)),e.instanceOf(t,e.Node)&&(i=t.ancestor(function(e){return e.get("parentNode").compareTo(r)},!0),o=i&&n.getByClientId(i.getData("yui3-record")))),o||null},getRow:function(e){var t=this.tbodyNode,n=null;return t&&(e&&(e=this._idMap[e.get?e.get("clientId"):e]||e),n=i(e)?t.get("children").item(e):t.one("#"+e)),n},render:function(){var e=this.get("container"),t=this.get("modelList"),n=this.get("columns"),r=this.tbodyNode||(this.tbodyNode=this._createTBodyNode());return this._createRowTemplate(n),t&&(r.setHTML(this._createDataHTML(n)),this._applyNodeFormatters(r,n)),r.get("parentNode")!==e&&e.appendChild(r),this.bindUI(),this},_afterColumnsChange:function(e){this.render()},_afterDataChange:function(e){this.render()},_afterModelListChange:function(e){var t=this._eventHandles;t.dataChange&&(t.dataChange.detach(),delete t.dataChange,this.bindUI()),this.tbodyNode&&this.render()},_applyNodeFormatters:function(e,t){var n=this.host,r=this.get("modelList"),i=[],s="."+this.getClassName("liner"),o,u,a;for(u=0,a=t.length;u1?'headers="'+s._headers.join(" ")+'"':"",l={content:"{"+a+"}",headers:f,className:this.getClassName("col",a)+" "+(s.className||"")+" "+this.getClassName("cell")+" {"+a+"-className}"},s.nodeFormatter&&(l.content=""),t+=o(s.cellTemplate||n,l);this._rowTemplate=o(this.ROW_TEMPLATE,{content:t})},_createTBodyNode:function(){return e.Node.create(o(this.TBODY_TEMPLATE,{className:this.getClassName("data")}))},destructor:function(){(new e.EventHandle(l.values(this._eventHandles))).detach()},_getRowId:function(t){return this._idMap[t]||(this._idMap[t]=e.guid())},initializer:function(e){this.host=e.host,this._eventHandles={modelListChange:this.after("modelListChange",f("_afterModelListChange",this))},this._idMap={},this.CLASS_ODD=this.getClassName("odd"),this.CLASS_EVEN=this.getClassName("even")}})},"3.7.1",{requires:["datatable-core","view","classnamemanager"]});
+YUI.add("datatable-body",function(e,t){var n=e.Lang,r=n.isArray,i=n.isNumber,s=n.isString,o=n.sub,u=e.Escape.html,a=e.Array,f=e.bind,l=e.Object;e.namespace("DataTable").BodyView=e.Base.create("tableBody",e.View,[],{CELL_TEMPLATE:'{content} ',ROW_TEMPLATE:'{content} ',TBODY_TEMPLATE:'',getCell:function(t,n){var i=this.tbodyNode,o,u,a,f;if(t&&i){r(t)?(o=i.get("children").item(t[0]),u=o&&o.get("children").item(t[1])):e.instanceOf(t,e.Node)&&(u=t.ancestor("."+this.getClassName("cell"),!0));if(u&&n){f=i.get("firstChild.rowIndex");if(s(n))switch(n){case"above":n=[-1,0];break;case"below":n=[1,0];break;case"next":n=[0,1];break;case"previous":n=[0,-1]}r(n)&&(a=u.get("parentNode.rowIndex")+n[0]-f,o=i.get("children").item(a),a=u.get("cellIndex")+n[1],u=o&&o.get("children").item(a))}}return u||null},getClassName:function(){var t=this.host,n;return t&&t.getClassName?t.getClassName.apply(t,arguments):(n=a(arguments),n.unshift(this.constructor.NAME),e.ClassNameManager.getClassName.apply(e.ClassNameManager,n))},getRecord:function(t){var n=this.get("modelList"),r=this.tbodyNode,i=null,o;return r&&(s(t)&&(t=r.one("#"+t)),e.instanceOf(t,e.Node)&&(i=t.ancestor(function(e){return e.get("parentNode").compareTo(r)},!0),o=i&&n.getByClientId(i.getData("yui3-record")))),o||null},getRow:function(e){var t=this.tbodyNode,n=null;return t&&(e&&(e=this._idMap[e.get?e.get("clientId"):e]||e),n=i(e)?t.get("children").item(e):t.one("#"+e)),n},render:function(){var e=this.get("container"),t=this.get("modelList"),n=this.get("columns"),r=this.tbodyNode||(this.tbodyNode=this._createTBodyNode());return this._createRowTemplate(n),t&&(r.setHTML(this._createDataHTML(n)),this._applyNodeFormatters(r,n)),r.get("parentNode")!==e&&e.appendChild(r),this.bindUI(),this},_afterColumnsChange:function(e){this.render()},_afterDataChange:function(e){this.render()},_afterModelListChange:function(e){var t=this._eventHandles;t.dataChange&&(t.dataChange.detach(),delete t.dataChange,this.bindUI()),this.tbodyNode&&this.render()},_applyNodeFormatters:function(e,t){var n=this.host,r=this.get("modelList"),i=[],s="."+this.getClassName("liner"),o,u,a;for(u=0,a=t.length;u1?'headers="'+s._headers.join(" ")+'"':"",l={content:"{"+a+"}",headers:f,className:this.getClassName("col",a)+" "+(s.className||"")+" "+this.getClassName("cell")+" {"+a+"-className}"},s.nodeFormatter&&(l.content=""),t+=o(s.cellTemplate||n,l);this._rowTemplate=o(this.ROW_TEMPLATE,{content:t})},_createTBodyNode:function(){return e.Node.create(o(this.TBODY_TEMPLATE,{className:this.getClassName("data")}))},destructor:function(){(new e.EventHandle(l.values(this._eventHandles))).detach()},_getRowId:function(t){return this._idMap[t]||(this._idMap[t]=e.guid())},initializer:function(e){this.host=e.host,this._eventHandles={modelListChange:this.after("modelListChange",f("_afterModelListChange",this))},this._idMap={},this.CLASS_ODD=this.getClassName("odd"),this.CLASS_EVEN=this.getClassName("even")}})},"3.7.2",{requires:["datatable-core","view","classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-body/datatable-body.js b/lib/yuilib/3.7.2/build/datatable-body/datatable-body.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-body/datatable-body.js
rename to lib/yuilib/3.7.2/build/datatable-body/datatable-body.js
index 449d4928785..75552e2d318 100644
--- a/lib/yuilib/3.7.1/build/datatable-body/datatable-body.js
+++ b/lib/yuilib/3.7.2/build/datatable-body/datatable-body.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -868,4 +868,4 @@ Y.namespace('DataTable').BodyView = Y.Base.create('tableBody', Y.View, [], {
});
-}, '3.7.1', {"requires": ["datatable-core", "view", "classnamemanager"]});
+}, '3.7.2', {"requires": ["datatable-core", "view", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-column-widths/datatable-column-widths-coverage.js b/lib/yuilib/3.7.2/build/datatable-column-widths/datatable-column-widths-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-column-widths/datatable-column-widths-coverage.js
rename to lib/yuilib/3.7.2/build/datatable-column-widths/datatable-column-widths-coverage.js
index 510ef344ba4..0b2a54c1029 100644
--- a/lib/yuilib/3.7.1/build/datatable-column-widths/datatable-column-widths-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatable-column-widths/datatable-column-widths-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatable-column-widths/datatable-column-widths.js"] =
path: "build/datatable-column-widths/datatable-column-widths.js",
code: []
};
-_yuitest_coverage["build/datatable-column-widths/datatable-column-widths.js"].code=["YUI.add('datatable-column-widths', function (Y, NAME) {","","/**","Adds basic, programmatic column width support to DataTable via column","configuration property `width` and method `table.setColumnWidth(id, width);`.","","@module datatable","@submodule datatable-column-widths","@since 3.5.0","**/","var isNumber = Y.Lang.isNumber,"," arrayIndex = Y.Array.indexOf;","","Y.Features.add('table', 'badColWidth', {"," test: function () {"," var body = Y.one('body'),"," node, broken;",""," if (body) {"," // In modern browsers, will make columns,"," // *including padding and borders* X wide. The cell content width"," // is reduced. In old browsers and all Opera versions to date, the"," // col's width style is passed to the cells, which causes cell"," // padding/border to bloat the rendered width."," node = body.insertBefore("," '',"," body.get('firstChild'));",""," broken = node.one('td').getComputedStyle('width') !== '1px';",""," node.remove(true);"," }",""," return broken;"," }","});","","/**","_API docs for this extension are included in the DataTable class._","","Adds basic, programmatic column width support to DataTable. Note, this does not","add support for truncated columns. Due to the way HTML tables render, column","width is more like a \"recommended width\". Column content wider than the","assigned width will cause the column to expand, despite the configured width.","Similarly if the table is too narrow to fit the column with the configured","column width, the column width will be reduced.","","To set a column width, either add a `width` value to the column configuration","or call the `setColumnWidth(id, width)` method.","","Note, assigning column widths is possible without this module, as each cell is","decorated with a class appropriate for that column which you can statically","target in your site's CSS.","","To achieve absolute column widths, with content truncation, you can either:","","1. Use this module, configure *all* columns to have `width`s, then add"," `table-layout: fixed;` to your CSS for the appropriate ``, or","2. Wrap the contents of all cells in the column with a `` (using a"," `cellTemplate` or `formatter`), assign the div's style `width`, then assign"," the column `width` or add a CSS `width` to the column class created by"," DataTable.","",".yui3-datatable .yui3-datatable-col-foo {"," padding: 0;"," width: 125px;","}",".yui3-datatable .yui3-datatable-col-foo .yui3-datatable-liner {"," overflow: hidden;"," padding: 4px 10px;"," width: 125px;","}","
","","var table = new Y.DataTable({"," columns: ["," {"," key: 'foo',"," cellTemplate:"," '<td class=\"{className}\">' +"," '<div class=\"yui3-datatable-liner\">{content}</div>' +"," '</td>'"," },"," ..."," ],"," ...","});","
","","To add a liner to all columns, either provide a custom `bodyView` to the","DataTable constructor or update the default `bodyView`'s `CELL_TEMPLATE` like","so:","","table.on('renderBody', function (e) {"," e.view.CELL_TEMPLATE = e.view.CELL_TEMPLATE.replace(/\\{content\\}/,"," '<div class=\"yui3-datatable-liner\">{content}</div>');","});","
","","Keep in mind that DataTable skins apply cell `padding`, so assign your CSS","`width`s accordingly or override the `padding` style for that column's ``s","to 0, and add `padding` to the liner ``'s styles as shown above.","","@class DataTable.ColumnWidths","@for DataTable","@since 3.5.0","**/","function ColumnWidths() {}","","Y.mix(ColumnWidths.prototype, {"," /**"," The HTML template used to create the table's ` `s.",""," @property COL_TEMPLATE"," @type {HTML}"," @default ' '"," @since 3.5.0"," **/"," COL_TEMPLATE: ' ',",""," /**"," The HTML template used to create the table's ``.",""," @property COLGROUP_TEMPLATE"," @type {HTML}"," @default ' '"," @since 3.5.0"," **/"," COLGROUP_TEMPLATE: ' ',",""," /**"," Assigns the style width of the ` ` representing the column identifed by"," `id` and updates the column configuration.",""," Pass the empty string for `width` to return a column to auto sizing.",""," This does not trigger a `columnsChange` event today, but I can be convinced"," that it should.",""," @method setColumnWidth"," @param {Number|String|Object} id The column config object or key, name, or"," index of a column in the host's `_displayColumns` array."," @param {Number|String} width CSS width value. Numbers are treated as pixels"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," setColumnWidth: function (id, width) {"," var col = this.getColumn(id),"," index = col && arrayIndex(this._displayColumns, col);",""," if (index > -1) {"," if (isNumber(width)) {"," width += 'px';"," }",""," col.width = width;",""," this._setColumnWidth(index, width);"," }",""," return this;"," },",""," //--------------------------------------------------------------------------"," // Protected properties and methods"," //--------------------------------------------------------------------------"," /**"," Renders the table's `` and populates the `_colgroupNode` property.",""," @method _createColumnGroup"," @protected"," @since 3.5.0"," **/"," _createColumnGroup: function () {"," return Y.Node.create(this.COLGROUP_TEMPLATE);"," },",""," /**"," Hooks up to the rendering lifecycle to also render the ` ` and"," subscribe to `columnChange` events.",""," @method initializer"," @protected"," @since 3.5.0"," **/"," initializer: function (config) {"," this.after(['renderView', 'columnsChange'], this._uiSetColumnWidths);"," },",""," /**"," Sets a columns's ` ` element width style. This is needed to get around"," browser rendering differences.",""," The colIndex corresponds to the item index of the ` ` in the table's"," ` `.",""," To unset the width, pass a falsy value for the `width`.",""," @method _setColumnWidth"," @param {Number} colIndex The display column index"," @param {Number|String} width The desired width"," @protected"," @since 3.5.0"," **/"," // TODO: move this to a conditional module"," _setColumnWidth: function (colIndex, width) {"," // Opera (including Opera Next circa 1/13/2012) and IE7- pass on the"," // width style to the cells directly, allowing padding and borders to"," // expand the rendered width. Chrome 16, Safari 5.1.1, and FF 3.6+ all"," // make the rendered width equal the col's style width, reducing the"," // cells' calculated width."," var colgroup = this._colgroupNode,"," col = colgroup && colgroup.all('col').item(colIndex),"," cell, getCStyle;",""," if (col) {"," if (width && isNumber(width)) {"," width += 'px';"," }",""," col.setStyle('width', width);",""," // Adjust the width for browsers that make"," // td.style.width === col.style.width"," if (width && Y.Features.test('table', 'badColWidth')) {"," cell = this.getCell([0, colIndex]);"," "," if (cell) {"," getCStyle = function (prop) {"," return parseInt(cell.getComputedStyle(prop), 10)|0;"," };",""," col.setStyle('width',"," // I hate this"," parseInt(width, 10) -"," getCStyle('paddingLeft') -"," getCStyle('paddingRight') -"," getCStyle('borderLeftWidth') -"," getCStyle('borderRightWidth') + 'px');",""," }"," }"," }"," },",""," /**"," Populates the table's ` ` with a ` ` per item in the `columns`"," attribute without children. It is assumed that these are the columns that"," have data cells renderered for them.",""," @method _uiSetColumnWidths"," @protected"," @since 3.5.0"," **/"," _uiSetColumnWidths: function () {"," if (!this.view) {"," return;"," }",""," var template = this.COL_TEMPLATE,"," colgroup = this._colgroupNode,"," columns = this._displayColumns,"," i, len;",""," if (!colgroup) {"," colgroup = this._colgroupNode = this._createColumnGroup();",""," this._tableNode.insertBefore("," colgroup,"," this._tableNode.one('> thead, > tfoot, > tbody'));"," } else {"," colgroup.empty();"," }",""," for (i = 0, len = columns.length; i < len; ++i) {",""," colgroup.append(template);",""," this._setColumnWidth(i, columns[i].width);"," }"," }","}, true);","","Y.DataTable.ColumnWidths = ColumnWidths;","","Y.Base.mix(Y.DataTable, [ColumnWidths]);","","","}, '3.7.1', {\"requires\": [\"datatable-base\"]});"];
+_yuitest_coverage["build/datatable-column-widths/datatable-column-widths.js"].code=["YUI.add('datatable-column-widths', function (Y, NAME) {","","/**","Adds basic, programmatic column width support to DataTable via column","configuration property `width` and method `table.setColumnWidth(id, width);`.","","@module datatable","@submodule datatable-column-widths","@since 3.5.0","**/","var isNumber = Y.Lang.isNumber,"," arrayIndex = Y.Array.indexOf;","","Y.Features.add('table', 'badColWidth', {"," test: function () {"," var body = Y.one('body'),"," node, broken;",""," if (body) {"," // In modern browsers, will make columns,"," // *including padding and borders* X wide. The cell content width"," // is reduced. In old browsers and all Opera versions to date, the"," // col's width style is passed to the cells, which causes cell"," // padding/border to bloat the rendered width."," node = body.insertBefore("," '',"," body.get('firstChild'));",""," broken = node.one('td').getComputedStyle('width') !== '1px';",""," node.remove(true);"," }",""," return broken;"," }","});","","/**","_API docs for this extension are included in the DataTable class._","","Adds basic, programmatic column width support to DataTable. Note, this does not","add support for truncated columns. Due to the way HTML tables render, column","width is more like a \"recommended width\". Column content wider than the","assigned width will cause the column to expand, despite the configured width.","Similarly if the table is too narrow to fit the column with the configured","column width, the column width will be reduced.","","To set a column width, either add a `width` value to the column configuration","or call the `setColumnWidth(id, width)` method.","","Note, assigning column widths is possible without this module, as each cell is","decorated with a class appropriate for that column which you can statically","target in your site's CSS.","","To achieve absolute column widths, with content truncation, you can either:","","1. Use this module, configure *all* columns to have `width`s, then add"," `table-layout: fixed;` to your CSS for the appropriate ``, or","2. Wrap the contents of all cells in the column with a `` (using a"," `cellTemplate` or `formatter`), assign the div's style `width`, then assign"," the column `width` or add a CSS `width` to the column class created by"," DataTable.","",".yui3-datatable .yui3-datatable-col-foo {"," padding: 0;"," width: 125px;","}",".yui3-datatable .yui3-datatable-col-foo .yui3-datatable-liner {"," overflow: hidden;"," padding: 4px 10px;"," width: 125px;","}","
","","var table = new Y.DataTable({"," columns: ["," {"," key: 'foo',"," cellTemplate:"," '<td class=\"{className}\">' +"," '<div class=\"yui3-datatable-liner\">{content}</div>' +"," '</td>'"," },"," ..."," ],"," ...","});","
","","To add a liner to all columns, either provide a custom `bodyView` to the","DataTable constructor or update the default `bodyView`'s `CELL_TEMPLATE` like","so:","","table.on('renderBody', function (e) {"," e.view.CELL_TEMPLATE = e.view.CELL_TEMPLATE.replace(/\\{content\\}/,"," '<div class=\"yui3-datatable-liner\">{content}</div>');","});","
","","Keep in mind that DataTable skins apply cell `padding`, so assign your CSS","`width`s accordingly or override the `padding` style for that column's ``s","to 0, and add `padding` to the liner ``'s styles as shown above.","","@class DataTable.ColumnWidths","@for DataTable","@since 3.5.0","**/","function ColumnWidths() {}","","Y.mix(ColumnWidths.prototype, {"," /**"," The HTML template used to create the table's ` `s.",""," @property COL_TEMPLATE"," @type {HTML}"," @default ' '"," @since 3.5.0"," **/"," COL_TEMPLATE: ' ',",""," /**"," The HTML template used to create the table's ``.",""," @property COLGROUP_TEMPLATE"," @type {HTML}"," @default ' '"," @since 3.5.0"," **/"," COLGROUP_TEMPLATE: ' ',",""," /**"," Assigns the style width of the ` ` representing the column identifed by"," `id` and updates the column configuration.",""," Pass the empty string for `width` to return a column to auto sizing.",""," This does not trigger a `columnsChange` event today, but I can be convinced"," that it should.",""," @method setColumnWidth"," @param {Number|String|Object} id The column config object or key, name, or"," index of a column in the host's `_displayColumns` array."," @param {Number|String} width CSS width value. Numbers are treated as pixels"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," setColumnWidth: function (id, width) {"," var col = this.getColumn(id),"," index = col && arrayIndex(this._displayColumns, col);",""," if (index > -1) {"," if (isNumber(width)) {"," width += 'px';"," }",""," col.width = width;",""," this._setColumnWidth(index, width);"," }",""," return this;"," },",""," //--------------------------------------------------------------------------"," // Protected properties and methods"," //--------------------------------------------------------------------------"," /**"," Renders the table's `` and populates the `_colgroupNode` property.",""," @method _createColumnGroup"," @protected"," @since 3.5.0"," **/"," _createColumnGroup: function () {"," return Y.Node.create(this.COLGROUP_TEMPLATE);"," },",""," /**"," Hooks up to the rendering lifecycle to also render the ` ` and"," subscribe to `columnChange` events.",""," @method initializer"," @protected"," @since 3.5.0"," **/"," initializer: function (config) {"," this.after(['renderView', 'columnsChange'], this._uiSetColumnWidths);"," },",""," /**"," Sets a columns's ` ` element width style. This is needed to get around"," browser rendering differences.",""," The colIndex corresponds to the item index of the ` ` in the table's"," ` `.",""," To unset the width, pass a falsy value for the `width`.",""," @method _setColumnWidth"," @param {Number} colIndex The display column index"," @param {Number|String} width The desired width"," @protected"," @since 3.5.0"," **/"," // TODO: move this to a conditional module"," _setColumnWidth: function (colIndex, width) {"," // Opera (including Opera Next circa 1/13/2012) and IE7- pass on the"," // width style to the cells directly, allowing padding and borders to"," // expand the rendered width. Chrome 16, Safari 5.1.1, and FF 3.6+ all"," // make the rendered width equal the col's style width, reducing the"," // cells' calculated width."," var colgroup = this._colgroupNode,"," col = colgroup && colgroup.all('col').item(colIndex),"," cell, getCStyle;",""," if (col) {"," if (width && isNumber(width)) {"," width += 'px';"," }",""," col.setStyle('width', width);",""," // Adjust the width for browsers that make"," // td.style.width === col.style.width"," if (width && Y.Features.test('table', 'badColWidth')) {"," cell = this.getCell([0, colIndex]);"," "," if (cell) {"," getCStyle = function (prop) {"," return parseInt(cell.getComputedStyle(prop), 10)|0;"," };",""," col.setStyle('width',"," // I hate this"," parseInt(width, 10) -"," getCStyle('paddingLeft') -"," getCStyle('paddingRight') -"," getCStyle('borderLeftWidth') -"," getCStyle('borderRightWidth') + 'px');",""," }"," }"," }"," },",""," /**"," Populates the table's ` ` with a ` ` per item in the `columns`"," attribute without children. It is assumed that these are the columns that"," have data cells renderered for them.",""," @method _uiSetColumnWidths"," @protected"," @since 3.5.0"," **/"," _uiSetColumnWidths: function () {"," if (!this.view) {"," return;"," }",""," var template = this.COL_TEMPLATE,"," colgroup = this._colgroupNode,"," columns = this._displayColumns,"," i, len;",""," if (!colgroup) {"," colgroup = this._colgroupNode = this._createColumnGroup();",""," this._tableNode.insertBefore("," colgroup,"," this._tableNode.one('> thead, > tfoot, > tbody'));"," } else {"," colgroup.empty();"," }",""," for (i = 0, len = columns.length; i < len; ++i) {",""," colgroup.append(template);",""," this._setColumnWidth(i, columns[i].width);"," }"," }","}, true);","","Y.DataTable.ColumnWidths = ColumnWidths;","","Y.Base.mix(Y.DataTable, [ColumnWidths]);","","","}, '3.7.2', {\"requires\": [\"datatable-base\"]});"];
_yuitest_coverage["build/datatable-column-widths/datatable-column-widths.js"].lines = {"1":0,"11":0,"14":0,"16":0,"19":0,"25":0,"38":0,"40":0,"43":0,"117":0,"119":0,"158":0,"161":0,"162":0,"163":0,"166":0,"168":0,"171":0,"185":0,"197":0,"222":0,"226":0,"227":0,"228":0,"231":0,"235":0,"236":0,"238":0,"239":0,"240":0,"243":0,"266":0,"267":0,"270":0,"275":0,"276":0,"278":0,"282":0,"285":0,"287":0,"289":0,"294":0,"296":0};
_yuitest_coverage["build/datatable-column-widths/datatable-column-widths.js"].functions = {"test:15":0,"ColumnWidths:117":0,"setColumnWidth:157":0,"_createColumnGroup:184":0,"initializer:196":0,"getCStyle:239":0,"_setColumnWidth:216":0,"_uiSetColumnWidths:265":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-column-widths/datatable-column-widths.js"].coveredLines = 43;
@@ -386,4 +386,4 @@ _yuitest_coverline("build/datatable-column-widths/datatable-column-widths.js", 2
Y.Base.mix(Y.DataTable, [ColumnWidths]);
-}, '3.7.1', {"requires": ["datatable-base"]});
+}, '3.7.2', {"requires": ["datatable-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-column-widths/datatable-column-widths-debug.js b/lib/yuilib/3.7.2/build/datatable-column-widths/datatable-column-widths-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-column-widths/datatable-column-widths-debug.js
rename to lib/yuilib/3.7.2/build/datatable-column-widths/datatable-column-widths-debug.js
index bd6b6402a0a..729db23282a 100644
--- a/lib/yuilib/3.7.1/build/datatable-column-widths/datatable-column-widths-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-column-widths/datatable-column-widths-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -302,4 +302,4 @@ Y.DataTable.ColumnWidths = ColumnWidths;
Y.Base.mix(Y.DataTable, [ColumnWidths]);
-}, '3.7.1', {"requires": ["datatable-base"]});
+}, '3.7.2', {"requires": ["datatable-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-column-widths/datatable-column-widths-min.js b/lib/yuilib/3.7.2/build/datatable-column-widths/datatable-column-widths-min.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/datatable-column-widths/datatable-column-widths-min.js
rename to lib/yuilib/3.7.2/build/datatable-column-widths/datatable-column-widths-min.js
index 7968c8da2cd..8ac68ff62de 100644
--- a/lib/yuilib/3.7.1/build/datatable-column-widths/datatable-column-widths-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-column-widths/datatable-column-widths-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
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(e){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(e){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`. Values assigned"," to this attribute will be HTML escaped for security.",""," @attribute summary"," @type {String}"," @default '' (empty string)"," @since 3.5.0"," **/"," //summary: {},",""," /**"," HTML content of an optional `` element to appear above the table."," Leave this config unset or set to a falsy value to remove the caption.",""," @attribute caption"," @type HTML"," @default '' (empty string)"," @since 3.5.0"," **/"," //caption: {},",""," /**"," Deprecated as of 3.5.0. Passes through to the `data` attribute.",""," WARNING: `get('recordset')` will NOT return a Recordset instance as of"," 3.5.0. This is a break in backward compatibility.",""," @attribute recordset"," @type {Object[]|Recordset}"," @deprecated Use the `data` attribute"," @since 3.5.0"," **/"," recordset: {"," setter: '_setRecordset',"," getter: '_getRecordset',"," lazyAdd: false"," },",""," /**"," Deprecated as of 3.5.0. Passes through to the `columns` attribute.",""," WARNING: `get('columnset')` will NOT return a Columnset instance as of"," 3.5.0. This is a break in backward compatibility.",""," @attribute columnset"," @type {Object[]}"," @deprecated Use the `columns` attribute"," @since 3.5.0"," **/"," columnset: {"," setter: '_setColumnset',"," getter: '_getColumnset',"," lazyAdd: false"," }","};","","Y.mix(Table.prototype, {"," // -- Instance properties -------------------------------------------------"," /**"," The ModelList that manages the table's data.",""," @property data"," @type {ModelList}"," @default undefined (initially unset)"," @since 3.5.0"," **/"," //data: null,",""," // -- Public methods ------------------------------------------------------",""," /**"," Gets the column configuration object for the given key, name, or index. For"," nested columns, `name` can be an array of indexes, each identifying the index"," of that column in the respective parent's \"children\" array.",""," If you pass a column object, it will be returned.",""," For columns with keys, you can also fetch the column with"," `instance.get('columns.foo')`.",""," @method getColumn"," @param {String|Number|Number[]} name Key, \"name\", index, or index array to"," identify the column"," @return {Object} the column configuration object"," @since 3.5.0"," **/"," getColumn: function (name) {"," var col, columns, i, len, cols;",""," if (isObject(name) && !isArray(name)) {"," // TODO: support getting a column from a DOM node - this will cross"," // the line into the View logic, so it should be relayed",""," // Assume an object passed in is already a column def"," col = name;"," } else {"," col = this.get('columns.' + name);"," }",""," if (col) {"," return col;"," }",""," columns = this.get('columns');",""," if (isNumber(name) || isArray(name)) {"," name = toArray(name);"," cols = columns;",""," for (i = 0, len = name.length - 1; cols && i < len; ++i) {"," cols = cols[name[i]] && cols[name[i]].children;"," }",""," return (cols && cols[name[i]]) || null;"," }",""," return null;"," },",""," /**"," Returns the Model associated to the record `id`, `clientId`, or index (not"," row index). If none of those yield a Model from the `data` ModelList, the"," arguments will be passed to the `view` instance's `getRecord` method"," if it has one.",""," If no Model can be found, `null` is returned.",""," @method getRecord"," @param {Number|String|Node} seed Record `id`, `clientId`, index, Node, or"," identifier for a row or child element"," @return {Model}"," @since 3.5.0"," **/"," getRecord: function (seed) {"," var record = this.data.getById(seed) || this.data.getByClientId(seed);",""," if (!record) {"," if (isNumber(seed)) {"," record = this.data.item(seed);"," }"," "," // TODO: this should be split out to base somehow"," if (!record && this.view && this.view.getRecord) {"," record = this.view.getRecord.apply(this.view, arguments);"," }"," }",""," return record || null;"," },",""," // -- Protected and private properties and methods ------------------------",""," /**"," This tells `Y.Base` that it should create ad-hoc attributes for config"," properties passed to DataTable's constructor. This is useful for setting"," configurations on the DataTable that are intended for the rendering View(s).",""," @property _allowAdHocAttrs"," @type Boolean"," @default true"," @protected"," @since 3.6.0"," **/"," _allowAdHocAttrs: true,",""," /**"," A map of column key to column configuration objects parsed from the"," `columns` attribute.",""," @property _columnMap"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.5.0"," **/"," //_columnMap: null,",""," /**"," The Node instance of the table containing the data rows. This is set when"," the table is rendered. It may also be set by progressive enhancement,"," though this extension does not provide the logic to parse from source.",""," @property _tableNode"," @type {Node}"," @default undefined (initially unset)"," @protected"," @since 3.5.0"," **/"," //_tableNode: null,",""," /**"," Updates the `_columnMap` property in response to changes in the `columns`"," attribute.",""," @method _afterColumnsChange"," @param {EventFacade} e The `columnsChange` event object"," @protected"," @since 3.5.0"," **/"," _afterColumnsChange: function (e) {"," this._setColumnMap(e.newVal);"," },",""," /**"," Updates the `modelList` attributes of the rendered views in response to the"," `data` attribute being assigned a new ModelList.",""," @method _afterDataChange"," @param {EventFacade} e the `dataChange` event"," @protected"," @since 3.5.0"," **/"," _afterDataChange: function (e) {"," var modelList = e.newVal;",""," this.data = e.newVal;",""," if (!this.get('columns') && modelList.size()) {"," // TODO: this will cause a re-render twice because the Views are"," // subscribed to columnsChange"," this._initColumns();"," }"," },",""," /**"," Assigns to the new recordType as the model for the data ModelList",""," @method _afterRecordTypeChange"," @param {EventFacade} e recordTypeChange event"," @protected"," @since 3.6.0"," **/"," _afterRecordTypeChange: function (e) {"," var data = this.data.toJSON();",""," this.data.model = e.newVal;",""," this.data.reset(data);",""," if (!this.get('columns') && data) {"," if (data.length) {"," this._initColumns();"," } else {"," this.set('columns', keys(e.newVal.ATTRS));"," }"," }"," },",""," /**"," Creates a Model subclass from an array of attribute names or an object of"," attribute definitions. This is used to generate a class suitable to"," represent the data passed to the `data` attribute if no `recordType` is"," set.",""," @method _createRecordClass"," @param {String[]|Object} attrs Names assigned to the Model subclass's"," `ATTRS` or its entire `ATTRS` definition object"," @return {Model}"," @protected"," @since 3.5.0"," **/"," _createRecordClass: function (attrs) {"," var ATTRS, i, len;",""," if (isArray(attrs)) {"," ATTRS = {};",""," for (i = 0, len = attrs.length; i < len; ++i) {"," ATTRS[attrs[i]] = {};"," }"," } else if (isObject(attrs)) {"," ATTRS = attrs;"," }",""," return Y.Base.create('record', Y.Model, [], null, { ATTRS: ATTRS });"," },",""," /**"," Tears down the instance.",""," @method destructor"," @protected"," @since 3.6.0"," **/"," destructor: function () {"," new Y.EventHandle(Y.Object.values(this._eventHandles)).detach();"," },",""," /**"," The getter for the `columns` attribute. Returns the array of column"," configuration objects if `instance.get('columns')` is called, or the"," specific column object if `instance.get('columns.columnKey')` is called.",""," @method _getColumns"," @param {Object[]} columns The full array of column objects"," @param {String} name The attribute name requested"," (e.g. 'columns' or 'columns.foo');"," @protected"," @since 3.5.0"," **/"," _getColumns: function (columns, name) {"," // Workaround for an attribute oddity (ticket #2529254)"," // getter is expected to return an object if get('columns.foo') is called."," // Note 'columns.' is 8 characters"," return name.length > 8 ? this._columnMap : columns;"," },",""," /**"," Relays the `get()` request for the deprecated `columnset` attribute to the"," `columns` attribute.",""," THIS BREAKS BACKWARD COMPATIBILITY. 3.4.1 and prior implementations will"," expect a Columnset instance returned from `get('columnset')`.",""," @method _getColumnset"," @param {Object} ignored The current value stored in the `columnset` state"," @param {String} name The attribute name requested"," (e.g. 'columnset' or 'columnset.foo');"," @deprecated This will be removed with the `columnset` attribute in a future"," version."," @protected"," @since 3.5.0"," **/"," _getColumnset: function (_, name) {"," return this.get(name.replace(/^columnset/, 'columns'));"," },",""," /**"," Returns the Model class of the instance's `data` attribute ModelList. If"," not set, returns the explicitly configured value.",""," @method _getRecordType"," @param {Model} val The currently configured value"," @return {Model}"," **/"," _getRecordType: function (val) {"," // Prefer the value stored in the attribute because the attribute"," // change event defaultFn sets e.newVal = this.get('recordType')"," // before notifying the after() subs. But if this getter returns"," // this.data.model, then after() subs would get e.newVal === previous"," // model before _afterRecordTypeChange can set"," // this.data.model = e.newVal"," return val || (this.data && this.data.model);"," },",""," /**"," Initializes the `_columnMap` property from the configured `columns`"," attribute. If `columns` is not set, but there are records in the `data`"," ModelList, use"," `ATTRS` of that class.",""," @method _initColumns"," @protected"," @since 3.5.0"," **/"," _initColumns: function () {"," var columns = this.get('columns') || [],"," item;"," "," // Default column definition from the configured recordType"," if (!columns.length && this.data.size()) {"," // TODO: merge superclass attributes up to Model?"," item = this.data.item(0);",""," if (item.toJSON) {"," item = item.toJSON();"," }",""," this.set('columns', keys(item));"," }",""," this._setColumnMap(columns);"," },",""," /**"," Sets up the change event subscriptions to maintain internal state.",""," @method _initCoreEvents"," @protected"," @since 3.6.0"," **/"," _initCoreEvents: function () {"," this._eventHandles.coreAttrChanges = this.after({"," columnsChange : Y.bind('_afterColumnsChange', this),"," recordTypeChange: Y.bind('_afterRecordTypeChange', this),"," dataChange : Y.bind('_afterDataChange', this)"," });"," },",""," /**"," Defaults the `data` attribute to an empty ModelList if not set during"," construction. Uses the configured `recordType` for the ModelList's `model`"," proeprty if set.",""," @method _initData"," @protected"," @return {ModelList}"," @since 3.6.0"," **/"," _initData: function () {"," var recordType = this.get('recordType'),"," // TODO: LazyModelList if recordType doesn't have complex ATTRS"," modelList = new Y.ModelList();",""," if (recordType) {"," modelList.model = recordType;"," }",""," return modelList;"," },",""," /**"," Initializes the instance's `data` property from the value of the `data`"," attribute. If the attribute value is a ModelList, it is assigned directly"," to `this.data`. If it is an array, a ModelList is created, its `model`"," property is set to the configured `recordType` class, and it is seeded with"," the array data. This ModelList is then assigned to `this.data`.",""," @method _initDataProperty"," @param {Array|ModelList|ArrayList} data Collection of data to populate the"," DataTable"," @protected"," @since 3.6.0"," **/"," _initDataProperty: function (data) {"," var recordType;",""," if (!this.data) {"," recordType = this.get('recordType');",""," if (data && data.each && data.toJSON) {"," this.data = data;",""," if (recordType) {"," this.data.model = recordType;"," }"," } else {"," // TODO: customize the ModelList or read the ModelList class"," // from a configuration option?"," this.data = new Y.ModelList();"," "," if (recordType) {"," this.data.model = recordType;"," }"," }",""," // TODO: Replace this with an event relay for specific events."," // Using bubbling causes subscription conflicts with the models'"," // aggregated change event and 'change' events from DOM elements"," // inside the table (via Widget UI event)."," this.data.addTarget(this);"," }"," },",""," /**"," Initializes the columns, `recordType` and data ModelList.",""," @method initializer"," @param {Object} config Configuration object passed to constructor"," @protected"," @since 3.5.0"," **/"," initializer: function (config) {"," var data = config.data,"," columns = config.columns,"," recordType;",""," // Referencing config.data to allow _setData to be more stringent"," // about its behavior"," this._initDataProperty(data);",""," // Default columns from recordType ATTRS if recordType is supplied at"," // construction. If no recordType is supplied, but the data is"," // supplied as a non-empty array, use the keys of the first item"," // as the columns."," if (!columns) {"," recordType = (config.recordType || config.data === this.data) &&"," this.get('recordType');",""," if (recordType) {"," columns = keys(recordType.ATTRS);"," } else if (isArray(data) && data.length) {"," columns = keys(data[0]);"," }",""," if (columns) {"," this.set('columns', columns);"," }"," }",""," this._initColumns();",""," this._eventHandles = {};",""," this._initCoreEvents();"," },",""," /**"," Iterates the array of column configurations to capture all columns with a"," `key` property. An map is built with column keys as the property name and"," the corresponding column object as the associated value. This map is then"," assigned to the instance's `_columnMap` property.",""," @method _setColumnMap"," @param {Object[]|String[]} columns The array of column config objects"," @protected"," @since 3.6.0"," **/"," _setColumnMap: function (columns) {"," var map = {};"," "," function process(cols) {"," var i, len, col, key;",""," for (i = 0, len = cols.length; i < len; ++i) {"," col = cols[i];"," key = col.key;",""," // First in wins for multiple columns with the same key"," // because the first call to genId (in _setColumns) will"," // return the same key, which will then be overwritten by the"," // subsequent same-keyed column. So table.getColumn(key) would"," // return the last same-keyed column."," if (key && !map[key]) {"," map[key] = col;"," }",""," //TODO: named columns can conflict with keyed columns"," map[col._id] = col;",""," if (col.children) {"," process(col.children);"," }"," }"," }",""," process(columns);",""," this._columnMap = map;"," },",""," /**"," Translates string columns into objects with that string as the value of its"," `key` property.",""," All columns are assigned a `_yuid` stamp and `_id` property corresponding"," to the column's configured `name` or `key` property with any spaces"," replaced with dashes. If the same `name` or `key` appears in multiple"," columns, subsequent appearances will have their `_id` appended with an"," incrementing number (e.g. if column \"foo\" is included in the `columns`"," attribute twice, the first will get `_id` of \"foo\", and the second an `_id`"," of \"foo1\"). Columns that are children of other columns will have the"," `_parent` property added, assigned the column object to which they belong.",""," @method _setColumns"," @param {null|Object[]|String[]} val Array of config objects or strings"," @return {null|Object[]}"," @protected"," **/"," _setColumns: function (val) {"," var keys = {},"," known = [],"," knownCopies = [],"," arrayIndex = Y.Array.indexOf;"," "," function copyObj(o) {"," var copy = {},"," key, val, i;",""," known.push(o);"," knownCopies.push(copy);",""," for (key in o) {"," if (o.hasOwnProperty(key)) {"," val = o[key];",""," if (isArray(val)) {"," copy[key] = val.slice();"," } else if (isObject(val, true)) {"," i = arrayIndex(val, known);",""," copy[key] = i === -1 ? copyObj(val) : knownCopies[i];"," } else {"," copy[key] = o[key];"," }"," }"," }",""," return copy;"," }",""," function genId(name) {"," // Sanitize the name for use in generated CSS classes."," // TODO: is there more to do for other uses of _id?"," name = name.replace(/\\s+/, '-');",""," if (keys[name]) {"," name += (keys[name]++);"," } else {"," keys[name] = 1;"," }",""," return name;"," }",""," function process(cols, parent) {"," var columns = [],"," i, len, col, yuid;",""," for (i = 0, len = cols.length; i < len; ++i) {"," columns[i] = // chained assignment"," col = isString(cols[i]) ? { key: cols[i] } : copyObj(cols[i]);",""," yuid = Y.stamp(col);",""," // For backward compatibility"," if (!col.id) {"," // Implementers can shoot themselves in the foot by setting"," // this config property to a non-unique value"," col.id = yuid;"," }"," if (col.field) {"," // Field is now known as \"name\" to avoid confusion with data"," // fields or schema.resultFields"," col.name = col.field;"," }",""," if (parent) {"," col._parent = parent;"," } else {"," delete col._parent;"," }",""," // Unique id based on the column's configured name or key,"," // falling back to the yuid. Duplicates will have a counter"," // added to the end."," col._id = genId(col.name || col.key || col.id);",""," if (isArray(col.children)) {"," col.children = process(col.children, col);"," }"," }",""," return columns;"," }",""," return val && process(val);"," },",""," /**"," Relays attribute assignments of the deprecated `columnset` attribute to the"," `columns` attribute. If a Columnset is object is passed, its basic object"," structure is mined.",""," @method _setColumnset"," @param {Array|Columnset} val The columnset value to relay"," @deprecated This will be removed with the deprecated `columnset` attribute"," in a later version."," @protected"," @since 3.5.0"," **/"," _setColumnset: function (val) {"," this.set('columns', val);",""," return isArray(val) ? val : INVALID;"," },",""," /**"," Accepts an object with `each` and `getAttrs` (preferably a ModelList or"," subclass) or an array of data objects. If an array is passes, it will"," create a ModelList to wrap the data. In doing so, it will set the created"," ModelList's `model` property to the class in the `recordType` attribute,"," which will be defaulted if not yet set.",""," If the `data` property is already set with a ModelList, passing an array as"," the value will call the ModelList's `reset()` method with that array rather"," than replacing the stored ModelList wholesale.",""," Any non-ModelList-ish and non-array value is invalid.",""," @method _setData"," @protected"," @since 3.5.0"," **/"," _setData: function (val) {"," if (val === null) {"," val = [];"," }",""," if (isArray(val)) {"," this._initDataProperty();",""," // silent to prevent subscribers to both reset and dataChange"," // from reacting to the change twice."," // TODO: would it be better to return INVALID to silence the"," // dataChange event, or even allow both events?"," this.data.reset(val, { silent: true });",""," // Return the instance ModelList to avoid storing unprocessed"," // data in the state and their vivified Model representations in"," // the instance's data property. Decreases memory consumption."," val = this.data;"," } else if (!val || !val.each || !val.toJSON) {"," // ModelList/ArrayList duck typing"," val = INVALID;"," }",""," return val;"," },",""," /**"," Relays the value assigned to the deprecated `recordset` attribute to the"," `data` attribute. If a Recordset instance is passed, the raw object data"," will be culled from it.",""," @method _setRecordset"," @param {Object[]|Recordset} val The recordset value to relay"," @deprecated This will be removed with the deprecated `recordset` attribute"," in a later version."," @protected"," @since 3.5.0"," **/"," _setRecordset: function (val) {"," var data;",""," if (val && Y.Recordset && val instanceof Y.Recordset) {"," data = [];"," val.each(function (record) {"," data.push(record.get('data'));"," });"," val = data;"," }",""," this.set('data', val);",""," return val;"," },",""," /**"," Accepts a Base subclass (preferably a Model subclass). Alternately, it will"," generate a custom Model subclass from an array of attribute names or an"," object defining attributes and their respective configurations (it is"," assigned as the `ATTRS` of the new class).",""," Any other value is invalid.",""," @method _setRecordType"," @param {Function|String[]|Object} val The Model subclass, array of"," attribute names, or the `ATTRS` definition for a custom model"," subclass"," @return {Function} A Base/Model subclass"," @protected"," @since 3.5.0"," **/"," _setRecordType: function (val) {"," var modelClass;",""," // Duck type based on known/likely consumed APIs"," if (isFunction(val) && val.prototype.toJSON && val.prototype.setAttrs) {"," modelClass = val;"," } else if (isObject(val)) {"," modelClass = this._createRecordClass(val);"," }",""," return modelClass || INVALID;"," }","","});","","","}, '3.7.1', {\"requires\": [\"escape\", \"model-list\", \"node-event-delegate\"]});"];
+_yuitest_coverage["build/datatable-core/datatable-core.js"].code=["YUI.add('datatable-core', function (Y, NAME) {","","/**","The core implementation of the `DataTable` and `DataTable.Base` Widgets.","","@module datatable","@submodule datatable-core","@since 3.5.0","**/","","var INVALID = Y.Attribute.INVALID_VALUE,",""," Lang = Y.Lang,"," isFunction = Lang.isFunction,"," isObject = Lang.isObject,"," isArray = Lang.isArray,"," isString = Lang.isString,"," isNumber = Lang.isNumber,",""," toArray = Y.Array,",""," keys = Y.Object.keys,",""," Table;"," ","/**","_API docs for this extension are included in the DataTable class._","","Class extension providing the core API and structure for the DataTable Widget.","","Use this class extension with Widget or another Base-based superclass to create","the basic DataTable model API and composing class structure.","","@class DataTable.Core","@for DataTable","@since 3.5.0","**/","Table = Y.namespace('DataTable').Core = function () {};","","Table.ATTRS = {"," /**"," Columns to include in the rendered table."," "," If omitted, the attributes on the configured `recordType` or the first item"," in the `data` collection will be used as a source.",""," This attribute takes an array of strings or objects (mixing the two is"," fine). Each string or object is considered a column to be rendered."," Strings are converted to objects, so `columns: ['first', 'last']` becomes"," `columns: [{ key: 'first' }, { key: 'last' }]`.",""," DataTable.Core only concerns itself with a few properties of columns."," These properties are:",""," * `key` - Used to identify the record field/attribute containing content for"," this column. Also used to create a default Model if no `recordType` or"," `data` are provided during construction. If `name` is not specified, this"," is assigned to the `_id` property (with added incrementer if the key is"," used by multiple columns)."," * `children` - Traversed to initialize nested column objects"," * `name` - Used in place of, or in addition to, the `key`. Useful for"," columns that aren't bound to a field/attribute in the record data. This"," is assigned to the `_id` property."," * `id` - For backward compatibility. Implementers can specify the id of"," the header cell. This should be avoided, if possible, to avoid the"," potential for creating DOM elements with duplicate IDs."," * `field` - For backward compatibility. Implementers should use `name`."," * `_id` - Assigned unique-within-this-instance id for a column. By order"," of preference, assumes the value of `name`, `key`, `id`, or `_yuid`."," This is used by the rendering views as well as feature module"," as a means to identify a specific column without ambiguity (such as"," multiple columns using the same `key`."," * `_yuid` - Guid stamp assigned to the column object."," * `_parent` - Assigned to all child columns, referencing their parent"," column.",""," @attribute columns"," @type {Object[]|String[]}"," @default (from `recordType` ATTRS or first item in the `data`)"," @since 3.5.0"," **/"," columns: {"," // TODO: change to setter to clone input array/objects"," validator: isArray,"," setter: '_setColumns',"," getter: '_getColumns'"," },",""," /**"," Model subclass to use as the `model` for the ModelList stored in the `data`"," attribute.",""," If not provided, it will try really hard to figure out what to use. The"," following attempts will be made to set a default value:"," "," 1. If the `data` attribute is set with a ModelList instance and its `model`"," property is set, that will be used."," 2. If the `data` attribute is set with a ModelList instance, and its"," `model` property is unset, but it is populated, the `ATTRS` of the"," `constructor of the first item will be used."," 3. If the `data` attribute is set with a non-empty array, a Model subclass"," will be generated using the keys of the first item as its `ATTRS` (see"," the `_createRecordClass` method)."," 4. If the `columns` attribute is set, a Model subclass will be generated"," using the columns defined with a `key`. This is least desirable because"," columns can be duplicated or nested in a way that's not parsable."," 5. If neither `data` nor `columns` is set or populated, a change event"," subscriber will listen for the first to be changed and try all over"," again.",""," @attribute recordType"," @type {Function}"," @default (see description)"," @since 3.5.0"," **/"," recordType: {"," getter: '_getRecordType',"," setter: '_setRecordType'"," },",""," /**"," The collection of data records to display. This attribute is a pass"," through to a `data` property, which is a ModelList instance.",""," If this attribute is passed a ModelList or subclass, it will be assigned to"," the property directly. If an array of objects is passed, a new ModelList"," will be created using the configured `recordType` as its `model` property"," and seeded with the array.",""," Retrieving this attribute will return the ModelList stored in the `data`"," property.",""," @attribute data"," @type {ModelList|Object[]}"," @default `new ModelList()`"," @since 3.5.0"," **/"," data: {"," valueFn: '_initData',"," setter : '_setData',"," lazyAdd: false"," },",""," /**"," Content for the ``. Values assigned"," to this attribute will be HTML escaped for security.",""," @attribute summary"," @type {String}"," @default '' (empty string)"," @since 3.5.0"," **/"," //summary: {},",""," /**"," HTML content of an optional `` element to appear above the table."," Leave this config unset or set to a falsy value to remove the caption.",""," @attribute caption"," @type HTML"," @default '' (empty string)"," @since 3.5.0"," **/"," //caption: {},",""," /**"," Deprecated as of 3.5.0. Passes through to the `data` attribute.",""," WARNING: `get('recordset')` will NOT return a Recordset instance as of"," 3.5.0. This is a break in backward compatibility.",""," @attribute recordset"," @type {Object[]|Recordset}"," @deprecated Use the `data` attribute"," @since 3.5.0"," **/"," recordset: {"," setter: '_setRecordset',"," getter: '_getRecordset',"," lazyAdd: false"," },",""," /**"," Deprecated as of 3.5.0. Passes through to the `columns` attribute.",""," WARNING: `get('columnset')` will NOT return a Columnset instance as of"," 3.5.0. This is a break in backward compatibility.",""," @attribute columnset"," @type {Object[]}"," @deprecated Use the `columns` attribute"," @since 3.5.0"," **/"," columnset: {"," setter: '_setColumnset',"," getter: '_getColumnset',"," lazyAdd: false"," }","};","","Y.mix(Table.prototype, {"," // -- Instance properties -------------------------------------------------"," /**"," The ModelList that manages the table's data.",""," @property data"," @type {ModelList}"," @default undefined (initially unset)"," @since 3.5.0"," **/"," //data: null,",""," // -- Public methods ------------------------------------------------------",""," /**"," Gets the column configuration object for the given key, name, or index. For"," nested columns, `name` can be an array of indexes, each identifying the index"," of that column in the respective parent's \"children\" array.",""," If you pass a column object, it will be returned.",""," For columns with keys, you can also fetch the column with"," `instance.get('columns.foo')`.",""," @method getColumn"," @param {String|Number|Number[]} name Key, \"name\", index, or index array to"," identify the column"," @return {Object} the column configuration object"," @since 3.5.0"," **/"," getColumn: function (name) {"," var col, columns, i, len, cols;",""," if (isObject(name) && !isArray(name)) {"," // TODO: support getting a column from a DOM node - this will cross"," // the line into the View logic, so it should be relayed",""," // Assume an object passed in is already a column def"," col = name;"," } else {"," col = this.get('columns.' + name);"," }",""," if (col) {"," return col;"," }",""," columns = this.get('columns');",""," if (isNumber(name) || isArray(name)) {"," name = toArray(name);"," cols = columns;",""," for (i = 0, len = name.length - 1; cols && i < len; ++i) {"," cols = cols[name[i]] && cols[name[i]].children;"," }",""," return (cols && cols[name[i]]) || null;"," }",""," return null;"," },",""," /**"," Returns the Model associated to the record `id`, `clientId`, or index (not"," row index). If none of those yield a Model from the `data` ModelList, the"," arguments will be passed to the `view` instance's `getRecord` method"," if it has one.",""," If no Model can be found, `null` is returned.",""," @method getRecord"," @param {Number|String|Node} seed Record `id`, `clientId`, index, Node, or"," identifier for a row or child element"," @return {Model}"," @since 3.5.0"," **/"," getRecord: function (seed) {"," var record = this.data.getById(seed) || this.data.getByClientId(seed);",""," if (!record) {"," if (isNumber(seed)) {"," record = this.data.item(seed);"," }"," "," // TODO: this should be split out to base somehow"," if (!record && this.view && this.view.getRecord) {"," record = this.view.getRecord.apply(this.view, arguments);"," }"," }",""," return record || null;"," },",""," // -- Protected and private properties and methods ------------------------",""," /**"," This tells `Y.Base` that it should create ad-hoc attributes for config"," properties passed to DataTable's constructor. This is useful for setting"," configurations on the DataTable that are intended for the rendering View(s).",""," @property _allowAdHocAttrs"," @type Boolean"," @default true"," @protected"," @since 3.6.0"," **/"," _allowAdHocAttrs: true,",""," /**"," A map of column key to column configuration objects parsed from the"," `columns` attribute.",""," @property _columnMap"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.5.0"," **/"," //_columnMap: null,",""," /**"," The Node instance of the table containing the data rows. This is set when"," the table is rendered. It may also be set by progressive enhancement,"," though this extension does not provide the logic to parse from source.",""," @property _tableNode"," @type {Node}"," @default undefined (initially unset)"," @protected"," @since 3.5.0"," **/"," //_tableNode: null,",""," /**"," Updates the `_columnMap` property in response to changes in the `columns`"," attribute.",""," @method _afterColumnsChange"," @param {EventFacade} e The `columnsChange` event object"," @protected"," @since 3.5.0"," **/"," _afterColumnsChange: function (e) {"," this._setColumnMap(e.newVal);"," },",""," /**"," Updates the `modelList` attributes of the rendered views in response to the"," `data` attribute being assigned a new ModelList.",""," @method _afterDataChange"," @param {EventFacade} e the `dataChange` event"," @protected"," @since 3.5.0"," **/"," _afterDataChange: function (e) {"," var modelList = e.newVal;",""," this.data = e.newVal;",""," if (!this.get('columns') && modelList.size()) {"," // TODO: this will cause a re-render twice because the Views are"," // subscribed to columnsChange"," this._initColumns();"," }"," },",""," /**"," Assigns to the new recordType as the model for the data ModelList",""," @method _afterRecordTypeChange"," @param {EventFacade} e recordTypeChange event"," @protected"," @since 3.6.0"," **/"," _afterRecordTypeChange: function (e) {"," var data = this.data.toJSON();",""," this.data.model = e.newVal;",""," this.data.reset(data);",""," if (!this.get('columns') && data) {"," if (data.length) {"," this._initColumns();"," } else {"," this.set('columns', keys(e.newVal.ATTRS));"," }"," }"," },",""," /**"," Creates a Model subclass from an array of attribute names or an object of"," attribute definitions. This is used to generate a class suitable to"," represent the data passed to the `data` attribute if no `recordType` is"," set.",""," @method _createRecordClass"," @param {String[]|Object} attrs Names assigned to the Model subclass's"," `ATTRS` or its entire `ATTRS` definition object"," @return {Model}"," @protected"," @since 3.5.0"," **/"," _createRecordClass: function (attrs) {"," var ATTRS, i, len;",""," if (isArray(attrs)) {"," ATTRS = {};",""," for (i = 0, len = attrs.length; i < len; ++i) {"," ATTRS[attrs[i]] = {};"," }"," } else if (isObject(attrs)) {"," ATTRS = attrs;"," }",""," return Y.Base.create('record', Y.Model, [], null, { ATTRS: ATTRS });"," },",""," /**"," Tears down the instance.",""," @method destructor"," @protected"," @since 3.6.0"," **/"," destructor: function () {"," new Y.EventHandle(Y.Object.values(this._eventHandles)).detach();"," },",""," /**"," The getter for the `columns` attribute. Returns the array of column"," configuration objects if `instance.get('columns')` is called, or the"," specific column object if `instance.get('columns.columnKey')` is called.",""," @method _getColumns"," @param {Object[]} columns The full array of column objects"," @param {String} name The attribute name requested"," (e.g. 'columns' or 'columns.foo');"," @protected"," @since 3.5.0"," **/"," _getColumns: function (columns, name) {"," // Workaround for an attribute oddity (ticket #2529254)"," // getter is expected to return an object if get('columns.foo') is called."," // Note 'columns.' is 8 characters"," return name.length > 8 ? this._columnMap : columns;"," },",""," /**"," Relays the `get()` request for the deprecated `columnset` attribute to the"," `columns` attribute.",""," THIS BREAKS BACKWARD COMPATIBILITY. 3.4.1 and prior implementations will"," expect a Columnset instance returned from `get('columnset')`.",""," @method _getColumnset"," @param {Object} ignored The current value stored in the `columnset` state"," @param {String} name The attribute name requested"," (e.g. 'columnset' or 'columnset.foo');"," @deprecated This will be removed with the `columnset` attribute in a future"," version."," @protected"," @since 3.5.0"," **/"," _getColumnset: function (_, name) {"," return this.get(name.replace(/^columnset/, 'columns'));"," },",""," /**"," Returns the Model class of the instance's `data` attribute ModelList. If"," not set, returns the explicitly configured value.",""," @method _getRecordType"," @param {Model} val The currently configured value"," @return {Model}"," **/"," _getRecordType: function (val) {"," // Prefer the value stored in the attribute because the attribute"," // change event defaultFn sets e.newVal = this.get('recordType')"," // before notifying the after() subs. But if this getter returns"," // this.data.model, then after() subs would get e.newVal === previous"," // model before _afterRecordTypeChange can set"," // this.data.model = e.newVal"," return val || (this.data && this.data.model);"," },",""," /**"," Initializes the `_columnMap` property from the configured `columns`"," attribute. If `columns` is not set, but there are records in the `data`"," ModelList, use"," `ATTRS` of that class.",""," @method _initColumns"," @protected"," @since 3.5.0"," **/"," _initColumns: function () {"," var columns = this.get('columns') || [],"," item;"," "," // Default column definition from the configured recordType"," if (!columns.length && this.data.size()) {"," // TODO: merge superclass attributes up to Model?"," item = this.data.item(0);",""," if (item.toJSON) {"," item = item.toJSON();"," }",""," this.set('columns', keys(item));"," }",""," this._setColumnMap(columns);"," },",""," /**"," Sets up the change event subscriptions to maintain internal state.",""," @method _initCoreEvents"," @protected"," @since 3.6.0"," **/"," _initCoreEvents: function () {"," this._eventHandles.coreAttrChanges = this.after({"," columnsChange : Y.bind('_afterColumnsChange', this),"," recordTypeChange: Y.bind('_afterRecordTypeChange', this),"," dataChange : Y.bind('_afterDataChange', this)"," });"," },",""," /**"," Defaults the `data` attribute to an empty ModelList if not set during"," construction. Uses the configured `recordType` for the ModelList's `model`"," proeprty if set.",""," @method _initData"," @protected"," @return {ModelList}"," @since 3.6.0"," **/"," _initData: function () {"," var recordType = this.get('recordType'),"," // TODO: LazyModelList if recordType doesn't have complex ATTRS"," modelList = new Y.ModelList();",""," if (recordType) {"," modelList.model = recordType;"," }",""," return modelList;"," },",""," /**"," Initializes the instance's `data` property from the value of the `data`"," attribute. If the attribute value is a ModelList, it is assigned directly"," to `this.data`. If it is an array, a ModelList is created, its `model`"," property is set to the configured `recordType` class, and it is seeded with"," the array data. This ModelList is then assigned to `this.data`.",""," @method _initDataProperty"," @param {Array|ModelList|ArrayList} data Collection of data to populate the"," DataTable"," @protected"," @since 3.6.0"," **/"," _initDataProperty: function (data) {"," var recordType;",""," if (!this.data) {"," recordType = this.get('recordType');",""," if (data && data.each && data.toJSON) {"," this.data = data;",""," if (recordType) {"," this.data.model = recordType;"," }"," } else {"," // TODO: customize the ModelList or read the ModelList class"," // from a configuration option?"," this.data = new Y.ModelList();"," "," if (recordType) {"," this.data.model = recordType;"," }"," }",""," // TODO: Replace this with an event relay for specific events."," // Using bubbling causes subscription conflicts with the models'"," // aggregated change event and 'change' events from DOM elements"," // inside the table (via Widget UI event)."," this.data.addTarget(this);"," }"," },",""," /**"," Initializes the columns, `recordType` and data ModelList.",""," @method initializer"," @param {Object} config Configuration object passed to constructor"," @protected"," @since 3.5.0"," **/"," initializer: function (config) {"," var data = config.data,"," columns = config.columns,"," recordType;",""," // Referencing config.data to allow _setData to be more stringent"," // about its behavior"," this._initDataProperty(data);",""," // Default columns from recordType ATTRS if recordType is supplied at"," // construction. If no recordType is supplied, but the data is"," // supplied as a non-empty array, use the keys of the first item"," // as the columns."," if (!columns) {"," recordType = (config.recordType || config.data === this.data) &&"," this.get('recordType');",""," if (recordType) {"," columns = keys(recordType.ATTRS);"," } else if (isArray(data) && data.length) {"," columns = keys(data[0]);"," }",""," if (columns) {"," this.set('columns', columns);"," }"," }",""," this._initColumns();",""," this._eventHandles = {};",""," this._initCoreEvents();"," },",""," /**"," Iterates the array of column configurations to capture all columns with a"," `key` property. An map is built with column keys as the property name and"," the corresponding column object as the associated value. This map is then"," assigned to the instance's `_columnMap` property.",""," @method _setColumnMap"," @param {Object[]|String[]} columns The array of column config objects"," @protected"," @since 3.6.0"," **/"," _setColumnMap: function (columns) {"," var map = {};"," "," function process(cols) {"," var i, len, col, key;",""," for (i = 0, len = cols.length; i < len; ++i) {"," col = cols[i];"," key = col.key;",""," // First in wins for multiple columns with the same key"," // because the first call to genId (in _setColumns) will"," // return the same key, which will then be overwritten by the"," // subsequent same-keyed column. So table.getColumn(key) would"," // return the last same-keyed column."," if (key && !map[key]) {"," map[key] = col;"," }",""," //TODO: named columns can conflict with keyed columns"," map[col._id] = col;",""," if (col.children) {"," process(col.children);"," }"," }"," }",""," process(columns);",""," this._columnMap = map;"," },",""," /**"," Translates string columns into objects with that string as the value of its"," `key` property.",""," All columns are assigned a `_yuid` stamp and `_id` property corresponding"," to the column's configured `name` or `key` property with any spaces"," replaced with dashes. If the same `name` or `key` appears in multiple"," columns, subsequent appearances will have their `_id` appended with an"," incrementing number (e.g. if column \"foo\" is included in the `columns`"," attribute twice, the first will get `_id` of \"foo\", and the second an `_id`"," of \"foo1\"). Columns that are children of other columns will have the"," `_parent` property added, assigned the column object to which they belong.",""," @method _setColumns"," @param {null|Object[]|String[]} val Array of config objects or strings"," @return {null|Object[]}"," @protected"," **/"," _setColumns: function (val) {"," var keys = {},"," known = [],"," knownCopies = [],"," arrayIndex = Y.Array.indexOf;"," "," function copyObj(o) {"," var copy = {},"," key, val, i;",""," known.push(o);"," knownCopies.push(copy);",""," for (key in o) {"," if (o.hasOwnProperty(key)) {"," val = o[key];",""," if (isArray(val)) {"," copy[key] = val.slice();"," } else if (isObject(val, true)) {"," i = arrayIndex(val, known);",""," copy[key] = i === -1 ? copyObj(val) : knownCopies[i];"," } else {"," copy[key] = o[key];"," }"," }"," }",""," return copy;"," }",""," function genId(name) {"," // Sanitize the name for use in generated CSS classes."," // TODO: is there more to do for other uses of _id?"," name = name.replace(/\\s+/, '-');",""," if (keys[name]) {"," name += (keys[name]++);"," } else {"," keys[name] = 1;"," }",""," return name;"," }",""," function process(cols, parent) {"," var columns = [],"," i, len, col, yuid;",""," for (i = 0, len = cols.length; i < len; ++i) {"," columns[i] = // chained assignment"," col = isString(cols[i]) ? { key: cols[i] } : copyObj(cols[i]);",""," yuid = Y.stamp(col);",""," // For backward compatibility"," if (!col.id) {"," // Implementers can shoot themselves in the foot by setting"," // this config property to a non-unique value"," col.id = yuid;"," }"," if (col.field) {"," // Field is now known as \"name\" to avoid confusion with data"," // fields or schema.resultFields"," col.name = col.field;"," }",""," if (parent) {"," col._parent = parent;"," } else {"," delete col._parent;"," }",""," // Unique id based on the column's configured name or key,"," // falling back to the yuid. Duplicates will have a counter"," // added to the end."," col._id = genId(col.name || col.key || col.id);",""," if (isArray(col.children)) {"," col.children = process(col.children, col);"," }"," }",""," return columns;"," }",""," return val && process(val);"," },",""," /**"," Relays attribute assignments of the deprecated `columnset` attribute to the"," `columns` attribute. If a Columnset is object is passed, its basic object"," structure is mined.",""," @method _setColumnset"," @param {Array|Columnset} val The columnset value to relay"," @deprecated This will be removed with the deprecated `columnset` attribute"," in a later version."," @protected"," @since 3.5.0"," **/"," _setColumnset: function (val) {"," this.set('columns', val);",""," return isArray(val) ? val : INVALID;"," },",""," /**"," Accepts an object with `each` and `getAttrs` (preferably a ModelList or"," subclass) or an array of data objects. If an array is passes, it will"," create a ModelList to wrap the data. In doing so, it will set the created"," ModelList's `model` property to the class in the `recordType` attribute,"," which will be defaulted if not yet set.",""," If the `data` property is already set with a ModelList, passing an array as"," the value will call the ModelList's `reset()` method with that array rather"," than replacing the stored ModelList wholesale.",""," Any non-ModelList-ish and non-array value is invalid.",""," @method _setData"," @protected"," @since 3.5.0"," **/"," _setData: function (val) {"," if (val === null) {"," val = [];"," }",""," if (isArray(val)) {"," this._initDataProperty();",""," // silent to prevent subscribers to both reset and dataChange"," // from reacting to the change twice."," // TODO: would it be better to return INVALID to silence the"," // dataChange event, or even allow both events?"," this.data.reset(val, { silent: true });",""," // Return the instance ModelList to avoid storing unprocessed"," // data in the state and their vivified Model representations in"," // the instance's data property. Decreases memory consumption."," val = this.data;"," } else if (!val || !val.each || !val.toJSON) {"," // ModelList/ArrayList duck typing"," val = INVALID;"," }",""," return val;"," },",""," /**"," Relays the value assigned to the deprecated `recordset` attribute to the"," `data` attribute. If a Recordset instance is passed, the raw object data"," will be culled from it.",""," @method _setRecordset"," @param {Object[]|Recordset} val The recordset value to relay"," @deprecated This will be removed with the deprecated `recordset` attribute"," in a later version."," @protected"," @since 3.5.0"," **/"," _setRecordset: function (val) {"," var data;",""," if (val && Y.Recordset && val instanceof Y.Recordset) {"," data = [];"," val.each(function (record) {"," data.push(record.get('data'));"," });"," val = data;"," }",""," this.set('data', val);",""," return val;"," },",""," /**"," Accepts a Base subclass (preferably a Model subclass). Alternately, it will"," generate a custom Model subclass from an array of attribute names or an"," object defining attributes and their respective configurations (it is"," assigned as the `ATTRS` of the new class).",""," Any other value is invalid.",""," @method _setRecordType"," @param {Function|String[]|Object} val The Model subclass, array of"," attribute names, or the `ATTRS` definition for a custom model"," subclass"," @return {Function} A Base/Model subclass"," @protected"," @since 3.5.0"," **/"," _setRecordType: function (val) {"," var modelClass;",""," // Duck type based on known/likely consumed APIs"," if (isFunction(val) && val.prototype.toJSON && val.prototype.setAttrs) {"," modelClass = val;"," } else if (isObject(val)) {"," modelClass = this._createRecordClass(val);"," }",""," return modelClass || INVALID;"," }","","});","","","}, '3.7.2', {\"requires\": [\"escape\", \"model-list\", \"node-event-delegate\"]});"];
_yuitest_coverage["build/datatable-core/datatable-core.js"].lines = {"1":0,"11":0,"38":0,"40":0,"201":0,"232":0,"234":0,"239":0,"241":0,"244":0,"245":0,"248":0,"250":0,"251":0,"252":0,"254":0,"255":0,"258":0,"261":0,"279":0,"281":0,"282":0,"283":0,"287":0,"288":0,"292":0,"345":0,"358":0,"360":0,"362":0,"365":0,"378":0,"380":0,"382":0,"384":0,"385":0,"386":0,"388":0,"407":0,"409":0,"410":0,"412":0,"413":0,"415":0,"416":0,"419":0,"430":0,"449":0,"469":0,"487":0,"501":0,"505":0,"507":0,"509":0,"510":0,"513":0,"516":0,"527":0,"545":0,"549":0,"550":0,"553":0,"570":0,"572":0,"573":0,"575":0,"576":0,"578":0,"579":0,"584":0,"586":0,"587":0,"595":0,"608":0,"614":0,"620":0,"621":0,"624":0,"625":0,"626":0,"627":0,"630":0,"631":0,"635":0,"637":0,"639":0,"654":0,"656":0,"657":0,"659":0,"660":0,"661":0,"668":0,"669":0,"673":0,"675":0,"676":0,"681":0,"683":0,"705":0,"710":0,"711":0,"714":0,"715":0,"717":0,"718":0,"719":0,"721":0,"722":0,"723":0,"724":0,"726":0,"728":0,"733":0,"736":0,"739":0,"741":0,"742":0,"744":0,"747":0,"750":0,"751":0,"754":0,"755":0,"758":0,"761":0,"764":0,"766":0,"769":0,"772":0,"773":0,"775":0,"781":0,"783":0,"784":0,"788":0,"791":0,"807":0,"809":0,"830":0,"831":0,"834":0,"835":0,"841":0,"846":0,"847":0,"849":0,"852":0,"868":0,"870":0,"871":0,"872":0,"873":0,"875":0,"878":0,"880":0,"900":0,"903":0,"904":0,"905":0,"906":0,"909":0};
_yuitest_coverage["build/datatable-core/datatable-core.js"].functions = {"getColumn:231":0,"getRecord:278":0,"_afterColumnsChange:344":0,"_afterDataChange:357":0,"_afterRecordTypeChange:377":0,"_createRecordClass:406":0,"destructor:429":0,"_getColumns:445":0,"_getColumnset:468":0,"_getRecordType:480":0,"_initColumns:500":0,"_initCoreEvents:526":0,"_initData:544":0,"_initDataProperty:569":0,"initializer:607":0,"process:656":0,"_setColumnMap:653":0,"copyObj:710":0,"genId:736":0,"process:750":0,"_setColumns:704":0,"_setColumnset:806":0,"_setData:829":0,"(anonymous 2):872":0,"_setRecordset:867":0,"_setRecordType:899":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-core/datatable-core.js"].coveredLines = 162;
@@ -1140,4 +1140,4 @@ return modelClass || INVALID;
});
-}, '3.7.1', {"requires": ["escape", "model-list", "node-event-delegate"]});
+}, '3.7.2', {"requires": ["escape", "model-list", "node-event-delegate"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-core/datatable-core-debug.js b/lib/yuilib/3.7.2/build/datatable-core/datatable-core-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-core/datatable-core-debug.js
rename to lib/yuilib/3.7.2/build/datatable-core/datatable-core-debug.js
index cd17e0da435..d4cadc52824 100644
--- a/lib/yuilib/3.7.1/build/datatable-core/datatable-core-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-core/datatable-core-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -918,4 +918,4 @@ Y.mix(Table.prototype, {
});
-}, '3.7.1', {"requires": ["escape", "model-list", "node-event-delegate"]});
+}, '3.7.2', {"requires": ["escape", "model-list", "node-event-delegate"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-core/datatable-core-min.js b/lib/yuilib/3.7.2/build/datatable-core/datatable-core-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatable-core/datatable-core-min.js
rename to lib/yuilib/3.7.2/build/datatable-core/datatable-core-min.js
index 7e85f4a638f..8ca52edd7c0 100644
--- a/lib/yuilib/3.7.1/build/datatable-core/datatable-core-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-core/datatable-core-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
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"," * request Pass in a new request, or initialRequest is used. "," * callback Pass in DataSource callback object, or the following default is used:"," * "," * - success
- datatable.onDataReturnInitializeTable
"," * - failure
- datatable.onDataReturnInitializeTable
"," * - scope
- datatable
"," * - argument
- datatable.getState()
"," *
"," * "," * datasource Pass in a new DataSource instance to override the current DataSource for this transaction. "," * "," */"," load: function(config) {"," config = config || {};"," config.request = config.request || this.get(\"initialRequest\");"," config.callback = config.callback || {"," success: Y.bind(this.onDataReturnInitializeTable, this),"," failure: Y.bind(this.onDataReturnInitializeTable, this),"," argument: this.get(\"host\").get(\"state\") //TODO"," };",""," var ds = (config.datasource || this.get(\"datasource\"));"," if(ds) {"," ds.sendRequest(config);"," }"," },",""," /*"," * Callback function passed to DataSource's sendRequest() method populates"," * an entire DataTable with new data, clearing previous data, if any."," *"," * @method onDataReturnInitializeTable"," * @param e {Event.Facade} DataSource Event Facade object."," */"," onDataReturnInitializeTable : function(e) {"," var records = (e.response && e.response.results) || [];",""," this.get(\"host\").get(\"recordset\").set(\"records\", records);"," }","});","","Y.namespace(\"Plugin\").DataTableDataSource = DataTableDataSource;","","","","","","}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin','datasource-local']});"];
+_yuitest_coverage["/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js"].code=["YUI.add('datatable-datasource-deprecated', function(Y) {","","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","/**","Plugs DataTable with DataSource integration.","","DEPRECATED. As of YUI 3.5.0, DataTable has been rebuilt. This module","is designed to work with `datatable-base-deprecated` (effectively the 3.4.1","version of DataTable) and will be removed from the library in a future version.","","See http://yuilibrary.com/yui/docs/migration.html for help upgrading to the","latest version.","","For complete API docs for the classes in this and other deprecated","DataTable-related modules, refer to the static API doc files in the 3.4.1","download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip","","@module datatable-deprecated","@submodule datatable-datasource-deprecated","@deprecated","**/","","/*"," * Adds DataSource integration to DataTable."," * @class DataTableDataSource"," * @extends Plugin.Base"," */","function DataTableDataSource() {"," DataTableDataSource.superclass.constructor.apply(this, arguments);","}","","/////////////////////////////////////////////////////////////////////////////","//","// STATIC PROPERTIES","//","/////////////////////////////////////////////////////////////////////////////","Y.mix(DataTableDataSource, {"," /*"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"datasource\""," */"," NS: \"datasource\",",""," /*"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataTableDataSource\""," */"," NAME: \"dataTableDataSource\",","","/////////////////////////////////////////////////////////////////////////////","//","// ATTRIBUTES","//","/////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /*"," * @attribute datasource"," * @description Pointer to DataSource instance."," * @type {DataSource}"," */"," datasource: {"," setter: \"_setDataSource\""," },"," "," /*"," * @attribute initialRequest"," * @description Request sent to DataSource immediately upon initialization."," * @type Object"," */"," initialRequest: {"," setter: \"_setInitialRequest\""," }"," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(DataTableDataSource, Y.Plugin.Base, {"," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTE HELPERS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * @method _setDataSource"," * @description Creates new DataSource instance if one is not provided."," * @param ds {Object | Y.DataSource}"," * @return {DataSource}"," * @private"," */"," _setDataSource: function(ds) {"," return ds || new Y.DataSource.Local(ds);"," },",""," /*"," * @method _setInitialRequest"," * @description Sends request to DataSource."," * @param request {Object} DataSource request."," * @private"," */"," _setInitialRequest: function(request) {"," },",""," /////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Initializer."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," if(!Y.Lang.isUndefined(config.initialRequest)) {"," this.load({request:config.initialRequest});"," }"," },",""," ////////////////////////////////////////////////////////////////////////////"," //"," // DATA"," //"," ////////////////////////////////////////////////////////////////////////////",""," /*"," * Load data by calling DataSource's sendRequest() method under the hood."," *"," * @method load"," * @param config {object} Optional configuration parameters:"," *"," * "," * - request
- Pass in a new request, or initialRequest is used.
"," * - callback
- Pass in DataSource callback object, or the following default is used:"," *
"," * - success
- datatable.onDataReturnInitializeTable
"," * - failure
- datatable.onDataReturnInitializeTable
"," * - scope
- datatable
"," * - argument
- datatable.getState()
"," *
"," * "," * - datasource
- Pass in a new DataSource instance to override the current DataSource for this transaction.
"," *
"," */"," load: function(config) {"," config = config || {};"," config.request = config.request || this.get(\"initialRequest\");"," config.callback = config.callback || {"," success: Y.bind(this.onDataReturnInitializeTable, this),"," failure: Y.bind(this.onDataReturnInitializeTable, this),"," argument: this.get(\"host\").get(\"state\") //TODO"," };",""," var ds = (config.datasource || this.get(\"datasource\"));"," if(ds) {"," ds.sendRequest(config);"," }"," },",""," /*"," * Callback function passed to DataSource's sendRequest() method populates"," * an entire DataTable with new data, clearing previous data, if any."," *"," * @method onDataReturnInitializeTable"," * @param e {Event.Facade} DataSource Event Facade object."," */"," onDataReturnInitializeTable : function(e) {"," var records = (e.response && e.response.results) || [];",""," this.get(\"host\").get(\"recordset\").set(\"records\", records);"," }","});","","Y.namespace(\"Plugin\").DataTableDataSource = DataTableDataSource;","","","","","","}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin','datasource-local']});"];
_yuitest_coverage["/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js"].lines = {"1":0,"30":0,"31":0,"39":0,"94":0,"108":0,"133":0,"134":0,"164":0,"165":0,"166":0,"172":0,"173":0,"174":0,"186":0,"188":0,"192":0};
_yuitest_coverage["/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js"].functions = {"DataTableDataSource:30":0,"_setDataSource:107":0,"initializer:132":0,"load:163":0,"onDataReturnInitializeTable:185":0,"(anonymous 1):1":0};
_yuitest_coverage["/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js"].coveredLines = 17;
@@ -257,4 +257,4 @@ Y.namespace("Plugin").DataTableDataSource = DataTableDataSource;
-}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin','datasource-local']});
+}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin','datasource-local']});
diff --git a/lib/yuilib/3.7.1/build/datatable-datasource-deprecated/datatable-datasource-deprecated-debug.js b/lib/yuilib/3.7.2/build/datatable-datasource-deprecated/datatable-datasource-deprecated-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-datasource-deprecated/datatable-datasource-deprecated-debug.js
rename to lib/yuilib/3.7.2/build/datatable-datasource-deprecated/datatable-datasource-deprecated-debug.js
index 17bfc3dfc74..2e6ba7b30ef 100644
--- a/lib/yuilib/3.7.1/build/datatable-datasource-deprecated/datatable-datasource-deprecated-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-datasource-deprecated/datatable-datasource-deprecated-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -201,4 +201,4 @@ Y.namespace("Plugin").DataTableDataSource = DataTableDataSource;
-}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin','datasource-local']});
+}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin','datasource-local']});
diff --git a/lib/yuilib/3.7.1/build/datatable-datasource-deprecated/datatable-datasource-deprecated-min.js b/lib/yuilib/3.7.2/build/datatable-datasource-deprecated/datatable-datasource-deprecated-min.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatable-datasource-deprecated/datatable-datasource-deprecated-min.js
rename to lib/yuilib/3.7.2/build/datatable-datasource-deprecated/datatable-datasource-deprecated-min.js
index 8e053d1c0e3..2ab690e4882 100644
--- a/lib/yuilib/3.7.1/build/datatable-datasource-deprecated/datatable-datasource-deprecated-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-datasource-deprecated/datatable-datasource-deprecated-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-datasource-deprecated",function(b){function a(){a.superclass.constructor.apply(this,arguments);}b.mix(a,{NS:"datasource",NAME:"dataTableDataSource",ATTRS:{datasource:{setter:"_setDataSource"},initialRequest:{setter:"_setInitialRequest"}}});b.extend(a,b.Plugin.Base,{_setDataSource:function(c){return c||new b.DataSource.Local(c);},_setInitialRequest:function(c){},initializer:function(c){if(!b.Lang.isUndefined(c.initialRequest)){this.load({request:c.initialRequest});}},load:function(c){c=c||{};c.request=c.request||this.get("initialRequest");c.callback=c.callback||{success:b.bind(this.onDataReturnInitializeTable,this),failure:b.bind(this.onDataReturnInitializeTable,this),argument:this.get("host").get("state")};var d=(c.datasource||this.get("datasource"));if(d){d.sendRequest(c);}},onDataReturnInitializeTable:function(d){var c=(d.response&&d.response.results)||[];this.get("host").get("recordset").set("records",c);}});b.namespace("Plugin").DataTableDataSource=a;},"3.7.1",{requires:["datatable-base-deprecated","plugin","datasource-local"]});
\ No newline at end of file
+YUI.add("datatable-datasource-deprecated",function(b){function a(){a.superclass.constructor.apply(this,arguments);}b.mix(a,{NS:"datasource",NAME:"dataTableDataSource",ATTRS:{datasource:{setter:"_setDataSource"},initialRequest:{setter:"_setInitialRequest"}}});b.extend(a,b.Plugin.Base,{_setDataSource:function(c){return c||new b.DataSource.Local(c);},_setInitialRequest:function(c){},initializer:function(c){if(!b.Lang.isUndefined(c.initialRequest)){this.load({request:c.initialRequest});}},load:function(c){c=c||{};c.request=c.request||this.get("initialRequest");c.callback=c.callback||{success:b.bind(this.onDataReturnInitializeTable,this),failure:b.bind(this.onDataReturnInitializeTable,this),argument:this.get("host").get("state")};var d=(c.datasource||this.get("datasource"));if(d){d.sendRequest(c);}},onDataReturnInitializeTable:function(d){var c=(d.response&&d.response.results)||[];this.get("host").get("recordset").set("records",c);}});b.namespace("Plugin").DataTableDataSource=a;},"3.7.2",{requires:["datatable-base-deprecated","plugin","datasource-local"]});
\ No newline at end of file
diff --git a/lib/yuilib/3.7.1/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js b/lib/yuilib/3.7.2/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js
rename to lib/yuilib/3.7.2/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js
index 17bfc3dfc74..2e6ba7b30ef 100644
--- a/lib/yuilib/3.7.1/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js
+++ b/lib/yuilib/3.7.2/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -201,4 +201,4 @@ Y.namespace("Plugin").DataTableDataSource = DataTableDataSource;
-}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin','datasource-local']});
+}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin','datasource-local']});
diff --git a/lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource-coverage.js b/lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource-coverage.js
rename to lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource-coverage.js
index 97c94746011..f1020dab064 100644
--- a/lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatable-datasource/datatable-datasource.js"] = {
path: "build/datatable-datasource/datatable-datasource.js",
code: []
};
-_yuitest_coverage["build/datatable-datasource/datatable-datasource.js"].code=["YUI.add('datatable-datasource', function (Y, NAME) {","","/**"," * Plugs DataTable with DataSource integration."," *"," * @module datatable"," * @submodule datatable-datasource"," */","","/**"," * Adds DataSource integration to DataTable."," * @class Plugin.DataTableDataSource"," * @extends Plugin.Base"," */","function DataTableDataSource() {"," DataTableDataSource.superclass.constructor.apply(this, arguments);","}","","/////////////////////////////////////////////////////////////////////////////","//","// STATIC PROPERTIES","//","/////////////////////////////////////////////////////////////////////////////","Y.mix(DataTableDataSource, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"datasource\""," */"," NS: \"datasource\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataTableDataSource\""," */"," NAME: \"dataTableDataSource\",","","/////////////////////////////////////////////////////////////////////////////","//","// ATTRIBUTES","//","/////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /**"," * @attribute datasource"," * @description Pointer to DataSource instance."," * @type {DataSource}"," */"," datasource: {"," setter: \"_setDataSource\""," },"," "," /**"," * @attribute initialRequest"," * @description Request sent to DataSource immediately upon initialization."," * @type Object"," */"," initialRequest: {"," setter: \"_setInitialRequest\""," }"," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(DataTableDataSource, Y.Plugin.Base, {"," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTE HELPERS"," //"," /////////////////////////////////////////////////////////////////////////////"," /**"," * @method _setDataSource"," * @description Creates new DataSource instance if one is not provided."," * @param ds {Object | Y.DataSource}"," * @return {DataSource}"," * @private"," */"," _setDataSource: function(ds) {"," return ds || new Y.DataSource.Local(ds);"," },",""," /**"," * @method _setInitialRequest"," * @description Sends request to DataSource."," * @param request {Object} DataSource request."," * @private"," */"," _setInitialRequest: function(request) {"," },",""," /////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," /////////////////////////////////////////////////////////////////////////////"," /**"," * Initializer."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," if(!Y.Lang.isUndefined(config.initialRequest)) {"," this.load({request:config.initialRequest});"," }"," },",""," ////////////////////////////////////////////////////////////////////////////"," //"," // DATA"," //"," ////////////////////////////////////////////////////////////////////////////",""," /**"," * Load data by calling DataSource's sendRequest() method under the hood."," *"," * @method load"," * @param config {object} Optional configuration parameters:"," *"," * "," * - request
- Pass in a new request, or initialRequest is used.
"," * - callback
- Pass in DataSource callback object, or the following default is used:"," *
"," * - success
- datatable.onDataReturnInitializeTable
"," * - failure
- datatable.onDataReturnInitializeTable
"," * - scope
- datatable
"," * - argument
- datatable.getState()
"," *
"," * "," * - datasource
- Pass in a new DataSource instance to override the current DataSource for this transaction.
"," *
"," */"," load: function(config) {"," config = config || {};"," config.request = config.request || this.get(\"initialRequest\");"," config.callback = config.callback || {"," success: Y.bind(this.onDataReturnInitializeTable, this),"," failure: Y.bind(this.onDataReturnInitializeTable, this),"," argument: this.get(\"host\").get(\"state\") //TODO"," };",""," var ds = (config.datasource || this.get(\"datasource\"));"," if(ds) {"," ds.sendRequest(config);"," }"," },",""," /**"," * Callback function passed to DataSource's sendRequest() method populates"," * an entire DataTable with new data, clearing previous data, if any."," *"," * @method onDataReturnInitializeTable"," * @param e {Event.Facade} DataSource Event Facade object."," */"," onDataReturnInitializeTable : function(e) {"," var records = (e.response && e.response.results) || [];",""," this.get(\"host\").set(\"data\", records);"," }","});","","Y.namespace(\"Plugin\").DataTableDataSource = DataTableDataSource;","","","}, '3.7.1', {\"requires\": [\"datatable-base\", \"plugin\", \"datasource-local\"]});"];
+_yuitest_coverage["build/datatable-datasource/datatable-datasource.js"].code=["YUI.add('datatable-datasource', function (Y, NAME) {","","/**"," * Plugs DataTable with DataSource integration."," *"," * @module datatable"," * @submodule datatable-datasource"," */","","/**"," * Adds DataSource integration to DataTable."," * @class Plugin.DataTableDataSource"," * @extends Plugin.Base"," */","function DataTableDataSource() {"," DataTableDataSource.superclass.constructor.apply(this, arguments);","}","","/////////////////////////////////////////////////////////////////////////////","//","// STATIC PROPERTIES","//","/////////////////////////////////////////////////////////////////////////////","Y.mix(DataTableDataSource, {"," /**"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"datasource\""," */"," NS: \"datasource\",",""," /**"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataTableDataSource\""," */"," NAME: \"dataTableDataSource\",","","/////////////////////////////////////////////////////////////////////////////","//","// ATTRIBUTES","//","/////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /**"," * @attribute datasource"," * @description Pointer to DataSource instance."," * @type {DataSource}"," */"," datasource: {"," setter: \"_setDataSource\""," },"," "," /**"," * @attribute initialRequest"," * @description Request sent to DataSource immediately upon initialization."," * @type Object"," */"," initialRequest: {"," setter: \"_setInitialRequest\""," }"," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(DataTableDataSource, Y.Plugin.Base, {"," /////////////////////////////////////////////////////////////////////////////"," //"," // ATTRIBUTE HELPERS"," //"," /////////////////////////////////////////////////////////////////////////////"," /**"," * @method _setDataSource"," * @description Creates new DataSource instance if one is not provided."," * @param ds {Object | Y.DataSource}"," * @return {DataSource}"," * @private"," */"," _setDataSource: function(ds) {"," return ds || new Y.DataSource.Local(ds);"," },",""," /**"," * @method _setInitialRequest"," * @description Sends request to DataSource."," * @param request {Object} DataSource request."," * @private"," */"," _setInitialRequest: function(request) {"," },",""," /////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," /////////////////////////////////////////////////////////////////////////////"," /**"," * Initializer."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," if(!Y.Lang.isUndefined(config.initialRequest)) {"," this.load({request:config.initialRequest});"," }"," },",""," ////////////////////////////////////////////////////////////////////////////"," //"," // DATA"," //"," ////////////////////////////////////////////////////////////////////////////",""," /**"," * Load data by calling DataSource's sendRequest() method under the hood."," *"," * @method load"," * @param config {object} Optional configuration parameters:"," *"," * "," * - request
- Pass in a new request, or initialRequest is used.
"," * - callback
- Pass in DataSource callback object, or the following default is used:"," *
"," * - success
- datatable.onDataReturnInitializeTable
"," * - failure
- datatable.onDataReturnInitializeTable
"," * - scope
- datatable
"," * - argument
- datatable.getState()
"," *
"," * "," * - datasource
- Pass in a new DataSource instance to override the current DataSource for this transaction.
"," *
"," */"," load: function(config) {"," config = config || {};"," config.request = config.request || this.get(\"initialRequest\");"," config.callback = config.callback || {"," success: Y.bind(this.onDataReturnInitializeTable, this),"," failure: Y.bind(this.onDataReturnInitializeTable, this),"," argument: this.get(\"host\").get(\"state\") //TODO"," };",""," var ds = (config.datasource || this.get(\"datasource\"));"," if(ds) {"," ds.sendRequest(config);"," }"," },",""," /**"," * Callback function passed to DataSource's sendRequest() method populates"," * an entire DataTable with new data, clearing previous data, if any."," *"," * @method onDataReturnInitializeTable"," * @param e {Event.Facade} DataSource Event Facade object."," */"," onDataReturnInitializeTable : function(e) {"," var records = (e.response && e.response.results) || [];",""," this.get(\"host\").set(\"data\", records);"," }","});","","Y.namespace(\"Plugin\").DataTableDataSource = DataTableDataSource;","","","}, '3.7.2', {\"requires\": [\"datatable-base\", \"plugin\", \"datasource-local\"]});"];
_yuitest_coverage["build/datatable-datasource/datatable-datasource.js"].lines = {"1":0,"15":0,"16":0,"24":0,"79":0,"93":0,"118":0,"119":0,"149":0,"150":0,"151":0,"157":0,"158":0,"159":0,"171":0,"173":0,"177":0};
_yuitest_coverage["build/datatable-datasource/datatable-datasource.js"].functions = {"DataTableDataSource:15":0,"_setDataSource:92":0,"initializer:117":0,"load:148":0,"onDataReturnInitializeTable:170":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-datasource/datatable-datasource.js"].coveredLines = 17;
@@ -239,4 +239,4 @@ _yuitest_coverline("build/datatable-datasource/datatable-datasource.js", 177);
Y.namespace("Plugin").DataTableDataSource = DataTableDataSource;
-}, '3.7.1', {"requires": ["datatable-base", "plugin", "datasource-local"]});
+}, '3.7.2', {"requires": ["datatable-base", "plugin", "datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource-debug.js b/lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource-debug.js
rename to lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource-debug.js
index b98a384c4fb..ded0aabf6e5 100644
--- a/lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -183,4 +183,4 @@ Y.extend(DataTableDataSource, Y.Plugin.Base, {
Y.namespace("Plugin").DataTableDataSource = DataTableDataSource;
-}, '3.7.1', {"requires": ["datatable-base", "plugin", "datasource-local"]});
+}, '3.7.2', {"requires": ["datatable-base", "plugin", "datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource-min.js b/lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource-min.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource-min.js
rename to lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource-min.js
index 9e087087841..7abc35d0894 100644
--- a/lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-datasource",function(e,t){function n(){n.superclass.constructor.apply(this,arguments)}e.mix(n,{NS:"datasource",NAME:"dataTableDataSource",ATTRS:{datasource:{setter:"_setDataSource"},initialRequest:{setter:"_setInitialRequest"}}}),e.extend(n,e.Plugin.Base,{_setDataSource:function(t){return t||new e.DataSource.Local(t)},_setInitialRequest:function(e){},initializer:function(t){e.Lang.isUndefined(t.initialRequest)||this.load({request:t.initialRequest})},load:function(t){t=t||{},t.request=t.request||this.get("initialRequest"),t.callback=t.callback||{success:e.bind(this.onDataReturnInitializeTable,this),failure:e.bind(this.onDataReturnInitializeTable,this),argument:this.get("host").get("state")};var n=t.datasource||this.get("datasource");n&&n.sendRequest(t)},onDataReturnInitializeTable:function(e){var t=e.response&&e.response.results||[];this.get("host").set("data",t)}}),e.namespace("Plugin").DataTableDataSource=n},"3.7.1",{requires:["datatable-base","plugin","datasource-local"]});
+YUI.add("datatable-datasource",function(e,t){function n(){n.superclass.constructor.apply(this,arguments)}e.mix(n,{NS:"datasource",NAME:"dataTableDataSource",ATTRS:{datasource:{setter:"_setDataSource"},initialRequest:{setter:"_setInitialRequest"}}}),e.extend(n,e.Plugin.Base,{_setDataSource:function(t){return t||new e.DataSource.Local(t)},_setInitialRequest:function(e){},initializer:function(t){e.Lang.isUndefined(t.initialRequest)||this.load({request:t.initialRequest})},load:function(t){t=t||{},t.request=t.request||this.get("initialRequest"),t.callback=t.callback||{success:e.bind(this.onDataReturnInitializeTable,this),failure:e.bind(this.onDataReturnInitializeTable,this),argument:this.get("host").get("state")};var n=t.datasource||this.get("datasource");n&&n.sendRequest(t)},onDataReturnInitializeTable:function(e){var t=e.response&&e.response.results||[];this.get("host").set("data",t)}}),e.namespace("Plugin").DataTableDataSource=n},"3.7.2",{requires:["datatable-base","plugin","datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource.js b/lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource.js
rename to lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource.js
index b98a384c4fb..ded0aabf6e5 100644
--- a/lib/yuilib/3.7.1/build/datatable-datasource/datatable-datasource.js
+++ b/lib/yuilib/3.7.2/build/datatable-datasource/datatable-datasource.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -183,4 +183,4 @@ Y.extend(DataTableDataSource, Y.Plugin.Base, {
Y.namespace("Plugin").DataTableDataSource = DataTableDataSource;
-}, '3.7.1', {"requires": ["datatable-base", "plugin", "datasource-local"]});
+}, '3.7.2', {"requires": ["datatable-base", "plugin", "datasource-local"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-head/datatable-head-coverage.js b/lib/yuilib/3.7.2/build/datatable-head/datatable-head-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-head/datatable-head-coverage.js
rename to lib/yuilib/3.7.2/build/datatable-head/datatable-head-coverage.js
index 7ac5dd71aef..68b2d3c4324 100644
--- a/lib/yuilib/3.7.1/build/datatable-head/datatable-head-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatable-head/datatable-head-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatable-head/datatable-head.js"] = {
path: "build/datatable-head/datatable-head.js",
code: []
};
-_yuitest_coverage["build/datatable-head/datatable-head.js"].code=["YUI.add('datatable-head', function (Y, NAME) {","","/**","View class responsible for rendering the `` section of a table. Used as","the default `headerView` for `Y.DataTable.Base` and `Y.DataTable` classes.","","@module datatable","@submodule datatable-head","@since 3.5.0","**/","var Lang = Y.Lang,"," fromTemplate = Lang.sub,"," isArray = Lang.isArray,"," toArray = Y.Array;","","/**","View class responsible for rendering the `` section of a table. Used as","the default `headerView` for `Y.DataTable.Base` and `Y.DataTable` classes.","","Translates the provided array of column configuration objects into a rendered","`` based on the data in those objects."," ","","The structure of the column data is expected to be a single array of objects,","where each object corresponds to a ``. Those objects may contain a","`children` property containing a similarly structured array to indicate the","nested cells should be grouped under the parent column's colspan in a separate","row of header cells. E.g.","","","new Y.DataTable.HeaderView({"," container: tableNode,"," columns: ["," { key: 'id' }, // no nesting"," { key: 'name', children: ["," { key: 'firstName', label: 'First' },"," { key: 'lastName', label: 'Last' } ] }"," ]","}).render();","
","","This would translate to the following visualization:","","","---------------------","| | name |","| |---------------","| id | First | Last |","---------------------","
","","Supported properties of the column objects include:",""," * `label` - The HTML content of the header cell."," * `key` - If `label` is not specified, the `key` is used for content."," * `children` - Array of columns to appear below this column in the next"," row."," * `headerTemplate` - Overrides the instance's `CELL_TEMPLATE` for cells in this"," column only."," * `abbr` - The content of the 'abbr' attribute of the ` `"," * `className` - Adds this string of CSS classes to the column header","","Through the life of instantiation and rendering, the column objects will have","the following properties added to them:",""," * `id` - (Defaulted by DataTable) The id to assign the rendered column"," * `_colspan` - To supply the ` ` attribute"," * `_rowspan` - To supply the ` ` attribute"," * `_parent` - (Added by DataTable) If the column is a child of another"," column, this points to its parent column","","The column object is also used to provide values for {placeholder} tokens in the","instance's `CELL_TEMPLATE`, so you can modify the template and include other","column object properties to populate them.","","@class HeaderView","@namespace DataTable","@extends View","@since 3.5.0","**/","Y.namespace('DataTable').HeaderView = Y.Base.create('tableHeader', Y.View, [], {"," // -- Instance properties -------------------------------------------------",""," /**"," Template used to create the table's header cell markup. Override this to"," customize how header cell markup is created.",""," @property CELL_TEMPLATE"," @type {HTML}"," @default ' {content} '"," @since 3.5.0"," **/"," CELL_TEMPLATE:"," '{content} ',",""," /**"," The data representation of the header rows to render. This is assigned by"," parsing the `columns` configuration array, and is used by the render()"," method.",""," @property columns"," @type {Array[]}"," @default (initially unset)"," @since 3.5.0"," **/"," //TODO: should this be protected?"," //columns: null,",""," /**"," Template used to create the table's header row markup. Override this to"," customize the row markup.",""," @property ROW_TEMPLATE"," @type {HTML}"," @default '{content} '"," @since 3.5.0"," **/"," ROW_TEMPLATE:"," '{content} ',",""," /**"," The object that serves as the source of truth for column and row data."," This property is assigned at instantiation from the `source` property of"," the configuration object passed to the constructor.",""," @property source"," @type {Object}"," @default (initially unset)"," @since 3.5.0"," **/"," //TODO: should this be protected?"," //source: null,",""," /**"," HTML templates used to create the `` containing the table headers.",""," @property THEAD_TEMPLATE"," @type {HTML}"," @default '{content}'"," @since 3.6.0"," **/"," THEAD_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"," **/"," 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(toArray(arguments, 0, true)));"," }"," },",""," /**"," Creates the `` Node content by assembling markup generated by"," populating the `ROW_TEMPLATE` and `CELL_TEMPLATE` templates with content"," from the `columns` property."," "," @method render"," @return {HeaderView} The instance"," @chainable"," @since 3.5.0"," **/"," render: function () {"," var table = this.get('container'),"," thead = this.theadNode ||"," (this.theadNode = this._createTHeadNode()),"," columns = this.columns,"," defaults = {"," _colspan: 1,"," _rowspan: 1,"," abbr: ''"," },"," i, len, j, jlen, col, html, content, values;",""," if (thead && columns) {"," html = '';",""," if (columns.length) {"," for (i = 0, len = columns.length; i < len; ++i) {"," content = '';",""," for (j = 0, jlen = columns[i].length; j < jlen; ++j) {"," col = columns[i][j];"," values = Y.merge("," defaults,"," col, {"," className: this.getClassName('header'),"," content : col.label || col.key ||"," (\"Column \" + (j + 1))"," }"," );",""," values._id = col._id ?"," ' data-yui3-col-id=\"' + col._id + '\"' : '';"," "," if (col.abbr) {"," values.abbr = ' abbr=\"' + col.abbr + '\"';"," }",""," if (col.className) {"," values.className += ' ' + col.className;"," }",""," if (col._first) {"," values.className += ' ' + this.getClassName('first', 'header');"," }",""," if (col._id) {"," values.className +="," ' ' + this.getClassName('col', col._id);"," }",""," content += fromTemplate("," col.headerTemplate || this.CELL_TEMPLATE, values);"," }",""," html += fromTemplate(this.ROW_TEMPLATE, {"," content: content"," });"," }"," }",""," thead.setHTML(html);",""," if (thead.get('parentNode') !== table) {"," table.insertBefore(thead, table.one('tfoot, tbody'));"," }"," }",""," this.bindUI();",""," return this;"," },",""," // -- Protected and private properties and methods ------------------------",""," /**"," Handles changes in the source's columns attribute. Redraws the headers.",""," @method _afterColumnsChange"," @param {EventFacade} e The `columnsChange` event object"," @protected"," @since 3.5.0"," **/"," _afterColumnsChange: function (e) {"," this.columns = this._parseColumns(e.newVal);",""," this.render();"," },",""," /**"," Binds event subscriptions from the UI and the source (if assigned).",""," @method bindUI"," @protected"," @since 3.5.0"," **/"," bindUI: function () {"," if (!this._eventHandles.columnsChange) {"," // TODO: How best to decouple this?"," this._eventHandles.columnsChange ="," this.after('columnsChange',"," Y.bind('_afterColumnsChange', this));"," }"," },",""," /**"," Creates the `` node that will store the header rows and cells.",""," @method _createTHeadNode"," @return {Node}"," @protected"," @since 3.6.0"," **/"," _createTHeadNode: function () {"," return Y.Node.create(fromTemplate(this.THEAD_TEMPLATE, {"," className: this.getClassName('columns')"," }));"," },"," "," /**"," Destroys the instance.",""," @method destructor"," @protected"," @since 3.5.0"," **/"," destructor: function () {"," (new Y.EventHandle(Y.Object.values(this._eventHandles))).detach();"," },",""," /**"," Holds the event subscriptions needing to be detached when the instance is"," `destroy()`ed.",""," @property _eventHandles"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.5.0"," **/"," //_eventHandles: null,",""," /**"," Initializes the instance. Reads the following configuration properties:",""," * `columns` - (REQUIRED) The initial column information"," * `host` - The object to serve as source of truth for column info",""," @method initializer"," @param {Object} config Configuration data"," @protected"," @since 3.5.0"," **/"," initializer: function (config) {"," this.host = config.host;"," this.columns = this._parseColumns(config.columns);",""," this._eventHandles = [];"," },",""," /**"," Translate the input column format into a structure useful for rendering a"," ``, rows, and cells. The structure of the input is expected to be a"," single array of objects, where each object corresponds to a ``. Those"," objects may contain a `children` property containing a similarly structured"," array to indicate the nested cells should be grouped under the parent"," column's colspan in a separate row of header cells. E.g.",""," "," ["," { key: 'id' }, // no nesting"," { key: 'name', children: ["," { key: 'firstName', label: 'First' },"," { key: 'lastName', label: 'Last' } ] }"," ]","
",""," would indicate two header rows with the first column 'id' being assigned a"," `rowspan` of `2`, the 'name' column appearing in the first row with a"," `colspan` of `2`, and the 'firstName' and 'lastName' columns appearing in"," the second row, below the 'name' column.",""," "," ---------------------"," | | name |"," | |---------------"," | id | First | Last |"," ---------------------","
",""," Supported properties of the column objects include:",""," * `label` - The HTML content of the header cell."," * `key` - If `label` is not specified, the `key` is used for content."," * `children` - Array of columns to appear below this column in the next"," row."," * `abbr` - The content of the 'abbr' attribute of the ` `"," * `headerTemplate` - Overrides the instance's `CELL_TEMPLATE` for cells"," in this column only.",""," The output structure is basically a simulation of the `` structure"," with arrays for rows and objects for cells. Column objects have the"," following properties added to them:"," "," * `id` - (Defaulted by DataTable) The id to assign the rendered"," column"," * `_colspan` - Per the `` attribute"," * `_rowspan` - Per the ` ` attribute"," * `_parent` - (Added by DataTable) If the column is a child of another"," column, this points to its parent column",""," The column object is also used to provide values for {placeholder}"," replacement in the `CELL_TEMPLATE`, so you can modify the template and"," include other column object properties to populate them.",""," @method _parseColumns"," @param {Object[]} data Array of column object data"," @return {Array[]} An array of arrays corresponding to the header row"," structure to render"," @protected"," @since 3.5.0"," **/"," _parseColumns: function (data) {"," var columns = [],"," stack = [],"," rowSpan = 1,"," entry, row, col, children, parent, i, len, j;"," "," if (isArray(data) && data.length) {"," // don't modify the input array"," data = data.slice();",""," // First pass, assign colspans and calculate row count for"," // non-nested headers' rowspan"," stack.push([data, -1]);",""," while (stack.length) {"," entry = stack[stack.length - 1];"," row = entry[0];"," i = entry[1] + 1;",""," for (len = row.length; i < len; ++i) {"," row[i] = col = Y.merge(row[i]);"," children = col.children;",""," Y.stamp(col);",""," if (!col.id) {"," col.id = Y.guid();"," }",""," if (isArray(children) && children.length) {"," stack.push([children, -1]);"," entry[1] = i;",""," rowSpan = Math.max(rowSpan, stack.length);",""," // break to let the while loop process the children"," break;"," } else {"," col._colspan = 1;"," }"," }",""," if (i >= len) {"," // All columns in this row are processed"," if (stack.length > 1) {"," entry = stack[stack.length - 2];"," parent = entry[0][entry[1]];",""," parent._colspan = 0;",""," for (i = 0, len = row.length; i < len; ++i) {"," // Can't use .length because in 3+ rows, colspan"," // needs to aggregate the colspans of children"," row[i]._parent = parent;"," parent._colspan += row[i]._colspan;"," }"," }"," stack.pop();"," }"," }",""," // Second pass, build row arrays and assign rowspan"," for (i = 0; i < rowSpan; ++i) {"," columns.push([]);"," }",""," stack.push([data, -1]);",""," while (stack.length) {"," entry = stack[stack.length - 1];"," row = entry[0];"," i = entry[1] + 1;",""," for (len = row.length; i < len; ++i) {"," col = row[i];"," children = col.children;",""," columns[stack.length - 1].push(col);",""," entry[1] = i;",""," // collect the IDs of parent cols"," col._headers = [col.id];",""," for (j = stack.length - 2; j >= 0; --j) {"," parent = stack[j][0][stack[j][1]];",""," col._headers.unshift(parent.id);"," }",""," if (children && children.length) {"," // parent cells must assume rowspan 1 (long story)",""," // break to let the while loop process the children"," stack.push([children, -1]);"," break;"," } else {"," col._rowspan = rowSpan - stack.length + 1;"," }"," }",""," if (i >= len) {"," // All columns in this row are processed"," stack.pop();"," }"," }"," }",""," for (i = 0, len = columns.length; i < len; i += col._rowspan) {"," col = columns[i][0];",""," col._first = true;"," }",""," return columns;"," }","});","","","}, '3.7.1', {\"requires\": [\"datatable-core\", \"view\", \"classnamemanager\"]});"];
+_yuitest_coverage["build/datatable-head/datatable-head.js"].code=["YUI.add('datatable-head', function (Y, NAME) {","","/**","View class responsible for rendering the `` section of a table. Used as","the default `headerView` for `Y.DataTable.Base` and `Y.DataTable` classes.","","@module datatable","@submodule datatable-head","@since 3.5.0","**/","var Lang = Y.Lang,"," fromTemplate = Lang.sub,"," isArray = Lang.isArray,"," toArray = Y.Array;","","/**","View class responsible for rendering the `` section of a table. Used as","the default `headerView` for `Y.DataTable.Base` and `Y.DataTable` classes.","","Translates the provided array of column configuration objects into a rendered","`` based on the data in those objects."," ","","The structure of the column data is expected to be a single array of objects,","where each object corresponds to a ``. Those objects may contain a","`children` property containing a similarly structured array to indicate the","nested cells should be grouped under the parent column's colspan in a separate","row of header cells. E.g.","","","new Y.DataTable.HeaderView({"," container: tableNode,"," columns: ["," { key: 'id' }, // no nesting"," { key: 'name', children: ["," { key: 'firstName', label: 'First' },"," { key: 'lastName', label: 'Last' } ] }"," ]","}).render();","
","","This would translate to the following visualization:","","","---------------------","| | name |","| |---------------","| id | First | Last |","---------------------","
","","Supported properties of the column objects include:",""," * `label` - The HTML content of the header cell."," * `key` - If `label` is not specified, the `key` is used for content."," * `children` - Array of columns to appear below this column in the next"," row."," * `headerTemplate` - Overrides the instance's `CELL_TEMPLATE` for cells in this"," column only."," * `abbr` - The content of the 'abbr' attribute of the ` `"," * `className` - Adds this string of CSS classes to the column header","","Through the life of instantiation and rendering, the column objects will have","the following properties added to them:",""," * `id` - (Defaulted by DataTable) The id to assign the rendered column"," * `_colspan` - To supply the ` ` attribute"," * `_rowspan` - To supply the ` ` attribute"," * `_parent` - (Added by DataTable) If the column is a child of another"," column, this points to its parent column","","The column object is also used to provide values for {placeholder} tokens in the","instance's `CELL_TEMPLATE`, so you can modify the template and include other","column object properties to populate them.","","@class HeaderView","@namespace DataTable","@extends View","@since 3.5.0","**/","Y.namespace('DataTable').HeaderView = Y.Base.create('tableHeader', Y.View, [], {"," // -- Instance properties -------------------------------------------------",""," /**"," Template used to create the table's header cell markup. Override this to"," customize how header cell markup is created.",""," @property CELL_TEMPLATE"," @type {HTML}"," @default ' {content} '"," @since 3.5.0"," **/"," CELL_TEMPLATE:"," '{content} ',",""," /**"," The data representation of the header rows to render. This is assigned by"," parsing the `columns` configuration array, and is used by the render()"," method.",""," @property columns"," @type {Array[]}"," @default (initially unset)"," @since 3.5.0"," **/"," //TODO: should this be protected?"," //columns: null,",""," /**"," Template used to create the table's header row markup. Override this to"," customize the row markup.",""," @property ROW_TEMPLATE"," @type {HTML}"," @default '{content} '"," @since 3.5.0"," **/"," ROW_TEMPLATE:"," '{content} ',",""," /**"," The object that serves as the source of truth for column and row data."," This property is assigned at instantiation from the `source` property of"," the configuration object passed to the constructor.",""," @property source"," @type {Object}"," @default (initially unset)"," @since 3.5.0"," **/"," //TODO: should this be protected?"," //source: null,",""," /**"," HTML templates used to create the `` containing the table headers.",""," @property THEAD_TEMPLATE"," @type {HTML}"," @default '{content}'"," @since 3.6.0"," **/"," THEAD_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"," **/"," 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(toArray(arguments, 0, true)));"," }"," },",""," /**"," Creates the `` Node content by assembling markup generated by"," populating the `ROW_TEMPLATE` and `CELL_TEMPLATE` templates with content"," from the `columns` property."," "," @method render"," @return {HeaderView} The instance"," @chainable"," @since 3.5.0"," **/"," render: function () {"," var table = this.get('container'),"," thead = this.theadNode ||"," (this.theadNode = this._createTHeadNode()),"," columns = this.columns,"," defaults = {"," _colspan: 1,"," _rowspan: 1,"," abbr: ''"," },"," i, len, j, jlen, col, html, content, values;",""," if (thead && columns) {"," html = '';",""," if (columns.length) {"," for (i = 0, len = columns.length; i < len; ++i) {"," content = '';",""," for (j = 0, jlen = columns[i].length; j < jlen; ++j) {"," col = columns[i][j];"," values = Y.merge("," defaults,"," col, {"," className: this.getClassName('header'),"," content : col.label || col.key ||"," (\"Column \" + (j + 1))"," }"," );",""," values._id = col._id ?"," ' data-yui3-col-id=\"' + col._id + '\"' : '';"," "," if (col.abbr) {"," values.abbr = ' abbr=\"' + col.abbr + '\"';"," }",""," if (col.className) {"," values.className += ' ' + col.className;"," }",""," if (col._first) {"," values.className += ' ' + this.getClassName('first', 'header');"," }",""," if (col._id) {"," values.className +="," ' ' + this.getClassName('col', col._id);"," }",""," content += fromTemplate("," col.headerTemplate || this.CELL_TEMPLATE, values);"," }",""," html += fromTemplate(this.ROW_TEMPLATE, {"," content: content"," });"," }"," }",""," thead.setHTML(html);",""," if (thead.get('parentNode') !== table) {"," table.insertBefore(thead, table.one('tfoot, tbody'));"," }"," }",""," this.bindUI();",""," return this;"," },",""," // -- Protected and private properties and methods ------------------------",""," /**"," Handles changes in the source's columns attribute. Redraws the headers.",""," @method _afterColumnsChange"," @param {EventFacade} e The `columnsChange` event object"," @protected"," @since 3.5.0"," **/"," _afterColumnsChange: function (e) {"," this.columns = this._parseColumns(e.newVal);",""," this.render();"," },",""," /**"," Binds event subscriptions from the UI and the source (if assigned).",""," @method bindUI"," @protected"," @since 3.5.0"," **/"," bindUI: function () {"," if (!this._eventHandles.columnsChange) {"," // TODO: How best to decouple this?"," this._eventHandles.columnsChange ="," this.after('columnsChange',"," Y.bind('_afterColumnsChange', this));"," }"," },",""," /**"," Creates the `` node that will store the header rows and cells.",""," @method _createTHeadNode"," @return {Node}"," @protected"," @since 3.6.0"," **/"," _createTHeadNode: function () {"," return Y.Node.create(fromTemplate(this.THEAD_TEMPLATE, {"," className: this.getClassName('columns')"," }));"," },"," "," /**"," Destroys the instance.",""," @method destructor"," @protected"," @since 3.5.0"," **/"," destructor: function () {"," (new Y.EventHandle(Y.Object.values(this._eventHandles))).detach();"," },",""," /**"," Holds the event subscriptions needing to be detached when the instance is"," `destroy()`ed.",""," @property _eventHandles"," @type {Object}"," @default undefined (initially unset)"," @protected"," @since 3.5.0"," **/"," //_eventHandles: null,",""," /**"," Initializes the instance. Reads the following configuration properties:",""," * `columns` - (REQUIRED) The initial column information"," * `host` - The object to serve as source of truth for column info",""," @method initializer"," @param {Object} config Configuration data"," @protected"," @since 3.5.0"," **/"," initializer: function (config) {"," this.host = config.host;"," this.columns = this._parseColumns(config.columns);",""," this._eventHandles = [];"," },",""," /**"," Translate the input column format into a structure useful for rendering a"," ``, rows, and cells. The structure of the input is expected to be a"," single array of objects, where each object corresponds to a ``. Those"," objects may contain a `children` property containing a similarly structured"," array to indicate the nested cells should be grouped under the parent"," column's colspan in a separate row of header cells. E.g.",""," "," ["," { key: 'id' }, // no nesting"," { key: 'name', children: ["," { key: 'firstName', label: 'First' },"," { key: 'lastName', label: 'Last' } ] }"," ]","
",""," would indicate two header rows with the first column 'id' being assigned a"," `rowspan` of `2`, the 'name' column appearing in the first row with a"," `colspan` of `2`, and the 'firstName' and 'lastName' columns appearing in"," the second row, below the 'name' column.",""," "," ---------------------"," | | name |"," | |---------------"," | id | First | Last |"," ---------------------","
",""," Supported properties of the column objects include:",""," * `label` - The HTML content of the header cell."," * `key` - If `label` is not specified, the `key` is used for content."," * `children` - Array of columns to appear below this column in the next"," row."," * `abbr` - The content of the 'abbr' attribute of the ` `"," * `headerTemplate` - Overrides the instance's `CELL_TEMPLATE` for cells"," in this column only.",""," The output structure is basically a simulation of the `` structure"," with arrays for rows and objects for cells. Column objects have the"," following properties added to them:"," "," * `id` - (Defaulted by DataTable) The id to assign the rendered"," column"," * `_colspan` - Per the `` attribute"," * `_rowspan` - Per the ` ` attribute"," * `_parent` - (Added by DataTable) If the column is a child of another"," column, this points to its parent column",""," The column object is also used to provide values for {placeholder}"," replacement in the `CELL_TEMPLATE`, so you can modify the template and"," include other column object properties to populate them.",""," @method _parseColumns"," @param {Object[]} data Array of column object data"," @return {Array[]} An array of arrays corresponding to the header row"," structure to render"," @protected"," @since 3.5.0"," **/"," _parseColumns: function (data) {"," var columns = [],"," stack = [],"," rowSpan = 1,"," entry, row, col, children, parent, i, len, j;"," "," if (isArray(data) && data.length) {"," // don't modify the input array"," data = data.slice();",""," // First pass, assign colspans and calculate row count for"," // non-nested headers' rowspan"," stack.push([data, -1]);",""," while (stack.length) {"," entry = stack[stack.length - 1];"," row = entry[0];"," i = entry[1] + 1;",""," for (len = row.length; i < len; ++i) {"," row[i] = col = Y.merge(row[i]);"," children = col.children;",""," Y.stamp(col);",""," if (!col.id) {"," col.id = Y.guid();"," }",""," if (isArray(children) && children.length) {"," stack.push([children, -1]);"," entry[1] = i;",""," rowSpan = Math.max(rowSpan, stack.length);",""," // break to let the while loop process the children"," break;"," } else {"," col._colspan = 1;"," }"," }",""," if (i >= len) {"," // All columns in this row are processed"," if (stack.length > 1) {"," entry = stack[stack.length - 2];"," parent = entry[0][entry[1]];",""," parent._colspan = 0;",""," for (i = 0, len = row.length; i < len; ++i) {"," // Can't use .length because in 3+ rows, colspan"," // needs to aggregate the colspans of children"," row[i]._parent = parent;"," parent._colspan += row[i]._colspan;"," }"," }"," stack.pop();"," }"," }",""," // Second pass, build row arrays and assign rowspan"," for (i = 0; i < rowSpan; ++i) {"," columns.push([]);"," }",""," stack.push([data, -1]);",""," while (stack.length) {"," entry = stack[stack.length - 1];"," row = entry[0];"," i = entry[1] + 1;",""," for (len = row.length; i < len; ++i) {"," col = row[i];"," children = col.children;",""," columns[stack.length - 1].push(col);",""," entry[1] = i;",""," // collect the IDs of parent cols"," col._headers = [col.id];",""," for (j = stack.length - 2; j >= 0; --j) {"," parent = stack[j][0][stack[j][1]];",""," col._headers.unshift(parent.id);"," }",""," if (children && children.length) {"," // parent cells must assume rowspan 1 (long story)",""," // break to let the while loop process the children"," stack.push([children, -1]);"," break;"," } else {"," col._rowspan = rowSpan - stack.length + 1;"," }"," }",""," if (i >= len) {"," // All columns in this row are processed"," stack.pop();"," }"," }"," }",""," for (i = 0, len = columns.length; i < len; i += col._rowspan) {"," col = columns[i][0];",""," col._first = true;"," }",""," return columns;"," }","});","","","}, '3.7.2', {\"requires\": [\"datatable-core\", \"view\", \"classnamemanager\"]});"];
_yuitest_coverage["build/datatable-head/datatable-head.js"].lines = {"1":0,"11":0,"81":0,"163":0,"167":0,"168":0,"170":0,"187":0,"198":0,"199":0,"201":0,"202":0,"203":0,"205":0,"206":0,"207":0,"216":0,"219":0,"220":0,"223":0,"224":0,"227":0,"228":0,"231":0,"232":0,"236":0,"240":0,"246":0,"248":0,"249":0,"253":0,"255":0,"269":0,"271":0,"282":0,"284":0,"299":0,"312":0,"339":0,"340":0,"342":0,"408":0,"413":0,"415":0,"419":0,"421":0,"422":0,"423":0,"424":0,"426":0,"427":0,"428":0,"430":0,"432":0,"433":0,"436":0,"437":0,"438":0,"440":0,"443":0,"445":0,"449":0,"451":0,"452":0,"453":0,"455":0,"457":0,"460":0,"461":0,"464":0,"469":0,"470":0,"473":0,"475":0,"476":0,"477":0,"478":0,"480":0,"481":0,"482":0,"484":0,"486":0,"489":0,"491":0,"492":0,"494":0,"497":0,"501":0,"502":0,"504":0,"508":0,"510":0,"515":0,"516":0,"518":0,"521":0};
_yuitest_coverage["build/datatable-head/datatable-head.js"].functions = {"getClassName:160":0,"render:186":0,"_afterColumnsChange:268":0,"bindUI:281":0,"_createTHeadNode:298":0,"destructor:311":0,"initializer:338":0,"_parseColumns:407":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-head/datatable-head.js"].coveredLines = 96;
@@ -667,4 +667,4 @@ return columns;
});
-}, '3.7.1', {"requires": ["datatable-core", "view", "classnamemanager"]});
+}, '3.7.2', {"requires": ["datatable-core", "view", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-head/datatable-head-debug.js b/lib/yuilib/3.7.2/build/datatable-head/datatable-head-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-head/datatable-head-debug.js
rename to lib/yuilib/3.7.2/build/datatable-head/datatable-head-debug.js
index 5b2cd6e75ae..face4603d2e 100644
--- a/lib/yuilib/3.7.1/build/datatable-head/datatable-head-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-head/datatable-head-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -529,4 +529,4 @@ Y.namespace('DataTable').HeaderView = Y.Base.create('tableHeader', Y.View, [], {
});
-}, '3.7.1', {"requires": ["datatable-core", "view", "classnamemanager"]});
+}, '3.7.2', {"requires": ["datatable-core", "view", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-head/datatable-head-min.js b/lib/yuilib/3.7.2/build/datatable-head/datatable-head-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatable-head/datatable-head-min.js
rename to lib/yuilib/3.7.2/build/datatable-head/datatable-head-min.js
index 21730387c5f..55b325c0f37 100644
--- a/lib/yuilib/3.7.1/build/datatable-head/datatable-head-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-head/datatable-head-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-head",function(e,t){var n=e.Lang,r=n.sub,i=n.isArray,s=e.Array;e.namespace("DataTable").HeaderView=e.Base.create("tableHeader",e.View,[],{CELL_TEMPLATE:' {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:""},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:""},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 "," @since 3.5.0"," **/"," MESSAGE_TEMPLATE: ' ',",""," /**"," Hides the message node.",""," @method hideMessage"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," hideMessage: function () {"," this.get('boundingBox').removeClass("," this.getClassName('message', 'visible'));",""," return this;"," },",""," /**"," Display the message node and set its content to `message`. If there is a"," localized `strings` entry for the value of `message`, that string will be"," used.",""," @method showMessage"," @param {String} message The message name or message itself to display"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," showMessage: function (message) {"," var content = this.getString(message) || message;",""," if (!this._messageNode) {"," this._initMessageNode();"," }",""," if (this.get('showMessages')) {"," if (content) {"," this._messageNode.one("," '.' + this.getClassName('message', 'content'))"," .setHTML(content);",""," this.get('boundingBox').addClass("," this.getClassName('message','visible'));"," } else {"," // TODO: is this right?"," // If no message provided, remove the message node."," this.hideMessage();"," }"," }",""," return this;"," },",""," //--------------------------------------------------------------------------"," // Protected methods"," //--------------------------------------------------------------------------"," /**"," Updates the colspan of the `` used to display the messages.",""," @method _afterMessageColumnsChange"," @param {EventFacade} e The columnsChange event"," @protected"," @since 3.5.0"," **/"," _afterMessageColumnsChange: function (e) {"," var contentNode;",""," if (this._messageNode) {"," contentNode = this._messageNode.one("," '.' + this.getClassName('message', 'content'));",""," if (contentNode) {"," // FIXME: This needs to become a class extension plus a view or"," // plugin for the table view."," contentNode.set('colSpan', this._displayColumns.length);"," }"," }"," },",""," /**"," Relays to `_uiSetMessage` to hide or show the message node.",""," @method _afterMessageDataChange"," @param {EventFacade} e The dataChange event"," @protected"," @since 3.5.0"," **/"," _afterMessageDataChange: function (e) {"," this._uiSetMessage();"," },",""," /**"," Removes the message node if `showMessages` is `false`, or relays to"," `_uiSetMessage` if `true`.",""," @method _afterShowMessagesChange"," @param {EventFacade} e The showMessagesChange event"," @protected"," @since 3.5.0"," **/"," _afterShowMessagesChange: function (e) {"," if (e.newVal) {"," this._uiSetMessage(e);"," } else if (this._messageNode) {"," this.get('boundingBox').removeClass("," this.getClassName('message', 'visible'));",""," this._messageNode.remove().destroy(true);"," this._messageNode = null;"," }"," },",""," /**"," Binds the events necessary to keep the message node in sync with the current"," table and configuration state.",""," @method _bindMessageUI"," @protected"," @since 3.5.0"," **/"," _bindMessageUI: function () {"," this.after(['dataChange', '*:add', '*:remove', '*:reset'],"," Y.bind('_afterMessageDataChange', this));",""," this.after('columnsChange', Y.bind('_afterMessageColumnsChange', this));",""," this.after('showMessagesChange',"," Y.bind('_afterShowMessagesChange', this));"," },",""," /**"," Merges in the message related strings and hooks into the rendering cycle to"," also render and bind the message node.",""," @method initializer"," @protected"," @since 3.5.0"," **/"," initializer: function () {"," this._initMessageStrings();",""," if (this.get('showMessages')) {"," this.after('renderBody', Y.bind('_initMessageNode', this));"," }",""," this.after(Y.bind('_bindMessageUI', this), this, 'bindUI');"," this.after(Y.bind('_syncMessageUI', this), this, 'syncUI');"," },",""," /**"," Creates the `_messageNode` property from the configured `MESSAGE_TEMPLATE`"," and inserts it before the ``'s `` node.",""," @method _initMessageNode"," @protected"," @since 3.5.0"," **/"," _initMessageNode: function () {"," if (!this._messageNode) {"," this._messageNode = Y.Node.create("," Y.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);"," }"," },",""," /**"," Add the messaging related strings to the `strings` map."," "," @method _initMessageStrings"," @protected"," @since 3.5.0"," **/"," _initMessageStrings: function () {"," // Not a valueFn because other class extensions will want to add to it"," this.set('strings', Y.mix((this.get('strings') || {}), "," Y.Intl.get('datatable-message')));"," },",""," /**"," Node used to display messages from `showMessage`.",""," @property _messageNode"," @type {Node}"," @value `undefined` (not initially set)"," @since 3.5.0"," **/"," //_messageNode: null,",""," /**"," Synchronizes the message UI with the table state.",""," @method _syncMessageUI"," @protected"," @since 3.5.0"," **/"," _syncMessageUI: function () {"," this._uiSetMessage();"," },",""," /**"," Calls `hideMessage` or `showMessage` as appropriate based on the presence of"," records in the `data` ModelList.",""," This is called when `data` is reset or records are added or removed. Also,"," if the `showMessages` attribute is updated. In either case, if the"," triggering event has a `message` property on the EventFacade, it will be"," passed to `showMessage` (if appropriate). If no such property is on the"," facade, the `emptyMessage` will be used (see the strings).",""," @method _uiSetMessage"," @param {EventFacade} e The columnsChange event"," @protected"," @since 3.5.0"," **/"," _uiSetMessage: function (e) {"," if (!this.data.size()) {"," this.showMessage((e && e.message) || 'emptyMessage');"," } else {"," this.hideMessage();"," }"," }","});","","","if (Y.Lang.isFunction(Y.DataTable)) {"," Y.Base.mix(Y.DataTable, [ Message ]);","}","","","}, '3.7.1', {\"requires\": [\"datatable-base\"], \"lang\": [\"en\"], \"skinnable\": true});"];
+_yuitest_coverage["build/datatable-message/datatable-message.js"].code=["YUI.add('datatable-message', function (Y, NAME) {","","/**","Adds support for a message container to appear in the table. This can be used","to indicate loading progress, lack of records, or any other communication","needed.","","@module datatable","@submodule datatable-message","@since 3.5.0","**/","var Message;","","/**","_API docs for this extension are included in the DataTable class._","","Adds support for a message container to appear in the table. This can be used","to indicate loading progress, lack of records, or any other communication","needed.","","Features added to `Y.DataTable`, and made available for custom classes at","`Y.DataTable.Message`.","","@class DataTable.Message","@for DataTable","@since 3.5.0","**/","Y.namespace('DataTable').Message = Message = function () {};","","Message.ATTRS = {"," /**"," Enables the display of messages in the table. Setting this to false will"," prevent the message Node from being created and `showMessage` from doing"," anything.",""," @attribute showMessages"," @type {Boolean}"," @default true"," @since 3.5.0"," **/"," showMessages: {"," value: true,"," validator: Y.Lang.isBoolean"," }","};","","Y.mix(Message.prototype, {"," /**"," Template used to generate the node that will be used to report messages.",""," @property MESSAGE_TEMPLATE"," @type {HTML}"," @default "," @since 3.5.0"," **/"," MESSAGE_TEMPLATE: ' ',",""," /**"," Hides the message node.",""," @method hideMessage"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," hideMessage: function () {"," this.get('boundingBox').removeClass("," this.getClassName('message', 'visible'));",""," return this;"," },",""," /**"," Display the message node and set its content to `message`. If there is a"," localized `strings` entry for the value of `message`, that string will be"," used.",""," @method showMessage"," @param {String} message The message name or message itself to display"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," showMessage: function (message) {"," var content = this.getString(message) || message;",""," if (!this._messageNode) {"," this._initMessageNode();"," }",""," if (this.get('showMessages')) {"," if (content) {"," this._messageNode.one("," '.' + this.getClassName('message', 'content'))"," .setHTML(content);",""," this.get('boundingBox').addClass("," this.getClassName('message','visible'));"," } else {"," // TODO: is this right?"," // If no message provided, remove the message node."," this.hideMessage();"," }"," }",""," return this;"," },",""," //--------------------------------------------------------------------------"," // Protected methods"," //--------------------------------------------------------------------------"," /**"," Updates the colspan of the `` used to display the messages.",""," @method _afterMessageColumnsChange"," @param {EventFacade} e The columnsChange event"," @protected"," @since 3.5.0"," **/"," _afterMessageColumnsChange: function (e) {"," var contentNode;",""," if (this._messageNode) {"," contentNode = this._messageNode.one("," '.' + this.getClassName('message', 'content'));",""," if (contentNode) {"," // FIXME: This needs to become a class extension plus a view or"," // plugin for the table view."," contentNode.set('colSpan', this._displayColumns.length);"," }"," }"," },",""," /**"," Relays to `_uiSetMessage` to hide or show the message node.",""," @method _afterMessageDataChange"," @param {EventFacade} e The dataChange event"," @protected"," @since 3.5.0"," **/"," _afterMessageDataChange: function (e) {"," this._uiSetMessage();"," },",""," /**"," Removes the message node if `showMessages` is `false`, or relays to"," `_uiSetMessage` if `true`.",""," @method _afterShowMessagesChange"," @param {EventFacade} e The showMessagesChange event"," @protected"," @since 3.5.0"," **/"," _afterShowMessagesChange: function (e) {"," if (e.newVal) {"," this._uiSetMessage(e);"," } else if (this._messageNode) {"," this.get('boundingBox').removeClass("," this.getClassName('message', 'visible'));",""," this._messageNode.remove().destroy(true);"," this._messageNode = null;"," }"," },",""," /**"," Binds the events necessary to keep the message node in sync with the current"," table and configuration state.",""," @method _bindMessageUI"," @protected"," @since 3.5.0"," **/"," _bindMessageUI: function () {"," this.after(['dataChange', '*:add', '*:remove', '*:reset'],"," Y.bind('_afterMessageDataChange', this));",""," this.after('columnsChange', Y.bind('_afterMessageColumnsChange', this));",""," this.after('showMessagesChange',"," Y.bind('_afterShowMessagesChange', this));"," },",""," /**"," Merges in the message related strings and hooks into the rendering cycle to"," also render and bind the message node.",""," @method initializer"," @protected"," @since 3.5.0"," **/"," initializer: function () {"," this._initMessageStrings();",""," if (this.get('showMessages')) {"," this.after('renderBody', Y.bind('_initMessageNode', this));"," }",""," this.after(Y.bind('_bindMessageUI', this), this, 'bindUI');"," this.after(Y.bind('_syncMessageUI', this), this, 'syncUI');"," },",""," /**"," Creates the `_messageNode` property from the configured `MESSAGE_TEMPLATE`"," and inserts it before the ``'s `` node.",""," @method _initMessageNode"," @protected"," @since 3.5.0"," **/"," _initMessageNode: function () {"," if (!this._messageNode) {"," this._messageNode = Y.Node.create("," Y.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);"," }"," },",""," /**"," Add the messaging related strings to the `strings` map."," "," @method _initMessageStrings"," @protected"," @since 3.5.0"," **/"," _initMessageStrings: function () {"," // Not a valueFn because other class extensions will want to add to it"," this.set('strings', Y.mix((this.get('strings') || {}), "," Y.Intl.get('datatable-message')));"," },",""," /**"," Node used to display messages from `showMessage`.",""," @property _messageNode"," @type {Node}"," @value `undefined` (not initially set)"," @since 3.5.0"," **/"," //_messageNode: null,",""," /**"," Synchronizes the message UI with the table state.",""," @method _syncMessageUI"," @protected"," @since 3.5.0"," **/"," _syncMessageUI: function () {"," this._uiSetMessage();"," },",""," /**"," Calls `hideMessage` or `showMessage` as appropriate based on the presence of"," records in the `data` ModelList.",""," This is called when `data` is reset or records are added or removed. Also,"," if the `showMessages` attribute is updated. In either case, if the"," triggering event has a `message` property on the EventFacade, it will be"," passed to `showMessage` (if appropriate). If no such property is on the"," facade, the `emptyMessage` will be used (see the strings).",""," @method _uiSetMessage"," @param {EventFacade} e The columnsChange event"," @protected"," @since 3.5.0"," **/"," _uiSetMessage: function (e) {"," if (!this.data.size()) {"," this.showMessage((e && e.message) || 'emptyMessage');"," } else {"," this.hideMessage();"," }"," }","});","","","if (Y.Lang.isFunction(Y.DataTable)) {"," Y.Base.mix(Y.DataTable, [ Message ]);","}","","","}, '3.7.2', {\"requires\": [\"datatable-base\"], \"lang\": [\"en\"], \"skinnable\": true});"];
_yuitest_coverage["build/datatable-message/datatable-message.js"].lines = {"1":0,"12":0,"28":0,"30":0,"47":0,"67":0,"70":0,"85":0,"87":0,"88":0,"91":0,"92":0,"93":0,"97":0,"102":0,"106":0,"121":0,"123":0,"124":0,"127":0,"130":0,"144":0,"157":0,"158":0,"159":0,"160":0,"163":0,"164":0,"177":0,"180":0,"182":0,"195":0,"197":0,"198":0,"201":0,"202":0,"214":0,"215":0,"222":0,"235":0,"257":0,"276":0,"277":0,"279":0,"285":0,"286":0};
_yuitest_coverage["build/datatable-message/datatable-message.js"].functions = {"hideMessage:66":0,"showMessage:84":0,"_afterMessageColumnsChange:120":0,"_afterMessageDataChange:143":0,"_afterShowMessagesChange:156":0,"_bindMessageUI:176":0,"initializer:194":0,"_initMessageNode:213":0,"_initMessageStrings:233":0,"_syncMessageUI:256":0,"_uiSetMessage:275":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-message/datatable-message.js"].coveredLines = 46;
@@ -384,4 +384,4 @@ Y.Base.mix(Y.DataTable, [ Message ]);
}
-}, '3.7.1', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-message/datatable-message-debug.js b/lib/yuilib/3.7.2/build/datatable-message/datatable-message-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-message/datatable-message-debug.js
rename to lib/yuilib/3.7.2/build/datatable-message/datatable-message-debug.js
index 9fcfd4ea0a2..894c8ff1068 100644
--- a/lib/yuilib/3.7.1/build/datatable-message/datatable-message-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-message/datatable-message-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -293,4 +293,4 @@ if (Y.Lang.isFunction(Y.DataTable)) {
}
-}, '3.7.1', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-message/datatable-message-min.js b/lib/yuilib/3.7.2/build/datatable-message/datatable-message-min.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatable-message/datatable-message-min.js
rename to lib/yuilib/3.7.2/build/datatable-message/datatable-message-min.js
index 129a7be25cb..d5c06f411fe 100644
--- a/lib/yuilib/3.7.1/build/datatable-message/datatable-message-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-message/datatable-message-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 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:' ',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(e){var t;this._messageNode&&(t=this._messageNode.one("."+this.getClassName("message","content")),t&&t.set("colSpan",this._displayColumns.length))},_afterMessageDataChange:function(e){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.7.1",{requires:["datatable-base"],lang:["en"],skinnable:!0});
+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:' ',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(e){var t;this._messageNode&&(t=this._messageNode.one("."+this.getClassName("message","content")),t&&t.set("colSpan",this._displayColumns.length))},_afterMessageDataChange:function(e){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.7.2",{requires:["datatable-base"],lang:["en"],skinnable:!0});
diff --git a/lib/yuilib/3.7.1/build/datatable-message/datatable-message.js b/lib/yuilib/3.7.2/build/datatable-message/datatable-message.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-message/datatable-message.js
rename to lib/yuilib/3.7.2/build/datatable-message/datatable-message.js
index 9fcfd4ea0a2..894c8ff1068 100644
--- a/lib/yuilib/3.7.1/build/datatable-message/datatable-message.js
+++ b/lib/yuilib/3.7.2/build/datatable-message/datatable-message.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -293,4 +293,4 @@ if (Y.Lang.isFunction(Y.DataTable)) {
}
-}, '3.7.1', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-message/lang/datatable-message.js b/lib/yuilib/3.7.2/build/datatable-message/lang/datatable-message.js
similarity index 83%
rename from lib/yuilib/3.7.1/build/datatable-message/lang/datatable-message.js
rename to lib/yuilib/3.7.2/build/datatable-message/lang/datatable-message.js
index 292e2919490..e565199f497 100644
--- a/lib/yuilib/3.7.1/build/datatable-message/lang/datatable-message.js
+++ b/lib/yuilib/3.7.2/build/datatable-message/lang/datatable-message.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatable-message",function(e){e.Intl.add("datatable-message","",{emptyMessage:"No data to display",loadingMessage:"Loading..."})},"3.7.1");
+YUI.add("lang/datatable-message",function(e){e.Intl.add("datatable-message","",{emptyMessage:"No data to display",loadingMessage:"Loading..."})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatable-message/lang/datatable-message_en.js b/lib/yuilib/3.7.2/build/datatable-message/lang/datatable-message_en.js
similarity index 81%
rename from lib/yuilib/3.7.1/build/datatable-message/lang/datatable-message_en.js
rename to lib/yuilib/3.7.2/build/datatable-message/lang/datatable-message_en.js
index d7070838269..6accfd5e19f 100644
--- a/lib/yuilib/3.7.1/build/datatable-message/lang/datatable-message_en.js
+++ b/lib/yuilib/3.7.2/build/datatable-message/lang/datatable-message_en.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatable-message_en",function(e){e.Intl.add("datatable-message","en",{emptyMessage:"No data to display",loadingMessage:"Loading..."})},"3.7.1");
+YUI.add("lang/datatable-message_en",function(e){e.Intl.add("datatable-message","en",{emptyMessage:"No data to display",loadingMessage:"Loading..."})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable-coverage.js b/lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable-coverage.js
rename to lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable-coverage.js
index 79520ec97b8..b365cd144ba 100644
--- a/lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatable-mutable/datatable-mutable.js"] = {
path: "build/datatable-mutable/datatable-mutable.js",
code: []
};
-_yuitest_coverage["build/datatable-mutable/datatable-mutable.js"].code=["YUI.add('datatable-mutable', function (Y, NAME) {","","/**","Adds mutation convenience methods such as `table.addRow(data)` to `Y.DataTable`. (or other built class).","","@module datatable","@submodule datatable-mutable","@since 3.5.0","**/","var toArray = Y.Array,"," YLang = Y.Lang,"," isString = YLang.isString,"," isArray = YLang.isArray,"," isObject = YLang.isObject,"," isNumber = YLang.isNumber,"," arrayIndex = Y.Array.indexOf,"," Mutable;","","/**","_API docs for this extension are included in the DataTable class._","","Class extension to add mutation convenience methods to `Y.DataTable` (or other","built class).","","Column mutation methods are paired with new custom events:",""," * addColumn"," * removeColumn"," * modifyColumn"," * moveColumn","","Row mutation events are bubbled from the DataTable's `data` ModelList through","the DataTable instance.","","@class DataTable.Mutable","@for DataTable","@since 3.5.0","**/","Y.namespace('DataTable').Mutable = Mutable = function () {};","","Mutable.ATTRS = {"," /**"," Controls whether `addRow`, `removeRow`, and `modifyRow` should trigger the"," underlying Model's sync layer by default.",""," When `true`, it is unnecessary to pass the \"sync\" configuration property to"," those methods to trigger per-operation sync.","",""," @attribute autoSync"," @type {Boolean}"," @default `false`"," @since 3.5.0"," **/"," autoSync: {"," value: false,"," validator: YLang.isBoolean"," }","};","","Y.mix(Mutable.prototype, {"," /**"," Adds the column configuration to the DataTable's `columns` configuration."," If the `index` parameter is supplied, it is injected at that index. If the"," table has nested headers, inject a subcolumn by passing an array of indexes"," to identify the new column's final location.",""," The `index` parameter is required if adding a nested column.",""," This method is a convienience method for fetching the DataTable's `columns`"," attribute, updating it, and calling "," `table.set('columns', _updatedColumnsDefs_)`",""," For example:",""," // Becomes last column"," table.addColumn('name');",""," // Inserted after the current second column, moving the current third column"," // to index 4"," table.addColumn({ key: 'price', formatter: currencyFormatter }, 2 );",""," // Insert a new column in a set of headers three rows deep. The index array"," // translates to"," // [ 2, -- in the third column's children"," // 1, -- in the second child's children"," // 3 ] -- as the fourth child column"," table.addColumn({ key: 'age', sortable: true }, [ 2, 1, 3 ]);","
",""," @method addColumn"," @param {Object|String} config The new column configuration object"," @param {Number|Number[]} [index] the insertion index"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," addColumn: function (config, index) {"," if (isString(config)) {"," config = { key: config };"," }",""," if (config) {"," if (arguments.length < 2 || (!isNumber(index) && !isArray(index))) {"," index = this.get('columns').length;"," }",""," this.fire('addColumn', {"," column: config,"," index: index"," });"," }"," return this;"," },",""," /**"," Updates an existing column definition. Fires the `modifyColumn` event.",""," For example:",""," // Add a formatter to the existing 'price' column definition"," table.modifyColumn('price', { formatter: currencyFormatter });",""," // Change the label on a header cell in a set of nested headers three rows"," // deep. The index array translates to"," // [ 2, -- in the third column's children"," // 1, -- the second child"," // 3 ] -- the fourth child column"," table.modifyColumn([2, 1, 3], { label: 'Experience' });","
",""," @method modifyColumn"," @param {String|Number|Number[]|Object} name The column key, name, index, or"," current configuration object"," @param {Object} config The new column configuration properties"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," modifyColumn: function (name, config) {"," if (isString(config)) {"," config = { key: config };"," }",""," if (isObject(config)) {"," this.fire('modifyColumn', {"," column: name,"," newColumnDef: config"," });"," }",""," return this;"," },",""," /**"," Moves an existing column to a new location. Fires the `moveColumn` event.",""," The destination index can be a number or array of numbers to place a column"," header in a nested header row.",""," @method moveColumn"," @param {String|Number|Number[]|Object} name The column key, name, index, or"," current configuration object"," @param {Number|Number[]} index The destination index of the column"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," moveColumn: function (name, index) {"," if (name !== undefined && (isNumber(index) || isArray(index))) {"," this.fire('moveColumn', {"," column: name,"," index: index"," });"," }",""," return this;"," },",""," /**"," Removes an existing column. Fires the `removeColumn` event.",""," @method removeColumn"," @param {String|Number|Number[]|Object} name The column key, name, index, or"," current configuration object"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," removeColumn: function (name) {"," if (name !== undefined) {"," this.fire('removeColumn', {"," column: name"," });"," }",""," return this;"," },",""," /**"," Adds a new record to the DataTable's `data` ModelList. Record data can be"," an object of field values or an instance of the DataTable's configured"," `recordType` class.",""," This relays all parameters to the `data` ModelList's `add` method.",""," If a configuration object is passed as a second argument, and that object"," has `sync: true` set, the underlying Model will be `save()`d.",""," If the DataTable's `autoSync` attribute is set to `true`, the additional"," argument is not needed.",""," If syncing and the last argument is a function, that function will be used"," as a callback to the Model's `save()` method.",""," @method addRow"," @param {Object} data The data or Model instance for the new record"," @param {Object} [config] Configuration to pass along"," @param {Function} [callback] Callback function for Model's `save()`"," @param {Error|null} callback.err If an error occurred or validation"," failed, this parameter will contain the error. If the sync operation"," succeeded, _err_ will be `null`."," @param {Any} callback.response The server's response. This value will"," be passed to the `parse()` method, which is expected to parse it and"," return an attribute hash."," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," addRow: function (data, config) {"," // Allow autoSync: true + addRow({ data }, { sync: false })"," var sync = (config && ('sync' in config)) ?"," config.sync :"," this.get('autoSync'),"," models, model, i, len, args;",""," if (data && this.data) {"," models = this.data.add.apply(this.data, arguments);",""," if (sync) {"," models = toArray(models);"," args = toArray(arguments, 1, true);",""," for (i = 0, len = models.length; i < len; ++i) {"," model = models[i];",""," if (model.isNew()) {"," models[i].save.apply(models[i], args);"," }"," }"," }"," }",""," return this;"," },",""," /**"," Removes a record from the DataTable's `data` ModelList. The record can be"," provided explicitly or targeted by it's `id` (see ModelList's `getById`"," method), `clientId`, or index in the ModelList.",""," After locating the target Model, this relays the Model and all other passed"," arguments to the `data` ModelList's `remove` method.",""," If a configuration object is passed as a second argument, and that object"," has `sync: true` set, the underlying Model will be destroyed, passing"," `{ delete: true }` to trigger calling the Model's sync layer.",""," If the DataTable's `autoSync` attribute is set to `true`, the additional"," argument is not needed.",""," If syncing and the last argument is a function, that function will be used"," as a callback to the Model's `destroy()` method.",""," @method removeRow"," @param {Object|String|Number} id The Model instance or identifier "," @param {Object} [config] Configuration to pass along"," @param {Function} [callback] Callback function for Model's `save()`"," @param {Error|null} callback.err If an error occurred or validation"," failed, this parameter will contain the error. If the sync operation"," succeeded, _err_ will be `null`."," @param {Any} callback.response The server's response. This value will"," be passed to the `parse()` method, which is expected to parse it and"," return an attribute hash."," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," removeRow: function (id, config) {"," var modelList = this.data,"," // Allow autoSync: true + addRow({ data }, { sync: false })"," sync = (config && ('sync' in config)) ?"," config.sync :"," this.get('autoSync'),"," models, model, i, len, args;",""," // TODO: support removing via DOM element. This should be relayed to View"," if (isObject(id) && id instanceof this.get('recordType')) {"," model = id;"," } else if (modelList && id !== undefined) {"," model = modelList.getById(id) ||"," modelList.getByClientId(id) ||"," modelList.item(id);"," }",""," if (model) {"," args = toArray(arguments, 1, true);",""," models = modelList.remove.apply(modelList,"," [model].concat(args));",""," if (sync) {"," if (!isObject(args[0])) {"," args.unshift({});"," }",""," args[0]['delete'] = true;",""," models = toArray(models);",""," for (i = 0, len = models.length; i < len; ++i) {"," model = models[i];"," model.destroy.apply(model, args);"," }"," }"," }",""," return this;"," },",""," /**"," Updates an existing record in the DataTable's `data` ModelList. The record"," can be provided explicitly or targeted by it's `id` (see ModelList's"," `getById` method), `clientId`, or index in the ModelList.",""," After locating the target Model, this relays the all other passed"," arguments to the Model's `setAttrs` method.",""," If a configuration object is passed as a second argument, and that object"," has `sync: true` set, the underlying Model will be `save()`d.",""," If the DataTable's `autoSync` attribute is set to `true`, the additional"," argument is not needed.",""," If syncing and the last argument is a function, that function will be used"," as a callback to the Model's `save()` method.",""," @method modifyRow"," @param {Object|String|Number} id The Model instance or identifier "," @param {Object} data New data values for the Model"," @param {Object} [config] Configuration to pass along to `setAttrs()`"," @param {Function} [callback] Callback function for Model's `save()`"," @param {Error|null} callback.err If an error occurred or validation"," failed, this parameter will contain the error. If the sync operation"," succeeded, _err_ will be `null`."," @param {Any} callback.response The server's response. This value will"," be passed to the `parse()` method, which is expected to parse it and"," return an attribute hash."," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," modifyRow: function (id, data, config) {"," var modelList = this.data,"," // Allow autoSync: true + addRow({ data }, { sync: false })"," sync = (config && ('sync' in config)) ?"," config.sync :"," this.get('autoSync'),"," model, args;",""," if (isObject(id) && id instanceof this.get('recordType')) {"," model = id;"," } else if (modelList && id !== undefined) {"," model = modelList.getById(id) ||"," modelList.getByClientId(id) ||"," modelList.item(id);"," }",""," if (model && isObject(data)) {"," args = toArray(arguments, 1, true);",""," model.setAttrs.apply(model, args);",""," if (sync && !model.isNew()) {"," model.save.apply(model, args);"," }"," }",""," return this;"," },",""," // --------------------------------------------------------------------------"," // Protected properties and methods"," // --------------------------------------------------------------------------",""," /**"," Default function for the `addColumn` event.",""," Inserts the specified column at the provided index.",""," @method _defAddColumnFn"," @param {EventFacade} e The `addColumn` event"," @param {Object} e.column The new column definition object"," @param {Number|Number[]} e.index The array index to insert the new column"," @protected"," @since 3.5.0"," **/"," _defAddColumnFn: function (e) {"," var index = toArray(e.index),"," columns = this.get('columns'),"," cols = columns,"," i, len;",""," for (i = 0, len = index.length - 1; cols && i < len; ++i) {"," cols = cols[index[i]] && cols[index[i]].children;"," }",""," if (cols) {"," cols.splice(index[i], 0, e.column);",""," this.set('columns', columns, { originEvent: e });"," }"," },",""," /**"," Default function for the `modifyColumn` event.",""," Mixes the new column properties into the specified column definition.",""," @method _defModifyColumnFn"," @param {EventFacade} e The `modifyColumn` event"," @param {Object|String|Number|Number[]} e.column The column definition object or identifier"," @param {Object} e.newColumnDef The properties to assign to the column"," @protected"," @since 3.5.0"," **/"," _defModifyColumnFn: function (e) {"," var columns = this.get('columns'),"," column = this.getColumn(e.column);",""," if (column) {"," Y.mix(column, e.newColumnDef, true);"," "," this.set('columns', columns, { originEvent: e });"," }"," },",""," /**"," Default function for the `moveColumn` event.",""," Removes the specified column from its current location and inserts it at the"," specified array index (may be an array of indexes for nested headers).",""," @method _defMoveColumnFn"," @param {EventFacade} e The `moveColumn` event"," @param {Object|String|Number|Number[]} e.column The column definition object or identifier"," @param {Object} e.index The destination index to move to"," @protected"," @since 3.5.0"," **/"," _defMoveColumnFn: function (e) {"," var columns = this.get('columns'),"," column = this.getColumn(e.column),"," toIndex = toArray(e.index),"," fromCols, fromIndex, toCols, i, len;",""," if (column) {"," fromCols = column._parent ? column._parent.children : columns;"," fromIndex = arrayIndex(fromCols, column);",""," if (fromIndex > -1) {"," toCols = columns;",""," for (i = 0, len = toIndex.length - 1; toCols && i < len; ++i) {"," toCols = toCols[toIndex[i]] && toCols[toIndex[i]].children;"," }",""," if (toCols) {"," len = toCols.length;"," fromCols.splice(fromIndex, 1);"," toIndex = toIndex[i];",""," if (len > toCols.lenth) {"," // spliced off the same array, so adjust destination"," // index if necessary"," if (fromIndex < toIndex) {"," toIndex--;"," }"," }",""," toCols.splice(toIndex, 0, column);",""," this.set('columns', columns, { originEvent: e });"," }"," }"," }"," },",""," /**"," Default function for the `removeColumn` event.",""," Splices the specified column from its containing columns array.",""," @method _defRemoveColumnFn"," @param {EventFacade} e The `removeColumn` event"," @param {Object|String|Number|Number[]} e.column The column definition object or identifier"," @protected"," @since 3.5.0"," **/"," _defRemoveColumnFn: function (e) {"," var columns = this.get('columns'),"," column = this.getColumn(e.column),"," cols, index;",""," if (column) {"," cols = column._parent ? column._parent.children : columns;"," index = Y.Array.indexOf(cols, column);",""," if (index > -1) {"," cols.splice(index, 1);",""," this.set('columns', columns, { originEvent: e });"," }"," }"," },",""," /**"," Publishes the events used by the mutation methods:",""," * addColumn"," * removeColumn"," * modifyColumn"," * moveColumn",""," @method initializer"," @protected"," @since 3.5.0"," **/"," initializer: function () {"," this.publish({"," addColumn: { defaultFn: Y.bind('_defAddColumnFn', this) },"," removeColumn: { defaultFn: Y.bind('_defRemoveColumnFn', this) },"," moveColumn: { defaultFn: Y.bind('_defMoveColumnFn', this) },"," modifyColumn: { defaultFn: Y.bind('_defModifyColumnFn', this) }"," });"," }","});","","/**","Adds an array of new records to the DataTable's `data` ModelList. Record data","can be an array of objects containing field values or an array of instance of","the DataTable's configured `recordType` class.","","This relays all parameters to the `data` ModelList's `add` method.","","Technically, this is an alias to `addRow`, but please use the appropriately","named method for readability.","","If a configuration object is passed as a second argument, and that object","has `sync: true` set, the underlying Models will be `save()`d.","","If the DataTable's `autoSync` attribute is set to `true`, the additional","argument is not needed.","","If syncing and the last argument is a function, that function will be used","as a callback to each Model's `save()` method.","","@method addRows","@param {Object[]} data The data or Model instances to add","@param {Object} [config] Configuration to pass along","@param {Function} [callback] Callback function for each Model's `save()`"," @param {Error|null} callback.err If an error occurred or validation"," failed, this parameter will contain the error. If the sync operation"," succeeded, _err_ will be `null`."," @param {Any} callback.response The server's response. This value will"," be passed to the `parse()` method, which is expected to parse it and"," return an attribute hash.","@return {DataTable}","@chainable","@since 3.5.0","**/","Mutable.prototype.addRows = Mutable.prototype.addRow;","","// Add feature APIs to public Y.DataTable class","if (YLang.isFunction(Y.DataTable)) {"," Y.Base.mix(Y.DataTable, [Mutable]);","}","","/**","Fired by the `addColumn` method.","","@event addColumn","@preventable _defAddColumnFn","@param {Object} column The new column definition object","@param {Number|Number[]} index The array index to insert the new column","@since 3.5.0","**/","","/**","Fired by the `removeColumn` method.","","@event removeColumn","@preventable _defRemoveColumnFn","@param {Object|String|Number|Number[]} column The column definition object or identifier","@since 3.5.0","**/","","/**","Fired by the `modifyColumn` method.","","@event modifyColumn","@preventable _defModifyColumnFn","@param {Object|String|Number|Number[]} column The column definition object or identifier","@param {Object} newColumnDef The properties to assign to the column","@since 3.5.0","**/","","/**","Fired by the `moveColumn` method.","","@event moveColumn","@preventable _defMoveColumnFn","@param {Object|String|Number|Number[]} column The column definition object or identifier","@param {Object} index The destination index to move to","@since 3.5.0","**/","","","","}, '3.7.1', {\"requires\": [\"datatable-base\"]});"];
+_yuitest_coverage["build/datatable-mutable/datatable-mutable.js"].code=["YUI.add('datatable-mutable', function (Y, NAME) {","","/**","Adds mutation convenience methods such as `table.addRow(data)` to `Y.DataTable`. (or other built class).","","@module datatable","@submodule datatable-mutable","@since 3.5.0","**/","var toArray = Y.Array,"," YLang = Y.Lang,"," isString = YLang.isString,"," isArray = YLang.isArray,"," isObject = YLang.isObject,"," isNumber = YLang.isNumber,"," arrayIndex = Y.Array.indexOf,"," Mutable;","","/**","_API docs for this extension are included in the DataTable class._","","Class extension to add mutation convenience methods to `Y.DataTable` (or other","built class).","","Column mutation methods are paired with new custom events:",""," * addColumn"," * removeColumn"," * modifyColumn"," * moveColumn","","Row mutation events are bubbled from the DataTable's `data` ModelList through","the DataTable instance.","","@class DataTable.Mutable","@for DataTable","@since 3.5.0","**/","Y.namespace('DataTable').Mutable = Mutable = function () {};","","Mutable.ATTRS = {"," /**"," Controls whether `addRow`, `removeRow`, and `modifyRow` should trigger the"," underlying Model's sync layer by default.",""," When `true`, it is unnecessary to pass the \"sync\" configuration property to"," those methods to trigger per-operation sync.","",""," @attribute autoSync"," @type {Boolean}"," @default `false`"," @since 3.5.0"," **/"," autoSync: {"," value: false,"," validator: YLang.isBoolean"," }","};","","Y.mix(Mutable.prototype, {"," /**"," Adds the column configuration to the DataTable's `columns` configuration."," If the `index` parameter is supplied, it is injected at that index. If the"," table has nested headers, inject a subcolumn by passing an array of indexes"," to identify the new column's final location.",""," The `index` parameter is required if adding a nested column.",""," This method is a convienience method for fetching the DataTable's `columns`"," attribute, updating it, and calling "," `table.set('columns', _updatedColumnsDefs_)`",""," For example:",""," // Becomes last column"," table.addColumn('name');",""," // Inserted after the current second column, moving the current third column"," // to index 4"," table.addColumn({ key: 'price', formatter: currencyFormatter }, 2 );",""," // Insert a new column in a set of headers three rows deep. The index array"," // translates to"," // [ 2, -- in the third column's children"," // 1, -- in the second child's children"," // 3 ] -- as the fourth child column"," table.addColumn({ key: 'age', sortable: true }, [ 2, 1, 3 ]);","
",""," @method addColumn"," @param {Object|String} config The new column configuration object"," @param {Number|Number[]} [index] the insertion index"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," addColumn: function (config, index) {"," if (isString(config)) {"," config = { key: config };"," }",""," if (config) {"," if (arguments.length < 2 || (!isNumber(index) && !isArray(index))) {"," index = this.get('columns').length;"," }",""," this.fire('addColumn', {"," column: config,"," index: index"," });"," }"," return this;"," },",""," /**"," Updates an existing column definition. Fires the `modifyColumn` event.",""," For example:",""," // Add a formatter to the existing 'price' column definition"," table.modifyColumn('price', { formatter: currencyFormatter });",""," // Change the label on a header cell in a set of nested headers three rows"," // deep. The index array translates to"," // [ 2, -- in the third column's children"," // 1, -- the second child"," // 3 ] -- the fourth child column"," table.modifyColumn([2, 1, 3], { label: 'Experience' });","
",""," @method modifyColumn"," @param {String|Number|Number[]|Object} name The column key, name, index, or"," current configuration object"," @param {Object} config The new column configuration properties"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," modifyColumn: function (name, config) {"," if (isString(config)) {"," config = { key: config };"," }",""," if (isObject(config)) {"," this.fire('modifyColumn', {"," column: name,"," newColumnDef: config"," });"," }",""," return this;"," },",""," /**"," Moves an existing column to a new location. Fires the `moveColumn` event.",""," The destination index can be a number or array of numbers to place a column"," header in a nested header row.",""," @method moveColumn"," @param {String|Number|Number[]|Object} name The column key, name, index, or"," current configuration object"," @param {Number|Number[]} index The destination index of the column"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," moveColumn: function (name, index) {"," if (name !== undefined && (isNumber(index) || isArray(index))) {"," this.fire('moveColumn', {"," column: name,"," index: index"," });"," }",""," return this;"," },",""," /**"," Removes an existing column. Fires the `removeColumn` event.",""," @method removeColumn"," @param {String|Number|Number[]|Object} name The column key, name, index, or"," current configuration object"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," removeColumn: function (name) {"," if (name !== undefined) {"," this.fire('removeColumn', {"," column: name"," });"," }",""," return this;"," },",""," /**"," Adds a new record to the DataTable's `data` ModelList. Record data can be"," an object of field values or an instance of the DataTable's configured"," `recordType` class.",""," This relays all parameters to the `data` ModelList's `add` method.",""," If a configuration object is passed as a second argument, and that object"," has `sync: true` set, the underlying Model will be `save()`d.",""," If the DataTable's `autoSync` attribute is set to `true`, the additional"," argument is not needed.",""," If syncing and the last argument is a function, that function will be used"," as a callback to the Model's `save()` method.",""," @method addRow"," @param {Object} data The data or Model instance for the new record"," @param {Object} [config] Configuration to pass along"," @param {Function} [callback] Callback function for Model's `save()`"," @param {Error|null} callback.err If an error occurred or validation"," failed, this parameter will contain the error. If the sync operation"," succeeded, _err_ will be `null`."," @param {Any} callback.response The server's response. This value will"," be passed to the `parse()` method, which is expected to parse it and"," return an attribute hash."," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," addRow: function (data, config) {"," // Allow autoSync: true + addRow({ data }, { sync: false })"," var sync = (config && ('sync' in config)) ?"," config.sync :"," this.get('autoSync'),"," models, model, i, len, args;",""," if (data && this.data) {"," models = this.data.add.apply(this.data, arguments);",""," if (sync) {"," models = toArray(models);"," args = toArray(arguments, 1, true);",""," for (i = 0, len = models.length; i < len; ++i) {"," model = models[i];",""," if (model.isNew()) {"," models[i].save.apply(models[i], args);"," }"," }"," }"," }",""," return this;"," },",""," /**"," Removes a record from the DataTable's `data` ModelList. The record can be"," provided explicitly or targeted by it's `id` (see ModelList's `getById`"," method), `clientId`, or index in the ModelList.",""," After locating the target Model, this relays the Model and all other passed"," arguments to the `data` ModelList's `remove` method.",""," If a configuration object is passed as a second argument, and that object"," has `sync: true` set, the underlying Model will be destroyed, passing"," `{ delete: true }` to trigger calling the Model's sync layer.",""," If the DataTable's `autoSync` attribute is set to `true`, the additional"," argument is not needed.",""," If syncing and the last argument is a function, that function will be used"," as a callback to the Model's `destroy()` method.",""," @method removeRow"," @param {Object|String|Number} id The Model instance or identifier "," @param {Object} [config] Configuration to pass along"," @param {Function} [callback] Callback function for Model's `save()`"," @param {Error|null} callback.err If an error occurred or validation"," failed, this parameter will contain the error. If the sync operation"," succeeded, _err_ will be `null`."," @param {Any} callback.response The server's response. This value will"," be passed to the `parse()` method, which is expected to parse it and"," return an attribute hash."," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," removeRow: function (id, config) {"," var modelList = this.data,"," // Allow autoSync: true + addRow({ data }, { sync: false })"," sync = (config && ('sync' in config)) ?"," config.sync :"," this.get('autoSync'),"," models, model, i, len, args;",""," // TODO: support removing via DOM element. This should be relayed to View"," if (isObject(id) && id instanceof this.get('recordType')) {"," model = id;"," } else if (modelList && id !== undefined) {"," model = modelList.getById(id) ||"," modelList.getByClientId(id) ||"," modelList.item(id);"," }",""," if (model) {"," args = toArray(arguments, 1, true);",""," models = modelList.remove.apply(modelList,"," [model].concat(args));",""," if (sync) {"," if (!isObject(args[0])) {"," args.unshift({});"," }",""," args[0]['delete'] = true;",""," models = toArray(models);",""," for (i = 0, len = models.length; i < len; ++i) {"," model = models[i];"," model.destroy.apply(model, args);"," }"," }"," }",""," return this;"," },",""," /**"," Updates an existing record in the DataTable's `data` ModelList. The record"," can be provided explicitly or targeted by it's `id` (see ModelList's"," `getById` method), `clientId`, or index in the ModelList.",""," After locating the target Model, this relays the all other passed"," arguments to the Model's `setAttrs` method.",""," If a configuration object is passed as a second argument, and that object"," has `sync: true` set, the underlying Model will be `save()`d.",""," If the DataTable's `autoSync` attribute is set to `true`, the additional"," argument is not needed.",""," If syncing and the last argument is a function, that function will be used"," as a callback to the Model's `save()` method.",""," @method modifyRow"," @param {Object|String|Number} id The Model instance or identifier "," @param {Object} data New data values for the Model"," @param {Object} [config] Configuration to pass along to `setAttrs()`"," @param {Function} [callback] Callback function for Model's `save()`"," @param {Error|null} callback.err If an error occurred or validation"," failed, this parameter will contain the error. If the sync operation"," succeeded, _err_ will be `null`."," @param {Any} callback.response The server's response. This value will"," be passed to the `parse()` method, which is expected to parse it and"," return an attribute hash."," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," modifyRow: function (id, data, config) {"," var modelList = this.data,"," // Allow autoSync: true + addRow({ data }, { sync: false })"," sync = (config && ('sync' in config)) ?"," config.sync :"," this.get('autoSync'),"," model, args;",""," if (isObject(id) && id instanceof this.get('recordType')) {"," model = id;"," } else if (modelList && id !== undefined) {"," model = modelList.getById(id) ||"," modelList.getByClientId(id) ||"," modelList.item(id);"," }",""," if (model && isObject(data)) {"," args = toArray(arguments, 1, true);",""," model.setAttrs.apply(model, args);",""," if (sync && !model.isNew()) {"," model.save.apply(model, args);"," }"," }",""," return this;"," },",""," // --------------------------------------------------------------------------"," // Protected properties and methods"," // --------------------------------------------------------------------------",""," /**"," Default function for the `addColumn` event.",""," Inserts the specified column at the provided index.",""," @method _defAddColumnFn"," @param {EventFacade} e The `addColumn` event"," @param {Object} e.column The new column definition object"," @param {Number|Number[]} e.index The array index to insert the new column"," @protected"," @since 3.5.0"," **/"," _defAddColumnFn: function (e) {"," var index = toArray(e.index),"," columns = this.get('columns'),"," cols = columns,"," i, len;",""," for (i = 0, len = index.length - 1; cols && i < len; ++i) {"," cols = cols[index[i]] && cols[index[i]].children;"," }",""," if (cols) {"," cols.splice(index[i], 0, e.column);",""," this.set('columns', columns, { originEvent: e });"," }"," },",""," /**"," Default function for the `modifyColumn` event.",""," Mixes the new column properties into the specified column definition.",""," @method _defModifyColumnFn"," @param {EventFacade} e The `modifyColumn` event"," @param {Object|String|Number|Number[]} e.column The column definition object or identifier"," @param {Object} e.newColumnDef The properties to assign to the column"," @protected"," @since 3.5.0"," **/"," _defModifyColumnFn: function (e) {"," var columns = this.get('columns'),"," column = this.getColumn(e.column);",""," if (column) {"," Y.mix(column, e.newColumnDef, true);"," "," this.set('columns', columns, { originEvent: e });"," }"," },",""," /**"," Default function for the `moveColumn` event.",""," Removes the specified column from its current location and inserts it at the"," specified array index (may be an array of indexes for nested headers).",""," @method _defMoveColumnFn"," @param {EventFacade} e The `moveColumn` event"," @param {Object|String|Number|Number[]} e.column The column definition object or identifier"," @param {Object} e.index The destination index to move to"," @protected"," @since 3.5.0"," **/"," _defMoveColumnFn: function (e) {"," var columns = this.get('columns'),"," column = this.getColumn(e.column),"," toIndex = toArray(e.index),"," fromCols, fromIndex, toCols, i, len;",""," if (column) {"," fromCols = column._parent ? column._parent.children : columns;"," fromIndex = arrayIndex(fromCols, column);",""," if (fromIndex > -1) {"," toCols = columns;",""," for (i = 0, len = toIndex.length - 1; toCols && i < len; ++i) {"," toCols = toCols[toIndex[i]] && toCols[toIndex[i]].children;"," }",""," if (toCols) {"," len = toCols.length;"," fromCols.splice(fromIndex, 1);"," toIndex = toIndex[i];",""," if (len > toCols.lenth) {"," // spliced off the same array, so adjust destination"," // index if necessary"," if (fromIndex < toIndex) {"," toIndex--;"," }"," }",""," toCols.splice(toIndex, 0, column);",""," this.set('columns', columns, { originEvent: e });"," }"," }"," }"," },",""," /**"," Default function for the `removeColumn` event.",""," Splices the specified column from its containing columns array.",""," @method _defRemoveColumnFn"," @param {EventFacade} e The `removeColumn` event"," @param {Object|String|Number|Number[]} e.column The column definition object or identifier"," @protected"," @since 3.5.0"," **/"," _defRemoveColumnFn: function (e) {"," var columns = this.get('columns'),"," column = this.getColumn(e.column),"," cols, index;",""," if (column) {"," cols = column._parent ? column._parent.children : columns;"," index = Y.Array.indexOf(cols, column);",""," if (index > -1) {"," cols.splice(index, 1);",""," this.set('columns', columns, { originEvent: e });"," }"," }"," },",""," /**"," Publishes the events used by the mutation methods:",""," * addColumn"," * removeColumn"," * modifyColumn"," * moveColumn",""," @method initializer"," @protected"," @since 3.5.0"," **/"," initializer: function () {"," this.publish({"," addColumn: { defaultFn: Y.bind('_defAddColumnFn', this) },"," removeColumn: { defaultFn: Y.bind('_defRemoveColumnFn', this) },"," moveColumn: { defaultFn: Y.bind('_defMoveColumnFn', this) },"," modifyColumn: { defaultFn: Y.bind('_defModifyColumnFn', this) }"," });"," }","});","","/**","Adds an array of new records to the DataTable's `data` ModelList. Record data","can be an array of objects containing field values or an array of instance of","the DataTable's configured `recordType` class.","","This relays all parameters to the `data` ModelList's `add` method.","","Technically, this is an alias to `addRow`, but please use the appropriately","named method for readability.","","If a configuration object is passed as a second argument, and that object","has `sync: true` set, the underlying Models will be `save()`d.","","If the DataTable's `autoSync` attribute is set to `true`, the additional","argument is not needed.","","If syncing and the last argument is a function, that function will be used","as a callback to each Model's `save()` method.","","@method addRows","@param {Object[]} data The data or Model instances to add","@param {Object} [config] Configuration to pass along","@param {Function} [callback] Callback function for each Model's `save()`"," @param {Error|null} callback.err If an error occurred or validation"," failed, this parameter will contain the error. If the sync operation"," succeeded, _err_ will be `null`."," @param {Any} callback.response The server's response. This value will"," be passed to the `parse()` method, which is expected to parse it and"," return an attribute hash.","@return {DataTable}","@chainable","@since 3.5.0","**/","Mutable.prototype.addRows = Mutable.prototype.addRow;","","// Add feature APIs to public Y.DataTable class","if (YLang.isFunction(Y.DataTable)) {"," Y.Base.mix(Y.DataTable, [Mutable]);","}","","/**","Fired by the `addColumn` method.","","@event addColumn","@preventable _defAddColumnFn","@param {Object} column The new column definition object","@param {Number|Number[]} index The array index to insert the new column","@since 3.5.0","**/","","/**","Fired by the `removeColumn` method.","","@event removeColumn","@preventable _defRemoveColumnFn","@param {Object|String|Number|Number[]} column The column definition object or identifier","@since 3.5.0","**/","","/**","Fired by the `modifyColumn` method.","","@event modifyColumn","@preventable _defModifyColumnFn","@param {Object|String|Number|Number[]} column The column definition object or identifier","@param {Object} newColumnDef The properties to assign to the column","@since 3.5.0","**/","","/**","Fired by the `moveColumn` method.","","@event moveColumn","@preventable _defMoveColumnFn","@param {Object|String|Number|Number[]} column The column definition object or identifier","@param {Object} index The destination index to move to","@since 3.5.0","**/","","","","}, '3.7.2', {\"requires\": [\"datatable-base\"]});"];
_yuitest_coverage["build/datatable-mutable/datatable-mutable.js"].lines = {"1":0,"10":0,"39":0,"41":0,"61":0,"99":0,"100":0,"103":0,"104":0,"105":0,"108":0,"113":0,"141":0,"142":0,"145":0,"146":0,"152":0,"170":0,"171":0,"177":0,"191":0,"192":0,"197":0,"232":0,"237":0,"238":0,"240":0,"241":0,"242":0,"244":0,"245":0,"247":0,"248":0,"254":0,"290":0,"298":0,"299":0,"300":0,"301":0,"306":0,"307":0,"309":0,"312":0,"313":0,"314":0,"317":0,"319":0,"321":0,"322":0,"323":0,"328":0,"364":0,"371":0,"372":0,"373":0,"374":0,"379":0,"380":0,"382":0,"384":0,"385":0,"389":0,"409":0,"414":0,"415":0,"418":0,"419":0,"421":0,"438":0,"441":0,"442":0,"444":0,"462":0,"467":0,"468":0,"469":0,"471":0,"472":0,"474":0,"475":0,"478":0,"479":0,"480":0,"481":0,"483":0,"486":0,"487":0,"491":0,"493":0,"511":0,"515":0,"516":0,"517":0,"519":0,"520":0,"522":0,"540":0,"582":0,"585":0,"586":0};
_yuitest_coverage["build/datatable-mutable/datatable-mutable.js"].functions = {"addColumn:98":0,"modifyColumn:140":0,"moveColumn:169":0,"removeColumn:190":0,"addRow:230":0,"removeRow:289":0,"modifyRow:363":0,"_defAddColumnFn:408":0,"_defModifyColumnFn:437":0,"_defMoveColumnFn:461":0,"_defRemoveColumnFn:510":0,"initializer:539":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-mutable/datatable-mutable.js"].coveredLines = 100;
@@ -779,4 +779,4 @@ Fired by the `moveColumn` method.
-}, '3.7.1', {"requires": ["datatable-base"]});
+}, '3.7.2', {"requires": ["datatable-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable-debug.js b/lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable-debug.js
rename to lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable-debug.js
index f45b87008f3..f1d37622e13 100644
--- a/lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -638,4 +638,4 @@ Fired by the `moveColumn` method.
-}, '3.7.1', {"requires": ["datatable-base"]});
+}, '3.7.2', {"requires": ["datatable-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable-min.js b/lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable-min.js
rename to lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable-min.js
index ca2a2f82504..adc507143c3 100644
--- a/lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-mutable",function(e,t){var n=e.Array,r=e.Lang,i=r.isString,s=r.isArray,o=r.isObject,u=r.isNumber,a=e.Array.indexOf,f;e.namespace("DataTable").Mutable=f=function(){},f.ATTRS={autoSync:{value:!1,validator:r.isBoolean}},e.mix(f.prototype,{addColumn:function(e,t){i(e)&&(e={key:e});if(e){if(arguments.length<2||!u(t)&&!s(t))t=this.get("columns").length;this.fire("addColumn",{column:e,index:t})}return this},modifyColumn:function(e,t){return i(t)&&(t={key:t}),o(t)&&this.fire("modifyColumn",{column:e,newColumnDef:t}),this},moveColumn:function(e,t){return e!==undefined&&(u(t)||s(t))&&this.fire("moveColumn",{column:e,index:t}),this},removeColumn:function(e){return e!==undefined&&this.fire("removeColumn",{column:e}),this},addRow:function(e,t){var r=t&&"sync"in t?t.sync:this.get("autoSync"),i,s,o,u,a;if(e&&this.data){i=this.data.add.apply(this.data,arguments);if(r){i=n(i),a=n(arguments,1,!0);for(o=0,u=i.length;o-1){u=t;for(f=0,l=i.length-1;u&&fu.lenth&&o-1&&(i.splice(s,1),this.set("columns",n,{originEvent:t})))},initializer:function(){this.publish({addColumn:{defaultFn:e.bind("_defAddColumnFn",this)},removeColumn:{defaultFn:e.bind("_defRemoveColumnFn",this)},moveColumn:{defaultFn:e.bind("_defMoveColumnFn",this)},modifyColumn:{defaultFn:e.bind("_defModifyColumnFn",this)}})}}),f.prototype.addRows=f.prototype.addRow,r.isFunction(e.DataTable)&&e.Base.mix(e.DataTable,[f])},"3.7.1",{requires:["datatable-base"]});
+YUI.add("datatable-mutable",function(e,t){var n=e.Array,r=e.Lang,i=r.isString,s=r.isArray,o=r.isObject,u=r.isNumber,a=e.Array.indexOf,f;e.namespace("DataTable").Mutable=f=function(){},f.ATTRS={autoSync:{value:!1,validator:r.isBoolean}},e.mix(f.prototype,{addColumn:function(e,t){i(e)&&(e={key:e});if(e){if(arguments.length<2||!u(t)&&!s(t))t=this.get("columns").length;this.fire("addColumn",{column:e,index:t})}return this},modifyColumn:function(e,t){return i(t)&&(t={key:t}),o(t)&&this.fire("modifyColumn",{column:e,newColumnDef:t}),this},moveColumn:function(e,t){return e!==undefined&&(u(t)||s(t))&&this.fire("moveColumn",{column:e,index:t}),this},removeColumn:function(e){return e!==undefined&&this.fire("removeColumn",{column:e}),this},addRow:function(e,t){var r=t&&"sync"in t?t.sync:this.get("autoSync"),i,s,o,u,a;if(e&&this.data){i=this.data.add.apply(this.data,arguments);if(r){i=n(i),a=n(arguments,1,!0);for(o=0,u=i.length;o-1){u=t;for(f=0,l=i.length-1;u&&fu.lenth&&o-1&&(i.splice(s,1),this.set("columns",n,{originEvent:t})))},initializer:function(){this.publish({addColumn:{defaultFn:e.bind("_defAddColumnFn",this)},removeColumn:{defaultFn:e.bind("_defRemoveColumnFn",this)},moveColumn:{defaultFn:e.bind("_defMoveColumnFn",this)},modifyColumn:{defaultFn:e.bind("_defModifyColumnFn",this)}})}}),f.prototype.addRows=f.prototype.addRow,r.isFunction(e.DataTable)&&e.Base.mix(e.DataTable,[f])},"3.7.2",{requires:["datatable-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable.js b/lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable.js
rename to lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable.js
index 058def18c48..8419a77bd3d 100644
--- a/lib/yuilib/3.7.1/build/datatable-mutable/datatable-mutable.js
+++ b/lib/yuilib/3.7.2/build/datatable-mutable/datatable-mutable.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -633,4 +633,4 @@ Fired by the `moveColumn` method.
-}, '3.7.1', {"requires": ["datatable-base"]});
+}, '3.7.2', {"requires": ["datatable-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated-coverage.js b/lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated-coverage.js
rename to lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated-coverage.js
index 11969cef49c..0b5610f0714 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["/build/datatable-scroll-deprecated/datatable-scroll-deprecate
path: "/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js",
code: []
};
-_yuitest_coverage["/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js"].code=["YUI.add('datatable-scroll-deprecated', function(Y) {","","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","/**","Extends DataTable base to enable x,y, and xy scrolling.","","DEPRECATED. As of YUI 3.5.0, DataTable has been rebuilt. This module","is designed to work with `datatable-base-deprecated` (effectively the 3.4.1","version of DataTable) and will be removed from the library in a future version.","","See http://yuilibrary.com/yui/docs/migration.html for help upgrading to the","latest version.","","For complete API docs for the classes in this and other deprecated","DataTable-related modules, refer to the static API doc files in the 3.4.1","download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip","","@module datatable-deprecated","@submodule datatable-scroll-deprecated","@deprecated","**/","","","var YNode = Y.Node,"," YLang = Y.Lang,"," YUA = Y.UA,"," YgetClassName = Y.ClassNameManager.getClassName,"," DATATABLE = \"datatable\","," CLASS_HEADER = YgetClassName(DATATABLE, \"hd\"),"," CLASS_BODY = YgetClassName(DATATABLE, \"bd\"),"," CLASS_DATA = YgetClassName(DATATABLE, \"data\"),"," CLASS_LINER = YgetClassName(DATATABLE, \"liner\"),"," CLASS_SCROLLABLE = YgetClassName(DATATABLE, \"scrollable\"),"," CONTAINER_HEADER = '',"," CONTAINER_BODY = '',"," TEMPLATE_TABLE = '
',"," scrollbarWidth = Y.cached(function () {"," var testNode = Y.one('body').appendChild(''),"," width = testNode.get('offsetWidth') - testNode.get('clientWidth');",""," testNode.remove(true);",""," return width;"," });"," ","/*"," * Adds scrolling to DataTable."," * @class DataTableScroll"," * @extends Plugin.Base"," */","function DataTableScroll() {"," DataTableScroll.superclass.constructor.apply(this, arguments);","}","","Y.mix(DataTableScroll, {"," NS: \"scroll\",",""," NAME: \"dataTableScroll\",",""," ATTRS: {"," "," /*"," * The width for the table. Set to a string (ex: \"200px\", \"20em\") if you want the table to scroll in the x direction."," *"," * @attribute width"," * @public"," * @type string"," */"," width: {"," value: undefined,"," writeOnce: \"initOnly\""," },"," "," /*"," * The height for the table. Set to a string (ex: \"200px\", \"20em\") if you want the table to scroll in the y-direction."," *"," * @attribute height"," * @public"," * @type string"," */"," height: {"," value: undefined,"," writeOnce: \"initOnly\""," },"," "," "," /*"," * The scrolling direction for the table."," *"," * @attribute scroll"," * @private"," * @type string"," */"," _scroll: {"," //value: 'y',"," valueFn: function() {"," var w = this.get('width'),"," h = this.get('height');"," "," if (w && h) {"," return 'xy';"," }"," else if (w) {"," return 'x';"," }"," else if (h) {"," return 'y';"," }"," else {"," return null;"," }"," }"," },"," "," "," /*"," * The hexadecimal colour value to set on the top-right of the table if a scrollbar exists. "," *"," * @attribute COLOR_COLUMNFILLER"," * @public"," * @type string"," */"," COLOR_COLUMNFILLER: {"," value: '#f2f2f2',"," validator: YLang.isString,"," setter: function(param) {"," if (this._headerContainerNode) {"," this._headerContainerNode.setStyle('backgroundColor', param);"," }"," }"," }"," }","});","","Y.extend(DataTableScroll, Y.Plugin.Base, {"," "," /*"," * The table node created in datatable-base"," *"," * @property _parentTableNode"," * @private"," * @type {Node}"," */"," _parentTableNode: null,"," "," "," /*"," * The THEAD node which resides within the table node created in datatable-base"," *"," * @property _parentTheadNode"," * @private"," * @type {Node}"," */"," _parentTheadNode: null,"," "," "," /*"," * The TBODY node which resides within the table node created in datatable-base"," *"," * @property _parentTbodyNode"," * @private"," * @type {Node}"," */"," _parentTbodyNode: null,"," "," "," /*"," * The TBODY Message node which resides within the table node created in datatable-base"," *"," * @property _parentMsgNode"," * @private"," * @type {Node}"," */"," _parentMsgNode: null,"," "," "," /*"," * The contentBox specified for the datatable in datatable-base"," *"," * @property _parentContainer"," * @private"," * @type {Node}"," */"," _parentContainer: null,"," "," "," /*"," * The DIV node that contains all the scrollable elements (a table with a tbody on it)"," *"," * @property _bodyContainerNode"," * @private"," * @type {Node}"," */"," _bodyContainerNode: null,"," "," "," /*"," * The DIV node that contains a table with a THEAD in it (which syncs its horizontal scroll with the _bodyContainerNode above)"," *"," * @property _headerContainerNode"," * @private"," * @type {Node}"," */"," _headerContainerNode: null,"," "," "," //--------------------------------------"," // Methods"," //--------------------------------------","",""," "," initializer: function(config) {"," var dt = this.get(\"host\");"," this._parentContainer = dt.get('contentBox');"," this._parentContainer.addClass(CLASS_SCROLLABLE);"," this._setUpNodes();"," },"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // Set up Table Nodes"," //"," /////////////////////////////////////////////////////////////////////////////"," "," /*"," * Set up methods to fire after host methods execute"," *"," * @method _setUpNodes"," * @private"," */ "," _setUpNodes: function() {"," "," this.afterHostMethod(\"_addTableNode\", this._setUpParentTableNode);"," this.afterHostMethod(\"_addTheadNode\", this._setUpParentTheadNode); "," this.afterHostMethod(\"_addTbodyNode\", this._setUpParentTbodyNode);"," this.afterHostMethod(\"_addMessageNode\", this._setUpParentMessageNode);"," //this.beforeHostMethod('renderUI', this._removeCaptionNode);"," this.afterHostMethod(\"renderUI\", this.renderUI);"," this.afterHostMethod(\"bindUI\", this.bindUI);"," this.afterHostMethod(\"syncUI\", this.syncUI);"," "," if (this.get('_scroll') !== 'x') {"," this.afterHostMethod('_attachTheadThNode', this._attachTheadThNode);"," this.afterHostMethod('_attachTbodyTdNode', this._attachTbodyTdNode);"," }"," "," },"," "," /*"," * Stores the main <table> node provided by the host as a private property"," *"," * @method _setUpParentTableNode"," * @private"," */"," _setUpParentTableNode: function() {"," this._parentTableNode = this.get('host')._tableNode;"," },"," "," "," /*"," * Stores the main <thead> node provided by the host as a private property"," *"," * @method _setUpParentTheadNode"," * @private"," */"," _setUpParentTheadNode: function() {"," this._parentTheadNode = this.get('host')._theadNode;"," },"," "," /*"," * Stores the main <tbody> node provided by the host as a private property"," *"," * @method _setUpParentTbodyNode"," * @private"," */"," _setUpParentTbodyNode: function() {"," this._parentTbodyNode = this.get('host')._tbodyNode;"," },"," "," "," /*"," * Stores the main <tbody> message node provided by the host as a private property"," *"," * @method _setUpParentMessageNode"," * @private"," */"," _setUpParentMessageNode: function() {"," this._parentMsgNode = this.get('host')._msgNode;"," },"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // Renderer"," //"," /////////////////////////////////////////////////////////////////////////////"," "," /*"," * Primary rendering method that takes the datatable rendered in"," * the host, and splits it up into two separate <divs> each containing two "," * separate tables (one containing the head and one containing the body). "," * This method fires after renderUI is called on datatable-base."," * "," * @method renderUI"," */"," renderUI: function() {"," //Y.Profiler.start('render');"," this._createBodyContainer();"," this._createHeaderContainer();"," this._setContentBoxDimensions();"," //Y.Profiler.stop('render');"," //console.log(Y.Profiler.getReport(\"render\"));"," },"," "," /*"," Binds event subscriptions to keep the state and UI in sync",""," @method bindUI"," **/"," bindUI: function () {"," // FIXME: I don't know why the string bind, but I don't want to break"," // stuff until I have time to rebuild it properly"," this._bodyContainerNode.on('scroll', Y.bind(\"_onScroll\", this));",""," this.afterHostEvent(\"recordsetChange\", this.syncUI);"," this.afterHostEvent(\"recordset:recordsChange\", this.syncUI);"," },",""," /*"," * Post rendering method that is responsible for creating a column"," * filler, and performing width and scroll synchronization between the <th> "," * elements and the <td> elements."," * This method fires after syncUI is called on datatable-base"," * "," * @method syncUI"," * @public"," */"," syncUI: function() {"," //Y.Profiler.start('sync');"," this._removeCaptionNode();"," this._syncWidths();"," this._syncScroll();"," //Y.Profiler.stop('sync');"," //console.log(Y.Profiler.getReport(\"sync\"));"," "," },"," "," /*"," * Remove the caption created in base. Scrolling datatables dont support captions."," * "," * @method _removeCaptionNode"," * @private"," */"," _removeCaptionNode: function() {"," this.get('host')._captionNode.remove();"," //Y.DataTable.Base.prototype.createCaption = function(v) {/*do nothing*/};"," //Y.DataTable.Base.prototype._uiSetCaption = function(v) {/*do nothing*/};"," },",""," /*"," * Adjusts the width of the TH and the TDs to make sure that the two are in sync"," * "," * Implementation Details: "," * Compares the width of the TH liner div to the the width of the TD node."," * The TD liner width is not actually used because the TD often stretches"," * past the liner if the parent DIV is very large. Measuring the TD width"," * is more accurate."," * "," * Instead of measuring via .get('width'), 'clientWidth' is used, as it"," * returns a number, whereas 'width' returns a string, In IE6,"," * 'clientWidth' is not supported, so 'offsetWidth' is used. 'offsetWidth'"," * is not as accurate on Chrome,FF as 'clientWidth' - thus the need for"," * the fork."," * "," * @method _syncWidths"," * @private"," */"," _syncWidths: function() {"," var headerTable = this._parentContainer.one('.' + CLASS_HEADER),"," bodyTable = this._parentContainer.one('.' + CLASS_BODY),"," // nodelist of all the THs"," headers = headerTable.all('thead .' + CLASS_LINER),"," // nodelist of the TDs in the first row"," firstRow = bodyTable.one('.' + CLASS_DATA + ' tr'),"," cells = firstRow && firstRow.all('.' + CLASS_LINER),"," // FIXME: Code smell"," widthProperty = (YUA.ie) ? 'offsetWidth' : 'clientWidth';",""," //stylesheet = new YStyleSheet('columnsSheet'),"," //className;"," "," // If there are data rows, iterate each header and the cells of the"," // first row comparing cell widths. Assign the larger width to the"," // narrower node (header or cell)."," if (cells && cells.size()) {"," headers.each(function (header, i) {"," var cell = cells.item(i),"," headerWidth = header.get(widthProperty),"," cellWidth = cell.get(widthProperty),"," width = Math.max(headerWidth, cellWidth);",""," width -= (parseInt(header.getComputedStyle('paddingLeft'),10)|0) +"," (parseInt(header.getComputedStyle('paddingRight'),10)|0);"," "," header.setStyle('width', width + 'px');"," cell.setStyle('width', width + 'px');"," });"," }"," /*"," // If browser is not IE - get the clientWidth of the Liner"," // div and the TD."," // Note: We are not getting the width of the TDLiner, we"," // are getting the width of the actual cell. Why? Because"," // when the table is set to auto width, the cell will grow"," // to try to fit the table in its container. The liner"," // could potentially be much smaller than the cell width."," // TODO: Explore if there is a better way using only LINERS"," // widths - I don't think this should be a problem, given"," // that the liner is a div, a block element and will"," // expand to width."," if (!ie) {"," // TODO: this should actually be done with"," // getComputedStyle('width') but this messes up"," // columns. Explore this option."," thWidth = thLiner.get('clientWidth');"," tdWidth = td.item(i).get('clientWidth');"," } else {"," // IE wasn't recognizing clientWidths, so we are using"," // offsetWidths."," // TODO: should use getComputedStyle('width') because"," // offsetWidth will screw up when padding is changed."," // TODO: for some reason, using"," // tdLiner.get('clientWidth') doesn't work - why not?"," thWidth = thLiner.get('offsetWidth');"," tdWidth = td.item(i).get('offsetWidth');"," //thWidth = parseFloat(thLiner.getComputedStyle('width').split('px')[0]);"," //tdWidth = parseFloat(td.item(i).getComputedStyle('width').split('px')[0]);"," }"," "," // expand the TH or the TD to match the wider"," if (thWidth > tdWidth) {"," tdLiner.setStyle('width', (thWidth - 20 + 'px'));"," //thLiner.setStyle('width', (tdWidth - 20 + 'px'));"," //stylesheet.set(className,{'width': (thWidth - 20 + 'px')});"," } else if (tdWidth > thWidth) {"," // if you don't set an explicit width here, when the width"," // is set in line 368, it will auto-shrink the widths of"," // the other cells (because they dont have an explicit"," // width)"," thLiner.setStyle('width', (tdWidth - 20 + 'px'));"," tdLiner.setStyle('width', (tdWidth - 20 + 'px'));"," //stylesheet.set(className,{'width': (tdWidth - 20 + 'px')});"," }"," "," //}",""," }"," */"," "," //stylesheet.enable();",""," },"," "," /*"," * Adds the approriate width to the liner divs of the TH nodes before they are appended to DOM"," *"," * @method _attachTheadThNode"," * @private"," */"," _attachTheadThNode: function(o) {"," var width = o.column.get('width');"," "," if (width) {"," o.th.one('.' + CLASS_LINER)"," .setStyles({"," width: width,"," overflow:'hidden'"," });"," }"," },"," "," /*"," * Adds the appropriate width to the liner divs of the TD nodes before they are appended to DOM"," *"," * @method _attachTbodyTdNode"," * @private"," */"," _attachTbodyTdNode: function(o) {"," var width = o.column.get('width');"," "," if (width) {"," o.td.one('.' + CLASS_LINER)"," .setStyles({"," width: width,"," overflow: 'hidden'"," });"," }"," },"," "," /*"," * Creates the body DIV that contains all the data. "," *"," * @method _createBodyContainer"," * @private"," */"," _createBodyContainer: function() {"," var bd = YNode.create(CONTAINER_BODY);"," "," this._bodyContainerNode = bd; "," this._setStylesForTbody();"," "," bd.appendChild(this._parentTableNode);"," this._parentContainer.appendChild(bd);"," },"," "," /*"," * Creates the DIV that contains a <table> with all the headers. "," *"," * @method _createHeaderContainer"," * @private"," */"," _createHeaderContainer: function() {"," var hd = YNode.create(CONTAINER_HEADER),"," tbl = YNode.create(TEMPLATE_TABLE);"," "," this._headerContainerNode = hd;"," "," //hd.setStyle('backgroundColor',this.get(\"COLOR_COLUMNFILLER\"));"," this._setStylesForThead();"," tbl.appendChild(this._parentTheadNode);"," hd.appendChild(tbl);"," this._parentContainer.prepend(hd);"," "," },"," "," /*"," * Creates styles for the TBODY based on what type of table it is."," *"," * @method _setStylesForTbody"," * @private"," */"," _setStylesForTbody: function() {"," var dir = this.get('_scroll'),"," w = this.get('width') || \"\","," h = this.get('height') || \"\","," el = this._bodyContainerNode,"," styles = {width:\"\", height:h};"," "," if (dir === 'x') {"," //X-Scrolling tables should not have a Y-Scrollbar so overflow-y is hidden. THe width on x-scrolling tables must be set by user."," styles.overflowY = 'hidden';"," styles.width = w;"," } else if (dir === 'y') {"," //Y-Scrolling tables should not have a X-Scrollbar so overflow-x is hidden. The width isn't neccessary because it can be auto."," styles.overflowX = 'hidden';"," } else if (dir === 'xy') {"," styles.width = w;"," } else {"," //scrolling is set to 'null' - ie: width and height are not set. Don't have any type of scrolling."," styles.overflowX = 'hidden';"," styles.overflowY = 'hidden';"," styles.width = w;"," }"," "," el.setStyles(styles);"," return el;"," },"," "," "," /*"," * Creates styles for the THEAD based on what type of datatable it is."," *"," * @method _setStylesForThead"," * @private"," */"," _setStylesForThead: function() {"," var w = this.get('width') || \"\","," el = this._headerContainerNode;"," "," //if (dir !== 'y') {"," el.setStyles({'width': w, 'overflow': 'hidden'});"," // }"," },"," "," /*"," * Sets an auto width on the content box if it doesn't exist or if its a y-datatable."," *"," * @method _setContentBoxDimensions"," * @private"," */"," _setContentBoxDimensions: function() {"," "," if (this.get('_scroll') === 'y' || (!this.get('width'))) {"," this._parentContainer.setStyle('width', 'auto');"," }"," "," },"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // Scroll Syncing"," //"," /////////////////////////////////////////////////////////////////////////////"," "," /*"," * Ensures that scrolling is synced across the two tables"," *"," * @method _onScroll"," * @private"," */"," _onScroll: function() {"," this._headerContainerNode.set('scrollLeft', this._bodyContainerNode.get('scrollLeft'));"," },"," "," /*"," * Syncs padding around scrollable tables, including Column header right-padding"," * and container width and height."," *"," * @method _syncScroll"," * @private "," */"," _syncScroll : function() {"," this._syncScrollX();"," this._syncScrollY();"," this._syncScrollOverhang();"," if (YUA.opera) {"," // Bug 1925874"," this._headerContainerNode.set('scrollLeft', this._bodyContainerNode.get('scrollLeft'));"," "," if(!this.get(\"width\")) {"," // Bug 1926125"," document.body.style += '';"," }"," }"," },"," "," /*"," * Snaps container width for y-scrolling tables."," *"," * @method _syncScrollY"," * @private"," */"," _syncScrollY : function() {"," var tBody = this._parentTbodyNode,"," tBodyContainer = this._bodyContainerNode,"," w;"," // X-scrolling not enabled"," if(!this.get(\"width\")) {"," // Snap outer container width to content"," w = (tBodyContainer.get('scrollHeight') > tBodyContainer.get('clientHeight')) ?"," // but account for y-scrollbar since it is visible"," (tBody.get('parentNode').get('clientWidth') + scrollbarWidth()) + \"px\" :"," // no y-scrollbar, just borders"," (tBody.get('parentNode').get('clientWidth') + 2) + \"px\";"," this._parentContainer.setStyle('width', w);"," }"," },"," "," /*"," * Snaps container height for x-scrolling tables in IE. Syncs message TBODY width. "," * Taken from YUI2 ScrollingDataTable.js"," *"," * @method _syncScrollX"," * @private"," */"," _syncScrollX: function() {"," var tBody = this._parentTbodyNode,"," tBodyContainer = this._bodyContainerNode,"," w;",""," this._headerContainerNode.set('scrollLeft',"," this._bodyContainerNode.get('scrollLeft'));"," "," if (!this.get('height') && (YUA.ie)) {"," w = (tBodyContainer.get('scrollWidth') > tBodyContainer.get('offsetWidth')) ?"," (tBody.get('parentNode').get('offsetHeight') + scrollbarWidth()) + \"px\" : "," tBody.get('parentNode').get('offsetHeight') + \"px\";"," "," tBodyContainer.setStyle('height', w);"," }"," "," if (tBody.get('rows').size()) {"," this._parentMsgNode.get('parentNode').setStyle('width', \"\");"," } else {"," this._parentMsgNode.get('parentNode').setStyle('width', this._parentTheadNode.get('parentNode').get('offsetWidth')+'px');"," }"," "," },"," "," /*"," * Adds/removes Column header overhang as necesary."," * Taken from YUI2 ScrollingDataTable.js"," *"," * @method _syncScrollOverhang"," * @private"," */"," _syncScrollOverhang: function() {"," var tBodyContainer = this._bodyContainerNode,"," padding = 1;"," "," //when its both x and y scrolling"," if ((tBodyContainer.get('scrollHeight') > tBodyContainer.get('clientHeight')) || (tBodyContainer.get('scrollWidth') > tBodyContainer.get('clientWidth'))) {"," padding = 18;"," }"," "," this._setOverhangValue(padding);"," "," // After the widths have synced, there is a wrapping issue in the"," // headerContainer in IE6. The header does not span the full length of"," // the table (does not cover all of the y-scrollbar). By adding this"," // line in when there is a y-scroll, the header will span correctly."," // TODO: this should not really occur on this.get('_scroll') === y - it"," // should occur when scrollHeight > clientHeight, but clientHeight is"," // not getting recognized in IE6?"," if (YUA.ie !== 0 && this.get('_scroll') === 'y' && this._bodyContainerNode.get('scrollHeight') > this._bodyContainerNode.get('offsetHeight'))"," {"," this._headerContainerNode.setStyle('width', this._parentContainer.get('width'));"," }"," },"," "," "," /*"," * Sets Column header overhang to given width."," * Taken from YUI2 ScrollingDataTable.js with minor modifications"," *"," * @method _setOverhangValue"," * @param nBorderWidth {Number} Value of new border for overhang. "," * @private"," */ "," _setOverhangValue: function(borderWidth) {"," var host = this.get('host'),"," cols = host.get('columnset').get('definitions'),"," //lastHeaders = cols[cols.length-1] || [],"," len = cols.length,"," value = borderWidth + \"px solid \" + this.get(\"COLOR_COLUMNFILLER\"),"," children = YNode.all('#'+this._parentContainer.get('id')+ ' .' + CLASS_HEADER + ' table thead th');",""," children.item(len-1).setStyle('borderRight', value);"," }"," ","});","","Y.namespace(\"Plugin\").DataTableScroll = DataTableScroll;","","","}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin']});"];
+_yuitest_coverage["/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js"].code=["YUI.add('datatable-scroll-deprecated', function(Y) {","","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","/**","Extends DataTable base to enable x,y, and xy scrolling.","","DEPRECATED. As of YUI 3.5.0, DataTable has been rebuilt. This module","is designed to work with `datatable-base-deprecated` (effectively the 3.4.1","version of DataTable) and will be removed from the library in a future version.","","See http://yuilibrary.com/yui/docs/migration.html for help upgrading to the","latest version.","","For complete API docs for the classes in this and other deprecated","DataTable-related modules, refer to the static API doc files in the 3.4.1","download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip","","@module datatable-deprecated","@submodule datatable-scroll-deprecated","@deprecated","**/","","","var YNode = Y.Node,"," YLang = Y.Lang,"," YUA = Y.UA,"," YgetClassName = Y.ClassNameManager.getClassName,"," DATATABLE = \"datatable\","," CLASS_HEADER = YgetClassName(DATATABLE, \"hd\"),"," CLASS_BODY = YgetClassName(DATATABLE, \"bd\"),"," CLASS_DATA = YgetClassName(DATATABLE, \"data\"),"," CLASS_LINER = YgetClassName(DATATABLE, \"liner\"),"," CLASS_SCROLLABLE = YgetClassName(DATATABLE, \"scrollable\"),"," CONTAINER_HEADER = '',"," CONTAINER_BODY = '',"," TEMPLATE_TABLE = '
',"," scrollbarWidth = Y.cached(function () {"," var testNode = Y.one('body').appendChild(''),"," width = testNode.get('offsetWidth') - testNode.get('clientWidth');",""," testNode.remove(true);",""," return width;"," });"," ","/*"," * Adds scrolling to DataTable."," * @class DataTableScroll"," * @extends Plugin.Base"," */","function DataTableScroll() {"," DataTableScroll.superclass.constructor.apply(this, arguments);","}","","Y.mix(DataTableScroll, {"," NS: \"scroll\",",""," NAME: \"dataTableScroll\",",""," ATTRS: {"," "," /*"," * The width for the table. Set to a string (ex: \"200px\", \"20em\") if you want the table to scroll in the x direction."," *"," * @attribute width"," * @public"," * @type string"," */"," width: {"," value: undefined,"," writeOnce: \"initOnly\""," },"," "," /*"," * The height for the table. Set to a string (ex: \"200px\", \"20em\") if you want the table to scroll in the y-direction."," *"," * @attribute height"," * @public"," * @type string"," */"," height: {"," value: undefined,"," writeOnce: \"initOnly\""," },"," "," "," /*"," * The scrolling direction for the table."," *"," * @attribute scroll"," * @private"," * @type string"," */"," _scroll: {"," //value: 'y',"," valueFn: function() {"," var w = this.get('width'),"," h = this.get('height');"," "," if (w && h) {"," return 'xy';"," }"," else if (w) {"," return 'x';"," }"," else if (h) {"," return 'y';"," }"," else {"," return null;"," }"," }"," },"," "," "," /*"," * The hexadecimal colour value to set on the top-right of the table if a scrollbar exists. "," *"," * @attribute COLOR_COLUMNFILLER"," * @public"," * @type string"," */"," COLOR_COLUMNFILLER: {"," value: '#f2f2f2',"," validator: YLang.isString,"," setter: function(param) {"," if (this._headerContainerNode) {"," this._headerContainerNode.setStyle('backgroundColor', param);"," }"," }"," }"," }","});","","Y.extend(DataTableScroll, Y.Plugin.Base, {"," "," /*"," * The table node created in datatable-base"," *"," * @property _parentTableNode"," * @private"," * @type {Node}"," */"," _parentTableNode: null,"," "," "," /*"," * The THEAD node which resides within the table node created in datatable-base"," *"," * @property _parentTheadNode"," * @private"," * @type {Node}"," */"," _parentTheadNode: null,"," "," "," /*"," * The TBODY node which resides within the table node created in datatable-base"," *"," * @property _parentTbodyNode"," * @private"," * @type {Node}"," */"," _parentTbodyNode: null,"," "," "," /*"," * The TBODY Message node which resides within the table node created in datatable-base"," *"," * @property _parentMsgNode"," * @private"," * @type {Node}"," */"," _parentMsgNode: null,"," "," "," /*"," * The contentBox specified for the datatable in datatable-base"," *"," * @property _parentContainer"," * @private"," * @type {Node}"," */"," _parentContainer: null,"," "," "," /*"," * The DIV node that contains all the scrollable elements (a table with a tbody on it)"," *"," * @property _bodyContainerNode"," * @private"," * @type {Node}"," */"," _bodyContainerNode: null,"," "," "," /*"," * The DIV node that contains a table with a THEAD in it (which syncs its horizontal scroll with the _bodyContainerNode above)"," *"," * @property _headerContainerNode"," * @private"," * @type {Node}"," */"," _headerContainerNode: null,"," "," "," //--------------------------------------"," // Methods"," //--------------------------------------","",""," "," initializer: function(config) {"," var dt = this.get(\"host\");"," this._parentContainer = dt.get('contentBox');"," this._parentContainer.addClass(CLASS_SCROLLABLE);"," this._setUpNodes();"," },"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // Set up Table Nodes"," //"," /////////////////////////////////////////////////////////////////////////////"," "," /*"," * Set up methods to fire after host methods execute"," *"," * @method _setUpNodes"," * @private"," */ "," _setUpNodes: function() {"," "," this.afterHostMethod(\"_addTableNode\", this._setUpParentTableNode);"," this.afterHostMethod(\"_addTheadNode\", this._setUpParentTheadNode); "," this.afterHostMethod(\"_addTbodyNode\", this._setUpParentTbodyNode);"," this.afterHostMethod(\"_addMessageNode\", this._setUpParentMessageNode);"," //this.beforeHostMethod('renderUI', this._removeCaptionNode);"," this.afterHostMethod(\"renderUI\", this.renderUI);"," this.afterHostMethod(\"bindUI\", this.bindUI);"," this.afterHostMethod(\"syncUI\", this.syncUI);"," "," if (this.get('_scroll') !== 'x') {"," this.afterHostMethod('_attachTheadThNode', this._attachTheadThNode);"," this.afterHostMethod('_attachTbodyTdNode', this._attachTbodyTdNode);"," }"," "," },"," "," /*"," * Stores the main <table> node provided by the host as a private property"," *"," * @method _setUpParentTableNode"," * @private"," */"," _setUpParentTableNode: function() {"," this._parentTableNode = this.get('host')._tableNode;"," },"," "," "," /*"," * Stores the main <thead> node provided by the host as a private property"," *"," * @method _setUpParentTheadNode"," * @private"," */"," _setUpParentTheadNode: function() {"," this._parentTheadNode = this.get('host')._theadNode;"," },"," "," /*"," * Stores the main <tbody> node provided by the host as a private property"," *"," * @method _setUpParentTbodyNode"," * @private"," */"," _setUpParentTbodyNode: function() {"," this._parentTbodyNode = this.get('host')._tbodyNode;"," },"," "," "," /*"," * Stores the main <tbody> message node provided by the host as a private property"," *"," * @method _setUpParentMessageNode"," * @private"," */"," _setUpParentMessageNode: function() {"," this._parentMsgNode = this.get('host')._msgNode;"," },"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // Renderer"," //"," /////////////////////////////////////////////////////////////////////////////"," "," /*"," * Primary rendering method that takes the datatable rendered in"," * the host, and splits it up into two separate <divs> each containing two "," * separate tables (one containing the head and one containing the body). "," * This method fires after renderUI is called on datatable-base."," * "," * @method renderUI"," */"," renderUI: function() {"," //Y.Profiler.start('render');"," this._createBodyContainer();"," this._createHeaderContainer();"," this._setContentBoxDimensions();"," //Y.Profiler.stop('render');"," //console.log(Y.Profiler.getReport(\"render\"));"," },"," "," /*"," Binds event subscriptions to keep the state and UI in sync",""," @method bindUI"," **/"," bindUI: function () {"," // FIXME: I don't know why the string bind, but I don't want to break"," // stuff until I have time to rebuild it properly"," this._bodyContainerNode.on('scroll', Y.bind(\"_onScroll\", this));",""," this.afterHostEvent(\"recordsetChange\", this.syncUI);"," this.afterHostEvent(\"recordset:recordsChange\", this.syncUI);"," },",""," /*"," * Post rendering method that is responsible for creating a column"," * filler, and performing width and scroll synchronization between the <th> "," * elements and the <td> elements."," * This method fires after syncUI is called on datatable-base"," * "," * @method syncUI"," * @public"," */"," syncUI: function() {"," //Y.Profiler.start('sync');"," this._removeCaptionNode();"," this._syncWidths();"," this._syncScroll();"," //Y.Profiler.stop('sync');"," //console.log(Y.Profiler.getReport(\"sync\"));"," "," },"," "," /*"," * Remove the caption created in base. Scrolling datatables dont support captions."," * "," * @method _removeCaptionNode"," * @private"," */"," _removeCaptionNode: function() {"," this.get('host')._captionNode.remove();"," //Y.DataTable.Base.prototype.createCaption = function(v) {/*do nothing*/};"," //Y.DataTable.Base.prototype._uiSetCaption = function(v) {/*do nothing*/};"," },",""," /*"," * Adjusts the width of the TH and the TDs to make sure that the two are in sync"," * "," * Implementation Details: "," * Compares the width of the TH liner div to the the width of the TD node."," * The TD liner width is not actually used because the TD often stretches"," * past the liner if the parent DIV is very large. Measuring the TD width"," * is more accurate."," * "," * Instead of measuring via .get('width'), 'clientWidth' is used, as it"," * returns a number, whereas 'width' returns a string, In IE6,"," * 'clientWidth' is not supported, so 'offsetWidth' is used. 'offsetWidth'"," * is not as accurate on Chrome,FF as 'clientWidth' - thus the need for"," * the fork."," * "," * @method _syncWidths"," * @private"," */"," _syncWidths: function() {"," var headerTable = this._parentContainer.one('.' + CLASS_HEADER),"," bodyTable = this._parentContainer.one('.' + CLASS_BODY),"," // nodelist of all the THs"," headers = headerTable.all('thead .' + CLASS_LINER),"," // nodelist of the TDs in the first row"," firstRow = bodyTable.one('.' + CLASS_DATA + ' tr'),"," cells = firstRow && firstRow.all('.' + CLASS_LINER),"," // FIXME: Code smell"," widthProperty = (YUA.ie) ? 'offsetWidth' : 'clientWidth';",""," //stylesheet = new YStyleSheet('columnsSheet'),"," //className;"," "," // If there are data rows, iterate each header and the cells of the"," // first row comparing cell widths. Assign the larger width to the"," // narrower node (header or cell)."," if (cells && cells.size()) {"," headers.each(function (header, i) {"," var cell = cells.item(i),"," headerWidth = header.get(widthProperty),"," cellWidth = cell.get(widthProperty),"," width = Math.max(headerWidth, cellWidth);",""," width -= (parseInt(header.getComputedStyle('paddingLeft'),10)|0) +"," (parseInt(header.getComputedStyle('paddingRight'),10)|0);"," "," header.setStyle('width', width + 'px');"," cell.setStyle('width', width + 'px');"," });"," }"," /*"," // If browser is not IE - get the clientWidth of the Liner"," // div and the TD."," // Note: We are not getting the width of the TDLiner, we"," // are getting the width of the actual cell. Why? Because"," // when the table is set to auto width, the cell will grow"," // to try to fit the table in its container. The liner"," // could potentially be much smaller than the cell width."," // TODO: Explore if there is a better way using only LINERS"," // widths - I don't think this should be a problem, given"," // that the liner is a div, a block element and will"," // expand to width."," if (!ie) {"," // TODO: this should actually be done with"," // getComputedStyle('width') but this messes up"," // columns. Explore this option."," thWidth = thLiner.get('clientWidth');"," tdWidth = td.item(i).get('clientWidth');"," } else {"," // IE wasn't recognizing clientWidths, so we are using"," // offsetWidths."," // TODO: should use getComputedStyle('width') because"," // offsetWidth will screw up when padding is changed."," // TODO: for some reason, using"," // tdLiner.get('clientWidth') doesn't work - why not?"," thWidth = thLiner.get('offsetWidth');"," tdWidth = td.item(i).get('offsetWidth');"," //thWidth = parseFloat(thLiner.getComputedStyle('width').split('px')[0]);"," //tdWidth = parseFloat(td.item(i).getComputedStyle('width').split('px')[0]);"," }"," "," // expand the TH or the TD to match the wider"," if (thWidth > tdWidth) {"," tdLiner.setStyle('width', (thWidth - 20 + 'px'));"," //thLiner.setStyle('width', (tdWidth - 20 + 'px'));"," //stylesheet.set(className,{'width': (thWidth - 20 + 'px')});"," } else if (tdWidth > thWidth) {"," // if you don't set an explicit width here, when the width"," // is set in line 368, it will auto-shrink the widths of"," // the other cells (because they dont have an explicit"," // width)"," thLiner.setStyle('width', (tdWidth - 20 + 'px'));"," tdLiner.setStyle('width', (tdWidth - 20 + 'px'));"," //stylesheet.set(className,{'width': (tdWidth - 20 + 'px')});"," }"," "," //}",""," }"," */"," "," //stylesheet.enable();",""," },"," "," /*"," * Adds the approriate width to the liner divs of the TH nodes before they are appended to DOM"," *"," * @method _attachTheadThNode"," * @private"," */"," _attachTheadThNode: function(o) {"," var width = o.column.get('width');"," "," if (width) {"," o.th.one('.' + CLASS_LINER)"," .setStyles({"," width: width,"," overflow:'hidden'"," });"," }"," },"," "," /*"," * Adds the appropriate width to the liner divs of the TD nodes before they are appended to DOM"," *"," * @method _attachTbodyTdNode"," * @private"," */"," _attachTbodyTdNode: function(o) {"," var width = o.column.get('width');"," "," if (width) {"," o.td.one('.' + CLASS_LINER)"," .setStyles({"," width: width,"," overflow: 'hidden'"," });"," }"," },"," "," /*"," * Creates the body DIV that contains all the data. "," *"," * @method _createBodyContainer"," * @private"," */"," _createBodyContainer: function() {"," var bd = YNode.create(CONTAINER_BODY);"," "," this._bodyContainerNode = bd; "," this._setStylesForTbody();"," "," bd.appendChild(this._parentTableNode);"," this._parentContainer.appendChild(bd);"," },"," "," /*"," * Creates the DIV that contains a <table> with all the headers. "," *"," * @method _createHeaderContainer"," * @private"," */"," _createHeaderContainer: function() {"," var hd = YNode.create(CONTAINER_HEADER),"," tbl = YNode.create(TEMPLATE_TABLE);"," "," this._headerContainerNode = hd;"," "," //hd.setStyle('backgroundColor',this.get(\"COLOR_COLUMNFILLER\"));"," this._setStylesForThead();"," tbl.appendChild(this._parentTheadNode);"," hd.appendChild(tbl);"," this._parentContainer.prepend(hd);"," "," },"," "," /*"," * Creates styles for the TBODY based on what type of table it is."," *"," * @method _setStylesForTbody"," * @private"," */"," _setStylesForTbody: function() {"," var dir = this.get('_scroll'),"," w = this.get('width') || \"\","," h = this.get('height') || \"\","," el = this._bodyContainerNode,"," styles = {width:\"\", height:h};"," "," if (dir === 'x') {"," //X-Scrolling tables should not have a Y-Scrollbar so overflow-y is hidden. THe width on x-scrolling tables must be set by user."," styles.overflowY = 'hidden';"," styles.width = w;"," } else if (dir === 'y') {"," //Y-Scrolling tables should not have a X-Scrollbar so overflow-x is hidden. The width isn't neccessary because it can be auto."," styles.overflowX = 'hidden';"," } else if (dir === 'xy') {"," styles.width = w;"," } else {"," //scrolling is set to 'null' - ie: width and height are not set. Don't have any type of scrolling."," styles.overflowX = 'hidden';"," styles.overflowY = 'hidden';"," styles.width = w;"," }"," "," el.setStyles(styles);"," return el;"," },"," "," "," /*"," * Creates styles for the THEAD based on what type of datatable it is."," *"," * @method _setStylesForThead"," * @private"," */"," _setStylesForThead: function() {"," var w = this.get('width') || \"\","," el = this._headerContainerNode;"," "," //if (dir !== 'y') {"," el.setStyles({'width': w, 'overflow': 'hidden'});"," // }"," },"," "," /*"," * Sets an auto width on the content box if it doesn't exist or if its a y-datatable."," *"," * @method _setContentBoxDimensions"," * @private"," */"," _setContentBoxDimensions: function() {"," "," if (this.get('_scroll') === 'y' || (!this.get('width'))) {"," this._parentContainer.setStyle('width', 'auto');"," }"," "," },"," "," /////////////////////////////////////////////////////////////////////////////"," //"," // Scroll Syncing"," //"," /////////////////////////////////////////////////////////////////////////////"," "," /*"," * Ensures that scrolling is synced across the two tables"," *"," * @method _onScroll"," * @private"," */"," _onScroll: function() {"," this._headerContainerNode.set('scrollLeft', this._bodyContainerNode.get('scrollLeft'));"," },"," "," /*"," * Syncs padding around scrollable tables, including Column header right-padding"," * and container width and height."," *"," * @method _syncScroll"," * @private "," */"," _syncScroll : function() {"," this._syncScrollX();"," this._syncScrollY();"," this._syncScrollOverhang();"," if (YUA.opera) {"," // Bug 1925874"," this._headerContainerNode.set('scrollLeft', this._bodyContainerNode.get('scrollLeft'));"," "," if(!this.get(\"width\")) {"," // Bug 1926125"," document.body.style += '';"," }"," }"," },"," "," /*"," * Snaps container width for y-scrolling tables."," *"," * @method _syncScrollY"," * @private"," */"," _syncScrollY : function() {"," var tBody = this._parentTbodyNode,"," tBodyContainer = this._bodyContainerNode,"," w;"," // X-scrolling not enabled"," if(!this.get(\"width\")) {"," // Snap outer container width to content"," w = (tBodyContainer.get('scrollHeight') > tBodyContainer.get('clientHeight')) ?"," // but account for y-scrollbar since it is visible"," (tBody.get('parentNode').get('clientWidth') + scrollbarWidth()) + \"px\" :"," // no y-scrollbar, just borders"," (tBody.get('parentNode').get('clientWidth') + 2) + \"px\";"," this._parentContainer.setStyle('width', w);"," }"," },"," "," /*"," * Snaps container height for x-scrolling tables in IE. Syncs message TBODY width. "," * Taken from YUI2 ScrollingDataTable.js"," *"," * @method _syncScrollX"," * @private"," */"," _syncScrollX: function() {"," var tBody = this._parentTbodyNode,"," tBodyContainer = this._bodyContainerNode,"," w;",""," this._headerContainerNode.set('scrollLeft',"," this._bodyContainerNode.get('scrollLeft'));"," "," if (!this.get('height') && (YUA.ie)) {"," w = (tBodyContainer.get('scrollWidth') > tBodyContainer.get('offsetWidth')) ?"," (tBody.get('parentNode').get('offsetHeight') + scrollbarWidth()) + \"px\" : "," tBody.get('parentNode').get('offsetHeight') + \"px\";"," "," tBodyContainer.setStyle('height', w);"," }"," "," if (tBody.get('rows').size()) {"," this._parentMsgNode.get('parentNode').setStyle('width', \"\");"," } else {"," this._parentMsgNode.get('parentNode').setStyle('width', this._parentTheadNode.get('parentNode').get('offsetWidth')+'px');"," }"," "," },"," "," /*"," * Adds/removes Column header overhang as necesary."," * Taken from YUI2 ScrollingDataTable.js"," *"," * @method _syncScrollOverhang"," * @private"," */"," _syncScrollOverhang: function() {"," var tBodyContainer = this._bodyContainerNode,"," padding = 1;"," "," //when its both x and y scrolling"," if ((tBodyContainer.get('scrollHeight') > tBodyContainer.get('clientHeight')) || (tBodyContainer.get('scrollWidth') > tBodyContainer.get('clientWidth'))) {"," padding = 18;"," }"," "," this._setOverhangValue(padding);"," "," // After the widths have synced, there is a wrapping issue in the"," // headerContainer in IE6. The header does not span the full length of"," // the table (does not cover all of the y-scrollbar). By adding this"," // line in when there is a y-scroll, the header will span correctly."," // TODO: this should not really occur on this.get('_scroll') === y - it"," // should occur when scrollHeight > clientHeight, but clientHeight is"," // not getting recognized in IE6?"," if (YUA.ie !== 0 && this.get('_scroll') === 'y' && this._bodyContainerNode.get('scrollHeight') > this._bodyContainerNode.get('offsetHeight'))"," {"," this._headerContainerNode.setStyle('width', this._parentContainer.get('width'));"," }"," },"," "," "," /*"," * Sets Column header overhang to given width."," * Taken from YUI2 ScrollingDataTable.js with minor modifications"," *"," * @method _setOverhangValue"," * @param nBorderWidth {Number} Value of new border for overhang. "," * @private"," */ "," _setOverhangValue: function(borderWidth) {"," var host = this.get('host'),"," cols = host.get('columnset').get('definitions'),"," //lastHeaders = cols[cols.length-1] || [],"," len = cols.length,"," value = borderWidth + \"px solid \" + this.get(\"COLOR_COLUMNFILLER\"),"," children = YNode.all('#'+this._parentContainer.get('id')+ ' .' + CLASS_HEADER + ' table thead th');",""," children.item(len-1).setStyle('borderRight', value);"," }"," ","});","","Y.namespace(\"Plugin\").DataTableScroll = DataTableScroll;","","","}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin']});"];
_yuitest_coverage["/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js"].lines = {"1":0,"26":0,"40":0,"43":0,"45":0,"53":0,"54":0,"57":0,"99":0,"102":0,"103":0,"105":0,"106":0,"108":0,"109":0,"112":0,"129":0,"130":0,"137":0,"216":0,"217":0,"218":0,"219":0,"236":0,"237":0,"238":0,"239":0,"241":0,"242":0,"243":0,"245":0,"246":0,"247":0,"259":0,"270":0,"280":0,"291":0,"310":0,"311":0,"312":0,"325":0,"327":0,"328":0,"342":0,"343":0,"344":0,"357":0,"381":0,"397":0,"398":0,"399":0,"404":0,"407":0,"408":0,"473":0,"475":0,"476":0,"491":0,"493":0,"494":0,"509":0,"511":0,"512":0,"514":0,"515":0,"525":0,"528":0,"531":0,"532":0,"533":0,"534":0,"545":0,"551":0,"553":0,"554":0,"555":0,"557":0,"558":0,"559":0,"562":0,"563":0,"564":0,"567":0,"568":0,"579":0,"583":0,"595":0,"596":0,"614":0,"625":0,"626":0,"627":0,"628":0,"630":0,"632":0,"634":0,"646":0,"650":0,"652":0,"657":0,"669":0,"673":0,"676":0,"677":0,"681":0,"684":0,"685":0,"687":0,"700":0,"704":0,"705":0,"708":0,"717":0,"719":0,"733":0,"740":0,"745":0};
_yuitest_coverage["/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js"].functions = {"(anonymous 2):39":0,"DataTableScroll:53":0,"valueFn:98":0,"setter:128":0,"initializer:215":0,"_setUpNodes:234":0,"_setUpParentTableNode:258":0,"_setUpParentTheadNode:269":0,"_setUpParentTbodyNode:279":0,"_setUpParentMessageNode:290":0,"renderUI:308":0,"bindUI:322":0,"syncUI:340":0,"_removeCaptionNode:356":0,"(anonymous 3):398":0,"_syncWidths:380":0,"_attachTheadThNode:472":0,"_attachTbodyTdNode:490":0,"_createBodyContainer:508":0,"_createHeaderContainer:524":0,"_setStylesForTbody:544":0,"_setStylesForThead:578":0,"_setContentBoxDimensions:593":0,"_onScroll:613":0,"_syncScroll:624":0,"_syncScrollY:645":0,"_syncScrollX:668":0,"_syncScrollOverhang:699":0,"_setOverhangValue:732":0,"(anonymous 1):1":0};
_yuitest_coverage["/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js"].coveredLines = 117;
@@ -931,4 +931,4 @@ _yuitest_coverline("/build/datatable-scroll-deprecated/datatable-scroll-deprecat
Y.namespace("Plugin").DataTableScroll = DataTableScroll;
-}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin']});
+}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin']});
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated-debug.js b/lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated-debug.js
rename to lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated-debug.js
index 857e4b2d285..9d11fa595e4 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -751,4 +751,4 @@ Y.extend(DataTableScroll, Y.Plugin.Base, {
Y.namespace("Plugin").DataTableScroll = DataTableScroll;
-}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin']});
+}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin']});
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated-min.js b/lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated-min.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated-min.js
rename to lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated-min.js
index fc9ef4d28fc..98807d7a039 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated-min.js
@@ -1,8 +1,8 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
YUI.add("datatable-scroll-deprecated",function(b){var m=b.Node,k=b.Lang,o=b.UA,g=b.ClassNameManager.getClassName,n="datatable",a=g(n,"hd"),e=g(n,"bd"),d=g(n,"data"),l=g(n,"liner"),j=g(n,"scrollable"),i='',c='',h="
",f=b.cached(function(){var q=b.one("body").appendChild(''),r=q.get("offsetWidth")-q.get("clientWidth");q.remove(true);return r;});function p(){p.superclass.constructor.apply(this,arguments);}b.mix(p,{NS:"scroll",NAME:"dataTableScroll",ATTRS:{width:{value:undefined,writeOnce:"initOnly"},height:{value:undefined,writeOnce:"initOnly"},_scroll:{valueFn:function(){var q=this.get("width"),r=this.get("height");if(q&&r){return"xy";}else{if(q){return"x";}else{if(r){return"y";}else{return null;}}}}},COLOR_COLUMNFILLER:{value:"#f2f2f2",validator:k.isString,setter:function(q){if(this._headerContainerNode){this._headerContainerNode.setStyle("backgroundColor",q);}}}}});b.extend(p,b.Plugin.Base,{_parentTableNode:null,_parentTheadNode:null,_parentTbodyNode:null,_parentMsgNode:null,_parentContainer:null,_bodyContainerNode:null,_headerContainerNode:null,initializer:function(q){var r=this.get("host");this._parentContainer=r.get("contentBox");this._parentContainer.addClass(j);this._setUpNodes();},_setUpNodes:function(){this.afterHostMethod("_addTableNode",this._setUpParentTableNode);this.afterHostMethod("_addTheadNode",this._setUpParentTheadNode);this.afterHostMethod("_addTbodyNode",this._setUpParentTbodyNode);this.afterHostMethod("_addMessageNode",this._setUpParentMessageNode);this.afterHostMethod("renderUI",this.renderUI);this.afterHostMethod("bindUI",this.bindUI);this.afterHostMethod("syncUI",this.syncUI);if(this.get("_scroll")!=="x"){this.afterHostMethod("_attachTheadThNode",this._attachTheadThNode);this.afterHostMethod("_attachTbodyTdNode",this._attachTbodyTdNode);}},_setUpParentTableNode:function(){this._parentTableNode=this.get("host")._tableNode;},_setUpParentTheadNode:function(){this._parentTheadNode=this.get("host")._theadNode;},_setUpParentTbodyNode:function(){this._parentTbodyNode=this.get("host")._tbodyNode;},_setUpParentMessageNode:function(){this._parentMsgNode=this.get("host")._msgNode;},renderUI:function(){this._createBodyContainer();this._createHeaderContainer();this._setContentBoxDimensions();},bindUI:function(){this._bodyContainerNode.on("scroll",b.bind("_onScroll",this));this.afterHostEvent("recordsetChange",this.syncUI);this.afterHostEvent("recordset:recordsChange",this.syncUI);},syncUI:function(){this._removeCaptionNode();this._syncWidths();this._syncScroll();},_removeCaptionNode:function(){this.get("host")._captionNode.remove();},_syncWidths:function(){var t=this._parentContainer.one("."+a),q=this._parentContainer.one("."+e),v=t.all("thead ."+l),u=q.one("."+d+" tr"),s=u&&u.all("."+l),r=(o.ie)?"offsetWidth":"clientWidth";if(s&&s.size()){v.each(function(B,y){var w=s.item(y),x=B.get(r),A=w.get(r),z=Math.max(x,A);z-=(parseInt(B.getComputedStyle("paddingLeft"),10)|0)+(parseInt(B.getComputedStyle("paddingRight"),10)|0);B.setStyle("width",z+"px");w.setStyle("width",z+"px");});}},_attachTheadThNode:function(r){var q=r.column.get("width");if(q){r.th.one("."+l).setStyles({width:q,overflow:"hidden"});}},_attachTbodyTdNode:function(r){var q=r.column.get("width");if(q){r.td.one("."+l).setStyles({width:q,overflow:"hidden"});}},_createBodyContainer:function(){var q=m.create(c);this._bodyContainerNode=q;this._setStylesForTbody();q.appendChild(this._parentTableNode);this._parentContainer.appendChild(q);},_createHeaderContainer:function(){var r=m.create(i),q=m.create(h);this._headerContainerNode=r;this._setStylesForThead();q.appendChild(this._parentTheadNode);r.appendChild(q);this._parentContainer.prepend(r);},_setStylesForTbody:function(){var r=this.get("_scroll"),q=this.get("width")||"",t=this.get("height")||"",s=this._bodyContainerNode,u={width:"",height:t};if(r==="x"){u.overflowY="hidden";u.width=q;}else{if(r==="y"){u.overflowX="hidden";}else{if(r==="xy"){u.width=q;}else{u.overflowX="hidden";u.overflowY="hidden";u.width=q;}}}s.setStyles(u);return s;},_setStylesForThead:function(){var q=this.get("width")||"",r=this._headerContainerNode;r.setStyles({"width":q,"overflow":"hidden"});},_setContentBoxDimensions:function(){if(this.get("_scroll")==="y"||(!this.get("width"))){this._parentContainer.setStyle("width","auto");}},_onScroll:function(){this._headerContainerNode.set("scrollLeft",this._bodyContainerNode.get("scrollLeft"));},_syncScroll:function(){this._syncScrollX();this._syncScrollY();this._syncScrollOverhang();if(o.opera){this._headerContainerNode.set("scrollLeft",this._bodyContainerNode.get("scrollLeft"));if(!this.get("width")){document.body.style+="";}}},_syncScrollY:function(){var q=this._parentTbodyNode,s=this._bodyContainerNode,r;if(!this.get("width")){r=(s.get("scrollHeight")>s.get("clientHeight"))?(q.get("parentNode").get("clientWidth")+f())+"px":(q.get("parentNode").get("clientWidth")+2)+"px";this._parentContainer.setStyle("width",r);}},_syncScrollX:function(){var q=this._parentTbodyNode,s=this._bodyContainerNode,r;this._headerContainerNode.set("scrollLeft",this._bodyContainerNode.get("scrollLeft"));if(!this.get("height")&&(o.ie)){r=(s.get("scrollWidth")>s.get("offsetWidth"))?(q.get("parentNode").get("offsetHeight")+f())+"px":q.get("parentNode").get("offsetHeight")+"px";s.setStyle("height",r);}if(q.get("rows").size()){this._parentMsgNode.get("parentNode").setStyle("width","");}else{this._parentMsgNode.get("parentNode").setStyle("width",this._parentTheadNode.get("parentNode").get("offsetWidth")+"px");}},_syncScrollOverhang:function(){var q=this._bodyContainerNode,r=1;if((q.get("scrollHeight")>q.get("clientHeight"))||(q.get("scrollWidth")>q.get("clientWidth"))){r=18;}this._setOverhangValue(r);if(o.ie!==0&&this.get("_scroll")==="y"&&this._bodyContainerNode.get("scrollHeight")>this._bodyContainerNode.get("offsetHeight")){this._headerContainerNode.setStyle("width",this._parentContainer.get("width"));
-}},_setOverhangValue:function(r){var t=this.get("host"),v=t.get("columnset").get("definitions"),q=v.length,u=r+"px solid "+this.get("COLOR_COLUMNFILLER"),s=m.all("#"+this._parentContainer.get("id")+" ."+a+" table thead th");s.item(q-1).setStyle("borderRight",u);}});b.namespace("Plugin").DataTableScroll=p;},"3.7.1",{requires:["datatable-base-deprecated","plugin"]});
\ No newline at end of file
+}},_setOverhangValue:function(r){var t=this.get("host"),v=t.get("columnset").get("definitions"),q=v.length,u=r+"px solid "+this.get("COLOR_COLUMNFILLER"),s=m.all("#"+this._parentContainer.get("id")+" ."+a+" table thead th");s.item(q-1).setStyle("borderRight",u);}});b.namespace("Plugin").DataTableScroll=p;},"3.7.2",{requires:["datatable-base-deprecated","plugin"]});
\ No newline at end of file
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js b/lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js
rename to lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js
index 857e4b2d285..9d11fa595e4 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js
+++ b/lib/yuilib/3.7.2/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -751,4 +751,4 @@ Y.extend(DataTableScroll, Y.Plugin.Base, {
Y.namespace("Plugin").DataTableScroll = DataTableScroll;
-}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin']});
+}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin']});
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll/assets/datatable-scroll-core.css b/lib/yuilib/3.7.2/build/datatable-scroll/assets/datatable-scroll-core.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-scroll/assets/datatable-scroll-core.css
rename to lib/yuilib/3.7.2/build/datatable-scroll/assets/datatable-scroll-core.css
index d454b257e97..ad31fd39a6c 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll/assets/datatable-scroll-core.css
+++ b/lib/yuilib/3.7.2/build/datatable-scroll/assets/datatable-scroll-core.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/night/datatable-scroll-skin.css b/lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/night/datatable-scroll-skin.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/night/datatable-scroll-skin.css
rename to lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/night/datatable-scroll-skin.css
index c6dcef06c28..86b1eda61d7 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/night/datatable-scroll-skin.css
+++ b/lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/night/datatable-scroll-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/night/datatable-scroll.css b/lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/night/datatable-scroll.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/night/datatable-scroll.css
rename to lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/night/datatable-scroll.css
index aa0eb545512..895c8c848b1 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/night/datatable-scroll.css
+++ b/lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/night/datatable-scroll.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/sam/datatable-scroll-skin.css b/lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/sam/datatable-scroll-skin.css
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/sam/datatable-scroll-skin.css
rename to lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/sam/datatable-scroll-skin.css
index d1c7f35a77a..ff3a6d9a1e7 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll/assets/skins/sam/datatable-scroll-skin.css
+++ b/lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/sam/datatable-scroll-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-scroll.css b/lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/sam/datatable-scroll.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/assets/skins/sam/datatable-scroll.css
rename to lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/sam/datatable-scroll.css
index f56ab31bfb2..1a69fba3b06 100644
--- a/lib/yuilib/3.7.1/build/assets/skins/sam/datatable-scroll.css
+++ b/lib/yuilib/3.7.2/build/datatable-scroll/assets/skins/sam/datatable-scroll.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll-coverage.js b/lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll-coverage.js
rename to lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll-coverage.js
index afa7f125852..9699d522b58 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatable-scroll/datatable-scroll.js"] = {
path: "build/datatable-scroll/datatable-scroll.js",
code: []
};
-_yuitest_coverage["build/datatable-scroll/datatable-scroll.js"].code=["YUI.add('datatable-scroll', function (Y, NAME) {","","/**","Adds the ability to make the table rows scrollable while preserving the header","placement.","","@module datatable-scroll","@for DataTable","@since 3.5.0","**/","var YLang = Y.Lang,"," isString = YLang.isString,"," isNumber = YLang.isNumber,"," isArray = YLang.isArray,",""," Scrollable;","","// Returns the numeric value portion of the computed style, defaulting to 0","function styleDim(node, style) {"," return parseInt(node.getComputedStyle(style), 10) | 0;","}","","/**","_API docs for this extension are included in the DataTable class._","","Adds the ability to make the table rows scrollable while preserving the header","placement.","","There are two types of scrolling, horizontal (x) and vertical (y). Horizontal","scrolling is achieved by wrapping the entire table in a scrollable container.","Vertical scrolling is achieved by splitting the table headers and data into two","separate tables, the latter of which is wrapped in a vertically scrolling","container. In this case, column widths of header cells and data cells are kept","in sync programmatically.","","Since the split table synchronization can be costly at runtime, the split is only done if the data in the table stretches beyond the configured `height` value.","","To activate or deactivate scrolling, set the `scrollable` attribute to one of","the following values:",""," * `false` - (default) Scrolling is disabled."," * `true` or 'xy' - If `height` is set, vertical scrolling will be activated, if"," `width` is set, horizontal scrolling will be activated."," * 'x' - Activate horizontal scrolling only. Requires the `width` attribute is"," also set."," * 'y' - Activate vertical scrolling only. Requires the `height` attribute is"," also set.","","@class DataTable.Scrollable","@for DataTable","@since 3.5.0","**/","Y.DataTable.Scrollable = Scrollable = function () {};","","Scrollable.ATTRS = {"," /**"," Activates or deactivates scrolling in the table. Acceptable values are:",""," * `false` - (default) Scrolling is disabled."," * `true` or 'xy' - If `height` is set, vertical scrolling will be"," activated, if `width` is set, horizontal scrolling will be activated."," * 'x' - Activate horizontal scrolling only. Requires the `width` attribute"," is also set."," * 'y' - Activate vertical scrolling only. Requires the `height` attribute"," is also set.",""," @attribute scrollable"," @type {String|Boolean}"," @value false"," @since 3.5.0"," **/"," scrollable: {"," value: false,"," setter: '_setScrollable'"," }","};","","Y.mix(Scrollable.prototype, {",""," /**"," Scrolls a given row or cell into view if the table is scrolling. Pass the"," `clientId` of a Model from the DataTable's `data` ModelList or its row"," index to scroll to a row or a [row index, column index] array to scroll to"," a cell. Alternately, to scroll to any element contained within the table's"," scrolling areas, pass its ID, or the Node itself (though you could just as"," well call `node.scrollIntoView()` yourself, but hey, whatever).",""," @method scrollTo"," @param {String|Number|Number[]|Node} id A row clientId, row index, cell"," coordinate array, id string, or Node"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," scrollTo: function (id) {"," var target;",""," if (id && this._tbodyNode && (this._yScrollNode || this._xScrollNode)) {"," if (isArray(id)) {"," target = this.getCell(id);"," } else if (isNumber(id)) { "," target = this.getRow(id);"," } else if (isString(id)) {"," target = this._tbodyNode.one('#' + id);"," } else if (id instanceof Y.Node &&"," // TODO: ancestor(yScrollNode, xScrollNode)"," id.ancestor('.yui3-datatable') === this.get('boundingBox')) {"," target = id;"," }",""," target && target.scrollIntoView();"," }",""," return this;"," },",""," //--------------------------------------------------------------------------"," // Protected properties and methods"," //--------------------------------------------------------------------------",""," /**"," Template for the `` that is used to fix the caption in place when"," the table is horizontally scrolling.",""," @property _CAPTION_TABLE_TEMPLATE"," @type {HTML}"," @value '
'"," @protected"," @since 3.5.0"," **/"," _CAPTION_TABLE_TEMPLATE: '
',",""," /**"," Template used to create sizable element liners around header content to"," synchronize fixed header column widths.",""," @property _SCROLL_LINER_TEMPLATE"," @type {HTML}"," @value ''"," @protected"," @since 3.5.0"," **/"," _SCROLL_LINER_TEMPLATE: '',",""," /**"," Template for the virtual scrollbar needed in \"y\" and \"xy\" scrolling setups.",""," @property _SCROLLBAR_TEMPLATE"," @type {HTML}"," @value ''"," @protected"," @since 3.5.0"," **/"," _SCROLLBAR_TEMPLATE: '',",""," /**"," Template for the `` that is used to contain the table when the table is"," horizontally scrolling.",""," @property _X_SCROLLER_TEMPLATE"," @type {HTML}"," @value ''"," @protected"," @since 3.5.0"," **/"," _X_SCROLLER_TEMPLATE: '',",""," /**"," Template for the `` used to contain the fixed column headers for"," vertically scrolling tables.",""," @property _Y_SCROLL_HEADER_TEMPLATE"," @type {HTML}"," @value '
'"," @protected"," @since 3.5.0"," **/"," _Y_SCROLL_HEADER_TEMPLATE: '
',",""," /**"," Template for the `` that is used to contain the rows when the table is"," vertically scrolling.",""," @property _Y_SCROLLER_TEMPLATE"," @type {HTML}"," @value ''"," @protected"," @since 3.5.0"," **/"," _Y_SCROLLER_TEMPLATE: '',",""," /**"," Adds padding to the last cells in the fixed header for vertically scrolling"," tables. This padding is equal in width to the scrollbar, so can't be"," relegated to a stylesheet.",""," @method _addScrollbarPadding"," @protected"," @since 3.5.0"," **/"," _addScrollbarPadding: function () {"," var fixedHeader = this._yScrollHeader,"," headerClass = '.' + this.getClassName('header'),"," scrollbarWidth, rows, header, i, len;",""," if (fixedHeader) {"," scrollbarWidth = Y.DOM.getScrollbarWidth() + 'px';"," rows = fixedHeader.all('tr');",""," for (i = 0, len = rows.size(); i < len; i += +header.get('rowSpan')) {"," header = rows.item(i).all(headerClass).pop();"," header.setStyle('paddingRight', scrollbarWidth);"," }"," }"," },",""," /**"," Reacts to changes in the `scrollable` attribute by updating the `_xScroll`"," and `_yScroll` properties and syncing the scrolling structure accordingly.",""," @method _afterScrollableChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollableChange: function (e) {"," var scroller = this._xScrollNode;",""," if (this._xScroll && scroller) {"," if (this._yScroll && !this._yScrollNode) {"," scroller.setStyle('paddingRight',"," Y.DOM.getScrollbarWidth() + 'px');"," } else if (!this._yScroll && this._yScrollNode) {"," scroller.setStyle('paddingRight', '');"," }"," }",""," this._syncScrollUI();"," },",""," /**"," Reacts to changes in the `caption` attribute by adding, removing, or"," syncing the caption table when the table is set to scroll.",""," @method _afterScrollCaptionChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollCaptionChange: function (e) {"," if (this._xScroll || this._yScroll) {"," this._syncScrollUI();"," }"," },",""," /**"," Reacts to changes in the `columns` attribute of vertically scrolling tables"," by refreshing the fixed headers, scroll container, and virtual scrollbar"," position.",""," @method _afterScrollColumnsChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollColumnsChange: function (e) {"," if (this._xScroll || this._yScroll) {"," if (this._yScroll && this._yScrollHeader) {"," this._syncScrollHeaders();"," }",""," this._syncScrollUI();"," }"," },",""," /**"," Reacts to changes in vertically scrolling table's `data` ModelList by"," synchronizing the fixed column header widths and virtual scrollbar height.",""," @method _afterScrollDataChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollDataChange: function (e) {"," if (this._xScroll || this._yScroll) {"," this._syncScrollUI();"," }"," },",""," /**"," Reacts to changes in the `height` attribute of vertically scrolling tables"," by updating the height of the `` wrapping the data table and the"," virtual scrollbar. If `scrollable` was set to \"y\" or \"xy\" but lacking a"," declared `height` until the received change, `_syncScrollUI` is called to"," create the fixed headers etc.",""," @method _afterScrollHeightChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollHeightChange: function (e) {"," if (this._yScroll) {"," this._syncScrollUI();"," }"," },",""," /* (not an API doc comment on purpose)"," Reacts to the sort event (if the table is also sortable) by updating the"," fixed header classes to match the data table's headers.",""," THIS IS A HACK that will be removed immediately after the 3.5.0 release."," If you're reading this and the current version is greater than 3.5.0, I"," should be publicly scolded."," */"," _afterScrollSort: function (e) {"," var headers, headerClass;",""," if (this._yScroll && this._yScrollHeader) {"," headerClass = '.' + this.getClassName('header');"," headers = this._theadNode.all(headerClass);",""," this._yScrollHeader.all(headerClass).each(function (header, i) {"," header.set('className', headers.item(i).get('className'));"," });"," }"," },",""," /**"," Reacts to changes in the width of scrolling tables by expanding the width of"," the `` wrapping the data table for horizontally scrolling tables or"," upding the position of the virtual scrollbar for vertically scrolling"," tables.",""," @method _afterScrollWidthChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollWidthChange: function (e) {"," if (this._xScroll || this._yScroll) {"," this._syncScrollUI();"," }"," },",""," /**"," Binds virtual scrollbar interaction to the `_yScrollNode`'s `scrollTop` and"," vice versa.",""," @method _bindScrollbar"," @protected"," @since 3.5.0"," **/"," _bindScrollbar: function () {"," var scrollbar = this._scrollbarNode,"," scroller = this._yScrollNode;",""," if (scrollbar && scroller && !this._scrollbarEventHandle) {"," this._scrollbarEventHandle = new Y.Event.Handle(["," scrollbar.on('scroll', this._syncScrollPosition, this),"," scroller.on('scroll', this._syncScrollPosition, this)"," ]);"," }"," },",""," /**"," Binds to the window resize event to update the vertical scrolling table"," headers and wrapper `` dimensions.",""," @method _bindScrollResize"," @protected"," @since 3.5.0"," **/"," _bindScrollResize: function () {"," if (!this._scrollResizeHandle) {"," // TODO: sync header widths and scrollbar position. If the height"," // of the headers has changed, update the scrollbar dims as well."," this._scrollResizeHandle = Y.on('resize',"," this._syncScrollUI, null, this);"," }"," },",""," /**"," Attaches internal subscriptions to keep the scrolling structure up to date"," with changes in the table's `data`, `columns`, `caption`, or `height`. The"," `width` is taken care of already.",""," This executes after the table's native `bindUI` method.",""," @method _bindScrollUI"," @protected"," @since 3.5.0"," **/"," _bindScrollUI: function () {"," this.after({"," columnsChange: Y.bind('_afterScrollColumnsChange', this),"," heightChange : Y.bind('_afterScrollHeightChange', this),"," widthChange : Y.bind('_afterScrollWidthChange', this),"," captionChange: Y.bind('_afterScrollCaptionChange', this),"," scrollableChange: Y.bind('_afterScrollableChange', this),"," // FIXME: this is a last minute hack to work around the fact that"," // DT doesn't use a tableView to render table content that can be"," // replaced with a scrolling table view. This must be removed asap!"," sort : Y.bind('_afterScrollSort', this)"," });",""," this.after(['dataChange', '*:add', '*:remove', '*:reset', '*:change'],"," Y.bind('_afterScrollDataChange', this));"," },",""," /**"," Clears the lock and timer used to manage synchronizing the scroll position"," between the vertical scroll container and the virtual scrollbar.",""," @method _clearScrollLock"," @protected"," @since 3.5.0"," **/"," _clearScrollLock: function () {"," if (this._scrollLock) {"," this._scrollLock.cancel();"," delete this._scrollLock;"," }"," },",""," /**"," Creates a virtual scrollbar from the `_SCROLLBAR_TEMPLATE`, assigning it to"," the `_scrollbarNode` property.",""," @method _createScrollbar"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createScrollbar: function () {"," var scrollbar = this._scrollbarNode;",""," if (!scrollbar) {"," scrollbar = this._scrollbarNode = Y.Node.create("," Y.Lang.sub(this._SCROLLBAR_TEMPLATE, {"," className: this.getClassName('scrollbar')"," }));",""," // IE 6-10 require the scrolled area to be visible (at least 1px)"," // or they don't respond to clicking on the scrollbar rail or arrows"," scrollbar.setStyle('width', (Y.DOM.getScrollbarWidth() + 1) + 'px');"," }",""," return scrollbar;"," },",""," /**"," Creates a separate table to contain the caption when the table is"," configured to scroll vertically or horizontally.",""," @method _createScrollCaptionTable"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createScrollCaptionTable: function () {"," if (!this._captionTable) {"," this._captionTable = Y.Node.create("," Y.Lang.sub(this._CAPTION_TABLE_TEMPLATE, {"," className: this.getClassName('caption', 'table')"," }));",""," this._captionTable.empty();"," }",""," return this._captionTable;"," },",""," /**"," Populates the `_xScrollNode` property by creating the `` Node described"," by the `_X_SCROLLER_TEMPLATE`.",""," @method _createXScrollNode"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createXScrollNode: function () {"," if (!this._xScrollNode) {"," this._xScrollNode = Y.Node.create("," Y.Lang.sub(this._X_SCROLLER_TEMPLATE, {"," className: this.getClassName('x','scroller')"," }));"," }",""," return this._xScrollNode;"," },",""," /**"," Populates the `_yScrollHeader` property by creating the `` Node"," described by the `_Y_SCROLL_HEADER_TEMPLATE`.",""," @method _createYScrollHeader"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createYScrollHeader: function () {"," var fixedHeader = this._yScrollHeader;",""," if (!fixedHeader) {"," fixedHeader = this._yScrollHeader = Y.Node.create("," Y.Lang.sub(this._Y_SCROLL_HEADER_TEMPLATE, {"," className: this.getClassName('scroll','columns')"," }));"," }",""," return fixedHeader;"," },",""," /**"," Populates the `_yScrollNode` property by creating the `` Node described"," by the `_Y_SCROLLER_TEMPLATE`.",""," @method _createYScrollNode"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createYScrollNode: function () {"," var scrollerClass;",""," if (!this._yScrollNode) {"," scrollerClass = this.getClassName('y', 'scroller');",""," this._yScrollContainer = Y.Node.create("," Y.Lang.sub(this._Y_SCROLLER_TEMPLATE, {"," className: this.getClassName('y','scroller','container'),"," scrollerClassName: scrollerClass"," }));",""," this._yScrollNode = this._yScrollContainer"," .one('.' + scrollerClass);"," }",""," return this._yScrollContainer;"," },",""," /**"," Removes the nodes used to create horizontal and vertical scrolling and"," rejoins the caption to the main table if needed.",""," @method _disableScrolling"," @protected"," @since 3.5.0"," **/"," _disableScrolling: function () {"," this._removeScrollCaptionTable();"," this._disableXScrolling();"," this._disableYScrolling();"," this._unbindScrollResize();",""," this._uiSetWidth(this.get('width'));"," },",""," /**"," Removes the nodes used to allow horizontal scrolling.",""," @method _disableXScrolling"," @protected"," @since 3.5.0"," **/"," _disableXScrolling: function () {"," this._removeXScrollNode();"," },",""," /**"," Removes the nodes used to allow vertical scrolling.",""," @method _disableYScrolling"," @protected"," @since 3.5.0"," **/"," _disableYScrolling: function () {"," this._removeYScrollHeader();"," this._removeYScrollNode();"," this._removeYScrollContainer();"," this._removeScrollbar();"," },",""," /**"," Cleans up external event subscriptions.",""," @method destructor"," @protected"," @since 3.5.0"," **/"," destructor: function () {"," this._unbindScrollbar();"," this._unbindScrollResize();"," this._clearScrollLock();"," },",""," /**"," Sets up event handlers and AOP advice methods to bind the DataTable's natural"," behaviors with the scrolling APIs and state.",""," @method initializer"," @param {Object} config The config object passed to the constructor (ignored)"," @protected"," @since 3.5.0"," **/"," initializer: function () {"," this._setScrollProperties();",""," this.after(['scrollableChange', 'heightChange', 'widthChange'],"," this._setScrollProperties);",""," this.after('renderView', Y.bind('_syncScrollUI', this));",""," Y.Do.after(this._bindScrollUI, this, 'bindUI');"," },",""," /**"," Removes the table used to house the caption when the table is scrolling.",""," @method _removeScrollCaptionTable"," @protected"," @since 3.5.0"," **/"," _removeScrollCaptionTable: function () {"," if (this._captionTable) {"," if (this._captionNode) {"," this._tableNode.prepend(this._captionNode);"," }",""," this._captionTable.remove().destroy(true);",""," delete this._captionTable;"," }"," },",""," /**"," Removes the `` wrapper used to contain the data table when the table"," is horizontally scrolling.",""," @method _removeXScrollNode"," @protected"," @since 3.5.0"," **/"," _removeXScrollNode: function () {"," var scroller = this._xScrollNode;",""," if (scroller) {"," scroller.replace(scroller.get('childNodes').toFrag());"," scroller.remove().destroy(true);",""," delete this._xScrollNode;"," }"," },",""," /**"," Removes the `` wrapper used to contain the data table and fixed header"," when the table is vertically scrolling.",""," @method _removeYScrollContainer"," @protected"," @since 3.5.0"," **/"," _removeYScrollContainer: function () {"," var scroller = this._yScrollContainer;",""," if (scroller) {"," scroller.replace(scroller.get('childNodes').toFrag());"," scroller.remove().destroy(true);",""," delete this._yScrollContainer;"," }"," },",""," /**"," Removes the `` used to contain the fixed column headers when the"," table is vertically scrolling.",""," @method _removeYScrollHeader"," @protected"," @since 3.5.0"," **/"," _removeYScrollHeader: function () {"," if (this._yScrollHeader) {"," this._yScrollHeader.remove().destroy(true);",""," delete this._yScrollHeader;"," }"," },",""," /**"," Removes the `` wrapper used to contain the data table when the table"," is vertically scrolling.",""," @method _removeYScrollNode"," @protected"," @since 3.5.0"," **/"," _removeYScrollNode: function () {"," var scroller = this._yScrollNode;",""," if (scroller) {"," scroller.replace(scroller.get('childNodes').toFrag());"," scroller.remove().destroy(true);",""," delete this._yScrollNode;"," }"," },",""," /**"," Removes the virtual scrollbar used by scrolling tables.",""," @method _removeScrollbar"," @protected"," @since 3.5.0"," **/"," _removeScrollbar: function () {"," if (this._scrollbarNode) {"," this._scrollbarNode.remove().destroy(true);",""," delete this._scrollbarNode;"," }"," if (this._scrollbarEventHandle) {"," this._scrollbarEventHandle.detach();",""," delete this._scrollbarEventHandle;"," }"," },",""," /**"," Accepts (case insensitive) values \"x\", \"y\", \"xy\", `true`, and `false`."," `true` is translated to \"xy\" and upper case values are converted to lower"," case. All other values are invalid.",""," @method _setScrollable"," @param {String|Boolea} val Incoming value for the `scrollable` attribute"," @return {String}"," @protected"," @since 3.5.0"," **/"," _setScrollable: function (val) {"," if (val === true) {"," val = 'xy';"," }",""," if (isString(val)) {"," val = val.toLowerCase();"," }",""," return (val === false || val === 'y' || val === 'x' || val === 'xy') ?"," val :"," Y.Attribute.INVALID_VALUE;"," },",""," /**"," Assigns the `_xScroll` and `_yScroll` properties to true if an"," appropriate value is set in the `scrollable` attribute and the `height`"," and/or `width` is set.",""," @method _setScrollProperties"," @protected"," @since 3.5.0"," **/"," _setScrollProperties: function () {"," var scrollable = this.get('scrollable') || '',"," width = this.get('width'),"," height = this.get('height');",""," this._xScroll = width && scrollable.indexOf('x') > -1;"," this._yScroll = height && scrollable.indexOf('y') > -1;"," },",""," /**"," Keeps the virtual scrollbar and the scrolling `` wrapper around the"," data table in vertically scrolling tables in sync.",""," @method _syncScrollPosition"," @param {DOMEventFacade} e The scroll event"," @protected"," @since 3.5.0"," **/"," _syncScrollPosition: function (e) {"," var scrollbar = this._scrollbarNode,"," scroller = this._yScrollNode,"," source = e.currentTarget,"," other;",""," if (scrollbar && scroller) {"," if (this._scrollLock && this._scrollLock.source !== source) {"," return;"," }",""," this._clearScrollLock();"," this._scrollLock = Y.later(300, this, this._clearScrollLock);"," this._scrollLock.source = source;",""," other = (source === scrollbar) ? scroller : scrollbar;"," other.set('scrollTop', source.get('scrollTop'));"," }"," },",""," /**"," Splits the caption from the data `` if the table is configured to"," scroll. If not, rejoins the caption to the data `` if it needs to"," be.",""," @method _syncScrollCaptionUI"," @protected"," @since 3.5.0"," **/"," _syncScrollCaptionUI: function () {"," var caption = this._captionNode,"," table = this._tableNode,"," captionTable = this._captionTable,"," id;",""," if (caption) {"," id = caption.getAttribute('id');",""," if (!captionTable) {"," captionTable = this._createScrollCaptionTable();",""," this.get('contentBox').prepend(captionTable);"," }",""," if (!caption.get('parentNode').compareTo(captionTable)) {"," captionTable.empty().insert(caption);",""," if (!id) {"," id = Y.stamp(caption);"," caption.setAttribute('id', id);"," }",""," table.setAttribute('aria-describedby', id);"," }"," } else if (captionTable) {"," this._removeScrollCaptionTable();"," }"," },",""," /**"," Assigns widths to the fixed header columns to match the columns in the data"," table.",""," @method _syncScrollColumnWidths"," @protected"," @since 3.5.0"," **/"," _syncScrollColumnWidths: function () {"," var widths = [];",""," if (this._theadNode && this._yScrollHeader) {"," // Capture dims and assign widths in two passes to avoid reflows for"," // each access of clientWidth/getComputedStyle"," this._theadNode.all('.' + this.getClassName('header'))"," .each(function (header) {"," widths.push("," // FIXME: IE returns the col.style.width from"," // getComputedStyle even if the column has been"," // compressed below that width, so it must use"," // clientWidth. FF requires getComputedStyle because it"," // uses fractional widths that round up to an overall"," // cell/table width 1px greater than the data table's"," // cell/table width, resulting in misaligned columns or"," // fixed header bleed through. I can't think of a"," // *reasonable* way to capture the correct width without"," // a sniff. Math.min(cW - p, getCS(w)) was imperfect"," // and punished all browsers, anyway."," (Y.UA.ie && Y.UA.ie < 8) ?"," (header.get('clientWidth') -"," styleDim(header, 'paddingLeft') -"," styleDim(header, 'paddingRight')) + 'px' :"," header.getComputedStyle('width'));"," });",""," this._yScrollHeader.all('.' + this.getClassName('scroll', 'liner'))"," .each(function (liner, i) {"," liner.setStyle('width', widths[i]);"," });"," }"," },",""," /**"," Creates matching headers in the fixed header table for vertically scrolling"," tables and synchronizes the column widths.",""," @method _syncScrollHeaders"," @protected"," @since 3.5.0"," **/"," _syncScrollHeaders: function () {"," var fixedHeader = this._yScrollHeader,"," linerTemplate = this._SCROLL_LINER_TEMPLATE,"," linerClass = this.getClassName('scroll', 'liner'),"," headerClass = this.getClassName('header'),"," headers = this._theadNode.all('.' + headerClass);",""," if (this._theadNode && fixedHeader) {"," fixedHeader.empty().appendChild("," this._theadNode.cloneNode(true));",""," // Prevent duplicate IDs and assign ARIA attributes to hide"," // from screen readers"," fixedHeader.all('[id]').removeAttribute('id');",""," fixedHeader.all('.' + headerClass).each(function (header, i) {"," var liner = Y.Node.create(Y.Lang.sub(linerTemplate, {"," className: linerClass"," })),"," refHeader = headers.item(i);",""," // Can't assign via skin css because sort (and potentially"," // others) might override the padding values."," liner.setStyle('padding',"," refHeader.getComputedStyle('paddingTop') + ' ' +"," refHeader.getComputedStyle('paddingRight') + ' ' +"," refHeader.getComputedStyle('paddingBottom') + ' ' +"," refHeader.getComputedStyle('paddingLeft'));",""," liner.appendChild(header.get('childNodes').toFrag());",""," header.appendChild(liner);"," }, this);",""," this._syncScrollColumnWidths();",""," this._addScrollbarPadding();"," }"," },",""," /**"," Wraps the table for X and Y scrolling, if necessary, if the `scrollable`"," attribute is set. Synchronizes dimensions and DOM placement of all"," scrolling related nodes.",""," @method _syncScrollUI"," @protected"," @since 3.5.0"," **/"," _syncScrollUI: function () {"," var x = this._xScroll,"," y = this._yScroll,"," xScroller = this._xScrollNode,"," yScroller = this._yScrollNode,"," scrollLeft = xScroller && xScroller.get('scrollLeft'),"," scrollTop = yScroller && yScroller.get('scrollTop');",""," this._uiSetScrollable();",""," // TODO: Probably should split this up into syncX, syncY, and syncXY"," if (x || y) {"," if ((this.get('width') || '').slice(-1) === '%') {"," this._bindScrollResize();"," } else {"," this._unbindScrollResize();"," }",""," this._syncScrollCaptionUI();"," } else {"," this._disableScrolling();"," }",""," if (this._yScrollHeader) {"," this._yScrollHeader.setStyle('display', 'none');"," }",""," if (x) {"," if (!y) {"," this._disableYScrolling();"," }",""," this._syncXScrollUI(y);"," }",""," if (y) {"," if (!x) {"," this._disableXScrolling();"," }",""," this._syncYScrollUI(x);"," }",""," // Restore scroll position"," if (scrollLeft && this._xScrollNode) {"," this._xScrollNode.set('scrollLeft', scrollLeft);"," }"," if (scrollTop && this._yScrollNode) {"," this._yScrollNode.set('scrollTop', scrollTop);"," }"," },",""," /**"," Wraps the table in a scrolling `` of the configured width for \"x\""," scrolling.",""," @method _syncXScrollUI"," @param {Boolean} xy True if the table is configured with scrollable =\"xy\""," @protected"," @since 3.5.0"," **/"," _syncXScrollUI: function (xy) {"," var scroller = this._xScrollNode,"," yScroller = this._yScrollContainer,"," table = this._tableNode,"," width = this.get('width'),"," bbWidth = this.get('boundingBox').get('offsetWidth'),"," scrollbarWidth = Y.DOM.getScrollbarWidth(),"," borderWidth, tableWidth;",""," if (!scroller) {"," scroller = this._createXScrollNode();",""," // Not using table.wrap() because IE went all crazy, wrapping the"," // table in the last td in the table itself."," (yScroller || table).replace(scroller).appendTo(scroller);"," }",""," // Can't use offsetHeight - clientHeight because IE6 returns"," // clientHeight of 0 intially."," borderWidth = styleDim(scroller, 'borderLeftWidth') +"," styleDim(scroller, 'borderRightWidth');",""," scroller.setStyle('width', '');"," this._uiSetDim('width', '');"," if (xy && this._yScrollContainer) {"," this._yScrollContainer.setStyle('width', '');"," }",""," // Lock the table's unconstrained width to avoid configured column"," // widths being ignored"," if (Y.UA.ie && Y.UA.ie < 8) {"," // Have to assign a style and trigger a reflow to allow the"," // subsequent clearing of width + reflow to expand the table to"," // natural width in IE 6"," table.setStyle('width', width);"," table.get('offsetWidth');"," }"," table.setStyle('width', '');"," tableWidth = table.get('offsetWidth');"," table.setStyle('width', tableWidth + 'px');",""," this._uiSetDim('width', width);",""," // Can't use 100% width because the borders add additional width"," // TODO: Cache the border widths, though it won't prevent a reflow"," scroller.setStyle('width', (bbWidth - borderWidth) + 'px');",""," // expand the table to fill the assigned width if it doesn't"," // already overflow the configured width"," if ((scroller.get('offsetWidth') - borderWidth) > tableWidth) {"," // Assumes the wrapped table doesn't have borders"," if (xy) {"," table.setStyle('width', (scroller.get('offsetWidth') -"," borderWidth - scrollbarWidth) + 'px');"," } else {"," table.setStyle('width', '100%');"," }"," }"," },",""," /**"," Wraps the table in a scrolling `` of the configured height (accounting"," for the caption if there is one) if \"y\" scrolling is enabled. Otherwise,"," unwraps the table if necessary.",""," @method _syncYScrollUI"," @param {Boolean} xy True if the table is configured with scrollable = \"xy\""," @protected"," @since 3.5.0"," **/"," _syncYScrollUI: function (xy) {"," var yScroller = this._yScrollContainer,"," yScrollNode = this._yScrollNode,"," xScroller = this._xScrollNode,"," fixedHeader = this._yScrollHeader,"," scrollbar = this._scrollbarNode,"," table = this._tableNode,"," thead = this._theadNode,"," captionTable = this._captionTable,"," boundingBox = this.get('boundingBox'),"," contentBox = this.get('contentBox'),"," width = this.get('width'),"," height = boundingBox.get('offsetHeight'),"," scrollbarWidth = Y.DOM.getScrollbarWidth(),"," outerScroller;",""," if (captionTable && !xy) {"," captionTable.setStyle('width', width || '100%');"," }",""," if (!yScroller) {"," yScroller = this._createYScrollNode();",""," yScrollNode = this._yScrollNode;",""," table.replace(yScroller).appendTo(yScrollNode);"," }",""," outerScroller = xy ? xScroller : yScroller;",""," if (!xy) {"," table.setStyle('width', '');"," }",""," // Set the scroller height"," if (xy) {"," // Account for the horizontal scrollbar in the overall height"," height -= scrollbarWidth;"," }",""," yScrollNode.setStyle('height',"," (height - outerScroller.get('offsetTop') -"," // because IE6 is returning clientHeight 0 initially"," styleDim(outerScroller, 'borderTopWidth') -"," styleDim(outerScroller, 'borderBottomWidth')) + 'px');",""," // Set the scroller width"," if (xy) {"," // For xy scrolling tables, the table should expand freely within"," // the x scroller"," yScroller.setStyle('width',"," (table.get('offsetWidth') + scrollbarWidth) + 'px');"," } else {"," this._uiSetYScrollWidth(width);"," }",""," if (captionTable && !xy) {"," captionTable.setStyle('width', yScroller.get('offsetWidth') + 'px');"," }",""," // Allow headerless scrolling"," if (thead && !fixedHeader) {"," fixedHeader = this._createYScrollHeader();",""," yScroller.prepend(fixedHeader);",""," this._syncScrollHeaders();"," }",""," if (fixedHeader) {"," this._syncScrollColumnWidths();",""," fixedHeader.setStyle('display', '');"," // This might need to come back if FF has issues"," //fixedHeader.setStyle('width', '100%');"," //(yScroller.get('clientWidth') + scrollbarWidth) + 'px');",""," if (!scrollbar) {"," scrollbar = this._createScrollbar();",""," this._bindScrollbar();",""," contentBox.prepend(scrollbar);"," }",""," this._uiSetScrollbarHeight();"," this._uiSetScrollbarPosition(outerScroller);"," }"," },",""," /**"," Assigns the appropriate class to the `boundingBox` to identify the DataTable"," as horizontally scrolling, vertically scrolling, or both (adds both classes).",""," Classes added are \"yui3-datatable-scrollable-x\" or \"...-y\"",""," @method _uiSetScrollable"," @protected"," @since 3.5.0"," **/"," _uiSetScrollable: function () {"," this.get('boundingBox')"," .toggleClass(this.getClassName('scrollable','x'), this._xScroll)"," .toggleClass(this.getClassName('scrollable','y'), this._yScroll);"," },",""," /**"," Updates the virtual scrollbar's height to avoid overlapping with the fixed"," headers.",""," @method _uiSetScrollbarHeight"," @protected"," @since 3.5.0"," **/"," _uiSetScrollbarHeight: function () {"," var scrollbar = this._scrollbarNode,"," scroller = this._yScrollNode,"," fixedHeader = this._yScrollHeader;",""," if (scrollbar && scroller && fixedHeader) {"," scrollbar.get('firstChild').setStyle('height',"," this._tbodyNode.get('scrollHeight') + 'px');",""," scrollbar.setStyle('height', "," (parseFloat(scroller.getComputedStyle('height')) -"," parseFloat(fixedHeader.getComputedStyle('height'))) + 'px');"," }"," },",""," /**"," Updates the virtual scrollbar's placement to avoid overlapping the fixed"," headers or the data table.",""," @method _uiSetScrollbarPosition"," @param {Node} scroller Reference node to position the scrollbar over"," @protected"," @since 3.5.0"," **/"," _uiSetScrollbarPosition: function (scroller) {"," var scrollbar = this._scrollbarNode,"," fixedHeader = this._yScrollHeader;",""," if (scrollbar && scroller && fixedHeader) {"," scrollbar.setStyles({"," // Using getCS instead of offsetHeight because FF uses"," // fractional values, but reports ints to offsetHeight, so"," // offsetHeight is unreliable. It is probably fine to use"," // offsetHeight in this case but this was left in place after"," // fixing an off-by-1px issue in FF 10- by fixing the caption"," // font style so FF picked it up."," top: (parseFloat(fixedHeader.getComputedStyle('height')) +"," styleDim(scroller, 'borderTopWidth') +"," scroller.get('offsetTop')) + 'px',",""," // Minus 1 because IE 6-10 require the scrolled area to be"," // visible by at least 1px or it won't respond to clicks on the"," // scrollbar rail or endcap arrows."," left: (scroller.get('offsetWidth') -"," Y.DOM.getScrollbarWidth() - 1 -"," styleDim(scroller, 'borderRightWidth')) + 'px'"," });"," }"," },",""," /**"," Assigns the width of the `` wrapping the data table in vertically"," scrolling tables.",""," If the table can't compress to the specified width, the container is"," expanded accordingly.",""," @method _uiSetYScrollWidth"," @param {String} width The CSS width to attempt to set"," @protected"," @since 3.5.0"," **/"," _uiSetYScrollWidth: function (width) {"," var scroller = this._yScrollContainer,"," table = this._tableNode,"," tableWidth, borderWidth, scrollerWidth, scrollbarWidth;",""," if (scroller && table) {"," scrollbarWidth = Y.DOM.getScrollbarWidth();",""," if (width) {"," // Assumes no table border"," borderWidth = scroller.get('offsetWidth') -"," scroller.get('clientWidth') +"," scrollbarWidth; // added back at the end",""," // The table's rendered width might be greater than the"," // configured width"," scroller.setStyle('width', width);",""," // Have to subtract the border width from the configured width"," // because the scroller's width will need to be reduced by the"," // border width as well during the width reassignment below."," scrollerWidth = scroller.get('clientWidth') - borderWidth;",""," // Assumes no table borders"," table.setStyle('width', scrollerWidth + 'px');",""," tableWidth = table.get('offsetWidth');",""," // Expand the scroll node width if the table can't fit."," // Otherwise, reassign the scroller a pixel width that"," // accounts for the borders."," scroller.setStyle('width',"," (tableWidth + scrollbarWidth) + 'px');"," } else {"," // Allow the table to expand naturally"," table.setStyle('width', '');"," scroller.setStyle('width', '');",""," scroller.setStyle('width',"," (table.get('offsetWidth') + scrollbarWidth) + 'px');"," }"," }"," },",""," /**"," Detaches the scroll event subscriptions used to maintain scroll position"," parity between the scrollable `` wrapper around the data table and the"," virtual scrollbar for vertically scrolling tables.",""," @method _unbindScrollbar"," @protected"," @since 3.5.0"," **/"," _unbindScrollbar: function () {"," if (this._scrollbarEventHandle) {"," this._scrollbarEventHandle.detach();"," }"," },",""," /**"," Detaches the resize event subscription used to maintain column parity for"," vertically scrolling tables with percentage widths.",""," @method _unbindScrollResize"," @protected"," @since 3.5.0"," **/"," _unbindScrollResize: function () {"," if (this._scrollResizeHandle) {"," this._scrollResizeHandle.detach();"," delete this._scrollResizeHandle;"," }"," }",""," /**"," Indicates horizontal table scrolling is enabled.",""," @property _xScroll"," @type {Boolean}"," @default undefined (not initially set)"," @private"," @since 3.5.0"," **/"," //_xScroll: null,",""," /**"," Indicates vertical table scrolling is enabled.",""," @property _yScroll"," @type {Boolean}"," @default undefined (not initially set)"," @private"," @since 3.5.0"," **/"," //_yScroll: null,",""," /**"," Fixed column header `` Node for vertical scrolling tables.",""," @property _yScrollHeader"," @type {Node}"," @default undefined (not initially set)"," @protected"," @since 3.5.0"," **/"," //_yScrollHeader: null,",""," /**"," Overflow Node used to contain the data rows in a vertically scrolling table.",""," @property _yScrollNode"," @type {Node}"," @default undefined (not initially set)"," @protected"," @since 3.5.0"," **/"," //_yScrollNode: null,",""," /**"," Overflow Node used to contain the table headers and data in a horizontally"," scrolling table.",""," @property _xScrollNode"," @type {Node}"," @default undefined (not initially set)"," @protected"," @since 3.5.0"," **/"," //_xScrollNode: null","}, true);","","Y.Base.mix(Y.DataTable, [Scrollable]);","","","}, '3.7.1', {\"requires\": [\"datatable-base\", \"datatable-column-widths\", \"dom-screen\"], \"skinnable\": true});"];
+_yuitest_coverage["build/datatable-scroll/datatable-scroll.js"].code=["YUI.add('datatable-scroll', function (Y, NAME) {","","/**","Adds the ability to make the table rows scrollable while preserving the header","placement.","","@module datatable-scroll","@for DataTable","@since 3.5.0","**/","var YLang = Y.Lang,"," isString = YLang.isString,"," isNumber = YLang.isNumber,"," isArray = YLang.isArray,",""," Scrollable;","","// Returns the numeric value portion of the computed style, defaulting to 0","function styleDim(node, style) {"," return parseInt(node.getComputedStyle(style), 10) | 0;","}","","/**","_API docs for this extension are included in the DataTable class._","","Adds the ability to make the table rows scrollable while preserving the header","placement.","","There are two types of scrolling, horizontal (x) and vertical (y). Horizontal","scrolling is achieved by wrapping the entire table in a scrollable container.","Vertical scrolling is achieved by splitting the table headers and data into two","separate tables, the latter of which is wrapped in a vertically scrolling","container. In this case, column widths of header cells and data cells are kept","in sync programmatically.","","Since the split table synchronization can be costly at runtime, the split is only done if the data in the table stretches beyond the configured `height` value.","","To activate or deactivate scrolling, set the `scrollable` attribute to one of","the following values:",""," * `false` - (default) Scrolling is disabled."," * `true` or 'xy' - If `height` is set, vertical scrolling will be activated, if"," `width` is set, horizontal scrolling will be activated."," * 'x' - Activate horizontal scrolling only. Requires the `width` attribute is"," also set."," * 'y' - Activate vertical scrolling only. Requires the `height` attribute is"," also set.","","@class DataTable.Scrollable","@for DataTable","@since 3.5.0","**/","Y.DataTable.Scrollable = Scrollable = function () {};","","Scrollable.ATTRS = {"," /**"," Activates or deactivates scrolling in the table. Acceptable values are:",""," * `false` - (default) Scrolling is disabled."," * `true` or 'xy' - If `height` is set, vertical scrolling will be"," activated, if `width` is set, horizontal scrolling will be activated."," * 'x' - Activate horizontal scrolling only. Requires the `width` attribute"," is also set."," * 'y' - Activate vertical scrolling only. Requires the `height` attribute"," is also set.",""," @attribute scrollable"," @type {String|Boolean}"," @value false"," @since 3.5.0"," **/"," scrollable: {"," value: false,"," setter: '_setScrollable'"," }","};","","Y.mix(Scrollable.prototype, {",""," /**"," Scrolls a given row or cell into view if the table is scrolling. Pass the"," `clientId` of a Model from the DataTable's `data` ModelList or its row"," index to scroll to a row or a [row index, column index] array to scroll to"," a cell. Alternately, to scroll to any element contained within the table's"," scrolling areas, pass its ID, or the Node itself (though you could just as"," well call `node.scrollIntoView()` yourself, but hey, whatever).",""," @method scrollTo"," @param {String|Number|Number[]|Node} id A row clientId, row index, cell"," coordinate array, id string, or Node"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," scrollTo: function (id) {"," var target;",""," if (id && this._tbodyNode && (this._yScrollNode || this._xScrollNode)) {"," if (isArray(id)) {"," target = this.getCell(id);"," } else if (isNumber(id)) { "," target = this.getRow(id);"," } else if (isString(id)) {"," target = this._tbodyNode.one('#' + id);"," } else if (id instanceof Y.Node &&"," // TODO: ancestor(yScrollNode, xScrollNode)"," id.ancestor('.yui3-datatable') === this.get('boundingBox')) {"," target = id;"," }",""," target && target.scrollIntoView();"," }",""," return this;"," },",""," //--------------------------------------------------------------------------"," // Protected properties and methods"," //--------------------------------------------------------------------------",""," /**"," Template for the `` that is used to fix the caption in place when"," the table is horizontally scrolling.",""," @property _CAPTION_TABLE_TEMPLATE"," @type {HTML}"," @value '
'"," @protected"," @since 3.5.0"," **/"," _CAPTION_TABLE_TEMPLATE: '
',",""," /**"," Template used to create sizable element liners around header content to"," synchronize fixed header column widths.",""," @property _SCROLL_LINER_TEMPLATE"," @type {HTML}"," @value ''"," @protected"," @since 3.5.0"," **/"," _SCROLL_LINER_TEMPLATE: '',",""," /**"," Template for the virtual scrollbar needed in \"y\" and \"xy\" scrolling setups.",""," @property _SCROLLBAR_TEMPLATE"," @type {HTML}"," @value ''"," @protected"," @since 3.5.0"," **/"," _SCROLLBAR_TEMPLATE: '',",""," /**"," Template for the `` that is used to contain the table when the table is"," horizontally scrolling.",""," @property _X_SCROLLER_TEMPLATE"," @type {HTML}"," @value ''"," @protected"," @since 3.5.0"," **/"," _X_SCROLLER_TEMPLATE: '',",""," /**"," Template for the `` used to contain the fixed column headers for"," vertically scrolling tables.",""," @property _Y_SCROLL_HEADER_TEMPLATE"," @type {HTML}"," @value '
'"," @protected"," @since 3.5.0"," **/"," _Y_SCROLL_HEADER_TEMPLATE: '
',",""," /**"," Template for the `` that is used to contain the rows when the table is"," vertically scrolling.",""," @property _Y_SCROLLER_TEMPLATE"," @type {HTML}"," @value ''"," @protected"," @since 3.5.0"," **/"," _Y_SCROLLER_TEMPLATE: '',",""," /**"," Adds padding to the last cells in the fixed header for vertically scrolling"," tables. This padding is equal in width to the scrollbar, so can't be"," relegated to a stylesheet.",""," @method _addScrollbarPadding"," @protected"," @since 3.5.0"," **/"," _addScrollbarPadding: function () {"," var fixedHeader = this._yScrollHeader,"," headerClass = '.' + this.getClassName('header'),"," scrollbarWidth, rows, header, i, len;",""," if (fixedHeader) {"," scrollbarWidth = Y.DOM.getScrollbarWidth() + 'px';"," rows = fixedHeader.all('tr');",""," for (i = 0, len = rows.size(); i < len; i += +header.get('rowSpan')) {"," header = rows.item(i).all(headerClass).pop();"," header.setStyle('paddingRight', scrollbarWidth);"," }"," }"," },",""," /**"," Reacts to changes in the `scrollable` attribute by updating the `_xScroll`"," and `_yScroll` properties and syncing the scrolling structure accordingly.",""," @method _afterScrollableChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollableChange: function (e) {"," var scroller = this._xScrollNode;",""," if (this._xScroll && scroller) {"," if (this._yScroll && !this._yScrollNode) {"," scroller.setStyle('paddingRight',"," Y.DOM.getScrollbarWidth() + 'px');"," } else if (!this._yScroll && this._yScrollNode) {"," scroller.setStyle('paddingRight', '');"," }"," }",""," this._syncScrollUI();"," },",""," /**"," Reacts to changes in the `caption` attribute by adding, removing, or"," syncing the caption table when the table is set to scroll.",""," @method _afterScrollCaptionChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollCaptionChange: function (e) {"," if (this._xScroll || this._yScroll) {"," this._syncScrollUI();"," }"," },",""," /**"," Reacts to changes in the `columns` attribute of vertically scrolling tables"," by refreshing the fixed headers, scroll container, and virtual scrollbar"," position.",""," @method _afterScrollColumnsChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollColumnsChange: function (e) {"," if (this._xScroll || this._yScroll) {"," if (this._yScroll && this._yScrollHeader) {"," this._syncScrollHeaders();"," }",""," this._syncScrollUI();"," }"," },",""," /**"," Reacts to changes in vertically scrolling table's `data` ModelList by"," synchronizing the fixed column header widths and virtual scrollbar height.",""," @method _afterScrollDataChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollDataChange: function (e) {"," if (this._xScroll || this._yScroll) {"," this._syncScrollUI();"," }"," },",""," /**"," Reacts to changes in the `height` attribute of vertically scrolling tables"," by updating the height of the `` wrapping the data table and the"," virtual scrollbar. If `scrollable` was set to \"y\" or \"xy\" but lacking a"," declared `height` until the received change, `_syncScrollUI` is called to"," create the fixed headers etc.",""," @method _afterScrollHeightChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollHeightChange: function (e) {"," if (this._yScroll) {"," this._syncScrollUI();"," }"," },",""," /* (not an API doc comment on purpose)"," Reacts to the sort event (if the table is also sortable) by updating the"," fixed header classes to match the data table's headers.",""," THIS IS A HACK that will be removed immediately after the 3.5.0 release."," If you're reading this and the current version is greater than 3.5.0, I"," should be publicly scolded."," */"," _afterScrollSort: function (e) {"," var headers, headerClass;",""," if (this._yScroll && this._yScrollHeader) {"," headerClass = '.' + this.getClassName('header');"," headers = this._theadNode.all(headerClass);",""," this._yScrollHeader.all(headerClass).each(function (header, i) {"," header.set('className', headers.item(i).get('className'));"," });"," }"," },",""," /**"," Reacts to changes in the width of scrolling tables by expanding the width of"," the `` wrapping the data table for horizontally scrolling tables or"," upding the position of the virtual scrollbar for vertically scrolling"," tables.",""," @method _afterScrollWidthChange"," @param {EventFacade} e The relevant change event (ignored)"," @protected"," @since 3.5.0"," **/"," _afterScrollWidthChange: function (e) {"," if (this._xScroll || this._yScroll) {"," this._syncScrollUI();"," }"," },",""," /**"," Binds virtual scrollbar interaction to the `_yScrollNode`'s `scrollTop` and"," vice versa.",""," @method _bindScrollbar"," @protected"," @since 3.5.0"," **/"," _bindScrollbar: function () {"," var scrollbar = this._scrollbarNode,"," scroller = this._yScrollNode;",""," if (scrollbar && scroller && !this._scrollbarEventHandle) {"," this._scrollbarEventHandle = new Y.Event.Handle(["," scrollbar.on('scroll', this._syncScrollPosition, this),"," scroller.on('scroll', this._syncScrollPosition, this)"," ]);"," }"," },",""," /**"," Binds to the window resize event to update the vertical scrolling table"," headers and wrapper `` dimensions.",""," @method _bindScrollResize"," @protected"," @since 3.5.0"," **/"," _bindScrollResize: function () {"," if (!this._scrollResizeHandle) {"," // TODO: sync header widths and scrollbar position. If the height"," // of the headers has changed, update the scrollbar dims as well."," this._scrollResizeHandle = Y.on('resize',"," this._syncScrollUI, null, this);"," }"," },",""," /**"," Attaches internal subscriptions to keep the scrolling structure up to date"," with changes in the table's `data`, `columns`, `caption`, or `height`. The"," `width` is taken care of already.",""," This executes after the table's native `bindUI` method.",""," @method _bindScrollUI"," @protected"," @since 3.5.0"," **/"," _bindScrollUI: function () {"," this.after({"," columnsChange: Y.bind('_afterScrollColumnsChange', this),"," heightChange : Y.bind('_afterScrollHeightChange', this),"," widthChange : Y.bind('_afterScrollWidthChange', this),"," captionChange: Y.bind('_afterScrollCaptionChange', this),"," scrollableChange: Y.bind('_afterScrollableChange', this),"," // FIXME: this is a last minute hack to work around the fact that"," // DT doesn't use a tableView to render table content that can be"," // replaced with a scrolling table view. This must be removed asap!"," sort : Y.bind('_afterScrollSort', this)"," });",""," this.after(['dataChange', '*:add', '*:remove', '*:reset', '*:change'],"," Y.bind('_afterScrollDataChange', this));"," },",""," /**"," Clears the lock and timer used to manage synchronizing the scroll position"," between the vertical scroll container and the virtual scrollbar.",""," @method _clearScrollLock"," @protected"," @since 3.5.0"," **/"," _clearScrollLock: function () {"," if (this._scrollLock) {"," this._scrollLock.cancel();"," delete this._scrollLock;"," }"," },",""," /**"," Creates a virtual scrollbar from the `_SCROLLBAR_TEMPLATE`, assigning it to"," the `_scrollbarNode` property.",""," @method _createScrollbar"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createScrollbar: function () {"," var scrollbar = this._scrollbarNode;",""," if (!scrollbar) {"," scrollbar = this._scrollbarNode = Y.Node.create("," Y.Lang.sub(this._SCROLLBAR_TEMPLATE, {"," className: this.getClassName('scrollbar')"," }));",""," // IE 6-10 require the scrolled area to be visible (at least 1px)"," // or they don't respond to clicking on the scrollbar rail or arrows"," scrollbar.setStyle('width', (Y.DOM.getScrollbarWidth() + 1) + 'px');"," }",""," return scrollbar;"," },",""," /**"," Creates a separate table to contain the caption when the table is"," configured to scroll vertically or horizontally.",""," @method _createScrollCaptionTable"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createScrollCaptionTable: function () {"," if (!this._captionTable) {"," this._captionTable = Y.Node.create("," Y.Lang.sub(this._CAPTION_TABLE_TEMPLATE, {"," className: this.getClassName('caption', 'table')"," }));",""," this._captionTable.empty();"," }",""," return this._captionTable;"," },",""," /**"," Populates the `_xScrollNode` property by creating the `` Node described"," by the `_X_SCROLLER_TEMPLATE`.",""," @method _createXScrollNode"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createXScrollNode: function () {"," if (!this._xScrollNode) {"," this._xScrollNode = Y.Node.create("," Y.Lang.sub(this._X_SCROLLER_TEMPLATE, {"," className: this.getClassName('x','scroller')"," }));"," }",""," return this._xScrollNode;"," },",""," /**"," Populates the `_yScrollHeader` property by creating the `` Node"," described by the `_Y_SCROLL_HEADER_TEMPLATE`.",""," @method _createYScrollHeader"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createYScrollHeader: function () {"," var fixedHeader = this._yScrollHeader;",""," if (!fixedHeader) {"," fixedHeader = this._yScrollHeader = Y.Node.create("," Y.Lang.sub(this._Y_SCROLL_HEADER_TEMPLATE, {"," className: this.getClassName('scroll','columns')"," }));"," }",""," return fixedHeader;"," },",""," /**"," Populates the `_yScrollNode` property by creating the `` Node described"," by the `_Y_SCROLLER_TEMPLATE`.",""," @method _createYScrollNode"," @return {Node} The created Node"," @protected"," @since 3.5.0"," **/"," _createYScrollNode: function () {"," var scrollerClass;",""," if (!this._yScrollNode) {"," scrollerClass = this.getClassName('y', 'scroller');",""," this._yScrollContainer = Y.Node.create("," Y.Lang.sub(this._Y_SCROLLER_TEMPLATE, {"," className: this.getClassName('y','scroller','container'),"," scrollerClassName: scrollerClass"," }));",""," this._yScrollNode = this._yScrollContainer"," .one('.' + scrollerClass);"," }",""," return this._yScrollContainer;"," },",""," /**"," Removes the nodes used to create horizontal and vertical scrolling and"," rejoins the caption to the main table if needed.",""," @method _disableScrolling"," @protected"," @since 3.5.0"," **/"," _disableScrolling: function () {"," this._removeScrollCaptionTable();"," this._disableXScrolling();"," this._disableYScrolling();"," this._unbindScrollResize();",""," this._uiSetWidth(this.get('width'));"," },",""," /**"," Removes the nodes used to allow horizontal scrolling.",""," @method _disableXScrolling"," @protected"," @since 3.5.0"," **/"," _disableXScrolling: function () {"," this._removeXScrollNode();"," },",""," /**"," Removes the nodes used to allow vertical scrolling.",""," @method _disableYScrolling"," @protected"," @since 3.5.0"," **/"," _disableYScrolling: function () {"," this._removeYScrollHeader();"," this._removeYScrollNode();"," this._removeYScrollContainer();"," this._removeScrollbar();"," },",""," /**"," Cleans up external event subscriptions.",""," @method destructor"," @protected"," @since 3.5.0"," **/"," destructor: function () {"," this._unbindScrollbar();"," this._unbindScrollResize();"," this._clearScrollLock();"," },",""," /**"," Sets up event handlers and AOP advice methods to bind the DataTable's natural"," behaviors with the scrolling APIs and state.",""," @method initializer"," @param {Object} config The config object passed to the constructor (ignored)"," @protected"," @since 3.5.0"," **/"," initializer: function () {"," this._setScrollProperties();",""," this.after(['scrollableChange', 'heightChange', 'widthChange'],"," this._setScrollProperties);",""," this.after('renderView', Y.bind('_syncScrollUI', this));",""," Y.Do.after(this._bindScrollUI, this, 'bindUI');"," },",""," /**"," Removes the table used to house the caption when the table is scrolling.",""," @method _removeScrollCaptionTable"," @protected"," @since 3.5.0"," **/"," _removeScrollCaptionTable: function () {"," if (this._captionTable) {"," if (this._captionNode) {"," this._tableNode.prepend(this._captionNode);"," }",""," this._captionTable.remove().destroy(true);",""," delete this._captionTable;"," }"," },",""," /**"," Removes the `` wrapper used to contain the data table when the table"," is horizontally scrolling.",""," @method _removeXScrollNode"," @protected"," @since 3.5.0"," **/"," _removeXScrollNode: function () {"," var scroller = this._xScrollNode;",""," if (scroller) {"," scroller.replace(scroller.get('childNodes').toFrag());"," scroller.remove().destroy(true);",""," delete this._xScrollNode;"," }"," },",""," /**"," Removes the `` wrapper used to contain the data table and fixed header"," when the table is vertically scrolling.",""," @method _removeYScrollContainer"," @protected"," @since 3.5.0"," **/"," _removeYScrollContainer: function () {"," var scroller = this._yScrollContainer;",""," if (scroller) {"," scroller.replace(scroller.get('childNodes').toFrag());"," scroller.remove().destroy(true);",""," delete this._yScrollContainer;"," }"," },",""," /**"," Removes the `` used to contain the fixed column headers when the"," table is vertically scrolling.",""," @method _removeYScrollHeader"," @protected"," @since 3.5.0"," **/"," _removeYScrollHeader: function () {"," if (this._yScrollHeader) {"," this._yScrollHeader.remove().destroy(true);",""," delete this._yScrollHeader;"," }"," },",""," /**"," Removes the `` wrapper used to contain the data table when the table"," is vertically scrolling.",""," @method _removeYScrollNode"," @protected"," @since 3.5.0"," **/"," _removeYScrollNode: function () {"," var scroller = this._yScrollNode;",""," if (scroller) {"," scroller.replace(scroller.get('childNodes').toFrag());"," scroller.remove().destroy(true);",""," delete this._yScrollNode;"," }"," },",""," /**"," Removes the virtual scrollbar used by scrolling tables.",""," @method _removeScrollbar"," @protected"," @since 3.5.0"," **/"," _removeScrollbar: function () {"," if (this._scrollbarNode) {"," this._scrollbarNode.remove().destroy(true);",""," delete this._scrollbarNode;"," }"," if (this._scrollbarEventHandle) {"," this._scrollbarEventHandle.detach();",""," delete this._scrollbarEventHandle;"," }"," },",""," /**"," Accepts (case insensitive) values \"x\", \"y\", \"xy\", `true`, and `false`."," `true` is translated to \"xy\" and upper case values are converted to lower"," case. All other values are invalid.",""," @method _setScrollable"," @param {String|Boolea} val Incoming value for the `scrollable` attribute"," @return {String}"," @protected"," @since 3.5.0"," **/"," _setScrollable: function (val) {"," if (val === true) {"," val = 'xy';"," }",""," if (isString(val)) {"," val = val.toLowerCase();"," }",""," return (val === false || val === 'y' || val === 'x' || val === 'xy') ?"," val :"," Y.Attribute.INVALID_VALUE;"," },",""," /**"," Assigns the `_xScroll` and `_yScroll` properties to true if an"," appropriate value is set in the `scrollable` attribute and the `height`"," and/or `width` is set.",""," @method _setScrollProperties"," @protected"," @since 3.5.0"," **/"," _setScrollProperties: function () {"," var scrollable = this.get('scrollable') || '',"," width = this.get('width'),"," height = this.get('height');",""," this._xScroll = width && scrollable.indexOf('x') > -1;"," this._yScroll = height && scrollable.indexOf('y') > -1;"," },",""," /**"," Keeps the virtual scrollbar and the scrolling `` wrapper around the"," data table in vertically scrolling tables in sync.",""," @method _syncScrollPosition"," @param {DOMEventFacade} e The scroll event"," @protected"," @since 3.5.0"," **/"," _syncScrollPosition: function (e) {"," var scrollbar = this._scrollbarNode,"," scroller = this._yScrollNode,"," source = e.currentTarget,"," other;",""," if (scrollbar && scroller) {"," if (this._scrollLock && this._scrollLock.source !== source) {"," return;"," }",""," this._clearScrollLock();"," this._scrollLock = Y.later(300, this, this._clearScrollLock);"," this._scrollLock.source = source;",""," other = (source === scrollbar) ? scroller : scrollbar;"," other.set('scrollTop', source.get('scrollTop'));"," }"," },",""," /**"," Splits the caption from the data `` if the table is configured to"," scroll. If not, rejoins the caption to the data `` if it needs to"," be.",""," @method _syncScrollCaptionUI"," @protected"," @since 3.5.0"," **/"," _syncScrollCaptionUI: function () {"," var caption = this._captionNode,"," table = this._tableNode,"," captionTable = this._captionTable,"," id;",""," if (caption) {"," id = caption.getAttribute('id');",""," if (!captionTable) {"," captionTable = this._createScrollCaptionTable();",""," this.get('contentBox').prepend(captionTable);"," }",""," if (!caption.get('parentNode').compareTo(captionTable)) {"," captionTable.empty().insert(caption);",""," if (!id) {"," id = Y.stamp(caption);"," caption.setAttribute('id', id);"," }",""," table.setAttribute('aria-describedby', id);"," }"," } else if (captionTable) {"," this._removeScrollCaptionTable();"," }"," },",""," /**"," Assigns widths to the fixed header columns to match the columns in the data"," table.",""," @method _syncScrollColumnWidths"," @protected"," @since 3.5.0"," **/"," _syncScrollColumnWidths: function () {"," var widths = [];",""," if (this._theadNode && this._yScrollHeader) {"," // Capture dims and assign widths in two passes to avoid reflows for"," // each access of clientWidth/getComputedStyle"," this._theadNode.all('.' + this.getClassName('header'))"," .each(function (header) {"," widths.push("," // FIXME: IE returns the col.style.width from"," // getComputedStyle even if the column has been"," // compressed below that width, so it must use"," // clientWidth. FF requires getComputedStyle because it"," // uses fractional widths that round up to an overall"," // cell/table width 1px greater than the data table's"," // cell/table width, resulting in misaligned columns or"," // fixed header bleed through. I can't think of a"," // *reasonable* way to capture the correct width without"," // a sniff. Math.min(cW - p, getCS(w)) was imperfect"," // and punished all browsers, anyway."," (Y.UA.ie && Y.UA.ie < 8) ?"," (header.get('clientWidth') -"," styleDim(header, 'paddingLeft') -"," styleDim(header, 'paddingRight')) + 'px' :"," header.getComputedStyle('width'));"," });",""," this._yScrollHeader.all('.' + this.getClassName('scroll', 'liner'))"," .each(function (liner, i) {"," liner.setStyle('width', widths[i]);"," });"," }"," },",""," /**"," Creates matching headers in the fixed header table for vertically scrolling"," tables and synchronizes the column widths.",""," @method _syncScrollHeaders"," @protected"," @since 3.5.0"," **/"," _syncScrollHeaders: function () {"," var fixedHeader = this._yScrollHeader,"," linerTemplate = this._SCROLL_LINER_TEMPLATE,"," linerClass = this.getClassName('scroll', 'liner'),"," headerClass = this.getClassName('header'),"," headers = this._theadNode.all('.' + headerClass);",""," if (this._theadNode && fixedHeader) {"," fixedHeader.empty().appendChild("," this._theadNode.cloneNode(true));",""," // Prevent duplicate IDs and assign ARIA attributes to hide"," // from screen readers"," fixedHeader.all('[id]').removeAttribute('id');",""," fixedHeader.all('.' + headerClass).each(function (header, i) {"," var liner = Y.Node.create(Y.Lang.sub(linerTemplate, {"," className: linerClass"," })),"," refHeader = headers.item(i);",""," // Can't assign via skin css because sort (and potentially"," // others) might override the padding values."," liner.setStyle('padding',"," refHeader.getComputedStyle('paddingTop') + ' ' +"," refHeader.getComputedStyle('paddingRight') + ' ' +"," refHeader.getComputedStyle('paddingBottom') + ' ' +"," refHeader.getComputedStyle('paddingLeft'));",""," liner.appendChild(header.get('childNodes').toFrag());",""," header.appendChild(liner);"," }, this);",""," this._syncScrollColumnWidths();",""," this._addScrollbarPadding();"," }"," },",""," /**"," Wraps the table for X and Y scrolling, if necessary, if the `scrollable`"," attribute is set. Synchronizes dimensions and DOM placement of all"," scrolling related nodes.",""," @method _syncScrollUI"," @protected"," @since 3.5.0"," **/"," _syncScrollUI: function () {"," var x = this._xScroll,"," y = this._yScroll,"," xScroller = this._xScrollNode,"," yScroller = this._yScrollNode,"," scrollLeft = xScroller && xScroller.get('scrollLeft'),"," scrollTop = yScroller && yScroller.get('scrollTop');",""," this._uiSetScrollable();",""," // TODO: Probably should split this up into syncX, syncY, and syncXY"," if (x || y) {"," if ((this.get('width') || '').slice(-1) === '%') {"," this._bindScrollResize();"," } else {"," this._unbindScrollResize();"," }",""," this._syncScrollCaptionUI();"," } else {"," this._disableScrolling();"," }",""," if (this._yScrollHeader) {"," this._yScrollHeader.setStyle('display', 'none');"," }",""," if (x) {"," if (!y) {"," this._disableYScrolling();"," }",""," this._syncXScrollUI(y);"," }",""," if (y) {"," if (!x) {"," this._disableXScrolling();"," }",""," this._syncYScrollUI(x);"," }",""," // Restore scroll position"," if (scrollLeft && this._xScrollNode) {"," this._xScrollNode.set('scrollLeft', scrollLeft);"," }"," if (scrollTop && this._yScrollNode) {"," this._yScrollNode.set('scrollTop', scrollTop);"," }"," },",""," /**"," Wraps the table in a scrolling `` of the configured width for \"x\""," scrolling.",""," @method _syncXScrollUI"," @param {Boolean} xy True if the table is configured with scrollable =\"xy\""," @protected"," @since 3.5.0"," **/"," _syncXScrollUI: function (xy) {"," var scroller = this._xScrollNode,"," yScroller = this._yScrollContainer,"," table = this._tableNode,"," width = this.get('width'),"," bbWidth = this.get('boundingBox').get('offsetWidth'),"," scrollbarWidth = Y.DOM.getScrollbarWidth(),"," borderWidth, tableWidth;",""," if (!scroller) {"," scroller = this._createXScrollNode();",""," // Not using table.wrap() because IE went all crazy, wrapping the"," // table in the last td in the table itself."," (yScroller || table).replace(scroller).appendTo(scroller);"," }",""," // Can't use offsetHeight - clientHeight because IE6 returns"," // clientHeight of 0 intially."," borderWidth = styleDim(scroller, 'borderLeftWidth') +"," styleDim(scroller, 'borderRightWidth');",""," scroller.setStyle('width', '');"," this._uiSetDim('width', '');"," if (xy && this._yScrollContainer) {"," this._yScrollContainer.setStyle('width', '');"," }",""," // Lock the table's unconstrained width to avoid configured column"," // widths being ignored"," if (Y.UA.ie && Y.UA.ie < 8) {"," // Have to assign a style and trigger a reflow to allow the"," // subsequent clearing of width + reflow to expand the table to"," // natural width in IE 6"," table.setStyle('width', width);"," table.get('offsetWidth');"," }"," table.setStyle('width', '');"," tableWidth = table.get('offsetWidth');"," table.setStyle('width', tableWidth + 'px');",""," this._uiSetDim('width', width);",""," // Can't use 100% width because the borders add additional width"," // TODO: Cache the border widths, though it won't prevent a reflow"," scroller.setStyle('width', (bbWidth - borderWidth) + 'px');",""," // expand the table to fill the assigned width if it doesn't"," // already overflow the configured width"," if ((scroller.get('offsetWidth') - borderWidth) > tableWidth) {"," // Assumes the wrapped table doesn't have borders"," if (xy) {"," table.setStyle('width', (scroller.get('offsetWidth') -"," borderWidth - scrollbarWidth) + 'px');"," } else {"," table.setStyle('width', '100%');"," }"," }"," },",""," /**"," Wraps the table in a scrolling `` of the configured height (accounting"," for the caption if there is one) if \"y\" scrolling is enabled. Otherwise,"," unwraps the table if necessary.",""," @method _syncYScrollUI"," @param {Boolean} xy True if the table is configured with scrollable = \"xy\""," @protected"," @since 3.5.0"," **/"," _syncYScrollUI: function (xy) {"," var yScroller = this._yScrollContainer,"," yScrollNode = this._yScrollNode,"," xScroller = this._xScrollNode,"," fixedHeader = this._yScrollHeader,"," scrollbar = this._scrollbarNode,"," table = this._tableNode,"," thead = this._theadNode,"," captionTable = this._captionTable,"," boundingBox = this.get('boundingBox'),"," contentBox = this.get('contentBox'),"," width = this.get('width'),"," height = boundingBox.get('offsetHeight'),"," scrollbarWidth = Y.DOM.getScrollbarWidth(),"," outerScroller;",""," if (captionTable && !xy) {"," captionTable.setStyle('width', width || '100%');"," }",""," if (!yScroller) {"," yScroller = this._createYScrollNode();",""," yScrollNode = this._yScrollNode;",""," table.replace(yScroller).appendTo(yScrollNode);"," }",""," outerScroller = xy ? xScroller : yScroller;",""," if (!xy) {"," table.setStyle('width', '');"," }",""," // Set the scroller height"," if (xy) {"," // Account for the horizontal scrollbar in the overall height"," height -= scrollbarWidth;"," }",""," yScrollNode.setStyle('height',"," (height - outerScroller.get('offsetTop') -"," // because IE6 is returning clientHeight 0 initially"," styleDim(outerScroller, 'borderTopWidth') -"," styleDim(outerScroller, 'borderBottomWidth')) + 'px');",""," // Set the scroller width"," if (xy) {"," // For xy scrolling tables, the table should expand freely within"," // the x scroller"," yScroller.setStyle('width',"," (table.get('offsetWidth') + scrollbarWidth) + 'px');"," } else {"," this._uiSetYScrollWidth(width);"," }",""," if (captionTable && !xy) {"," captionTable.setStyle('width', yScroller.get('offsetWidth') + 'px');"," }",""," // Allow headerless scrolling"," if (thead && !fixedHeader) {"," fixedHeader = this._createYScrollHeader();",""," yScroller.prepend(fixedHeader);",""," this._syncScrollHeaders();"," }",""," if (fixedHeader) {"," this._syncScrollColumnWidths();",""," fixedHeader.setStyle('display', '');"," // This might need to come back if FF has issues"," //fixedHeader.setStyle('width', '100%');"," //(yScroller.get('clientWidth') + scrollbarWidth) + 'px');",""," if (!scrollbar) {"," scrollbar = this._createScrollbar();",""," this._bindScrollbar();",""," contentBox.prepend(scrollbar);"," }",""," this._uiSetScrollbarHeight();"," this._uiSetScrollbarPosition(outerScroller);"," }"," },",""," /**"," Assigns the appropriate class to the `boundingBox` to identify the DataTable"," as horizontally scrolling, vertically scrolling, or both (adds both classes).",""," Classes added are \"yui3-datatable-scrollable-x\" or \"...-y\"",""," @method _uiSetScrollable"," @protected"," @since 3.5.0"," **/"," _uiSetScrollable: function () {"," this.get('boundingBox')"," .toggleClass(this.getClassName('scrollable','x'), this._xScroll)"," .toggleClass(this.getClassName('scrollable','y'), this._yScroll);"," },",""," /**"," Updates the virtual scrollbar's height to avoid overlapping with the fixed"," headers.",""," @method _uiSetScrollbarHeight"," @protected"," @since 3.5.0"," **/"," _uiSetScrollbarHeight: function () {"," var scrollbar = this._scrollbarNode,"," scroller = this._yScrollNode,"," fixedHeader = this._yScrollHeader;",""," if (scrollbar && scroller && fixedHeader) {"," scrollbar.get('firstChild').setStyle('height',"," this._tbodyNode.get('scrollHeight') + 'px');",""," scrollbar.setStyle('height', "," (parseFloat(scroller.getComputedStyle('height')) -"," parseFloat(fixedHeader.getComputedStyle('height'))) + 'px');"," }"," },",""," /**"," Updates the virtual scrollbar's placement to avoid overlapping the fixed"," headers or the data table.",""," @method _uiSetScrollbarPosition"," @param {Node} scroller Reference node to position the scrollbar over"," @protected"," @since 3.5.0"," **/"," _uiSetScrollbarPosition: function (scroller) {"," var scrollbar = this._scrollbarNode,"," fixedHeader = this._yScrollHeader;",""," if (scrollbar && scroller && fixedHeader) {"," scrollbar.setStyles({"," // Using getCS instead of offsetHeight because FF uses"," // fractional values, but reports ints to offsetHeight, so"," // offsetHeight is unreliable. It is probably fine to use"," // offsetHeight in this case but this was left in place after"," // fixing an off-by-1px issue in FF 10- by fixing the caption"," // font style so FF picked it up."," top: (parseFloat(fixedHeader.getComputedStyle('height')) +"," styleDim(scroller, 'borderTopWidth') +"," scroller.get('offsetTop')) + 'px',",""," // Minus 1 because IE 6-10 require the scrolled area to be"," // visible by at least 1px or it won't respond to clicks on the"," // scrollbar rail or endcap arrows."," left: (scroller.get('offsetWidth') -"," Y.DOM.getScrollbarWidth() - 1 -"," styleDim(scroller, 'borderRightWidth')) + 'px'"," });"," }"," },",""," /**"," Assigns the width of the `` wrapping the data table in vertically"," scrolling tables.",""," If the table can't compress to the specified width, the container is"," expanded accordingly.",""," @method _uiSetYScrollWidth"," @param {String} width The CSS width to attempt to set"," @protected"," @since 3.5.0"," **/"," _uiSetYScrollWidth: function (width) {"," var scroller = this._yScrollContainer,"," table = this._tableNode,"," tableWidth, borderWidth, scrollerWidth, scrollbarWidth;",""," if (scroller && table) {"," scrollbarWidth = Y.DOM.getScrollbarWidth();",""," if (width) {"," // Assumes no table border"," borderWidth = scroller.get('offsetWidth') -"," scroller.get('clientWidth') +"," scrollbarWidth; // added back at the end",""," // The table's rendered width might be greater than the"," // configured width"," scroller.setStyle('width', width);",""," // Have to subtract the border width from the configured width"," // because the scroller's width will need to be reduced by the"," // border width as well during the width reassignment below."," scrollerWidth = scroller.get('clientWidth') - borderWidth;",""," // Assumes no table borders"," table.setStyle('width', scrollerWidth + 'px');",""," tableWidth = table.get('offsetWidth');",""," // Expand the scroll node width if the table can't fit."," // Otherwise, reassign the scroller a pixel width that"," // accounts for the borders."," scroller.setStyle('width',"," (tableWidth + scrollbarWidth) + 'px');"," } else {"," // Allow the table to expand naturally"," table.setStyle('width', '');"," scroller.setStyle('width', '');",""," scroller.setStyle('width',"," (table.get('offsetWidth') + scrollbarWidth) + 'px');"," }"," }"," },",""," /**"," Detaches the scroll event subscriptions used to maintain scroll position"," parity between the scrollable `` wrapper around the data table and the"," virtual scrollbar for vertically scrolling tables.",""," @method _unbindScrollbar"," @protected"," @since 3.5.0"," **/"," _unbindScrollbar: function () {"," if (this._scrollbarEventHandle) {"," this._scrollbarEventHandle.detach();"," }"," },",""," /**"," Detaches the resize event subscription used to maintain column parity for"," vertically scrolling tables with percentage widths.",""," @method _unbindScrollResize"," @protected"," @since 3.5.0"," **/"," _unbindScrollResize: function () {"," if (this._scrollResizeHandle) {"," this._scrollResizeHandle.detach();"," delete this._scrollResizeHandle;"," }"," }",""," /**"," Indicates horizontal table scrolling is enabled.",""," @property _xScroll"," @type {Boolean}"," @default undefined (not initially set)"," @private"," @since 3.5.0"," **/"," //_xScroll: null,",""," /**"," Indicates vertical table scrolling is enabled.",""," @property _yScroll"," @type {Boolean}"," @default undefined (not initially set)"," @private"," @since 3.5.0"," **/"," //_yScroll: null,",""," /**"," Fixed column header `` Node for vertical scrolling tables.",""," @property _yScrollHeader"," @type {Node}"," @default undefined (not initially set)"," @protected"," @since 3.5.0"," **/"," //_yScrollHeader: null,",""," /**"," Overflow Node used to contain the data rows in a vertically scrolling table.",""," @property _yScrollNode"," @type {Node}"," @default undefined (not initially set)"," @protected"," @since 3.5.0"," **/"," //_yScrollNode: null,",""," /**"," Overflow Node used to contain the table headers and data in a horizontally"," scrolling table.",""," @property _xScrollNode"," @type {Node}"," @default undefined (not initially set)"," @protected"," @since 3.5.0"," **/"," //_xScrollNode: null","}, true);","","Y.Base.mix(Y.DataTable, [Scrollable]);","","","}, '3.7.2', {\"requires\": [\"datatable-base\", \"datatable-column-widths\", \"dom-screen\"], \"skinnable\": true});"];
_yuitest_coverage["build/datatable-scroll/datatable-scroll.js"].lines = {"1":0,"11":0,"19":0,"20":0,"53":0,"55":0,"78":0,"96":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"108":0,"111":0,"114":0,"202":0,"206":0,"207":0,"208":0,"210":0,"211":0,"212":0,"227":0,"229":0,"230":0,"231":0,"233":0,"234":0,"238":0,"251":0,"252":0,"267":0,"268":0,"269":0,"272":0,"286":0,"287":0,"304":0,"305":0,"318":0,"320":0,"321":0,"322":0,"324":0,"325":0,"342":0,"343":0,"356":0,"359":0,"360":0,"376":0,"379":0,"396":0,"408":0,"421":0,"422":0,"423":0,"437":0,"439":0,"440":0,"447":0,"450":0,"463":0,"464":0,"469":0,"472":0,"485":0,"486":0,"492":0,"505":0,"507":0,"508":0,"514":0,"527":0,"529":0,"530":0,"532":0,"538":0,"542":0,"554":0,"555":0,"556":0,"557":0,"559":0,"570":0,"581":0,"582":0,"583":0,"584":0,"595":0,"596":0,"597":0,"610":0,"612":0,"615":0,"617":0,"628":0,"629":0,"630":0,"633":0,"635":0,"648":0,"650":0,"651":0,"652":0,"654":0,"667":0,"669":0,"670":0,"671":0,"673":0,"686":0,"687":0,"689":0,"702":0,"704":0,"705":0,"706":0,"708":0,"720":0,"721":0,"723":0,"725":0,"726":0,"728":0,"744":0,"745":0,"748":0,"749":0,"752":0,"767":0,"771":0,"772":0,"785":0,"790":0,"791":0,"792":0,"795":0,"796":0,"797":0,"799":0,"800":0,"814":0,"819":0,"820":0,"822":0,"823":0,"825":0,"828":0,"829":0,"831":0,"832":0,"833":0,"836":0,"838":0,"839":0,"852":0,"854":0,"857":0,"859":0,"878":0,"880":0,"894":0,"900":0,"901":0,"906":0,"908":0,"909":0,"916":0,"922":0,"924":0,"927":0,"929":0,"943":0,"950":0,"953":0,"954":0,"955":0,"957":0,"960":0,"962":0,"965":0,"966":0,"969":0,"970":0,"971":0,"974":0,"977":0,"978":0,"979":0,"982":0,"986":0,"987":0,"989":0,"990":0,"1004":0,"1012":0,"1013":0,"1017":0,"1022":0,"1025":0,"1026":0,"1027":0,"1028":0,"1033":0,"1037":0,"1038":0,"1040":0,"1041":0,"1042":0,"1044":0,"1048":0,"1052":0,"1054":0,"1055":0,"1058":0,"1074":0,"1089":0,"1090":0,"1093":0,"1094":0,"1096":0,"1098":0,"1101":0,"1103":0,"1104":0,"1108":0,"1110":0,"1113":0,"1120":0,"1123":0,"1126":0,"1129":0,"1130":0,"1134":0,"1135":0,"1137":0,"1139":0,"1142":0,"1143":0,"1145":0,"1150":0,"1151":0,"1153":0,"1155":0,"1158":0,"1159":0,"1174":0,"1188":0,"1192":0,"1193":0,"1196":0,"1212":0,"1215":0,"1216":0,"1250":0,"1254":0,"1255":0,"1257":0,"1259":0,"1265":0,"1270":0,"1273":0,"1275":0,"1280":0,"1284":0,"1285":0,"1287":0,"1303":0,"1304":0,"1317":0,"1318":0,"1319":0,"1380":0};
_yuitest_coverage["build/datatable-scroll/datatable-scroll.js"].functions = {"styleDim:19":0,"scrollTo:95":0,"_addScrollbarPadding:201":0,"_afterScrollableChange:226":0,"_afterScrollCaptionChange:250":0,"_afterScrollColumnsChange:266":0,"_afterScrollDataChange:285":0,"_afterScrollHeightChange:303":0,"(anonymous 2):324":0,"_afterScrollSort:317":0,"_afterScrollWidthChange:341":0,"_bindScrollbar:355":0,"_bindScrollResize:375":0,"_bindScrollUI:395":0,"_clearScrollLock:420":0,"_createScrollbar:436":0,"_createScrollCaptionTable:462":0,"_createXScrollNode:484":0,"_createYScrollHeader:504":0,"_createYScrollNode:526":0,"_disableScrolling:553":0,"_disableXScrolling:569":0,"_disableYScrolling:580":0,"destructor:594":0,"initializer:609":0,"_removeScrollCaptionTable:627":0,"_removeXScrollNode:647":0,"_removeYScrollContainer:666":0,"_removeYScrollHeader:685":0,"_removeYScrollNode:701":0,"_removeScrollbar:719":0,"_setScrollable:743":0,"_setScrollProperties:766":0,"_syncScrollPosition:784":0,"_syncScrollCaptionUI:813":0,"(anonymous 3):858":0,"(anonymous 4):879":0,"_syncScrollColumnWidths:851":0,"(anonymous 5):908":0,"_syncScrollHeaders:893":0,"_syncScrollUI:942":0,"_syncXScrollUI:1003":0,"_syncYScrollUI:1073":0,"_uiSetScrollable:1173":0,"_uiSetScrollbarHeight:1187":0,"_uiSetScrollbarPosition:1211":0,"_uiSetYScrollWidth:1249":0,"_unbindScrollbar:1302":0,"_unbindScrollResize:1316":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-scroll/datatable-scroll.js"].coveredLines = 278;
@@ -1747,4 +1747,4 @@ _yuitest_coverline("build/datatable-scroll/datatable-scroll.js", 1380);
Y.Base.mix(Y.DataTable, [Scrollable]);
-}, '3.7.1', {"requires": ["datatable-base", "datatable-column-widths", "dom-screen"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-base", "datatable-column-widths", "dom-screen"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll-debug.js b/lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll-debug.js
rename to lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll-debug.js
index 6ff21ab17dd..283c50a68e9 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1386,4 +1386,4 @@ Y.mix(Scrollable.prototype, {
Y.Base.mix(Y.DataTable, [Scrollable]);
-}, '3.7.1', {"requires": ["datatable-base", "datatable-column-widths", "dom-screen"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-base", "datatable-column-widths", "dom-screen"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll-min.js b/lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll-min.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll-min.js
rename to lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll-min.js
index 40fb6bbfd34..6ea42e6a5ac 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-scroll",function(e,t){function u(e,t){return parseInt(e.getComputedStyle(t),10)|0}var n=e.Lang,r=n.isString,i=n.isNumber,s=n.isArray,o;e.DataTable.Scrollable=o=function(){},o.ATTRS={scrollable:{value:!1,setter:"_setScrollable"}},e.mix(o.prototype,{scrollTo:function(t){var n;return t&&this._tbodyNode&&(this._yScrollNode||this._xScrollNode)&&(s(t)?n=this.getCell(t):i(t)?n=this.getRow(t):r(t)?n=this._tbodyNode.one("#"+t):t instanceof e.Node&&t.ancestor(".yui3-datatable")===this.get("boundingBox")&&(n=t),n&&n.scrollIntoView()),this},_CAPTION_TABLE_TEMPLATE:'
',_SCROLL_LINER_TEMPLATE:'',_SCROLLBAR_TEMPLATE:'',_X_SCROLLER_TEMPLATE:'',_Y_SCROLL_HEADER_TEMPLATE:'',_Y_SCROLLER_TEMPLATE:'',_addScrollbarPadding:function(){var t=this._yScrollHeader,n="."+this.getClassName("header"),r,i,s,o,u;if(t){r=e.DOM.getScrollbarWidth()+"px",i=t.all("tr");for(o=0,u=i.size();o-1,this._yScroll=n&&e.indexOf("y")>-1},_syncScrollPosition:function(t){var n=this._scrollbarNode,r=this._yScrollNode,i=t.currentTarget,s;if(n&&r){if(this._scrollLock&&this._scrollLock.source!==i)return;this._clearScrollLock(),this._scrollLock=e.later(300,this,this._clearScrollLock),this._scrollLock.source=i,s=i===n?r:n,s.set("scrollTop",i.get("scrollTop"))}},_syncScrollCaptionUI:function(){var t=this._captionNode,n=this._tableNode,r=this._captionTable,i;t?(i=t.getAttribute("id"),r||(r=this._createScrollCaptionTable(),this.get("contentBox").prepend(r)),t.get("parentNode").compareTo(r)||(r.empty().insert(t),i||(i=e.stamp(t),t.setAttribute("id",i)),n.setAttribute("aria-describedby",i))):r&&this._removeScrollCaptionTable()},_syncScrollColumnWidths:function(){var t=[];this._theadNode&&this._yScrollHeader&&(this._theadNode.all("."+this.getClassName("header")).each(function(n){t.push(e.UA.ie&&e.UA.ie<8?n.get("clientWidth")-u(n,"paddingLeft")-u(n,"paddingRight")+"px":n.getComputedStyle("width"))}),this._yScrollHeader.all("."+this.getClassName("scroll","liner")).each(function(e,n){e.setStyle("width",t[n])}))},_syncScrollHeaders:function(){var t=this._yScrollHeader,n=this._SCROLL_LINER_TEMPLATE,r=this.getClassName("scroll","liner"),i=this.getClassName("header"),s=this._theadNode.all("."+i);this._theadNode&&t&&(t.empty().appendChild(this._theadNode.cloneNode(!0)),t.all("[id]").removeAttribute("id"),t.all("."+i).each(function(t,i){var o=e.Node.create(e.Lang.sub(n,{className:r})),u=s.item(i);o.setStyle("padding",u.getComputedStyle("paddingTop")+" "+u.getComputedStyle("paddingRight")+" "+u.getComputedStyle("paddingBottom")+" "+u.getComputedStyle("paddingLeft")),o.appendChild(t.get("childNodes").toFrag()),t.appendChild(o)},this),this._syncScrollColumnWidths(),this._addScrollbarPadding())},_syncScrollUI:function(){var e=this._xScroll,t=this._yScroll,n=this._xScrollNode,r=this._yScrollNode,i=n&&n.get("scrollLeft"),s=r&&r.get("scrollTop");this._uiSetScrollable(),e||t?((this.get("width")||"").slice(-1)==="%"?this._bindScrollResize():this._unbindScrollResize(),this._syncScrollCaptionUI()):this._disableScrolling(),this._yScrollHeader&&this._yScrollHeader.setStyle("display","none"),e&&(t||this._disableYScrolling(),this._syncXScrollUI(t)),t&&(e||this._disableXScrolling(),this._syncYScrollUI(e)),i&&this._xScrollNode&&this._xScrollNode.set("scrollLeft",i),s&&this._yScrollNode&&this._yScrollNode.set("scrollTop",s)},_syncXScrollUI:function(t){var n=this._xScrollNode,r=this._yScrollContainer,i=this._tableNode,s=this.get("width"),o=this.get("boundingBox").get("offsetWidth"),a=e.DOM.getScrollbarWidth(),f,l;n||(n=this._createXScrollNode(),(r||i).replace(n).appendTo(n)),f=u(n,"borderLeftWidth")+u(n,"borderRightWidth"),n.setStyle("width",""),this._uiSetDim("width",""),t&&this._yScrollContainer&&this._yScrollContainer.setStyle("width",""),e.UA.ie&&e.UA.ie<8&&(i.setStyle("width",s),i.get("offsetWidth")),i.setStyle("width",""),l=i.get("offsetWidth"),i.setStyle("width",l+"px"),this._uiSetDim("width",s),n.setStyle("width",o-f+"px"),n.get("offsetWidth")-f>l&&(t?i.setStyle("width",n.get("offsetWidth")-f-a+"px"):i.setStyle("width","100%"))},_syncYScrollUI:function(t){var n=this._yScrollContainer,r=this._yScrollNode,i=this._xScrollNode,s=this._yScrollHeader,o=this._scrollbarNode,a=this._tableNode,f=this._theadNode,l=this._captionTable,c=this.get("boundingBox"),h=this.get("contentBox"),p=this.get("width"),d=c.get("offsetHeight"),v=e.DOM.getScrollbarWidth(),m;l&&!t&&l.setStyle("width",p||"100%"),n||(n=this._createYScrollNode(),r=this._yScrollNode,a.replace(n).appendTo(r)),m=t?i:n,t||a.setStyle("width",""),t&&(d-=v),r.setStyle("height",d-m.get("offsetTop")-u(m,"borderTopWidth")-u(m,"borderBottomWidth")+"px"),t?n.setStyle("width",a.get("offsetWidth")+v+"px"):this._uiSetYScrollWidth(p),l&&!t&&l.setStyle("width",n.get("offsetWidth")+"px"),f&&!s&&(s=this._createYScrollHeader(),n.prepend(s),this._syncScrollHeaders()),s&&(this._syncScrollColumnWidths(),s.setStyle("display",""),o||(o=this._createScrollbar(),this._bindScrollbar(),h.prepend(o)),this._uiSetScrollbarHeight(),this._uiSetScrollbarPosition(m))},_uiSetScrollable:function(){this.get("boundingBox").toggleClass(this.getClassName("scrollable","x"),this._xScroll).toggleClass(this.getClassName("scrollable","y"),this._yScroll)},_uiSetScrollbarHeight:function(){var e=this._scrollbarNode,t=this._yScrollNode,n=this._yScrollHeader;e&&t&&n&&(e.get("firstChild").setStyle("height",this._tbodyNode.get("scrollHeight")+"px"),e.setStyle("height",parseFloat(t.getComputedStyle("height"))-parseFloat(n.getComputedStyle("height"))+"px"))},_uiSetScrollbarPosition:function(t){var n=this._scrollbarNode,r=this._yScrollHeader;n&&t&&r&&n.setStyles({top:parseFloat(r.getComputedStyle("height"))+u(t,"borderTopWidth")+t.get("offsetTop")+"px",left:t.get("offsetWidth")-e.DOM.getScrollbarWidth()-1-u(t,"borderRightWidth")+"px"})},_uiSetYScrollWidth:function(t){var n=this._yScrollContainer,r=this._tableNode,i,s,o,u;n&&r&&(u=e.DOM.getScrollbarWidth(),t?(s=n.get("offsetWidth")-n.get("clientWidth")+u,n.setStyle("width",t),o=n.get("clientWidth")-s,r.setStyle("width",o+"px"),i=r.get("offsetWidth"),n.setStyle("width",i+u+"px")):(r.setStyle("width",""),n.setStyle("width",""),n.setStyle("width",r.get("offsetWidth")+u+"px")))},_unbindScrollbar:function(){this._scrollbarEventHandle&&this._scrollbarEventHandle.detach()},_unbindScrollResize:function(){this._scrollResizeHandle&&(this._scrollResizeHandle.detach(),delete this._scrollResizeHandle)}},!0),e.Base.mix(e.DataTable,[o])},"3.7.1",{requires:["datatable-base","datatable-column-widths","dom-screen"],skinnable:!0});
+YUI.add("datatable-scroll",function(e,t){function u(e,t){return parseInt(e.getComputedStyle(t),10)|0}var n=e.Lang,r=n.isString,i=n.isNumber,s=n.isArray,o;e.DataTable.Scrollable=o=function(){},o.ATTRS={scrollable:{value:!1,setter:"_setScrollable"}},e.mix(o.prototype,{scrollTo:function(t){var n;return t&&this._tbodyNode&&(this._yScrollNode||this._xScrollNode)&&(s(t)?n=this.getCell(t):i(t)?n=this.getRow(t):r(t)?n=this._tbodyNode.one("#"+t):t instanceof e.Node&&t.ancestor(".yui3-datatable")===this.get("boundingBox")&&(n=t),n&&n.scrollIntoView()),this},_CAPTION_TABLE_TEMPLATE:'
',_SCROLL_LINER_TEMPLATE:'',_SCROLLBAR_TEMPLATE:'',_X_SCROLLER_TEMPLATE:'',_Y_SCROLL_HEADER_TEMPLATE:'',_Y_SCROLLER_TEMPLATE:'',_addScrollbarPadding:function(){var t=this._yScrollHeader,n="."+this.getClassName("header"),r,i,s,o,u;if(t){r=e.DOM.getScrollbarWidth()+"px",i=t.all("tr");for(o=0,u=i.size();o-1,this._yScroll=n&&e.indexOf("y")>-1},_syncScrollPosition:function(t){var n=this._scrollbarNode,r=this._yScrollNode,i=t.currentTarget,s;if(n&&r){if(this._scrollLock&&this._scrollLock.source!==i)return;this._clearScrollLock(),this._scrollLock=e.later(300,this,this._clearScrollLock),this._scrollLock.source=i,s=i===n?r:n,s.set("scrollTop",i.get("scrollTop"))}},_syncScrollCaptionUI:function(){var t=this._captionNode,n=this._tableNode,r=this._captionTable,i;t?(i=t.getAttribute("id"),r||(r=this._createScrollCaptionTable(),this.get("contentBox").prepend(r)),t.get("parentNode").compareTo(r)||(r.empty().insert(t),i||(i=e.stamp(t),t.setAttribute("id",i)),n.setAttribute("aria-describedby",i))):r&&this._removeScrollCaptionTable()},_syncScrollColumnWidths:function(){var t=[];this._theadNode&&this._yScrollHeader&&(this._theadNode.all("."+this.getClassName("header")).each(function(n){t.push(e.UA.ie&&e.UA.ie<8?n.get("clientWidth")-u(n,"paddingLeft")-u(n,"paddingRight")+"px":n.getComputedStyle("width"))}),this._yScrollHeader.all("."+this.getClassName("scroll","liner")).each(function(e,n){e.setStyle("width",t[n])}))},_syncScrollHeaders:function(){var t=this._yScrollHeader,n=this._SCROLL_LINER_TEMPLATE,r=this.getClassName("scroll","liner"),i=this.getClassName("header"),s=this._theadNode.all("."+i);this._theadNode&&t&&(t.empty().appendChild(this._theadNode.cloneNode(!0)),t.all("[id]").removeAttribute("id"),t.all("."+i).each(function(t,i){var o=e.Node.create(e.Lang.sub(n,{className:r})),u=s.item(i);o.setStyle("padding",u.getComputedStyle("paddingTop")+" "+u.getComputedStyle("paddingRight")+" "+u.getComputedStyle("paddingBottom")+" "+u.getComputedStyle("paddingLeft")),o.appendChild(t.get("childNodes").toFrag()),t.appendChild(o)},this),this._syncScrollColumnWidths(),this._addScrollbarPadding())},_syncScrollUI:function(){var e=this._xScroll,t=this._yScroll,n=this._xScrollNode,r=this._yScrollNode,i=n&&n.get("scrollLeft"),s=r&&r.get("scrollTop");this._uiSetScrollable(),e||t?((this.get("width")||"").slice(-1)==="%"?this._bindScrollResize():this._unbindScrollResize(),this._syncScrollCaptionUI()):this._disableScrolling(),this._yScrollHeader&&this._yScrollHeader.setStyle("display","none"),e&&(t||this._disableYScrolling(),this._syncXScrollUI(t)),t&&(e||this._disableXScrolling(),this._syncYScrollUI(e)),i&&this._xScrollNode&&this._xScrollNode.set("scrollLeft",i),s&&this._yScrollNode&&this._yScrollNode.set("scrollTop",s)},_syncXScrollUI:function(t){var n=this._xScrollNode,r=this._yScrollContainer,i=this._tableNode,s=this.get("width"),o=this.get("boundingBox").get("offsetWidth"),a=e.DOM.getScrollbarWidth(),f,l;n||(n=this._createXScrollNode(),(r||i).replace(n).appendTo(n)),f=u(n,"borderLeftWidth")+u(n,"borderRightWidth"),n.setStyle("width",""),this._uiSetDim("width",""),t&&this._yScrollContainer&&this._yScrollContainer.setStyle("width",""),e.UA.ie&&e.UA.ie<8&&(i.setStyle("width",s),i.get("offsetWidth")),i.setStyle("width",""),l=i.get("offsetWidth"),i.setStyle("width",l+"px"),this._uiSetDim("width",s),n.setStyle("width",o-f+"px"),n.get("offsetWidth")-f>l&&(t?i.setStyle("width",n.get("offsetWidth")-f-a+"px"):i.setStyle("width","100%"))},_syncYScrollUI:function(t){var n=this._yScrollContainer,r=this._yScrollNode,i=this._xScrollNode,s=this._yScrollHeader,o=this._scrollbarNode,a=this._tableNode,f=this._theadNode,l=this._captionTable,c=this.get("boundingBox"),h=this.get("contentBox"),p=this.get("width"),d=c.get("offsetHeight"),v=e.DOM.getScrollbarWidth(),m;l&&!t&&l.setStyle("width",p||"100%"),n||(n=this._createYScrollNode(),r=this._yScrollNode,a.replace(n).appendTo(r)),m=t?i:n,t||a.setStyle("width",""),t&&(d-=v),r.setStyle("height",d-m.get("offsetTop")-u(m,"borderTopWidth")-u(m,"borderBottomWidth")+"px"),t?n.setStyle("width",a.get("offsetWidth")+v+"px"):this._uiSetYScrollWidth(p),l&&!t&&l.setStyle("width",n.get("offsetWidth")+"px"),f&&!s&&(s=this._createYScrollHeader(),n.prepend(s),this._syncScrollHeaders()),s&&(this._syncScrollColumnWidths(),s.setStyle("display",""),o||(o=this._createScrollbar(),this._bindScrollbar(),h.prepend(o)),this._uiSetScrollbarHeight(),this._uiSetScrollbarPosition(m))},_uiSetScrollable:function(){this.get("boundingBox").toggleClass(this.getClassName("scrollable","x"),this._xScroll).toggleClass(this.getClassName("scrollable","y"),this._yScroll)},_uiSetScrollbarHeight:function(){var e=this._scrollbarNode,t=this._yScrollNode,n=this._yScrollHeader;e&&t&&n&&(e.get("firstChild").setStyle("height",this._tbodyNode.get("scrollHeight")+"px"),e.setStyle("height",parseFloat(t.getComputedStyle("height"))-parseFloat(n.getComputedStyle("height"))+"px"))},_uiSetScrollbarPosition:function(t){var n=this._scrollbarNode,r=this._yScrollHeader;n&&t&&r&&n.setStyles({top:parseFloat(r.getComputedStyle("height"))+u(t,"borderTopWidth")+t.get("offsetTop")+"px",left:t.get("offsetWidth")-e.DOM.getScrollbarWidth()-1-u(t,"borderRightWidth")+"px"})},_uiSetYScrollWidth:function(t){var n=this._yScrollContainer,r=this._tableNode,i,s,o,u;n&&r&&(u=e.DOM.getScrollbarWidth(),t?(s=n.get("offsetWidth")-n.get("clientWidth")+u,n.setStyle("width",t),o=n.get("clientWidth")-s,r.setStyle("width",o+"px"),i=r.get("offsetWidth"),n.setStyle("width",i+u+"px")):(r.setStyle("width",""),n.setStyle("width",""),n.setStyle("width",r.get("offsetWidth")+u+"px")))},_unbindScrollbar:function(){this._scrollbarEventHandle&&this._scrollbarEventHandle.detach()},_unbindScrollResize:function(){this._scrollResizeHandle&&(this._scrollResizeHandle.detach(),delete this._scrollResizeHandle)}},!0),e.Base.mix(e.DataTable,[o])},"3.7.2",{requires:["datatable-base","datatable-column-widths","dom-screen"],skinnable:!0});
diff --git a/lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll.js b/lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll.js
rename to lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll.js
index 6ff21ab17dd..283c50a68e9 100644
--- a/lib/yuilib/3.7.1/build/datatable-scroll/datatable-scroll.js
+++ b/lib/yuilib/3.7.2/build/datatable-scroll/datatable-scroll.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1386,4 +1386,4 @@ Y.mix(Scrollable.prototype, {
Y.Base.mix(Y.DataTable, [Scrollable]);
-}, '3.7.1', {"requires": ["datatable-base", "datatable-column-widths", "dom-screen"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-base", "datatable-column-widths", "dom-screen"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated-coverage.js b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated-coverage.js
rename to lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated-coverage.js
index 2dc53e30331..906bd52d2ca 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["/build/datatable-sort-deprecated/datatable-sort-deprecated.js
path: "/build/datatable-sort-deprecated/datatable-sort-deprecated.js",
code: []
};
-_yuitest_coverage["/build/datatable-sort-deprecated/datatable-sort-deprecated.js"].code=["YUI.add('datatable-sort-deprecated', function(Y) {","","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","/**","Plugs DataTable with sorting functionality.","","DEPRECATED. As of YUI 3.5.0, DataTable has been rebuilt. This module","is designed to work with `datatable-base-deprecated` (effectively the 3.4.1","version of DataTable) and will be removed from the library in a future version.","","See http://yuilibrary.com/yui/docs/migration.html for help upgrading to the","latest version.","","For complete API docs for the classes in this and other deprecated","DataTable-related modules, refer to the static API doc files in the 3.4.1","download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip","","@module datatable-deprecated","@submodule datatable-sort-deprecated","@deprecated","**/","","/*"," * Adds column sorting to DataTable."," * @class DataTableSort"," * @extends Plugin.Base"," */","var YgetClassName = Y.ClassNameManager.getClassName,",""," DATATABLE = \"datatable\","," COLUMN = \"column\","," ASC = \"asc\","," DESC = \"desc\",",""," //TODO: Don't use hrefs - use tab/arrow/enter"," TEMPLATE = '{value}';","","","function DataTableSort() {"," DataTableSort.superclass.constructor.apply(this, arguments);","}","","/////////////////////////////////////////////////////////////////////////////","//","// STATIC PROPERTIES","//","/////////////////////////////////////////////////////////////////////////////","Y.mix(DataTableSort, {"," /*"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"sort\""," */"," NS: \"sort\",",""," /*"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataTableSort\""," */"," NAME: \"dataTableSort\",","","/////////////////////////////////////////////////////////////////////////////","//","// ATTRIBUTES","//","/////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /*"," * @attribute trigger"," * @description Defines the trigger that causes a column to be sorted:"," * {event, selector}, where \"event\" is an event type and \"selector\" is"," * is a node query selector."," * @type Object"," * @default {event:\"click\", selector:\"th\"}"," * @writeOnce \"initOnly\""," */"," trigger: {"," value: {event:\"click\", selector:\"th\"},"," writeOnce: \"initOnly\""," },"," "," /*"," * @attribute lastSortedBy"," * @description Describes last known sort state: {key,dir}, where"," * \"key\" is column key and \"dir\" is either \"asc\" or \"desc\"."," * @type Object"," */"," lastSortedBy: {"," setter: \"_setLastSortedBy\","," lazyAdd: false"," },"," "," /*"," * @attribute template"," * @description Tokenized markup template for TH sort element."," * @type String"," * @default '{value}'"," */"," template: {"," value: TEMPLATE"," },",""," /*"," * Strings used in the UI elements."," *"," * The strings used are defaulted from the datatable-sort language pack"," * for the language identified in the YUI \"lang\" configuration (which"," * defaults to \"en\")."," *"," * Configurable strings are \"sortBy\" and \"reverseSortBy\", which are"," * assigned to the sort link's title attribute."," *"," * @attribute strings"," * @type {Object}"," */"," strings: {"," valueFn: function () { return Y.Intl.get('datatable-sort-deprecated'); }"," }"," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(DataTableSort, Y.Plugin.Base, {",""," /////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Initializer."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," var dt = this.get(\"host\"),"," trigger = this.get(\"trigger\");"," "," dt.get(\"recordset\").plug(Y.Plugin.RecordsetSort, {dt: dt});"," dt.get(\"recordset\").sort.addTarget(dt);"," "," // Wrap link around TH value"," this.doBefore(\"_createTheadThNode\", this._beforeCreateTheadThNode);"," "," // Add class"," this.doBefore(\"_attachTheadThNode\", this._beforeAttachTheadThNode);"," this.doBefore(\"_attachTbodyTdNode\", this._beforeAttachTbodyTdNode);",""," // Attach trigger handlers"," dt.delegate(trigger.event, Y.bind(this._onEventSortColumn,this), trigger.selector);",""," // Attach UI hooks"," dt.after(\"recordsetSort:sort\", function() {"," this._uiSetRecordset(this.get(\"recordset\"));"," });"," this.on(\"lastSortedByChange\", function(e) {"," this._uiSetLastSortedBy(e.prevVal, e.newVal, dt);"," });",""," //TODO"," //dt.after(\"recordset:mutation\", function() {//reset lastSortedBy});"," "," //TODO"," //add Column sortFn ATTR"," "," // Update UI after the fact (render-then-plug case)"," if(dt.get(\"rendered\")) {"," dt._uiSetColumnset(dt.get(\"columnset\"));"," this._uiSetLastSortedBy(null, this.get(\"lastSortedBy\"), dt);"," }"," },",""," /*"," * @method _setLastSortedBy"," * @description Normalizes lastSortedBy"," * @param val {String | Object} {key, dir} or \"key\""," * @return {key, dir, notdir}"," * @private"," */"," _setLastSortedBy: function(val) {"," if (Y.Lang.isString(val)) {"," val = { key: val, dir: \"desc\" };"," }",""," if (val) {"," return (val.dir === \"desc\") ?"," { key: val.key, dir: \"desc\", notdir: \"asc\" } :"," { key: val.key, dir: \"asc\", notdir:\"desc\" };"," } else {"," return null;"," }"," },",""," /*"," * Updates sort UI."," *"," * @method _uiSetLastSortedBy"," * @param val {Object} New lastSortedBy object {key,dir}."," * @param dt {Y.DataTable.Base} Host."," * @protected"," */"," _uiSetLastSortedBy: function(prevVal, newVal, dt) {"," var strings = this.get('strings'),"," columnset = dt.get(\"columnset\"),"," prevKey = prevVal && prevVal.key,"," newKey = newVal && newVal.key,"," prevClass = prevVal && dt.getClassName(prevVal.dir),"," newClass = newVal && dt.getClassName(newVal.dir),"," prevColumn = columnset.keyHash[prevKey],"," newColumn = columnset.keyHash[newKey],"," tbodyNode = dt._tbodyNode,"," fromTemplate = Y.Lang.sub,"," th, sortArrow, sortLabel;",""," // Clear previous UI"," if (prevColumn && prevClass) {"," th = prevColumn.thNode;"," sortArrow = th.one('a');",""," if (sortArrow) {"," sortArrow.set('title', fromTemplate(strings.sortBy, {"," column: prevColumn.get('label')"," }));"," }",""," th.removeClass(prevClass);"," tbodyNode.all(\".\" + YgetClassName(COLUMN, prevColumn.get(\"id\")))"," .removeClass(prevClass);"," }",""," // Add new sort UI"," if (newColumn && newClass) {"," th = newColumn.thNode;"," sortArrow = th.one('a');",""," if (sortArrow) {"," sortLabel = (newVal.dir === ASC) ? \"reverseSortBy\" : \"sortBy\";",""," sortArrow.set('title', fromTemplate(strings[sortLabel], {"," column: newColumn.get('label')"," }));"," }",""," th.addClass(newClass);",""," tbodyNode.all(\".\" + YgetClassName(COLUMN, newColumn.get(\"id\")))"," .addClass(newClass);"," }"," },",""," /*"," * Before header cell element is created, inserts link markup around {value}."," *"," * @method _beforeCreateTheadThNode"," * @param o {Object} {value, column, tr}."," * @protected"," */"," _beforeCreateTheadThNode: function(o) {"," var sortedBy, sortLabel;",""," if (o.column.get(\"sortable\")) {"," sortedBy = this.get('lastSortedBy');",""," sortLabel = (sortedBy && sortedBy.dir === ASC &&"," sortedBy.key === o.column.get('key')) ?"," \"reverseSortBy\" : \"sortBy\";",""," o.value = Y.Lang.sub(this.get(\"template\"), {"," link_class: o.link_class || \"\","," link_title: Y.Lang.sub(this.get('strings.' + sortLabel), {"," column: o.column.get('label')"," }),"," link_href: \"#\","," value: o.value"," });"," }"," },",""," /*"," * Before header cell element is attached, sets applicable class names."," *"," * @method _beforeAttachTheadThNode"," * @param o {Object} {value, column, tr}."," * @protected"," */"," _beforeAttachTheadThNode: function(o) {"," var lastSortedBy = this.get(\"lastSortedBy\"),"," key = lastSortedBy && lastSortedBy.key,"," dir = lastSortedBy && lastSortedBy.dir,"," notdir = lastSortedBy && lastSortedBy.notdir;",""," // This Column is sortable"," if(o.column.get(\"sortable\")) {"," o.th.addClass(YgetClassName(DATATABLE, \"sortable\"));"," }"," // This Column is currently sorted"," if(key && (key === o.column.get(\"key\"))) {"," o.th.replaceClass(YgetClassName(DATATABLE, notdir), YgetClassName(DATATABLE, dir));"," }"," },",""," /*"," * Before header cell element is attached, sets applicable class names."," *"," * @method _beforeAttachTbodyTdNode"," * @param o {Object} {record, column, tr, headers, classnames, value}."," * @protected"," */"," _beforeAttachTbodyTdNode: function(o) {"," var lastSortedBy = this.get(\"lastSortedBy\"),"," key = lastSortedBy && lastSortedBy.key,"," dir = lastSortedBy && lastSortedBy.dir,"," notdir = lastSortedBy && lastSortedBy.notdir;",""," // This Column is sortable"," if(o.column.get(\"sortable\")) {"," o.td.addClass(YgetClassName(DATATABLE, \"sortable\"));"," }"," // This Column is currently sorted"," if(key && (key === o.column.get(\"key\"))) {"," o.td.replaceClass(YgetClassName(DATATABLE, notdir), YgetClassName(DATATABLE, dir));"," }"," },"," /*"," * In response to the \"trigger\" event, sorts the underlying Recordset and"," * updates the lastSortedBy attribute."," *"," * @method _onEventSortColumn"," * @param o {Object} {value, column, tr}."," * @protected"," */"," _onEventSortColumn: function(e) {"," e.halt();"," //TODO: normalize e.currentTarget to TH"," var table = this.get(\"host\"),"," column = table.get(\"columnset\").idHash[e.currentTarget.get(\"id\")],"," key, field, lastSort, desc, sorter;",""," if (column.get(\"sortable\")) {"," key = column.get(\"key\");"," field = column.get(\"field\");"," lastSort = this.get(\"lastSortedBy\") || {};"," desc = (lastSort.key === key && lastSort.dir === ASC);"," sorter = column.get(\"sortFn\");",""," table.get(\"recordset\").sort.sort(field, desc, sorter);",""," this.set(\"lastSortedBy\", {"," key: key,"," dir: (desc) ? DESC : ASC"," });"," }"," }","});","","Y.namespace(\"Plugin\").DataTableSort = DataTableSort;","","","","","","}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin','recordset-sort'], lang:['en']});"];
+_yuitest_coverage["/build/datatable-sort-deprecated/datatable-sort-deprecated.js"].code=["YUI.add('datatable-sort-deprecated', function(Y) {","","// API Doc comments disabled to avoid deprecated class leakage into","// non-deprecated class API docs. See the 3.4.1 datatable API doc files in the","// download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip for reference.","/**","Plugs DataTable with sorting functionality.","","DEPRECATED. As of YUI 3.5.0, DataTable has been rebuilt. This module","is designed to work with `datatable-base-deprecated` (effectively the 3.4.1","version of DataTable) and will be removed from the library in a future version.","","See http://yuilibrary.com/yui/docs/migration.html for help upgrading to the","latest version.","","For complete API docs for the classes in this and other deprecated","DataTable-related modules, refer to the static API doc files in the 3.4.1","download at http://yui.zenfs.com/releases/yui3/yui_3.4.1.zip","","@module datatable-deprecated","@submodule datatable-sort-deprecated","@deprecated","**/","","/*"," * Adds column sorting to DataTable."," * @class DataTableSort"," * @extends Plugin.Base"," */","var YgetClassName = Y.ClassNameManager.getClassName,",""," DATATABLE = \"datatable\","," COLUMN = \"column\","," ASC = \"asc\","," DESC = \"desc\",",""," //TODO: Don't use hrefs - use tab/arrow/enter"," TEMPLATE = '{value}';","","","function DataTableSort() {"," DataTableSort.superclass.constructor.apply(this, arguments);","}","","/////////////////////////////////////////////////////////////////////////////","//","// STATIC PROPERTIES","//","/////////////////////////////////////////////////////////////////////////////","Y.mix(DataTableSort, {"," /*"," * The namespace for the plugin. This will be the property on the host which"," * references the plugin instance."," *"," * @property NS"," * @type String"," * @static"," * @final"," * @value \"sort\""," */"," NS: \"sort\",",""," /*"," * Class name."," *"," * @property NAME"," * @type String"," * @static"," * @final"," * @value \"dataTableSort\""," */"," NAME: \"dataTableSort\",","","/////////////////////////////////////////////////////////////////////////////","//","// ATTRIBUTES","//","/////////////////////////////////////////////////////////////////////////////"," ATTRS: {"," /*"," * @attribute trigger"," * @description Defines the trigger that causes a column to be sorted:"," * {event, selector}, where \"event\" is an event type and \"selector\" is"," * is a node query selector."," * @type Object"," * @default {event:\"click\", selector:\"th\"}"," * @writeOnce \"initOnly\""," */"," trigger: {"," value: {event:\"click\", selector:\"th\"},"," writeOnce: \"initOnly\""," },"," "," /*"," * @attribute lastSortedBy"," * @description Describes last known sort state: {key,dir}, where"," * \"key\" is column key and \"dir\" is either \"asc\" or \"desc\"."," * @type Object"," */"," lastSortedBy: {"," setter: \"_setLastSortedBy\","," lazyAdd: false"," },"," "," /*"," * @attribute template"," * @description Tokenized markup template for TH sort element."," * @type String"," * @default '{value}'"," */"," template: {"," value: TEMPLATE"," },",""," /*"," * Strings used in the UI elements."," *"," * The strings used are defaulted from the datatable-sort language pack"," * for the language identified in the YUI \"lang\" configuration (which"," * defaults to \"en\")."," *"," * Configurable strings are \"sortBy\" and \"reverseSortBy\", which are"," * assigned to the sort link's title attribute."," *"," * @attribute strings"," * @type {Object}"," */"," strings: {"," valueFn: function () { return Y.Intl.get('datatable-sort-deprecated'); }"," }"," }","});","","/////////////////////////////////////////////////////////////////////////////","//","// PROTOTYPE","//","/////////////////////////////////////////////////////////////////////////////","Y.extend(DataTableSort, Y.Plugin.Base, {",""," /////////////////////////////////////////////////////////////////////////////"," //"," // METHODS"," //"," /////////////////////////////////////////////////////////////////////////////"," /*"," * Initializer."," *"," * @method initializer"," * @param config {Object} Config object."," * @private"," */"," initializer: function(config) {"," var dt = this.get(\"host\"),"," trigger = this.get(\"trigger\");"," "," dt.get(\"recordset\").plug(Y.Plugin.RecordsetSort, {dt: dt});"," dt.get(\"recordset\").sort.addTarget(dt);"," "," // Wrap link around TH value"," this.doBefore(\"_createTheadThNode\", this._beforeCreateTheadThNode);"," "," // Add class"," this.doBefore(\"_attachTheadThNode\", this._beforeAttachTheadThNode);"," this.doBefore(\"_attachTbodyTdNode\", this._beforeAttachTbodyTdNode);",""," // Attach trigger handlers"," dt.delegate(trigger.event, Y.bind(this._onEventSortColumn,this), trigger.selector);",""," // Attach UI hooks"," dt.after(\"recordsetSort:sort\", function() {"," this._uiSetRecordset(this.get(\"recordset\"));"," });"," this.on(\"lastSortedByChange\", function(e) {"," this._uiSetLastSortedBy(e.prevVal, e.newVal, dt);"," });",""," //TODO"," //dt.after(\"recordset:mutation\", function() {//reset lastSortedBy});"," "," //TODO"," //add Column sortFn ATTR"," "," // Update UI after the fact (render-then-plug case)"," if(dt.get(\"rendered\")) {"," dt._uiSetColumnset(dt.get(\"columnset\"));"," this._uiSetLastSortedBy(null, this.get(\"lastSortedBy\"), dt);"," }"," },",""," /*"," * @method _setLastSortedBy"," * @description Normalizes lastSortedBy"," * @param val {String | Object} {key, dir} or \"key\""," * @return {key, dir, notdir}"," * @private"," */"," _setLastSortedBy: function(val) {"," if (Y.Lang.isString(val)) {"," val = { key: val, dir: \"desc\" };"," }",""," if (val) {"," return (val.dir === \"desc\") ?"," { key: val.key, dir: \"desc\", notdir: \"asc\" } :"," { key: val.key, dir: \"asc\", notdir:\"desc\" };"," } else {"," return null;"," }"," },",""," /*"," * Updates sort UI."," *"," * @method _uiSetLastSortedBy"," * @param val {Object} New lastSortedBy object {key,dir}."," * @param dt {Y.DataTable.Base} Host."," * @protected"," */"," _uiSetLastSortedBy: function(prevVal, newVal, dt) {"," var strings = this.get('strings'),"," columnset = dt.get(\"columnset\"),"," prevKey = prevVal && prevVal.key,"," newKey = newVal && newVal.key,"," prevClass = prevVal && dt.getClassName(prevVal.dir),"," newClass = newVal && dt.getClassName(newVal.dir),"," prevColumn = columnset.keyHash[prevKey],"," newColumn = columnset.keyHash[newKey],"," tbodyNode = dt._tbodyNode,"," fromTemplate = Y.Lang.sub,"," th, sortArrow, sortLabel;",""," // Clear previous UI"," if (prevColumn && prevClass) {"," th = prevColumn.thNode;"," sortArrow = th.one('a');",""," if (sortArrow) {"," sortArrow.set('title', fromTemplate(strings.sortBy, {"," column: prevColumn.get('label')"," }));"," }",""," th.removeClass(prevClass);"," tbodyNode.all(\".\" + YgetClassName(COLUMN, prevColumn.get(\"id\")))"," .removeClass(prevClass);"," }",""," // Add new sort UI"," if (newColumn && newClass) {"," th = newColumn.thNode;"," sortArrow = th.one('a');",""," if (sortArrow) {"," sortLabel = (newVal.dir === ASC) ? \"reverseSortBy\" : \"sortBy\";",""," sortArrow.set('title', fromTemplate(strings[sortLabel], {"," column: newColumn.get('label')"," }));"," }",""," th.addClass(newClass);",""," tbodyNode.all(\".\" + YgetClassName(COLUMN, newColumn.get(\"id\")))"," .addClass(newClass);"," }"," },",""," /*"," * Before header cell element is created, inserts link markup around {value}."," *"," * @method _beforeCreateTheadThNode"," * @param o {Object} {value, column, tr}."," * @protected"," */"," _beforeCreateTheadThNode: function(o) {"," var sortedBy, sortLabel;",""," if (o.column.get(\"sortable\")) {"," sortedBy = this.get('lastSortedBy');",""," sortLabel = (sortedBy && sortedBy.dir === ASC &&"," sortedBy.key === o.column.get('key')) ?"," \"reverseSortBy\" : \"sortBy\";",""," o.value = Y.Lang.sub(this.get(\"template\"), {"," link_class: o.link_class || \"\","," link_title: Y.Lang.sub(this.get('strings.' + sortLabel), {"," column: o.column.get('label')"," }),"," link_href: \"#\","," value: o.value"," });"," }"," },",""," /*"," * Before header cell element is attached, sets applicable class names."," *"," * @method _beforeAttachTheadThNode"," * @param o {Object} {value, column, tr}."," * @protected"," */"," _beforeAttachTheadThNode: function(o) {"," var lastSortedBy = this.get(\"lastSortedBy\"),"," key = lastSortedBy && lastSortedBy.key,"," dir = lastSortedBy && lastSortedBy.dir,"," notdir = lastSortedBy && lastSortedBy.notdir;",""," // This Column is sortable"," if(o.column.get(\"sortable\")) {"," o.th.addClass(YgetClassName(DATATABLE, \"sortable\"));"," }"," // This Column is currently sorted"," if(key && (key === o.column.get(\"key\"))) {"," o.th.replaceClass(YgetClassName(DATATABLE, notdir), YgetClassName(DATATABLE, dir));"," }"," },",""," /*"," * Before header cell element is attached, sets applicable class names."," *"," * @method _beforeAttachTbodyTdNode"," * @param o {Object} {record, column, tr, headers, classnames, value}."," * @protected"," */"," _beforeAttachTbodyTdNode: function(o) {"," var lastSortedBy = this.get(\"lastSortedBy\"),"," key = lastSortedBy && lastSortedBy.key,"," dir = lastSortedBy && lastSortedBy.dir,"," notdir = lastSortedBy && lastSortedBy.notdir;",""," // This Column is sortable"," if(o.column.get(\"sortable\")) {"," o.td.addClass(YgetClassName(DATATABLE, \"sortable\"));"," }"," // This Column is currently sorted"," if(key && (key === o.column.get(\"key\"))) {"," o.td.replaceClass(YgetClassName(DATATABLE, notdir), YgetClassName(DATATABLE, dir));"," }"," },"," /*"," * In response to the \"trigger\" event, sorts the underlying Recordset and"," * updates the lastSortedBy attribute."," *"," * @method _onEventSortColumn"," * @param o {Object} {value, column, tr}."," * @protected"," */"," _onEventSortColumn: function(e) {"," e.halt();"," //TODO: normalize e.currentTarget to TH"," var table = this.get(\"host\"),"," column = table.get(\"columnset\").idHash[e.currentTarget.get(\"id\")],"," key, field, lastSort, desc, sorter;",""," if (column.get(\"sortable\")) {"," key = column.get(\"key\");"," field = column.get(\"field\");"," lastSort = this.get(\"lastSortedBy\") || {};"," desc = (lastSort.key === key && lastSort.dir === ASC);"," sorter = column.get(\"sortFn\");",""," table.get(\"recordset\").sort.sort(field, desc, sorter);",""," this.set(\"lastSortedBy\", {"," key: key,"," dir: (desc) ? DESC : ASC"," });"," }"," }","});","","Y.namespace(\"Plugin\").DataTableSort = DataTableSort;","","","","","","}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin','recordset-sort'], lang:['en']});"];
_yuitest_coverage["/build/datatable-sort-deprecated/datatable-sort-deprecated.js"].lines = {"1":0,"30":0,"41":0,"42":0,"50":0,"129":0,"139":0,"154":0,"157":0,"158":0,"161":0,"164":0,"165":0,"168":0,"171":0,"172":0,"174":0,"175":0,"185":0,"186":0,"187":0,"199":0,"200":0,"203":0,"204":0,"208":0,"221":0,"234":0,"235":0,"236":0,"238":0,"239":0,"244":0,"245":0,"250":0,"251":0,"252":0,"254":0,"255":0,"257":0,"262":0,"264":0,"277":0,"279":0,"280":0,"282":0,"286":0,"305":0,"311":0,"312":0,"315":0,"316":0,"328":0,"334":0,"335":0,"338":0,"339":0,"351":0,"353":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"364":0,"366":0,"374":0};
_yuitest_coverage["/build/datatable-sort-deprecated/datatable-sort-deprecated.js"].functions = {"DataTableSort:41":0,"valueFn:129":0,"(anonymous 2):171":0,"(anonymous 3):174":0,"initializer:153":0,"_setLastSortedBy:198":0,"_uiSetLastSortedBy:220":0,"_beforeCreateTheadThNode:276":0,"_beforeAttachTheadThNode:304":0,"_beforeAttachTbodyTdNode:327":0,"_onEventSortColumn:350":0,"(anonymous 1):1":0};
_yuitest_coverage["/build/datatable-sort-deprecated/datatable-sort-deprecated.js"].coveredLines = 68;
@@ -496,4 +496,4 @@ Y.namespace("Plugin").DataTableSort = DataTableSort;
-}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin','recordset-sort'], lang:['en']});
+}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin','recordset-sort'], lang:['en']});
diff --git a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated-debug.js b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated-debug.js
rename to lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated-debug.js
index c7f09f37b75..c7649733107 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -383,4 +383,4 @@ Y.namespace("Plugin").DataTableSort = DataTableSort;
-}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin','recordset-sort'], lang:['en']});
+}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin','recordset-sort'], lang:['en']});
diff --git a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated-min.js b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated-min.js
rename to lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated-min.js
index 0711befd207..af15239a353 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-sort-deprecated",function(g){var f=g.ClassNameManager.getClassName,h="datatable",b="column",d="asc",c="desc",a='{value}';function e(){e.superclass.constructor.apply(this,arguments);}g.mix(e,{NS:"sort",NAME:"dataTableSort",ATTRS:{trigger:{value:{event:"click",selector:"th"},writeOnce:"initOnly"},lastSortedBy:{setter:"_setLastSortedBy",lazyAdd:false},template:{value:a},strings:{valueFn:function(){return g.Intl.get("datatable-sort-deprecated");}}}});g.extend(e,g.Plugin.Base,{initializer:function(j){var k=this.get("host"),i=this.get("trigger");k.get("recordset").plug(g.Plugin.RecordsetSort,{dt:k});k.get("recordset").sort.addTarget(k);this.doBefore("_createTheadThNode",this._beforeCreateTheadThNode);this.doBefore("_attachTheadThNode",this._beforeAttachTheadThNode);this.doBefore("_attachTbodyTdNode",this._beforeAttachTbodyTdNode);k.delegate(i.event,g.bind(this._onEventSortColumn,this),i.selector);k.after("recordsetSort:sort",function(){this._uiSetRecordset(this.get("recordset"));});this.on("lastSortedByChange",function(l){this._uiSetLastSortedBy(l.prevVal,l.newVal,k);});if(k.get("rendered")){k._uiSetColumnset(k.get("columnset"));this._uiSetLastSortedBy(null,this.get("lastSortedBy"),k);}},_setLastSortedBy:function(i){if(g.Lang.isString(i)){i={key:i,dir:"desc"};}if(i){return(i.dir==="desc")?{key:i.key,dir:"desc",notdir:"asc"}:{key:i.key,dir:"asc",notdir:"desc"};}else{return null;}},_uiSetLastSortedBy:function(n,m,l){var w=this.get("strings"),k=l.get("columnset"),x=n&&n.key,u=m&&m.key,i=n&&l.getClassName(n.dir),p=m&&l.getClassName(m.dir),r=k.keyHash[x],o=k.keyHash[u],q=l._tbodyNode,v=g.Lang.sub,j,t,s;if(r&&i){j=r.thNode;t=j.one("a");if(t){t.set("title",v(w.sortBy,{column:r.get("label")}));}j.removeClass(i);q.all("."+f(b,r.get("id"))).removeClass(i);}if(o&&p){j=o.thNode;t=j.one("a");if(t){s=(m.dir===d)?"reverseSortBy":"sortBy";t.set("title",v(w[s],{column:o.get("label")}));}j.addClass(p);q.all("."+f(b,o.get("id"))).addClass(p);}},_beforeCreateTheadThNode:function(k){var i,j;if(k.column.get("sortable")){i=this.get("lastSortedBy");j=(i&&i.dir===d&&i.key===k.column.get("key"))?"reverseSortBy":"sortBy";k.value=g.Lang.sub(this.get("template"),{link_class:k.link_class||"",link_title:g.Lang.sub(this.get("strings."+j),{column:k.column.get("label")}),link_href:"#",value:k.value});}},_beforeAttachTheadThNode:function(m){var l=this.get("lastSortedBy"),k=l&&l.key,i=l&&l.dir,j=l&&l.notdir;if(m.column.get("sortable")){m.th.addClass(f(h,"sortable"));}if(k&&(k===m.column.get("key"))){m.th.replaceClass(f(h,j),f(h,i));}},_beforeAttachTbodyTdNode:function(m){var l=this.get("lastSortedBy"),k=l&&l.key,i=l&&l.dir,j=l&&l.notdir;if(m.column.get("sortable")){m.td.addClass(f(h,"sortable"));}if(k&&(k===m.column.get("key"))){m.td.replaceClass(f(h,j),f(h,i));}},_onEventSortColumn:function(n){n.halt();var l=this.get("host"),k=l.get("columnset").idHash[n.currentTarget.get("id")],j,m,i,o,p;if(k.get("sortable")){j=k.get("key");m=k.get("field");i=this.get("lastSortedBy")||{};o=(i.key===j&&i.dir===d);p=k.get("sortFn");l.get("recordset").sort.sort(m,o,p);this.set("lastSortedBy",{key:j,dir:(o)?c:d});}}});g.namespace("Plugin").DataTableSort=e;},"3.7.1",{requires:["datatable-base-deprecated","plugin","recordset-sort"],lang:["en"]});
\ No newline at end of file
+YUI.add("datatable-sort-deprecated",function(g){var f=g.ClassNameManager.getClassName,h="datatable",b="column",d="asc",c="desc",a='{value}';function e(){e.superclass.constructor.apply(this,arguments);}g.mix(e,{NS:"sort",NAME:"dataTableSort",ATTRS:{trigger:{value:{event:"click",selector:"th"},writeOnce:"initOnly"},lastSortedBy:{setter:"_setLastSortedBy",lazyAdd:false},template:{value:a},strings:{valueFn:function(){return g.Intl.get("datatable-sort-deprecated");}}}});g.extend(e,g.Plugin.Base,{initializer:function(j){var k=this.get("host"),i=this.get("trigger");k.get("recordset").plug(g.Plugin.RecordsetSort,{dt:k});k.get("recordset").sort.addTarget(k);this.doBefore("_createTheadThNode",this._beforeCreateTheadThNode);this.doBefore("_attachTheadThNode",this._beforeAttachTheadThNode);this.doBefore("_attachTbodyTdNode",this._beforeAttachTbodyTdNode);k.delegate(i.event,g.bind(this._onEventSortColumn,this),i.selector);k.after("recordsetSort:sort",function(){this._uiSetRecordset(this.get("recordset"));});this.on("lastSortedByChange",function(l){this._uiSetLastSortedBy(l.prevVal,l.newVal,k);});if(k.get("rendered")){k._uiSetColumnset(k.get("columnset"));this._uiSetLastSortedBy(null,this.get("lastSortedBy"),k);}},_setLastSortedBy:function(i){if(g.Lang.isString(i)){i={key:i,dir:"desc"};}if(i){return(i.dir==="desc")?{key:i.key,dir:"desc",notdir:"asc"}:{key:i.key,dir:"asc",notdir:"desc"};}else{return null;}},_uiSetLastSortedBy:function(n,m,l){var w=this.get("strings"),k=l.get("columnset"),x=n&&n.key,u=m&&m.key,i=n&&l.getClassName(n.dir),p=m&&l.getClassName(m.dir),r=k.keyHash[x],o=k.keyHash[u],q=l._tbodyNode,v=g.Lang.sub,j,t,s;if(r&&i){j=r.thNode;t=j.one("a");if(t){t.set("title",v(w.sortBy,{column:r.get("label")}));}j.removeClass(i);q.all("."+f(b,r.get("id"))).removeClass(i);}if(o&&p){j=o.thNode;t=j.one("a");if(t){s=(m.dir===d)?"reverseSortBy":"sortBy";t.set("title",v(w[s],{column:o.get("label")}));}j.addClass(p);q.all("."+f(b,o.get("id"))).addClass(p);}},_beforeCreateTheadThNode:function(k){var i,j;if(k.column.get("sortable")){i=this.get("lastSortedBy");j=(i&&i.dir===d&&i.key===k.column.get("key"))?"reverseSortBy":"sortBy";k.value=g.Lang.sub(this.get("template"),{link_class:k.link_class||"",link_title:g.Lang.sub(this.get("strings."+j),{column:k.column.get("label")}),link_href:"#",value:k.value});}},_beforeAttachTheadThNode:function(m){var l=this.get("lastSortedBy"),k=l&&l.key,i=l&&l.dir,j=l&&l.notdir;if(m.column.get("sortable")){m.th.addClass(f(h,"sortable"));}if(k&&(k===m.column.get("key"))){m.th.replaceClass(f(h,j),f(h,i));}},_beforeAttachTbodyTdNode:function(m){var l=this.get("lastSortedBy"),k=l&&l.key,i=l&&l.dir,j=l&&l.notdir;if(m.column.get("sortable")){m.td.addClass(f(h,"sortable"));}if(k&&(k===m.column.get("key"))){m.td.replaceClass(f(h,j),f(h,i));}},_onEventSortColumn:function(n){n.halt();var l=this.get("host"),k=l.get("columnset").idHash[n.currentTarget.get("id")],j,m,i,o,p;if(k.get("sortable")){j=k.get("key");m=k.get("field");i=this.get("lastSortedBy")||{};o=(i.key===j&&i.dir===d);p=k.get("sortFn");l.get("recordset").sort.sort(m,o,p);this.set("lastSortedBy",{key:j,dir:(o)?c:d});}}});g.namespace("Plugin").DataTableSort=e;},"3.7.2",{requires:["datatable-base-deprecated","plugin","recordset-sort"],lang:["en"]});
\ No newline at end of file
diff --git a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated.js b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated.js
rename to lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated.js
index c7f09f37b75..c7649733107 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/datatable-sort-deprecated.js
+++ b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/datatable-sort-deprecated.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -383,4 +383,4 @@ Y.namespace("Plugin").DataTableSort = DataTableSort;
-}, '3.7.1' ,{requires:['datatable-base-deprecated','plugin','recordset-sort'], lang:['en']});
+}, '3.7.2' ,{requires:['datatable-base-deprecated','plugin','recordset-sort'], lang:['en']});
diff --git a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/lang/datatable-sort-deprecated.js b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/lang/datatable-sort-deprecated.js
similarity index 88%
rename from lib/yuilib/3.7.1/build/datatable-sort-deprecated/lang/datatable-sort-deprecated.js
rename to lib/yuilib/3.7.2/build/datatable-sort-deprecated/lang/datatable-sort-deprecated.js
index 419cfb5b4c1..0c47b5410f5 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/lang/datatable-sort-deprecated.js
+++ b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/lang/datatable-sort-deprecated.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatable-sort-deprecated",function(a){a.Intl.add("datatable-sort-deprecated","",{asc:"Ascending",desc:"Descending",sortBy:"Sort by {column}",reverseSortBy:"Reverse sort by {column}"});},"3.7.1");
\ No newline at end of file
+YUI.add("lang/datatable-sort-deprecated",function(a){a.Intl.add("datatable-sort-deprecated","",{asc:"Ascending",desc:"Descending",sortBy:"Sort by {column}",reverseSortBy:"Reverse sort by {column}"});},"3.7.2");
\ No newline at end of file
diff --git a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/lang/datatable-sort-deprecated_en.js b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/lang/datatable-sort-deprecated_en.js
similarity index 87%
rename from lib/yuilib/3.7.1/build/datatable-sort-deprecated/lang/datatable-sort-deprecated_en.js
rename to lib/yuilib/3.7.2/build/datatable-sort-deprecated/lang/datatable-sort-deprecated_en.js
index 350d7058243..cbedf875e5a 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort-deprecated/lang/datatable-sort-deprecated_en.js
+++ b/lib/yuilib/3.7.2/build/datatable-sort-deprecated/lang/datatable-sort-deprecated_en.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatable-sort-deprecated_en",function(a){a.Intl.add("datatable-sort-deprecated","en",{asc:"Ascending",desc:"Descending",sortBy:"Sort by {column}",reverseSortBy:"Reverse sort by {column}"});},"3.7.1");
\ No newline at end of file
+YUI.add("lang/datatable-sort-deprecated_en",function(a){a.Intl.add("datatable-sort-deprecated","en",{asc:"Ascending",desc:"Descending",sortBy:"Sort by {column}",reverseSortBy:"Reverse sort by {column}"});},"3.7.2");
\ No newline at end of file
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/assets/datatable-sort-core.css b/lib/yuilib/3.7.2/build/datatable-sort/assets/datatable-sort-core.css
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatable-sort/assets/datatable-sort-core.css
rename to lib/yuilib/3.7.2/build/datatable-sort/assets/datatable-sort-core.css
index fc781b97687..b9d5a98322d 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort/assets/datatable-sort-core.css
+++ b/lib/yuilib/3.7.2/build/datatable-sort/assets/datatable-sort-core.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/datatable-sort-skin.css b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/datatable-sort-skin.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/datatable-sort-skin.css
rename to lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/datatable-sort-skin.css
index 95b9d25b27e..35a1d266f3b 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/datatable-sort-skin.css
+++ b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/datatable-sort-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/datatable-sort.css b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/datatable-sort.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/datatable-sort.css
rename to lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/datatable-sort.css
index ac8130b4d32..92d091b056f 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/datatable-sort.css
+++ b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/datatable-sort.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/sort-arrow-sprite-ie.png b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/sort-arrow-sprite-ie.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/sort-arrow-sprite-ie.png
rename to lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/sort-arrow-sprite-ie.png
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/sort-arrow-sprite.png b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/sort-arrow-sprite.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/datatable-sort/assets/skins/night/sort-arrow-sprite.png
rename to lib/yuilib/3.7.2/build/datatable-sort/assets/skins/night/sort-arrow-sprite.png
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/datatable-sort-skin.css b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/datatable-sort-skin.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/datatable-sort-skin.css
rename to lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/datatable-sort-skin.css
index e1c43d31031..01d64a1ec2c 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/datatable-sort-skin.css
+++ b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/datatable-sort-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/datatable-sort.css b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/datatable-sort.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/datatable-sort.css
rename to lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/datatable-sort.css
index e559591f583..3e2f49b60ba 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/datatable-sort.css
+++ b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/datatable-sort.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/sort-arrow-sprite-ie.png b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/sort-arrow-sprite-ie.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/sort-arrow-sprite-ie.png
rename to lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/sort-arrow-sprite-ie.png
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png b/lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png
similarity index 100%
rename from lib/yuilib/3.7.1/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png
rename to lib/yuilib/3.7.2/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/datatable-sort-coverage.js b/lib/yuilib/3.7.2/build/datatable-sort/datatable-sort-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-sort/datatable-sort-coverage.js
rename to lib/yuilib/3.7.2/build/datatable-sort/datatable-sort-coverage.js
index c7e4d50fa8c..930af69e94a 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort/datatable-sort-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatable-sort/datatable-sort-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatable-sort/datatable-sort.js"] = {
path: "build/datatable-sort/datatable-sort.js",
code: []
};
-_yuitest_coverage["build/datatable-sort/datatable-sort.js"].code=["YUI.add('datatable-sort', function (Y, NAME) {","","/**","Adds support for sorting the table data by API methods `table.sort(...)` or","`table.toggleSort(...)` or by clicking on column headers in the rendered UI.","","@module datatable","@submodule datatable-sort","@since 3.5.0","**/","var YLang = Y.Lang,"," isBoolean = YLang.isBoolean,"," isString = YLang.isString,"," isArray = YLang.isArray,"," isObject = YLang.isObject,",""," toArray = Y.Array,"," sub = YLang.sub,",""," dirMap = {"," asc : 1,"," desc: -1,"," \"1\" : 1,"," \"-1\": -1"," };","","","/**","_API docs for this extension are included in the DataTable class._","","This DataTable class extension adds support for sorting the table data by API","methods `table.sort(...)` or `table.toggleSort(...)` or by clicking on column","headers in the rendered UI.","","Sorting by the API is enabled automatically when this module is `use()`d. To","enable UI triggered sorting, set the DataTable's `sortable` attribute to","`true`.","","","var table = new Y.DataTable({"," columns: [ 'id', 'username', 'name', 'birthdate' ],"," data: [ ... ],"," sortable: true","});","","table.render('#table');","
","","Setting `sortable` to `true` will enable UI sorting for all columns. To enable","UI sorting for certain columns only, set `sortable` to an array of column keys,","or just add `sortable: true` to the respective column configuration objects.","This uses the default setting of `sortable: auto` for the DataTable instance.","","","var table = new Y.DataTable({"," columns: ["," 'id',"," { key: 'username', sortable: true },"," { key: 'name', sortable: true },"," { key: 'birthdate', sortable: true }"," ],"," data: [ ... ]"," // sortable: 'auto' is the default","});","","// OR","var table = new Y.DataTable({"," columns: [ 'id', 'username', 'name', 'birthdate' ],"," data: [ ... ],"," sortable: [ 'username', 'name', 'birthdate' ]","});","
","","To disable UI sorting for all columns, set `sortable` to `false`. This still","permits sorting via the API methods.","","As new records are inserted into the table's `data` ModelList, they will be inserted at the correct index to preserve the sort order.","","The current sort order is stored in the `sortBy` attribute. Assigning this value at instantiation will automatically sort your data.","","Sorting is done by a simple value comparison using < and > on the field","value. If you need custom sorting, add a sort function in the column's","`sortFn` property. Columns whose content is generated by formatters, but don't","relate to a single `key`, require a `sortFn` to be sortable.","","","function nameSort(a, b, desc) {"," var aa = a.get('lastName') + a.get('firstName'),"," bb = a.get('lastName') + b.get('firstName'),"," order = (aa > bb) ? 1 : -(aa < bb);"," "," return desc ? -order : order;","}","","var table = new Y.DataTable({"," columns: [ 'id', 'username', { key: name, sortFn: nameSort }, 'birthdate' ],"," data: [ ... ],"," sortable: [ 'username', 'name', 'birthdate' ]","});","
","","See the user guide for more details.","","@class DataTable.Sortable","@for DataTable","@since 3.5.0","**/","function Sortable() {}","","Sortable.ATTRS = {"," // Which columns in the UI should suggest and respond to sorting interaction"," // pass an empty array if no UI columns should show sortable, but you want the"," // table.sort(...) API"," /**"," Controls which column headers can trigger sorting by user clicks.",""," Acceptable values are:",""," * \"auto\" - (default) looks for `sortable: true` in the column configurations"," * `true` - all columns are enabled"," * `false - no UI sortable is enabled"," * {String[]} - array of key names to give sortable headers",""," @attribute sortable"," @type {String|String[]|Boolean}"," @default \"auto\""," @since 3.5.0"," **/"," sortable: {"," value: 'auto',"," validator: '_validateSortable'"," },",""," /**"," The current sort configuration to maintain in the data.",""," Accepts column `key` strings or objects with a single property, the column"," `key`, with a value of 1, -1, \"asc\", or \"desc\". E.g. `{ username: 'asc'"," }`. String values are assumed to be ascending.",""," Example values would be:",""," * `\"username\"` - sort by the data's `username` field or the `key`"," associated to a column with that `name`."," * `{ username: \"desc\" }` - sort by `username` in descending order."," Alternately, use values \"asc\", 1 (same as \"asc\"), or -1 (same as \"desc\")."," * `[\"lastName\", \"firstName\"]` - ascending sort by `lastName`, but for"," records with the same `lastName`, ascending subsort by `firstName`."," Array can have as many items as you want."," * `[{ lastName: -1 }, \"firstName\"]` - descending sort by `lastName`,"," ascending subsort by `firstName`. Mixed types are ok.",""," @attribute sortBy"," @type {String|String[]|Object|Object[]}"," @since 3.5.0"," **/"," sortBy: {"," validator: '_validateSortBy',"," getter: '_getSortBy'"," },",""," /**"," Strings containing language for sorting tooltips.",""," @attribute strings"," @type {Object}"," @default (strings for current lang configured in the YUI instance config)"," @since 3.5.0"," **/"," strings: {}","};","","Y.mix(Sortable.prototype, {",""," /**"," Sort the data in the `data` ModelList and refresh the table with the new"," order.",""," Acceptable values for `fields` are `key` strings or objects with a single"," property, the column `key`, with a value of 1, -1, \"asc\", or \"desc\". E.g."," `{ username: 'asc' }`. String values are assumed to be ascending.",""," Example values would be:",""," * `\"username\"` - sort by the data's `username` field or the `key`"," associated to a column with that `name`."," * `{ username: \"desc\" }` - sort by `username` in descending order."," Alternately, use values \"asc\", 1 (same as \"asc\"), or -1 (same as \"desc\")."," * `[\"lastName\", \"firstName\"]` - ascending sort by `lastName`, but for"," records with the same `lastName`, ascending subsort by `firstName`."," Array can have as many items as you want."," * `[{ lastName: -1 }, \"firstName\"]` - descending sort by `lastName`,"," ascending subsort by `firstName`. Mixed types are ok.",""," @method sort"," @param {String|String[]|Object|Object[]} fields The field(s) to sort by"," @param {Object} [payload] Extra `sort` event payload you want to send along"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," sort: function (fields, payload) {"," /**"," Notifies of an impending sort, either from clicking on a column"," header, or from a call to the `sort` or `toggleSort` method.",""," The requested sort is available in the `sortBy` property of the event.",""," The default behavior of this event sets the table's `sortBy` attribute.",""," @event sort"," @param {String|String[]|Object|Object[]} sortBy The requested sort"," @preventable _defSortFn"," **/"," return this.fire('sort', Y.merge((payload || {}), {"," sortBy: fields || this.get('sortBy')"," }));"," },",""," /**"," Template for the node that will wrap the header content for sortable"," columns.",""," @property SORTABLE_HEADER_TEMPLATE"," @type {HTML}"," @value ''"," @since 3.5.0"," **/"," SORTABLE_HEADER_TEMPLATE: '',",""," /**"," Reverse the current sort direction of one or more fields currently being"," sorted by.",""," Pass the `key` of the column or columns you want the sort order reversed"," for.",""," @method toggleSort"," @param {String|String[]} fields The field(s) to reverse sort order for"," @param {Object} [payload] Extra `sort` event payload you want to send along"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," toggleSort: function (columns, payload) {"," var current = this._sortBy,"," sortBy = [],"," i, len, j, col, index;",""," // To avoid updating column configs or sortBy directly"," for (i = 0, len = current.length; i < len; ++i) {"," col = {};"," col[current[i]._id] = current[i].sortDir;"," sortBy.push(col);"," }",""," if (columns) {"," columns = toArray(columns);",""," for (i = 0, len = columns.length; i < len; ++i) {"," col = columns[i];"," index = -1;",""," for (j = sortBy.length - 1; i >= 0; --i) {"," if (sortBy[j][col]) {"," sortBy[j][col] *= -1;"," break;"," }"," }"," }"," } else {"," for (i = 0, len = sortBy.length; i < len; ++i) {"," for (col in sortBy[i]) {"," if (sortBy[i].hasOwnProperty(col)) {"," sortBy[i][col] *= -1;"," break;"," }"," }"," }"," }",""," return this.fire('sort', Y.merge((payload || {}), {"," sortBy: sortBy"," }));"," },",""," //--------------------------------------------------------------------------"," // Protected properties and methods"," //--------------------------------------------------------------------------"," /**"," Sorts the `data` ModelList based on the new `sortBy` configuration.",""," @method _afterSortByChange"," @param {EventFacade} e The `sortByChange` event"," @protected"," @since 3.5.0"," **/"," _afterSortByChange: function (e) {"," // Can't use a setter because it's a chicken and egg problem. The"," // columns need to be set up to translate, but columns are initialized"," // from Core's initializer. So construction-time assignment would"," // fail."," this._setSortBy();",""," // Don't sort unless sortBy has been set"," if (this._sortBy.length) {"," if (!this.data.comparator) {"," this.data.comparator = this._sortComparator;"," }",""," this.data.sort();"," }"," },",""," /**"," Applies the sorting logic to the new ModelList if the `newVal` is a new"," ModelList.",""," @method _afterSortDataChange"," @param {EventFacade} e the `dataChange` event"," @protected"," @since 3.5.0"," **/"," _afterSortDataChange: function (e) {"," // object values always trigger a change event, but we only want to"," // call _initSortFn if the value passed to the `data` attribute was a"," // new ModelList, not a set of new data as an array, or even the same"," // ModelList."," if (e.prevVal !== e.newVal || e.newVal.hasOwnProperty('_compare')) {"," this._initSortFn();"," }"," },",""," /**"," Checks if any of the fields in the modified record are fields that are"," currently being sorted by, and if so, resorts the `data` ModelList.",""," @method _afterSortRecordChange"," @param {EventFacade} e The Model's `change` event"," @protected"," @since 3.5.0"," **/"," _afterSortRecordChange: function (e) {"," var i, len;",""," for (i = 0, len = this._sortBy.length; i < len; ++i) {"," if (e.changed[this._sortBy[i].key]) {"," this.data.sort();"," break;"," }"," }"," },",""," /**"," Subscribes to state changes that warrant updating the UI, and adds the"," click handler for triggering the sort operation from the UI.",""," @method _bindSortUI"," @protected"," @since 3.5.0"," **/"," _bindSortUI: function () {"," var handles = this._eventHandles;"," "," if (!handles.sortAttrs) {"," handles.sortAttrs = this.after("," ['sortableChange', 'sortByChange', 'columnsChange'],"," Y.bind('_uiSetSortable', this));"," }",""," if (!handles.sortUITrigger && this._theadNode) {"," handles.sortUITrigger = this.delegate(['click','keydown'],"," Y.rbind('_onUITriggerSort', this),"," '.' + this.getClassName('sortable', 'column'));"," }"," },",""," /**"," Sets the `sortBy` attribute from the `sort` event's `e.sortBy` value.",""," @method _defSortFn"," @param {EventFacade} e The `sort` event"," @protected"," @since 3.5.0"," **/"," _defSortFn: function (e) {"," this.set.apply(this, ['sortBy', e.sortBy].concat(e.details));"," },",""," /**"," Getter for the `sortBy` attribute."," "," Supports the special subattribute \"sortBy.state\" to get a normalized JSON"," version of the current sort state. Otherwise, returns the last assigned"," value.",""," For example:",""," var table = new Y.DataTable({"," columns: [ ... ],"," data: [ ... ],"," sortBy: 'username'"," });",""," table.get('sortBy'); // 'username'"," table.get('sortBy.state'); // { key: 'username', dir: 1 }",""," table.sort(['lastName', { firstName: \"desc\" }]);"," table.get('sortBy'); // ['lastName', { firstName: \"desc\" }]"," table.get('sortBy.state'); // [{ key: \"lastName\", dir: 1 }, { key: \"firstName\", dir: -1 }]","
",""," @method _getSortBy"," @param {String|String[]|Object|Object[]} val The current sortBy value"," @param {String} detail String passed to `get(HERE)`. to parse subattributes"," @protected"," @since 3.5.0"," **/"," _getSortBy: function (val, detail) {"," var state, i, len, col;",""," // \"sortBy.\" is 7 characters. Used to catch "," detail = detail.slice(7);",""," // TODO: table.get('sortBy.asObject')? table.get('sortBy.json')?"," if (detail === 'state') {"," state = [];",""," for (i = 0, len = this._sortBy.length; i < len; ++i) {"," col = this._sortBy[i];"," state.push({"," column: col._id,"," dir: col.sortDir"," });"," }",""," // TODO: Always return an array?"," return { state: (state.length === 1) ? state[0] : state };"," } else {"," return val;"," }"," },",""," /**"," Sets up the initial sort state and instance properties. Publishes events"," and subscribes to attribute change events to maintain internal state.",""," @method initializer"," @protected"," @since 3.5.0"," **/"," initializer: function () {"," var boundParseSortable = Y.bind('_parseSortable', this);",""," this._parseSortable();",""," this._setSortBy();",""," this._initSortFn();",""," this._initSortStrings();",""," this.after({"," 'table:renderHeader': Y.bind('_renderSortable', this),"," dataChange : Y.bind('_afterSortDataChange', this),"," sortByChange : Y.bind('_afterSortByChange', this),"," sortableChange : boundParseSortable,"," columnsChange : boundParseSortable"," });"," this.data.after(this.data.model.NAME + \":change\","," Y.bind('_afterSortRecordChange', this));",""," // TODO: this event needs magic, allowing async remote sorting"," this.publish('sort', {"," defaultFn: Y.bind('_defSortFn', this)"," });"," },",""," /**"," Creates a `_compare` function for the `data` ModelList to allow custom"," sorting by multiple fields.",""," @method _initSortFn"," @protected"," @since 3.5.0"," **/"," _initSortFn: function () {"," var self = this;",""," // TODO: This should be a ModelList extension."," // FIXME: Modifying a component of the host seems a little smelly"," // FIXME: Declaring inline override to leverage closure vs"," // compiling a new function for each column/sortable change or"," // binding the _compare implementation to this, resulting in an"," // extra function hop during sorting. Lesser of three evils?"," this.data._compare = function (a, b) {"," var cmp = 0,"," i, len, col, dir, aa, bb;",""," for (i = 0, len = self._sortBy.length; !cmp && i < len; ++i) {"," col = self._sortBy[i];"," dir = col.sortDir;",""," if (col.sortFn) {"," cmp = col.sortFn(a, b, (dir === -1));"," } else {"," // FIXME? Requires columns without sortFns to have key"," aa = a.get(col.key) || '';"," bb = b.get(col.key) || '';",""," cmp = (aa > bb) ? dir : ((aa < bb) ? -dir : 0);"," }"," }",""," return cmp;"," };",""," if (this._sortBy.length) {"," this.data.comparator = this._sortComparator;",""," // TODO: is this necessary? Should it be elsewhere?"," this.data.sort();"," } else {"," // Leave the _compare method in place to avoid having to set it"," // up again. Mistake?"," delete this.data.comparator;"," }"," },",""," /**"," Add the sort related strings to the `strings` map."," "," @method _initSortStrings"," @protected"," @since 3.5.0"," **/"," _initSortStrings: function () {"," // Not a valueFn because other class extensions will want to add to it"," this.set('strings', Y.mix((this.get('strings') || {}), "," Y.Intl.get('datatable-sort')));"," },",""," /**"," Fires the `sort` event in response to user clicks on sortable column"," headers.",""," @method _onUITriggerSort"," @param {DOMEventFacade} e The `click` event"," @protected"," @since 3.5.0"," **/"," _onUITriggerSort: function (e) {"," var id = e.currentTarget.getAttribute('data-yui3-col-id'),"," sortBy = e.shiftKey ? this.get('sortBy') : [{}],"," column = id && this.getColumn(id),"," i, len;",""," if (e.type === 'keydown' && e.keyCode !== 32) {"," return;"," }",""," // In case a headerTemplate injected a link"," // TODO: Is this overreaching?"," e.preventDefault();",""," if (column) {"," if (e.shiftKey) {"," for (i = 0, len = sortBy.length; i < len; ++i) {"," if (id === sortBy[i] || Math.abs(sortBy[i][id] === 1)) {"," if (!isObject(sortBy[i])) {"," sortBy[i] = {};"," }",""," sortBy[i][id] = -(column.sortDir|0) || 1;"," break;"," }"," }",""," if (i >= len) {"," sortBy.push(column._id);"," }"," } else {"," sortBy[0][id] = -(column.sortDir|0) || 1;"," }",""," this.fire('sort', {"," originEvent: e,"," sortBy: sortBy"," });"," }"," },",""," /**"," Normalizes the possible input values for the `sortable` attribute, storing"," the results in the `_sortable` property.",""," @method _parseSortable"," @protected"," @since 3.5.0"," **/"," _parseSortable: function () {"," var sortable = this.get('sortable'),"," columns = [],"," i, len, col;",""," if (isArray(sortable)) {"," for (i = 0, len = sortable.length; i < len; ++i) {"," col = sortable[i];",""," // isArray is called because arrays are objects, but will rely"," // on getColumn to nullify them for the subsequent if (col)"," if (!isObject(col, true) || isArray(col)) {"," col = this.getColumn(col);"," }",""," if (col) {"," columns.push(col);"," }"," }"," } else if (sortable) {"," columns = this._displayColumns.slice();",""," if (sortable === 'auto') {"," for (i = columns.length - 1; i >= 0; --i) {"," if (!columns[i].sortable) {"," columns.splice(i, 1);"," }"," }"," }"," }",""," this._sortable = columns;"," },",""," /**"," Initial application of the sortable UI.",""," @method _renderSortable"," @protected"," @since 3.5.0"," **/"," _renderSortable: function () {"," this._uiSetSortable();",""," this._bindSortUI();"," },",""," /**"," Parses the current `sortBy` attribute into a normalized structure for the"," `data` ModelList's `_compare` method. Also updates the column"," configurations' `sortDir` properties.",""," @method _setSortBy"," @protected"," @since 3.5.0"," **/"," _setSortBy: function () {"," var columns = this._displayColumns,"," sortBy = this.get('sortBy') || [],"," sortedClass = ' ' + this.getClassName('sorted'),"," i, len, name, dir, field, column;",""," this._sortBy = [];",""," // Purge current sort state from column configs"," for (i = 0, len = columns.length; i < len; ++i) {"," column = columns[i];",""," delete column.sortDir;",""," if (column.className) {"," // TODO: be more thorough"," column.className = column.className.replace(sortedClass, '');"," }"," }",""," sortBy = toArray(sortBy);",""," for (i = 0, len = sortBy.length; i < len; ++i) {"," name = sortBy[i];"," dir = 1;",""," if (isObject(name)) {"," field = name;"," // Have to use a for-in loop to process sort({ foo: -1 })"," for (name in field) {"," if (field.hasOwnProperty(name)) {"," dir = dirMap[field[name]];"," break;"," }"," }"," }",""," if (name) {"," // Allow sorting of any model field and any column"," // FIXME: this isn't limited to model attributes, but there's no"," // convenient way to get a list of the attributes for a Model"," // subclass *including* the attributes of its superclasses."," column = this.getColumn(name) || { _id: name, key: name };",""," if (column) {"," column.sortDir = dir;",""," if (!column.className) {"," column.className = '';"," }",""," column.className += sortedClass;",""," this._sortBy.push(column);"," }"," }"," }"," },",""," /**"," Array of column configuration objects of those columns that need UI setup"," for user interaction.",""," @property _sortable"," @type {Object[]}"," @protected"," @since 3.5.0"," **/"," //_sortable: null,",""," /**"," Array of column configuration objects for those columns that are currently"," being used to sort the data. Fake column objects are used for fields that"," are not rendered as columns.",""," @property _sortBy"," @type {Object[]}"," @protected"," @since 3.5.0"," **/"," //_sortBy: null,",""," /**"," Replacement `comparator` for the `data` ModelList that defers sorting logic"," to the `_compare` method. The deferral is accomplished by returning `this`.",""," @method _sortComparator"," @param {Model} item The record being evaluated for sort position"," @return {Model} The record"," @protected"," @since 3.5.0"," **/"," _sortComparator: function (item) {"," // Defer sorting to ModelList's _compare"," return item;"," },",""," /**"," Applies the appropriate classes to the `boundingBox` and column headers to"," indicate sort state and sortability.",""," Also currently wraps the header content of sortable columns in a ``"," liner to give a CSS anchor for sort indicators.",""," @method _uiSetSortable"," @protected"," @since 3.5.0"," **/"," _uiSetSortable: function () {"," var columns = this._sortable || [],"," sortableClass = this.getClassName('sortable', 'column'),"," ascClass = this.getClassName('sorted'),"," descClass = this.getClassName('sorted', 'desc'),"," linerClass = this.getClassName('sort', 'liner'),"," indicatorClass= this.getClassName('sort', 'indicator'),"," sortableCols = {},"," i, len, col, node, liner, title, desc;",""," this.get('boundingBox').toggleClass("," this.getClassName('sortable'),"," columns.length);",""," for (i = 0, len = columns.length; i < len; ++i) {"," sortableCols[columns[i].id] = columns[i];"," }",""," // TODO: this.head.render() + decorate cells?"," this._theadNode.all('.' + sortableClass).each(function (node) {"," var col = sortableCols[node.get('id')],"," liner = node.one('.' + linerClass),"," indicator;",""," if (col) {"," if (!col.sortDir) {"," node.removeClass(ascClass)"," .removeClass(descClass);"," }"," } else {"," node.removeClass(sortableClass)"," .removeClass(ascClass)"," .removeClass(descClass);",""," if (liner) {"," liner.replace(liner.get('childNodes').toFrag());"," }",""," indicator = node.one('.' + indicatorClass);",""," if (indicator) {"," indicator.remove().destroy(true);"," }"," }"," });",""," for (i = 0, len = columns.length; i < len; ++i) {"," col = columns[i];"," node = this._theadNode.one('#' + col.id);"," desc = col.sortDir === -1;",""," if (node) {"," liner = node.one('.' + linerClass);",""," node.addClass(sortableClass);",""," if (col.sortDir) {"," node.addClass(ascClass);",""," node.toggleClass(descClass, desc);",""," node.setAttribute('aria-sort', desc ?"," 'descending' : 'ascending');"," }",""," if (!liner) {"," liner = Y.Node.create(Y.Lang.sub("," this.SORTABLE_HEADER_TEMPLATE, {"," className: linerClass,"," indicatorClass: indicatorClass"," }));",""," liner.prepend(node.get('childNodes').toFrag());",""," node.append(liner);"," }",""," title = sub(this.getString("," (col.sortDir === 1) ? 'reverseSortBy' : 'sortBy'), {"," column: col.abbr || col.label ||"," col.key || ('column ' + i)"," });",""," node.setAttribute('title', title);"," // To combat VoiceOver from reading the sort title as the"," // column header"," node.setAttribute('aria-labelledby', col.id);"," }"," }"," },",""," /**"," Allows values `true`, `false`, \"auto\", or arrays of column names through.",""," @method _validateSortable"," @param {Any} val The input value to `set(\"sortable\", VAL)`"," @return {Boolean}"," @protected"," @since 3.5.0"," **/"," _validateSortable: function (val) {"," return val === 'auto' || isBoolean(val) || isArray(val);"," },",""," /**"," Allows strings, arrays of strings, objects, or arrays of objects.",""," @method _validateSortBy"," @param {String|String[]|Object|Object[]} val The new `sortBy` value"," @return {Boolean}"," @protected"," @since 3.5.0"," **/"," _validateSortBy: function (val) {"," return val === null ||"," isString(val) ||"," isObject(val, true) ||"," (isArray(val) && (isString(val[0]) || isObject(val, true)));"," }","","}, true);","","Y.DataTable.Sortable = Sortable;","","Y.Base.mix(Y.DataTable, [Sortable]);","","","}, '3.7.1', {\"requires\": [\"datatable-base\"], \"lang\": [\"en\"], \"skinnable\": true});"];
+_yuitest_coverage["build/datatable-sort/datatable-sort.js"].code=["YUI.add('datatable-sort', function (Y, NAME) {","","/**","Adds support for sorting the table data by API methods `table.sort(...)` or","`table.toggleSort(...)` or by clicking on column headers in the rendered UI.","","@module datatable","@submodule datatable-sort","@since 3.5.0","**/","var YLang = Y.Lang,"," isBoolean = YLang.isBoolean,"," isString = YLang.isString,"," isArray = YLang.isArray,"," isObject = YLang.isObject,",""," toArray = Y.Array,"," sub = YLang.sub,",""," dirMap = {"," asc : 1,"," desc: -1,"," \"1\" : 1,"," \"-1\": -1"," };","","","/**","_API docs for this extension are included in the DataTable class._","","This DataTable class extension adds support for sorting the table data by API","methods `table.sort(...)` or `table.toggleSort(...)` or by clicking on column","headers in the rendered UI.","","Sorting by the API is enabled automatically when this module is `use()`d. To","enable UI triggered sorting, set the DataTable's `sortable` attribute to","`true`.","","","var table = new Y.DataTable({"," columns: [ 'id', 'username', 'name', 'birthdate' ],"," data: [ ... ],"," sortable: true","});","","table.render('#table');","
","","Setting `sortable` to `true` will enable UI sorting for all columns. To enable","UI sorting for certain columns only, set `sortable` to an array of column keys,","or just add `sortable: true` to the respective column configuration objects.","This uses the default setting of `sortable: auto` for the DataTable instance.","","","var table = new Y.DataTable({"," columns: ["," 'id',"," { key: 'username', sortable: true },"," { key: 'name', sortable: true },"," { key: 'birthdate', sortable: true }"," ],"," data: [ ... ]"," // sortable: 'auto' is the default","});","","// OR","var table = new Y.DataTable({"," columns: [ 'id', 'username', 'name', 'birthdate' ],"," data: [ ... ],"," sortable: [ 'username', 'name', 'birthdate' ]","});","
","","To disable UI sorting for all columns, set `sortable` to `false`. This still","permits sorting via the API methods.","","As new records are inserted into the table's `data` ModelList, they will be inserted at the correct index to preserve the sort order.","","The current sort order is stored in the `sortBy` attribute. Assigning this value at instantiation will automatically sort your data.","","Sorting is done by a simple value comparison using < and > on the field","value. If you need custom sorting, add a sort function in the column's","`sortFn` property. Columns whose content is generated by formatters, but don't","relate to a single `key`, require a `sortFn` to be sortable.","","","function nameSort(a, b, desc) {"," var aa = a.get('lastName') + a.get('firstName'),"," bb = a.get('lastName') + b.get('firstName'),"," order = (aa > bb) ? 1 : -(aa < bb);"," "," return desc ? -order : order;","}","","var table = new Y.DataTable({"," columns: [ 'id', 'username', { key: name, sortFn: nameSort }, 'birthdate' ],"," data: [ ... ],"," sortable: [ 'username', 'name', 'birthdate' ]","});","
","","See the user guide for more details.","","@class DataTable.Sortable","@for DataTable","@since 3.5.0","**/","function Sortable() {}","","Sortable.ATTRS = {"," // Which columns in the UI should suggest and respond to sorting interaction"," // pass an empty array if no UI columns should show sortable, but you want the"," // table.sort(...) API"," /**"," Controls which column headers can trigger sorting by user clicks.",""," Acceptable values are:",""," * \"auto\" - (default) looks for `sortable: true` in the column configurations"," * `true` - all columns are enabled"," * `false - no UI sortable is enabled"," * {String[]} - array of key names to give sortable headers",""," @attribute sortable"," @type {String|String[]|Boolean}"," @default \"auto\""," @since 3.5.0"," **/"," sortable: {"," value: 'auto',"," validator: '_validateSortable'"," },",""," /**"," The current sort configuration to maintain in the data.",""," Accepts column `key` strings or objects with a single property, the column"," `key`, with a value of 1, -1, \"asc\", or \"desc\". E.g. `{ username: 'asc'"," }`. String values are assumed to be ascending.",""," Example values would be:",""," * `\"username\"` - sort by the data's `username` field or the `key`"," associated to a column with that `name`."," * `{ username: \"desc\" }` - sort by `username` in descending order."," Alternately, use values \"asc\", 1 (same as \"asc\"), or -1 (same as \"desc\")."," * `[\"lastName\", \"firstName\"]` - ascending sort by `lastName`, but for"," records with the same `lastName`, ascending subsort by `firstName`."," Array can have as many items as you want."," * `[{ lastName: -1 }, \"firstName\"]` - descending sort by `lastName`,"," ascending subsort by `firstName`. Mixed types are ok.",""," @attribute sortBy"," @type {String|String[]|Object|Object[]}"," @since 3.5.0"," **/"," sortBy: {"," validator: '_validateSortBy',"," getter: '_getSortBy'"," },",""," /**"," Strings containing language for sorting tooltips.",""," @attribute strings"," @type {Object}"," @default (strings for current lang configured in the YUI instance config)"," @since 3.5.0"," **/"," strings: {}","};","","Y.mix(Sortable.prototype, {",""," /**"," Sort the data in the `data` ModelList and refresh the table with the new"," order.",""," Acceptable values for `fields` are `key` strings or objects with a single"," property, the column `key`, with a value of 1, -1, \"asc\", or \"desc\". E.g."," `{ username: 'asc' }`. String values are assumed to be ascending.",""," Example values would be:",""," * `\"username\"` - sort by the data's `username` field or the `key`"," associated to a column with that `name`."," * `{ username: \"desc\" }` - sort by `username` in descending order."," Alternately, use values \"asc\", 1 (same as \"asc\"), or -1 (same as \"desc\")."," * `[\"lastName\", \"firstName\"]` - ascending sort by `lastName`, but for"," records with the same `lastName`, ascending subsort by `firstName`."," Array can have as many items as you want."," * `[{ lastName: -1 }, \"firstName\"]` - descending sort by `lastName`,"," ascending subsort by `firstName`. Mixed types are ok.",""," @method sort"," @param {String|String[]|Object|Object[]} fields The field(s) to sort by"," @param {Object} [payload] Extra `sort` event payload you want to send along"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," sort: function (fields, payload) {"," /**"," Notifies of an impending sort, either from clicking on a column"," header, or from a call to the `sort` or `toggleSort` method.",""," The requested sort is available in the `sortBy` property of the event.",""," The default behavior of this event sets the table's `sortBy` attribute.",""," @event sort"," @param {String|String[]|Object|Object[]} sortBy The requested sort"," @preventable _defSortFn"," **/"," return this.fire('sort', Y.merge((payload || {}), {"," sortBy: fields || this.get('sortBy')"," }));"," },",""," /**"," Template for the node that will wrap the header content for sortable"," columns.",""," @property SORTABLE_HEADER_TEMPLATE"," @type {HTML}"," @value ''"," @since 3.5.0"," **/"," SORTABLE_HEADER_TEMPLATE: '',",""," /**"," Reverse the current sort direction of one or more fields currently being"," sorted by.",""," Pass the `key` of the column or columns you want the sort order reversed"," for.",""," @method toggleSort"," @param {String|String[]} fields The field(s) to reverse sort order for"," @param {Object} [payload] Extra `sort` event payload you want to send along"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," toggleSort: function (columns, payload) {"," var current = this._sortBy,"," sortBy = [],"," i, len, j, col, index;",""," // To avoid updating column configs or sortBy directly"," for (i = 0, len = current.length; i < len; ++i) {"," col = {};"," col[current[i]._id] = current[i].sortDir;"," sortBy.push(col);"," }",""," if (columns) {"," columns = toArray(columns);",""," for (i = 0, len = columns.length; i < len; ++i) {"," col = columns[i];"," index = -1;",""," for (j = sortBy.length - 1; i >= 0; --i) {"," if (sortBy[j][col]) {"," sortBy[j][col] *= -1;"," break;"," }"," }"," }"," } else {"," for (i = 0, len = sortBy.length; i < len; ++i) {"," for (col in sortBy[i]) {"," if (sortBy[i].hasOwnProperty(col)) {"," sortBy[i][col] *= -1;"," break;"," }"," }"," }"," }",""," return this.fire('sort', Y.merge((payload || {}), {"," sortBy: sortBy"," }));"," },",""," //--------------------------------------------------------------------------"," // Protected properties and methods"," //--------------------------------------------------------------------------"," /**"," Sorts the `data` ModelList based on the new `sortBy` configuration.",""," @method _afterSortByChange"," @param {EventFacade} e The `sortByChange` event"," @protected"," @since 3.5.0"," **/"," _afterSortByChange: function (e) {"," // Can't use a setter because it's a chicken and egg problem. The"," // columns need to be set up to translate, but columns are initialized"," // from Core's initializer. So construction-time assignment would"," // fail."," this._setSortBy();",""," // Don't sort unless sortBy has been set"," if (this._sortBy.length) {"," if (!this.data.comparator) {"," this.data.comparator = this._sortComparator;"," }",""," this.data.sort();"," }"," },",""," /**"," Applies the sorting logic to the new ModelList if the `newVal` is a new"," ModelList.",""," @method _afterSortDataChange"," @param {EventFacade} e the `dataChange` event"," @protected"," @since 3.5.0"," **/"," _afterSortDataChange: function (e) {"," // object values always trigger a change event, but we only want to"," // call _initSortFn if the value passed to the `data` attribute was a"," // new ModelList, not a set of new data as an array, or even the same"," // ModelList."," if (e.prevVal !== e.newVal || e.newVal.hasOwnProperty('_compare')) {"," this._initSortFn();"," }"," },",""," /**"," Checks if any of the fields in the modified record are fields that are"," currently being sorted by, and if so, resorts the `data` ModelList.",""," @method _afterSortRecordChange"," @param {EventFacade} e The Model's `change` event"," @protected"," @since 3.5.0"," **/"," _afterSortRecordChange: function (e) {"," var i, len;",""," for (i = 0, len = this._sortBy.length; i < len; ++i) {"," if (e.changed[this._sortBy[i].key]) {"," this.data.sort();"," break;"," }"," }"," },",""," /**"," Subscribes to state changes that warrant updating the UI, and adds the"," click handler for triggering the sort operation from the UI.",""," @method _bindSortUI"," @protected"," @since 3.5.0"," **/"," _bindSortUI: function () {"," var handles = this._eventHandles;"," "," if (!handles.sortAttrs) {"," handles.sortAttrs = this.after("," ['sortableChange', 'sortByChange', 'columnsChange'],"," Y.bind('_uiSetSortable', this));"," }",""," if (!handles.sortUITrigger && this._theadNode) {"," handles.sortUITrigger = this.delegate(['click','keydown'],"," Y.rbind('_onUITriggerSort', this),"," '.' + this.getClassName('sortable', 'column'));"," }"," },",""," /**"," Sets the `sortBy` attribute from the `sort` event's `e.sortBy` value.",""," @method _defSortFn"," @param {EventFacade} e The `sort` event"," @protected"," @since 3.5.0"," **/"," _defSortFn: function (e) {"," this.set.apply(this, ['sortBy', e.sortBy].concat(e.details));"," },",""," /**"," Getter for the `sortBy` attribute."," "," Supports the special subattribute \"sortBy.state\" to get a normalized JSON"," version of the current sort state. Otherwise, returns the last assigned"," value.",""," For example:",""," var table = new Y.DataTable({"," columns: [ ... ],"," data: [ ... ],"," sortBy: 'username'"," });",""," table.get('sortBy'); // 'username'"," table.get('sortBy.state'); // { key: 'username', dir: 1 }",""," table.sort(['lastName', { firstName: \"desc\" }]);"," table.get('sortBy'); // ['lastName', { firstName: \"desc\" }]"," table.get('sortBy.state'); // [{ key: \"lastName\", dir: 1 }, { key: \"firstName\", dir: -1 }]","
",""," @method _getSortBy"," @param {String|String[]|Object|Object[]} val The current sortBy value"," @param {String} detail String passed to `get(HERE)`. to parse subattributes"," @protected"," @since 3.5.0"," **/"," _getSortBy: function (val, detail) {"," var state, i, len, col;",""," // \"sortBy.\" is 7 characters. Used to catch "," detail = detail.slice(7);",""," // TODO: table.get('sortBy.asObject')? table.get('sortBy.json')?"," if (detail === 'state') {"," state = [];",""," for (i = 0, len = this._sortBy.length; i < len; ++i) {"," col = this._sortBy[i];"," state.push({"," column: col._id,"," dir: col.sortDir"," });"," }",""," // TODO: Always return an array?"," return { state: (state.length === 1) ? state[0] : state };"," } else {"," return val;"," }"," },",""," /**"," Sets up the initial sort state and instance properties. Publishes events"," and subscribes to attribute change events to maintain internal state.",""," @method initializer"," @protected"," @since 3.5.0"," **/"," initializer: function () {"," var boundParseSortable = Y.bind('_parseSortable', this);",""," this._parseSortable();",""," this._setSortBy();",""," this._initSortFn();",""," this._initSortStrings();",""," this.after({"," 'table:renderHeader': Y.bind('_renderSortable', this),"," dataChange : Y.bind('_afterSortDataChange', this),"," sortByChange : Y.bind('_afterSortByChange', this),"," sortableChange : boundParseSortable,"," columnsChange : boundParseSortable"," });"," this.data.after(this.data.model.NAME + \":change\","," Y.bind('_afterSortRecordChange', this));",""," // TODO: this event needs magic, allowing async remote sorting"," this.publish('sort', {"," defaultFn: Y.bind('_defSortFn', this)"," });"," },",""," /**"," Creates a `_compare` function for the `data` ModelList to allow custom"," sorting by multiple fields.",""," @method _initSortFn"," @protected"," @since 3.5.0"," **/"," _initSortFn: function () {"," var self = this;",""," // TODO: This should be a ModelList extension."," // FIXME: Modifying a component of the host seems a little smelly"," // FIXME: Declaring inline override to leverage closure vs"," // compiling a new function for each column/sortable change or"," // binding the _compare implementation to this, resulting in an"," // extra function hop during sorting. Lesser of three evils?"," this.data._compare = function (a, b) {"," var cmp = 0,"," i, len, col, dir, aa, bb;",""," for (i = 0, len = self._sortBy.length; !cmp && i < len; ++i) {"," col = self._sortBy[i];"," dir = col.sortDir;",""," if (col.sortFn) {"," cmp = col.sortFn(a, b, (dir === -1));"," } else {"," // FIXME? Requires columns without sortFns to have key"," aa = a.get(col.key) || '';"," bb = b.get(col.key) || '';",""," cmp = (aa > bb) ? dir : ((aa < bb) ? -dir : 0);"," }"," }",""," return cmp;"," };",""," if (this._sortBy.length) {"," this.data.comparator = this._sortComparator;",""," // TODO: is this necessary? Should it be elsewhere?"," this.data.sort();"," } else {"," // Leave the _compare method in place to avoid having to set it"," // up again. Mistake?"," delete this.data.comparator;"," }"," },",""," /**"," Add the sort related strings to the `strings` map."," "," @method _initSortStrings"," @protected"," @since 3.5.0"," **/"," _initSortStrings: function () {"," // Not a valueFn because other class extensions will want to add to it"," this.set('strings', Y.mix((this.get('strings') || {}), "," Y.Intl.get('datatable-sort')));"," },",""," /**"," Fires the `sort` event in response to user clicks on sortable column"," headers.",""," @method _onUITriggerSort"," @param {DOMEventFacade} e The `click` event"," @protected"," @since 3.5.0"," **/"," _onUITriggerSort: function (e) {"," var id = e.currentTarget.getAttribute('data-yui3-col-id'),"," sortBy = e.shiftKey ? this.get('sortBy') : [{}],"," column = id && this.getColumn(id),"," i, len;",""," if (e.type === 'keydown' && e.keyCode !== 32) {"," return;"," }",""," // In case a headerTemplate injected a link"," // TODO: Is this overreaching?"," e.preventDefault();",""," if (column) {"," if (e.shiftKey) {"," for (i = 0, len = sortBy.length; i < len; ++i) {"," if (id === sortBy[i] || Math.abs(sortBy[i][id] === 1)) {"," if (!isObject(sortBy[i])) {"," sortBy[i] = {};"," }",""," sortBy[i][id] = -(column.sortDir|0) || 1;"," break;"," }"," }",""," if (i >= len) {"," sortBy.push(column._id);"," }"," } else {"," sortBy[0][id] = -(column.sortDir|0) || 1;"," }",""," this.fire('sort', {"," originEvent: e,"," sortBy: sortBy"," });"," }"," },",""," /**"," Normalizes the possible input values for the `sortable` attribute, storing"," the results in the `_sortable` property.",""," @method _parseSortable"," @protected"," @since 3.5.0"," **/"," _parseSortable: function () {"," var sortable = this.get('sortable'),"," columns = [],"," i, len, col;",""," if (isArray(sortable)) {"," for (i = 0, len = sortable.length; i < len; ++i) {"," col = sortable[i];",""," // isArray is called because arrays are objects, but will rely"," // on getColumn to nullify them for the subsequent if (col)"," if (!isObject(col, true) || isArray(col)) {"," col = this.getColumn(col);"," }",""," if (col) {"," columns.push(col);"," }"," }"," } else if (sortable) {"," columns = this._displayColumns.slice();",""," if (sortable === 'auto') {"," for (i = columns.length - 1; i >= 0; --i) {"," if (!columns[i].sortable) {"," columns.splice(i, 1);"," }"," }"," }"," }",""," this._sortable = columns;"," },",""," /**"," Initial application of the sortable UI.",""," @method _renderSortable"," @protected"," @since 3.5.0"," **/"," _renderSortable: function () {"," this._uiSetSortable();",""," this._bindSortUI();"," },",""," /**"," Parses the current `sortBy` attribute into a normalized structure for the"," `data` ModelList's `_compare` method. Also updates the column"," configurations' `sortDir` properties.",""," @method _setSortBy"," @protected"," @since 3.5.0"," **/"," _setSortBy: function () {"," var columns = this._displayColumns,"," sortBy = this.get('sortBy') || [],"," sortedClass = ' ' + this.getClassName('sorted'),"," i, len, name, dir, field, column;",""," this._sortBy = [];",""," // Purge current sort state from column configs"," for (i = 0, len = columns.length; i < len; ++i) {"," column = columns[i];",""," delete column.sortDir;",""," if (column.className) {"," // TODO: be more thorough"," column.className = column.className.replace(sortedClass, '');"," }"," }",""," sortBy = toArray(sortBy);",""," for (i = 0, len = sortBy.length; i < len; ++i) {"," name = sortBy[i];"," dir = 1;",""," if (isObject(name)) {"," field = name;"," // Have to use a for-in loop to process sort({ foo: -1 })"," for (name in field) {"," if (field.hasOwnProperty(name)) {"," dir = dirMap[field[name]];"," break;"," }"," }"," }",""," if (name) {"," // Allow sorting of any model field and any column"," // FIXME: this isn't limited to model attributes, but there's no"," // convenient way to get a list of the attributes for a Model"," // subclass *including* the attributes of its superclasses."," column = this.getColumn(name) || { _id: name, key: name };",""," if (column) {"," column.sortDir = dir;",""," if (!column.className) {"," column.className = '';"," }",""," column.className += sortedClass;",""," this._sortBy.push(column);"," }"," }"," }"," },",""," /**"," Array of column configuration objects of those columns that need UI setup"," for user interaction.",""," @property _sortable"," @type {Object[]}"," @protected"," @since 3.5.0"," **/"," //_sortable: null,",""," /**"," Array of column configuration objects for those columns that are currently"," being used to sort the data. Fake column objects are used for fields that"," are not rendered as columns.",""," @property _sortBy"," @type {Object[]}"," @protected"," @since 3.5.0"," **/"," //_sortBy: null,",""," /**"," Replacement `comparator` for the `data` ModelList that defers sorting logic"," to the `_compare` method. The deferral is accomplished by returning `this`.",""," @method _sortComparator"," @param {Model} item The record being evaluated for sort position"," @return {Model} The record"," @protected"," @since 3.5.0"," **/"," _sortComparator: function (item) {"," // Defer sorting to ModelList's _compare"," return item;"," },",""," /**"," Applies the appropriate classes to the `boundingBox` and column headers to"," indicate sort state and sortability.",""," Also currently wraps the header content of sortable columns in a ``"," liner to give a CSS anchor for sort indicators.",""," @method _uiSetSortable"," @protected"," @since 3.5.0"," **/"," _uiSetSortable: function () {"," var columns = this._sortable || [],"," sortableClass = this.getClassName('sortable', 'column'),"," ascClass = this.getClassName('sorted'),"," descClass = this.getClassName('sorted', 'desc'),"," linerClass = this.getClassName('sort', 'liner'),"," indicatorClass= this.getClassName('sort', 'indicator'),"," sortableCols = {},"," i, len, col, node, liner, title, desc;",""," this.get('boundingBox').toggleClass("," this.getClassName('sortable'),"," columns.length);",""," for (i = 0, len = columns.length; i < len; ++i) {"," sortableCols[columns[i].id] = columns[i];"," }",""," // TODO: this.head.render() + decorate cells?"," this._theadNode.all('.' + sortableClass).each(function (node) {"," var col = sortableCols[node.get('id')],"," liner = node.one('.' + linerClass),"," indicator;",""," if (col) {"," if (!col.sortDir) {"," node.removeClass(ascClass)"," .removeClass(descClass);"," }"," } else {"," node.removeClass(sortableClass)"," .removeClass(ascClass)"," .removeClass(descClass);",""," if (liner) {"," liner.replace(liner.get('childNodes').toFrag());"," }",""," indicator = node.one('.' + indicatorClass);",""," if (indicator) {"," indicator.remove().destroy(true);"," }"," }"," });",""," for (i = 0, len = columns.length; i < len; ++i) {"," col = columns[i];"," node = this._theadNode.one('#' + col.id);"," desc = col.sortDir === -1;",""," if (node) {"," liner = node.one('.' + linerClass);",""," node.addClass(sortableClass);",""," if (col.sortDir) {"," node.addClass(ascClass);",""," node.toggleClass(descClass, desc);",""," node.setAttribute('aria-sort', desc ?"," 'descending' : 'ascending');"," }",""," if (!liner) {"," liner = Y.Node.create(Y.Lang.sub("," this.SORTABLE_HEADER_TEMPLATE, {"," className: linerClass,"," indicatorClass: indicatorClass"," }));",""," liner.prepend(node.get('childNodes').toFrag());",""," node.append(liner);"," }",""," title = sub(this.getString("," (col.sortDir === 1) ? 'reverseSortBy' : 'sortBy'), {"," column: col.abbr || col.label ||"," col.key || ('column ' + i)"," });",""," node.setAttribute('title', title);"," // To combat VoiceOver from reading the sort title as the"," // column header"," node.setAttribute('aria-labelledby', col.id);"," }"," }"," },",""," /**"," Allows values `true`, `false`, \"auto\", or arrays of column names through.",""," @method _validateSortable"," @param {Any} val The input value to `set(\"sortable\", VAL)`"," @return {Boolean}"," @protected"," @since 3.5.0"," **/"," _validateSortable: function (val) {"," return val === 'auto' || isBoolean(val) || isArray(val);"," },",""," /**"," Allows strings, arrays of strings, objects, or arrays of objects.",""," @method _validateSortBy"," @param {String|String[]|Object|Object[]} val The new `sortBy` value"," @return {Boolean}"," @protected"," @since 3.5.0"," **/"," _validateSortBy: function (val) {"," return val === null ||"," isString(val) ||"," isObject(val, true) ||"," (isArray(val) && (isString(val[0]) || isObject(val, true)));"," }","","}, true);","","Y.DataTable.Sortable = Sortable;","","Y.Base.mix(Y.DataTable, [Sortable]);","","","}, '3.7.2', {\"requires\": [\"datatable-base\"], \"lang\": [\"en\"], \"skinnable\": true});"];
_yuitest_coverage["build/datatable-sort/datatable-sort.js"].lines = {"1":0,"11":0,"108":0,"110":0,"173":0,"215":0,"246":0,"251":0,"252":0,"253":0,"254":0,"257":0,"258":0,"260":0,"261":0,"262":0,"264":0,"265":0,"266":0,"267":0,"272":0,"273":0,"274":0,"275":0,"276":0,"282":0,"303":0,"306":0,"307":0,"308":0,"311":0,"329":0,"330":0,"344":0,"346":0,"347":0,"348":0,"349":0,"363":0,"365":0,"366":0,"371":0,"372":0,"387":0,"420":0,"423":0,"426":0,"427":0,"429":0,"430":0,"431":0,"438":0,"440":0,"453":0,"455":0,"457":0,"459":0,"461":0,"463":0,"470":0,"474":0,"488":0,"496":0,"497":0,"500":0,"501":0,"502":0,"504":0,"505":0,"508":0,"509":0,"511":0,"515":0,"518":0,"519":0,"522":0,"526":0,"539":0,"553":0,"558":0,"559":0,"564":0,"566":0,"567":0,"568":0,"569":0,"570":0,"571":0,"574":0,"575":0,"579":0,"580":0,"583":0,"586":0,"602":0,"606":0,"607":0,"608":0,"612":0,"613":0,"616":0,"617":0,"620":0,"621":0,"623":0,"624":0,"625":0,"626":0,"632":0,"643":0,"645":0,"658":0,"663":0,"666":0,"667":0,"669":0,"671":0,"673":0,"677":0,"679":0,"680":0,"681":0,"683":0,"684":0,"686":0,"687":0,"688":0,"689":0,"694":0,"699":0,"701":0,"702":0,"704":0,"705":0,"708":0,"710":0,"751":0,"766":0,"775":0,"779":0,"780":0,"784":0,"785":0,"789":0,"790":0,"791":0,"795":0,"799":0,"800":0,"803":0,"805":0,"806":0,"811":0,"812":0,"813":0,"814":0,"816":0,"817":0,"819":0,"821":0,"822":0,"824":0,"826":0,"830":0,"831":0,"837":0,"839":0,"842":0,"848":0,"851":0,"866":0,"879":0,"887":0,"889":0};
_yuitest_coverage["build/datatable-sort/datatable-sort.js"].functions = {"Sortable:108":0,"sort:202":0,"toggleSort:245":0,"_afterSortByChange:298":0,"_afterSortDataChange:324":0,"_afterSortRecordChange:343":0,"_bindSortUI:362":0,"_defSortFn:386":0,"_getSortBy:419":0,"initializer:452":0,"_compare:496":0,"_initSortFn:487":0,"_initSortStrings:537":0,"_onUITriggerSort:552":0,"_parseSortable:601":0,"_renderSortable:642":0,"_setSortBy:657":0,"_sortComparator:749":0,"(anonymous 2):784":0,"_uiSetSortable:765":0,"_validateSortable:865":0,"_validateSortBy:878":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-sort/datatable-sort.js"].coveredLines = 174;
@@ -1124,4 +1124,4 @@ _yuitest_coverline("build/datatable-sort/datatable-sort.js", 889);
Y.Base.mix(Y.DataTable, [Sortable]);
-}, '3.7.1', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/datatable-sort-debug.js b/lib/yuilib/3.7.2/build/datatable-sort/datatable-sort-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-sort/datatable-sort-debug.js
rename to lib/yuilib/3.7.2/build/datatable-sort/datatable-sort-debug.js
index 7a910c095e4..f791d643b8a 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort/datatable-sort-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-sort/datatable-sort-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -895,4 +895,4 @@ Y.DataTable.Sortable = Sortable;
Y.Base.mix(Y.DataTable, [Sortable]);
-}, '3.7.1', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
+}, '3.7.2', {"requires": ["datatable-base"], "lang": ["en"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/datatable-sort/datatable-sort-min.js b/lib/yuilib/3.7.2/build/datatable-sort/datatable-sort-min.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-sort/datatable-sort-min.js
rename to lib/yuilib/3.7.2/build/datatable-sort/datatable-sort-min.js
index 9985207d6da..7f8a75a1103 100644
--- a/lib/yuilib/3.7.1/build/datatable-sort/datatable-sort-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-sort/datatable-sort-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-sort",function(e,t){function l(){}var n=e.Lang,r=n.isBoolean,i=n.isString,s=n.isArray,o=n.isObject,u=e.Array,a=n.sub,f={asc:1,desc:-1,1:1,"-1":-1};l.ATTRS={sortable:{value:"auto",validator:"_validateSortable"},sortBy:{validator:"_validateSortBy",getter:"_getSortBy"},strings:{}},e.mix(l.prototype,{sort:function(t,n){return this.fire("sort",e.merge(n||{},{sortBy:t||this.get("sortBy")}))},SORTABLE_HEADER_TEMPLATE:'',toggleSort:function(t,n){var r=this._sortBy,i=[],s,o,a,f,l;for(s=0,o=r.length;s=0;--s)if(i[a][f]){i[a][f]*=-1;break}}}else for(s=0,o=i.length;sf?u:a=s&&n.push(r._id)}else n[0][t]=-(r.sortDir|0)||1;this.fire("sort",{originEvent:e,sortBy:n})}},_parseSortable:function(){var e=this.get("sortable"),t=[],n,r,i;if(s(e))for(n=0,r=e.length;n=0;--n)t[n].sortable||t.splice(n,1)}this._sortable=t},_renderSortable:function(){this._uiSetSortable(),this._bindSortUI()},_setSortBy:function(){var e=this._displayColumns,t=this.get("sortBy")||[],n=" "+this.getClassName("sorted"),r,i,s,a,l,c;this._sortBy=[];for(r=0,i=e.length;r ',toggleSort:function(t,n){var r=this._sortBy,i=[],s,o,a,f,l;for(s=0,o=r.length;s=0;--s)if(i[a][f]){i[a][f]*=-1;break}}}else for(s=0,o=i.length;sf?u:a=s&&n.push(r._id)}else n[0][t]=-(r.sortDir|0)||1;this.fire("sort",{originEvent:e,sortBy:n})}},_parseSortable:function(){var e=this.get("sortable"),t=[],n,r,i;if(s(e))for(n=0,r=e.length;n=0;--n)t[n].sortable||t.splice(n,1)}this._sortable=t},_renderSortable:function(){this._uiSetSortable(),this._bindSortUI()},_setSortBy:function(){var e=this._displayColumns,t=this.get("sortBy")||[],n=" "+this.getClassName("sorted"),r,i,s,a,l,c;this._sortBy=[];for(r=0,i=e.length;r` from provided data. Used as","the default `view` for `Y.DataTable.Base` and `Y.DataTable` classes.","","@module datatable","@submodule datatable-table","@since 3.6.0","**/","var toArray = Y.Array,"," YLang = Y.Lang,"," fromTemplate = YLang.sub,",""," isArray = YLang.isArray,"," isFunction = YLang.isFunction;","","/**","View class responsible for rendering a `` from provided data. Used as","the default `view` for `Y.DataTable.Base` and `Y.DataTable` classes.","","","","@class TableView","@namespace DataTable","@extends View","@since 3.6.0","**/","Y.namespace('DataTable').TableView = Y.Base.create('table', Y.View, [], {",""," /**"," The HTML template used to create the caption Node if the `caption`"," attribute is set.",""," @property CAPTION_TEMPLATE"," @type {HTML}"," @default ''"," @since 3.6.0"," **/"," CAPTION_TEMPLATE: '',",""," /**"," The HTML template used to create the table Node.",""," @property TABLE_TEMPLATE"," @type {HTML}"," @default ''"," @since 3.6.0"," **/"," TABLE_TEMPLATE : '',",""," /**"," The object or instance of the class assigned to `bodyView` that is"," responsible for rendering and managing the table's ``(s) and its"," content.",""," @property body"," @type {Object}"," @default undefined (initially unset)"," @since 3.5.0"," **/"," //body: null,",""," /**"," The object or instance of the class assigned to `footerView` that is"," responsible for rendering and managing the table's `` and its"," content.",""," @property foot"," @type {Object}"," @default undefined (initially unset)"," @since 3.5.0"," **/"," //foot: null,",""," /**"," The object or instance of the class assigned to `headerView` that is"," responsible for rendering and managing the table's `` and its"," content.",""," @property head"," @type {Object}"," @default undefined (initially unset)"," @since 3.5.0"," **/"," //head: null,",""," //-----------------------------------------------------------------------//"," // Public methods"," //-----------------------------------------------------------------------//",""," /**"," Returns the `` Node from the given row and column index. Alternately,"," the `seed` can be a Node. If so, the nearest ancestor cell is returned."," If the `seed` is a cell, it is returned. If there is no cell at the given"," coordinates, `null` is returned.",""," Optionally, include an offset array or string to return a cell near the"," cell identified by the `seed`. The offset can be an array containing the"," number of rows to shift followed by the number of columns to shift, or one"," of \"above\", \"below\", \"next\", or \"previous\".",""," // Previous cell in the previous row"," var cell = table.getCell(e.target, [-1, -1]);",""," // Next cell"," var cell = table.getCell(e.target, 'next');"," var cell = table.getCell(e.taregt, [0, 1];
",""," This is actually just a pass through to the `bodyView` instance's method"," by the same name.",""," @method getCell"," @param {Number[]|Node} seed Array of row and column indexes, or a Node that"," is either the cell itself or a descendant of one."," @param {Number[]|String} [shift] Offset by which to identify the returned"," cell Node"," @return {Node}"," @since 3.5.0"," **/"," getCell: function (seed, shift) {"," return this.body && this.body.getCell &&"," this.body.getCell.apply(this.body, arguments);"," },",""," /**"," 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"," **/"," getClassName: function () {"," // TODO: add attr with setter for host?"," 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(toArray(arguments, 0, true)));"," }"," },",""," /**"," Relays call to the `bodyView`'s `getRecord` method if it has one.",""," @method getRecord"," @param {String|Node} seed Node or identifier for a row or child element"," @return {Model}"," @since 3.6.0"," **/"," getRecord: function () {"," return this.body && this.body.getRecord &&"," this.body.getRecord.apply(this.body, arguments);"," },",""," /**"," Returns the ` ` Node from the given row index, Model, or Model's"," `clientId`. If the rows haven't been rendered yet, or if the row can't be"," found by the input, `null` is returned.",""," This is actually just a pass through to the `bodyView` instance's method"," by the same name.",""," @method getRow"," @param {Number|String|Model} id Row index, Model instance, or clientId"," @return {Node}"," @since 3.5.0"," **/"," getRow: function (id) {"," return this.body && this.body.getRow &&"," this.body.getRow.apply(this.body, arguments);"," },","",""," //-----------------------------------------------------------------------//"," // Protected and private methods"," //-----------------------------------------------------------------------//"," /**"," Updates the table's `summary` attribute.",""," @method _afterSummaryChange"," @param {EventHandle} e The change event"," @protected"," @since 3.6.0"," **/"," _afterSummaryChange: function (e) {"," this._uiSetSummary(e.newVal);"," },",""," /**"," Updates the table's ``.",""," @method _afterCaptionChange"," @param {EventHandle} e The change event"," @protected"," @since 3.6.0"," **/"," _afterCaptionChange: function (e) {"," this._uiSetCaption(e.newVal);"," },",""," /**"," Updates the table's width.",""," @method _afterWidthChange"," @param {EventHandle} e The change event"," @protected"," @since 3.6.0"," **/"," _afterWidthChange: function (e) {"," this._uiSetWidth(e.newVal);"," },",""," /**"," Attaches event subscriptions to relay attribute changes to the child Views.",""," @method _bindUI"," @protected"," @since 3.6.0"," **/"," _bindUI: function () {"," var relay;",""," if (!this._eventHandles) {"," relay = Y.bind('_relayAttrChange', this);",""," this._eventHandles = this.after({"," columnsChange : relay,"," modelListChange: relay,"," summaryChange : Y.bind('_afterSummaryChange', this),"," captionChange : Y.bind('_afterCaptionChange', this),"," widthChange : Y.bind('_afterWidthChange', this)"," });"," }"," },",""," /**"," Creates the ``.",""," @method _createTable"," @return {Node} The `` node"," @protected"," @since 3.5.0"," **/"," _createTable: function () {"," return Y.Node.create(fromTemplate(this.TABLE_TEMPLATE, {"," className: this.getClassName('table')"," })).empty();"," },",""," /**"," Calls `render()` on the `bodyView` class instance.",""," @method _defRenderBodyFn"," @param {EventFacade} e The renderBody event"," @protected"," @since 3.5.0"," **/"," _defRenderBodyFn: function (e) {"," e.view.render();"," },",""," /**"," Calls `render()` on the `footerView` class instance.",""," @method _defRenderFooterFn"," @param {EventFacade} e The renderFooter event"," @protected"," @since 3.5.0"," **/"," _defRenderFooterFn: function (e) {"," e.view.render();"," },",""," /**"," Calls `render()` on the `headerView` class instance.",""," @method _defRenderHeaderFn"," @param {EventFacade} e The renderHeader event"," @protected"," @since 3.5.0"," **/"," _defRenderHeaderFn: function (e) {"," e.view.render();"," },",""," /**"," Renders the `` and, if there are associated Views, the ``,"," ``, and `` (empty until `syncUI`).",""," Assigns the generated table nodes to the `tableNode`, `_theadNode`,"," `_tfootNode`, and `_tbodyNode` properties. Assigns the instantiated Views"," to the `head`, `foot`, and `body` properties.","",""," @method _defRenderTableFn"," @param {EventFacade} e The renderTable event"," @protected"," @since 3.5.0"," **/"," _defRenderTableFn: function (e) {"," var container = this.get('container'),"," attrs = this.getAttrs();",""," if (!this.tableNode) {"," this.tableNode = this._createTable();"," }",""," attrs.host = this.get('host') || this;"," attrs.table = this;"," attrs.container = this.tableNode;",""," this._uiSetCaption(this.get('caption'));"," this._uiSetSummary(this.get('summary'));"," this._uiSetWidth(this.get('width'));",""," if (this.head || e.headerView) {"," if (!this.head) {"," this.head = new e.headerView(Y.merge(attrs, e.headerConfig));"," }",""," this.fire('renderHeader', { view: this.head });"," }",""," if (this.foot || e.footerView) {"," if (!this.foot) {"," this.foot = new e.footerView(Y.merge(attrs, e.footerConfig));"," }",""," this.fire('renderFooter', { view: this.foot });"," }",""," attrs.columns = this.displayColumns;",""," if (this.body || e.bodyView) {"," if (!this.body) {"," this.body = new e.bodyView(Y.merge(attrs, e.bodyConfig));"," }",""," this.fire('renderBody', { view: this.body });"," }",""," if (!container.contains(this.tableNode)) {"," container.append(this.tableNode);"," }",""," this._bindUI();"," },",""," /**"," Cleans up state, destroys child views, etc.",""," @method destructor"," @protected"," **/"," destructor: function () {"," if (this.head && this.head.destroy) {"," this.head.destroy();"," }"," delete this.head;",""," if (this.foot && this.foot.destroy) {"," this.foot.destroy();"," }"," delete this.foot;",""," if (this.body && this.body.destroy) {"," this.body.destroy();"," }"," delete this.body;",""," if (this._eventHandles) {"," this._eventHandles.detach();"," delete this._eventHandles;"," }",""," if (this.tableNode) {"," this.tableNode.remove().destroy(true);"," }"," },",""," /**"," Processes the full column array, distilling the columns down to those that"," correspond to cell data columns.",""," @method _extractDisplayColumns"," @protected"," **/"," _extractDisplayColumns: function () {"," var columns = this.get('columns'),"," displayColumns = [];",""," function process(cols) {"," var i, len, col;",""," for (i = 0, len = cols.length; i < len; ++i) {"," col = cols[i];",""," if (isArray(col.children)) {"," process(col.children);"," } else {"," displayColumns.push(col);"," }"," }"," }",""," process(columns);",""," /**"," Array of the columns that correspond to those with value cells in the"," data rows. Excludes colspan header columns (configured with `children`).",""," @property displayColumns"," @type {Object[]}"," @since 3.6.0"," **/"," this.displayColumns = displayColumns;"," },",""," /**"," Publishes core events.",""," @method _initEvents"," @protected"," @since 3.5.0"," **/"," _initEvents: function () {"," this.publish({"," // Y.bind used to allow late binding for method override support"," renderTable : { defaultFn: Y.bind('_defRenderTableFn', this) },"," renderHeader: { defaultFn: Y.bind('_defRenderHeaderFn', this) },"," renderBody : { defaultFn: Y.bind('_defRenderBodyFn', this) },"," renderFooter: { defaultFn: Y.bind('_defRenderFooterFn', this) }"," });"," },",""," /**"," Constructor logic.",""," @method intializer"," @param {Object} config Configuration object passed to the constructor"," @protected"," @since 3.6.0"," **/"," initializer: function (config) {"," this.host = config.host;",""," this._initEvents();",""," this._extractDisplayColumns();",""," this.after('columnsChange', this._extractDisplayColumns, this);"," },",""," /**"," Relays attribute changes to the child Views.",""," @method _relayAttrChange"," @param {EventHandle} e The change event"," @protected"," @since 3.6.0"," **/"," _relayAttrChange: function (e) {"," var attr = e.attrName,"," val = e.newVal;",""," if (this.head) {"," this.head.set(attr, val);"," }",""," if (this.foot) {"," this.foot.set(attr, val);"," }",""," if (this.body) {"," if (attr === 'columns') {"," val = this.displayColumns;"," }",""," this.body.set(attr, val);"," }"," },",""," /**"," Creates the UI in the configured `container`.",""," @method render"," @return {TableView}"," @chainable"," **/"," render: function () {"," if (this.get('container')) {"," this.fire('renderTable', {"," headerView : this.get('headerView'),"," headerConfig: this.get('headerConfig'),",""," bodyView : this.get('bodyView'),"," bodyConfig : this.get('bodyConfig'),",""," footerView : this.get('footerView'),"," footerConfig: this.get('footerConfig')"," });"," }",""," return this;"," },",""," /**"," Creates, removes, or updates the table's `` element per the input"," value. Empty values result in the caption being removed.",""," @method _uiSetCaption"," @param {HTML} htmlContent The content to populate the table caption"," @protected"," @since 3.5.0"," **/"," _uiSetCaption: function (htmlContent) {"," var table = this.tableNode,"," caption = this.captionNode;",""," if (htmlContent) {"," if (!caption) {"," this.captionNode = caption = Y.Node.create("," fromTemplate(this.CAPTION_TEMPLATE, {"," className: this.getClassName('caption')"," }));",""," table.prepend(this.captionNode);"," }",""," caption.setHTML(htmlContent);",""," } else if (caption) {"," caption.remove(true);",""," delete this.captionNode;"," }"," },",""," /**"," Updates the table's `summary` attribute with the input value.",""," @method _uiSetSummary"," @protected"," @since 3.5.0"," **/"," _uiSetSummary: function (summary) {"," if (summary) {"," this.tableNode.setAttribute('summary', summary);"," } else {"," this.tableNode.removeAttribute('summary');"," }"," },",""," /**"," Sets the `boundingBox` and table width per the input value.",""," @method _uiSetWidth"," @param {Number|String} width The width to make the table"," @protected"," @since 3.5.0"," **/"," _uiSetWidth: function (width) {"," var table = this.tableNode;",""," // Table width needs to account for borders"," table.setStyle('width', !width ? '' :"," (this.get('container').get('offsetWidth') -"," (parseInt(table.getComputedStyle('borderLeftWidth'), 10)|0) -"," (parseInt(table.getComputedStyle('borderLeftWidth'), 10)|0)) +"," 'px');",""," table.setStyle('width', width);"," },",""," /**"," Ensures that the input is a View class or at least has a `render` method.",""," @method _validateView"," @param {View|Function} val The View class"," @return {Boolean}"," @protected"," **/"," _validateView: function (val) {"," return isFunction(val) && val.prototype.render;"," }","}, {"," ATTRS: {"," /**"," Content for the ``. Values"," assigned to this attribute will be HTML escaped for security.",""," @attribute summary"," @type {String}"," @default '' (empty string)"," @since 3.5.0"," **/"," //summary: {},",""," /**"," HTML content of an optional `` element to appear above the"," table. Leave this config unset or set to a falsy value to remove the"," caption.",""," @attribute caption"," @type HTML"," @default undefined (initially unset)"," @since 3.6.0"," **/"," //caption: {},",""," /**"," Columns to include in the rendered table.",""," This attribute takes an array of objects. Each object is considered a"," data column or header cell to be rendered. How the objects are"," translated into markup is delegated to the `headerView`, `bodyView`,"," and `footerView`.",""," The raw value is passed to the `headerView` and `footerView`. The"," `bodyView` receives the instance's `displayColumns` array, which is"," parsed from the columns array. If there are no nested columns (columns"," configured with a `children` array), the `displayColumns` is the same"," as the raw value."," "," @attribute columns"," @type {Object[]}"," @since 3.6.0"," **/"," columns: {"," validator: isArray"," },",""," /**"," Width of the table including borders. This value requires units, so"," `200` is invalid, but `'200px'` is valid. Setting the empty string"," (the default) will allow the browser to set the table width.",""," @attribute width"," @type {String}"," @default ''"," @since 3.6.0"," **/"," width: {"," value: '',"," validator: YLang.isString"," },",""," /**"," An instance of this class is used to render the contents of the"," ` `—the column headers for the table."," "," The instance of this View will be assigned to the instance's `head`"," property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute headerView"," @type {Function|Object}"," @default Y.DataTable.HeaderView"," @since 3.6.0"," **/"," headerView: {"," value: Y.DataTable.HeaderView,"," validator: '_validateView'"," },",""," /**"," Configuration overrides used when instantiating the `headerView`"," instance.",""," @attribute headerConfig"," @type {Object}"," @since 3.6.0"," **/"," //headerConfig: {},",""," /**"," An instance of this class is used to render the contents of the"," `` (if appropriate)."," "," The instance of this View will be assigned to the instance's `foot`"," property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute footerView"," @type {Function|Object}"," @since 3.6.0"," **/"," footerView: {"," validator: '_validateView'"," },",""," /**"," Configuration overrides used when instantiating the `footerView`"," instance.",""," @attribute footerConfig"," @type {Object}"," @since 3.6.0"," **/"," //footerConfig: {},",""," /**"," An instance of this class is used to render the contents of the table's"," ``—the data cells in the table."," "," The instance of this View will be assigned to the instance's `body`"," property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute bodyView"," @type {Function|Object}"," @default Y.DataTable.BodyView"," @since 3.6.0"," **/"," bodyView: {"," value: Y.DataTable.BodyView,"," validator: '_validateView'"," }",""," /**"," Configuration overrides used when instantiating the `bodyView`"," instance.",""," @attribute bodyConfig"," @type {Object}"," @since 3.6.0"," **/"," //bodyConfig: {}"," }","});","","","","","}, '3.7.1', {\"requires\": [\"datatable-core\", \"datatable-head\", \"datatable-body\", \"view\", \"classnamemanager\"]});"];
+_yuitest_coverage["build/datatable-table/datatable-table.js"].code=["YUI.add('datatable-table', function (Y, NAME) {","","/**","View class responsible for rendering a `` from provided data. Used as","the default `view` for `Y.DataTable.Base` and `Y.DataTable` classes.","","@module datatable","@submodule datatable-table","@since 3.6.0","**/","var toArray = Y.Array,"," YLang = Y.Lang,"," fromTemplate = YLang.sub,",""," isArray = YLang.isArray,"," isFunction = YLang.isFunction;","","/**","View class responsible for rendering a `` from provided data. Used as","the default `view` for `Y.DataTable.Base` and `Y.DataTable` classes.","","","","@class TableView","@namespace DataTable","@extends View","@since 3.6.0","**/","Y.namespace('DataTable').TableView = Y.Base.create('table', Y.View, [], {",""," /**"," The HTML template used to create the caption Node if the `caption`"," attribute is set.",""," @property CAPTION_TEMPLATE"," @type {HTML}"," @default ''"," @since 3.6.0"," **/"," CAPTION_TEMPLATE: '',",""," /**"," The HTML template used to create the table Node.",""," @property TABLE_TEMPLATE"," @type {HTML}"," @default ''"," @since 3.6.0"," **/"," TABLE_TEMPLATE : '',",""," /**"," The object or instance of the class assigned to `bodyView` that is"," responsible for rendering and managing the table's ``(s) and its"," content.",""," @property body"," @type {Object}"," @default undefined (initially unset)"," @since 3.5.0"," **/"," //body: null,",""," /**"," The object or instance of the class assigned to `footerView` that is"," responsible for rendering and managing the table's `` and its"," content.",""," @property foot"," @type {Object}"," @default undefined (initially unset)"," @since 3.5.0"," **/"," //foot: null,",""," /**"," The object or instance of the class assigned to `headerView` that is"," responsible for rendering and managing the table's `` and its"," content.",""," @property head"," @type {Object}"," @default undefined (initially unset)"," @since 3.5.0"," **/"," //head: null,",""," //-----------------------------------------------------------------------//"," // Public methods"," //-----------------------------------------------------------------------//",""," /**"," Returns the `` Node from the given row and column index. Alternately,"," the `seed` can be a Node. If so, the nearest ancestor cell is returned."," If the `seed` is a cell, it is returned. If there is no cell at the given"," coordinates, `null` is returned.",""," Optionally, include an offset array or string to return a cell near the"," cell identified by the `seed`. The offset can be an array containing the"," number of rows to shift followed by the number of columns to shift, or one"," of \"above\", \"below\", \"next\", or \"previous\".",""," // Previous cell in the previous row"," var cell = table.getCell(e.target, [-1, -1]);",""," // Next cell"," var cell = table.getCell(e.target, 'next');"," var cell = table.getCell(e.taregt, [0, 1];
",""," This is actually just a pass through to the `bodyView` instance's method"," by the same name.",""," @method getCell"," @param {Number[]|Node} seed Array of row and column indexes, or a Node that"," is either the cell itself or a descendant of one."," @param {Number[]|String} [shift] Offset by which to identify the returned"," cell Node"," @return {Node}"," @since 3.5.0"," **/"," getCell: function (seed, shift) {"," return this.body && this.body.getCell &&"," this.body.getCell.apply(this.body, arguments);"," },",""," /**"," 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"," **/"," getClassName: function () {"," // TODO: add attr with setter for host?"," 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(toArray(arguments, 0, true)));"," }"," },",""," /**"," Relays call to the `bodyView`'s `getRecord` method if it has one.",""," @method getRecord"," @param {String|Node} seed Node or identifier for a row or child element"," @return {Model}"," @since 3.6.0"," **/"," getRecord: function () {"," return this.body && this.body.getRecord &&"," this.body.getRecord.apply(this.body, arguments);"," },",""," /**"," Returns the ` ` Node from the given row index, Model, or Model's"," `clientId`. If the rows haven't been rendered yet, or if the row can't be"," found by the input, `null` is returned.",""," This is actually just a pass through to the `bodyView` instance's method"," by the same name.",""," @method getRow"," @param {Number|String|Model} id Row index, Model instance, or clientId"," @return {Node}"," @since 3.5.0"," **/"," getRow: function (id) {"," return this.body && this.body.getRow &&"," this.body.getRow.apply(this.body, arguments);"," },","",""," //-----------------------------------------------------------------------//"," // Protected and private methods"," //-----------------------------------------------------------------------//"," /**"," Updates the table's `summary` attribute.",""," @method _afterSummaryChange"," @param {EventHandle} e The change event"," @protected"," @since 3.6.0"," **/"," _afterSummaryChange: function (e) {"," this._uiSetSummary(e.newVal);"," },",""," /**"," Updates the table's ``.",""," @method _afterCaptionChange"," @param {EventHandle} e The change event"," @protected"," @since 3.6.0"," **/"," _afterCaptionChange: function (e) {"," this._uiSetCaption(e.newVal);"," },",""," /**"," Updates the table's width.",""," @method _afterWidthChange"," @param {EventHandle} e The change event"," @protected"," @since 3.6.0"," **/"," _afterWidthChange: function (e) {"," this._uiSetWidth(e.newVal);"," },",""," /**"," Attaches event subscriptions to relay attribute changes to the child Views.",""," @method _bindUI"," @protected"," @since 3.6.0"," **/"," _bindUI: function () {"," var relay;",""," if (!this._eventHandles) {"," relay = Y.bind('_relayAttrChange', this);",""," this._eventHandles = this.after({"," columnsChange : relay,"," modelListChange: relay,"," summaryChange : Y.bind('_afterSummaryChange', this),"," captionChange : Y.bind('_afterCaptionChange', this),"," widthChange : Y.bind('_afterWidthChange', this)"," });"," }"," },",""," /**"," Creates the ``.",""," @method _createTable"," @return {Node} The `` node"," @protected"," @since 3.5.0"," **/"," _createTable: function () {"," return Y.Node.create(fromTemplate(this.TABLE_TEMPLATE, {"," className: this.getClassName('table')"," })).empty();"," },",""," /**"," Calls `render()` on the `bodyView` class instance.",""," @method _defRenderBodyFn"," @param {EventFacade} e The renderBody event"," @protected"," @since 3.5.0"," **/"," _defRenderBodyFn: function (e) {"," e.view.render();"," },",""," /**"," Calls `render()` on the `footerView` class instance.",""," @method _defRenderFooterFn"," @param {EventFacade} e The renderFooter event"," @protected"," @since 3.5.0"," **/"," _defRenderFooterFn: function (e) {"," e.view.render();"," },",""," /**"," Calls `render()` on the `headerView` class instance.",""," @method _defRenderHeaderFn"," @param {EventFacade} e The renderHeader event"," @protected"," @since 3.5.0"," **/"," _defRenderHeaderFn: function (e) {"," e.view.render();"," },",""," /**"," Renders the `` and, if there are associated Views, the ``,"," ``, and `` (empty until `syncUI`).",""," Assigns the generated table nodes to the `tableNode`, `_theadNode`,"," `_tfootNode`, and `_tbodyNode` properties. Assigns the instantiated Views"," to the `head`, `foot`, and `body` properties.","",""," @method _defRenderTableFn"," @param {EventFacade} e The renderTable event"," @protected"," @since 3.5.0"," **/"," _defRenderTableFn: function (e) {"," var container = this.get('container'),"," attrs = this.getAttrs();",""," if (!this.tableNode) {"," this.tableNode = this._createTable();"," }",""," attrs.host = this.get('host') || this;"," attrs.table = this;"," attrs.container = this.tableNode;",""," this._uiSetCaption(this.get('caption'));"," this._uiSetSummary(this.get('summary'));"," this._uiSetWidth(this.get('width'));",""," if (this.head || e.headerView) {"," if (!this.head) {"," this.head = new e.headerView(Y.merge(attrs, e.headerConfig));"," }",""," this.fire('renderHeader', { view: this.head });"," }",""," if (this.foot || e.footerView) {"," if (!this.foot) {"," this.foot = new e.footerView(Y.merge(attrs, e.footerConfig));"," }",""," this.fire('renderFooter', { view: this.foot });"," }",""," attrs.columns = this.displayColumns;",""," if (this.body || e.bodyView) {"," if (!this.body) {"," this.body = new e.bodyView(Y.merge(attrs, e.bodyConfig));"," }",""," this.fire('renderBody', { view: this.body });"," }",""," if (!container.contains(this.tableNode)) {"," container.append(this.tableNode);"," }",""," this._bindUI();"," },",""," /**"," Cleans up state, destroys child views, etc.",""," @method destructor"," @protected"," **/"," destructor: function () {"," if (this.head && this.head.destroy) {"," this.head.destroy();"," }"," delete this.head;",""," if (this.foot && this.foot.destroy) {"," this.foot.destroy();"," }"," delete this.foot;",""," if (this.body && this.body.destroy) {"," this.body.destroy();"," }"," delete this.body;",""," if (this._eventHandles) {"," this._eventHandles.detach();"," delete this._eventHandles;"," }",""," if (this.tableNode) {"," this.tableNode.remove().destroy(true);"," }"," },",""," /**"," Processes the full column array, distilling the columns down to those that"," correspond to cell data columns.",""," @method _extractDisplayColumns"," @protected"," **/"," _extractDisplayColumns: function () {"," var columns = this.get('columns'),"," displayColumns = [];",""," function process(cols) {"," var i, len, col;",""," for (i = 0, len = cols.length; i < len; ++i) {"," col = cols[i];",""," if (isArray(col.children)) {"," process(col.children);"," } else {"," displayColumns.push(col);"," }"," }"," }",""," process(columns);",""," /**"," Array of the columns that correspond to those with value cells in the"," data rows. Excludes colspan header columns (configured with `children`).",""," @property displayColumns"," @type {Object[]}"," @since 3.6.0"," **/"," this.displayColumns = displayColumns;"," },",""," /**"," Publishes core events.",""," @method _initEvents"," @protected"," @since 3.5.0"," **/"," _initEvents: function () {"," this.publish({"," // Y.bind used to allow late binding for method override support"," renderTable : { defaultFn: Y.bind('_defRenderTableFn', this) },"," renderHeader: { defaultFn: Y.bind('_defRenderHeaderFn', this) },"," renderBody : { defaultFn: Y.bind('_defRenderBodyFn', this) },"," renderFooter: { defaultFn: Y.bind('_defRenderFooterFn', this) }"," });"," },",""," /**"," Constructor logic.",""," @method intializer"," @param {Object} config Configuration object passed to the constructor"," @protected"," @since 3.6.0"," **/"," initializer: function (config) {"," this.host = config.host;",""," this._initEvents();",""," this._extractDisplayColumns();",""," this.after('columnsChange', this._extractDisplayColumns, this);"," },",""," /**"," Relays attribute changes to the child Views.",""," @method _relayAttrChange"," @param {EventHandle} e The change event"," @protected"," @since 3.6.0"," **/"," _relayAttrChange: function (e) {"," var attr = e.attrName,"," val = e.newVal;",""," if (this.head) {"," this.head.set(attr, val);"," }",""," if (this.foot) {"," this.foot.set(attr, val);"," }",""," if (this.body) {"," if (attr === 'columns') {"," val = this.displayColumns;"," }",""," this.body.set(attr, val);"," }"," },",""," /**"," Creates the UI in the configured `container`.",""," @method render"," @return {TableView}"," @chainable"," **/"," render: function () {"," if (this.get('container')) {"," this.fire('renderTable', {"," headerView : this.get('headerView'),"," headerConfig: this.get('headerConfig'),",""," bodyView : this.get('bodyView'),"," bodyConfig : this.get('bodyConfig'),",""," footerView : this.get('footerView'),"," footerConfig: this.get('footerConfig')"," });"," }",""," return this;"," },",""," /**"," Creates, removes, or updates the table's `` element per the input"," value. Empty values result in the caption being removed.",""," @method _uiSetCaption"," @param {HTML} htmlContent The content to populate the table caption"," @protected"," @since 3.5.0"," **/"," _uiSetCaption: function (htmlContent) {"," var table = this.tableNode,"," caption = this.captionNode;",""," if (htmlContent) {"," if (!caption) {"," this.captionNode = caption = Y.Node.create("," fromTemplate(this.CAPTION_TEMPLATE, {"," className: this.getClassName('caption')"," }));",""," table.prepend(this.captionNode);"," }",""," caption.setHTML(htmlContent);",""," } else if (caption) {"," caption.remove(true);",""," delete this.captionNode;"," }"," },",""," /**"," Updates the table's `summary` attribute with the input value.",""," @method _uiSetSummary"," @protected"," @since 3.5.0"," **/"," _uiSetSummary: function (summary) {"," if (summary) {"," this.tableNode.setAttribute('summary', summary);"," } else {"," this.tableNode.removeAttribute('summary');"," }"," },",""," /**"," Sets the `boundingBox` and table width per the input value.",""," @method _uiSetWidth"," @param {Number|String} width The width to make the table"," @protected"," @since 3.5.0"," **/"," _uiSetWidth: function (width) {"," var table = this.tableNode;",""," // Table width needs to account for borders"," table.setStyle('width', !width ? '' :"," (this.get('container').get('offsetWidth') -"," (parseInt(table.getComputedStyle('borderLeftWidth'), 10)|0) -"," (parseInt(table.getComputedStyle('borderLeftWidth'), 10)|0)) +"," 'px');",""," table.setStyle('width', width);"," },",""," /**"," Ensures that the input is a View class or at least has a `render` method.",""," @method _validateView"," @param {View|Function} val The View class"," @return {Boolean}"," @protected"," **/"," _validateView: function (val) {"," return isFunction(val) && val.prototype.render;"," }","}, {"," ATTRS: {"," /**"," Content for the ``. Values"," assigned to this attribute will be HTML escaped for security.",""," @attribute summary"," @type {String}"," @default '' (empty string)"," @since 3.5.0"," **/"," //summary: {},",""," /**"," HTML content of an optional `` element to appear above the"," table. Leave this config unset or set to a falsy value to remove the"," caption.",""," @attribute caption"," @type HTML"," @default undefined (initially unset)"," @since 3.6.0"," **/"," //caption: {},",""," /**"," Columns to include in the rendered table.",""," This attribute takes an array of objects. Each object is considered a"," data column or header cell to be rendered. How the objects are"," translated into markup is delegated to the `headerView`, `bodyView`,"," and `footerView`.",""," The raw value is passed to the `headerView` and `footerView`. The"," `bodyView` receives the instance's `displayColumns` array, which is"," parsed from the columns array. If there are no nested columns (columns"," configured with a `children` array), the `displayColumns` is the same"," as the raw value."," "," @attribute columns"," @type {Object[]}"," @since 3.6.0"," **/"," columns: {"," validator: isArray"," },",""," /**"," Width of the table including borders. This value requires units, so"," `200` is invalid, but `'200px'` is valid. Setting the empty string"," (the default) will allow the browser to set the table width.",""," @attribute width"," @type {String}"," @default ''"," @since 3.6.0"," **/"," width: {"," value: '',"," validator: YLang.isString"," },",""," /**"," An instance of this class is used to render the contents of the"," ` `—the column headers for the table."," "," The instance of this View will be assigned to the instance's `head`"," property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute headerView"," @type {Function|Object}"," @default Y.DataTable.HeaderView"," @since 3.6.0"," **/"," headerView: {"," value: Y.DataTable.HeaderView,"," validator: '_validateView'"," },",""," /**"," Configuration overrides used when instantiating the `headerView`"," instance.",""," @attribute headerConfig"," @type {Object}"," @since 3.6.0"," **/"," //headerConfig: {},",""," /**"," An instance of this class is used to render the contents of the"," `` (if appropriate)."," "," The instance of this View will be assigned to the instance's `foot`"," property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute footerView"," @type {Function|Object}"," @since 3.6.0"," **/"," footerView: {"," validator: '_validateView'"," },",""," /**"," Configuration overrides used when instantiating the `footerView`"," instance.",""," @attribute footerConfig"," @type {Object}"," @since 3.6.0"," **/"," //footerConfig: {},",""," /**"," An instance of this class is used to render the contents of the table's"," ``—the data cells in the table."," "," The instance of this View will be assigned to the instance's `body`"," property.",""," It is not strictly necessary that the class function assigned here be"," a View subclass. It must however have a `render()` method.",""," @attribute bodyView"," @type {Function|Object}"," @default Y.DataTable.BodyView"," @since 3.6.0"," **/"," bodyView: {"," value: Y.DataTable.BodyView,"," validator: '_validateView'"," }",""," /**"," Configuration overrides used when instantiating the `bodyView`"," instance.",""," @attribute bodyConfig"," @type {Object}"," @since 3.6.0"," **/"," //bodyConfig: {}"," }","});","","","","","}, '3.7.2', {\"requires\": [\"datatable-core\", \"datatable-head\", \"datatable-body\", \"view\", \"classnamemanager\"]});"];
_yuitest_coverage["build/datatable-table/datatable-table.js"].lines = {"1":0,"11":0,"29":0,"122":0,"142":0,"146":0,"147":0,"149":0,"164":0,"182":0,"199":0,"211":0,"223":0,"234":0,"236":0,"237":0,"239":0,"258":0,"272":0,"284":0,"296":0,"314":0,"317":0,"318":0,"321":0,"322":0,"323":0,"325":0,"326":0,"327":0,"329":0,"330":0,"331":0,"334":0,"337":0,"338":0,"339":0,"342":0,"345":0,"347":0,"348":0,"349":0,"352":0,"355":0,"356":0,"359":0,"369":0,"370":0,"372":0,"374":0,"375":0,"377":0,"379":0,"380":0,"382":0,"384":0,"385":0,"386":0,"389":0,"390":0,"402":0,"405":0,"406":0,"408":0,"409":0,"411":0,"412":0,"414":0,"419":0,"429":0,"440":0,"458":0,"460":0,"462":0,"464":0,"476":0,"479":0,"480":0,"483":0,"484":0,"487":0,"488":0,"489":0,"492":0,"504":0,"505":0,"517":0,"530":0,"533":0,"534":0,"535":0,"540":0,"543":0,"545":0,"546":0,"548":0,"560":0,"561":0,"563":0,"576":0,"579":0,"585":0,"597":0};
_yuitest_coverage["build/datatable-table/datatable-table.js"].functions = {"getCell:121":0,"getClassName:140":0,"getRecord:163":0,"getRow:181":0,"_afterSummaryChange:198":0,"_afterCaptionChange:210":0,"_afterWidthChange:222":0,"_bindUI:233":0,"_createTable:257":0,"_defRenderBodyFn:271":0,"_defRenderFooterFn:283":0,"_defRenderHeaderFn:295":0,"_defRenderTableFn:313":0,"destructor:368":0,"process:405":0,"_extractDisplayColumns:401":0,"_initEvents:439":0,"initializer:457":0,"_relayAttrChange:475":0,"render:503":0,"_uiSetCaption:529":0,"_uiSetSummary:559":0,"_uiSetWidth:575":0,"_validateView:596":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatable-table/datatable-table.js"].coveredLines = 103;
@@ -918,4 +918,4 @@ return isFunction(val) && val.prototype.render;
-}, '3.7.1', {"requires": ["datatable-core", "datatable-head", "datatable-body", "view", "classnamemanager"]});
+}, '3.7.2', {"requires": ["datatable-core", "datatable-head", "datatable-body", "view", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-table/datatable-table-debug.js b/lib/yuilib/3.7.2/build/datatable-table/datatable-table-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatable-table/datatable-table-debug.js
rename to lib/yuilib/3.7.2/build/datatable-table/datatable-table-debug.js
index f65f10bacb1..3475e338685 100644
--- a/lib/yuilib/3.7.1/build/datatable-table/datatable-table-debug.js
+++ b/lib/yuilib/3.7.2/build/datatable-table/datatable-table-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -757,4 +757,4 @@ Y.namespace('DataTable').TableView = Y.Base.create('table', Y.View, [], {
-}, '3.7.1', {"requires": ["datatable-core", "datatable-head", "datatable-body", "view", "classnamemanager"]});
+}, '3.7.2', {"requires": ["datatable-core", "datatable-head", "datatable-body", "view", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/datatable-table/datatable-table-min.js b/lib/yuilib/3.7.2/build/datatable-table/datatable-table-min.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatable-table/datatable-table-min.js
rename to lib/yuilib/3.7.2/build/datatable-table/datatable-table-min.js
index 217889f0813..5ac1a478ac1 100644
--- a/lib/yuilib/3.7.1/build/datatable-table/datatable-table-min.js
+++ b/lib/yuilib/3.7.2/build/datatable-table/datatable-table-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatable-table",function(e,t){var n=e.Array,r=e.Lang,i=r.sub,s=r.isArray,o=r.isFunction;e.namespace("DataTable").TableView=e.Base.create("table",e.View,[],{CAPTION_TEMPLATE:' ',TABLE_TEMPLATE:'
',getCell:function(e,t){return this.body&&this.body.getCell&&this.body.getCell.apply(this.body,arguments)},getClassName:function(){var t=this.host,r=t&&t.constructor.NAME||this.constructor.NAME;return t&&t.getClassName?t.getClassName.apply(t,arguments):e.ClassNameManager.getClassName.apply(e.ClassNameManager,[r].concat(n(arguments,0,!0)))},getRecord:function(){return this.body&&this.body.getRecord&&this.body.getRecord.apply(this.body,arguments)},getRow:function(e){return this.body&&this.body.getRow&&this.body.getRow.apply(this.body,arguments)},_afterSummaryChange:function(e){this._uiSetSummary(e.newVal)},_afterCaptionChange:function(e){this._uiSetCaption(e.newVal)},_afterWidthChange:function(e){this._uiSetWidth(e.newVal)},_bindUI:function(){var t;this._eventHandles||(t=e.bind("_relayAttrChange",this),this._eventHandles=this.after({columnsChange:t,modelListChange:t,summaryChange:e.bind("_afterSummaryChange",this),captionChange:e.bind("_afterCaptionChange",this),widthChange:e.bind("_afterWidthChange",this)}))},_createTable:function(){return e.Node.create(i(this.TABLE_TEMPLATE,{className:this.getClassName("table")})).empty()},_defRenderBodyFn:function(e){e.view.render()},_defRenderFooterFn:function(e){e.view.render()},_defRenderHeaderFn:function(e){e.view.render()},_defRenderTableFn:function(t){var n=this.get("container"),r=this.getAttrs();this.tableNode||(this.tableNode=this._createTable()),r.host=this.get("host")||this,r.table=this,r.container=this.tableNode,this._uiSetCaption(this.get("caption")),this._uiSetSummary(this.get("summary")),this._uiSetWidth(this.get("width"));if(this.head||t.headerView)this.head||(this.head=new t.headerView(e.merge(r,t.headerConfig))),this.fire("renderHeader",{view:this.head});if(this.foot||t.footerView)this.foot||(this.foot=new t.footerView(e.merge(r,t.footerConfig))),this.fire("renderFooter",{view:this.foot});r.columns=this.displayColumns;if(this.body||t.bodyView)this.body||(this.body=new t.bodyView(e.merge(r,t.bodyConfig))),this.fire("renderBody",{view:this.body});n.contains(this.tableNode)||n.append(this.tableNode),this._bindUI()},destructor:function(){this.head&&this.head.destroy&&this.head.destroy(),delete this.head,this.foot&&this.foot.destroy&&this.foot.destroy(),delete this.foot,this.body&&this.body.destroy&&this.body.destroy(),delete this.body,this._eventHandles&&(this._eventHandles.detach(),delete this._eventHandles),this.tableNode&&this.tableNode.remove().destroy(!0)},_extractDisplayColumns:function(){function n(e){var r,i,o;for(r=0,i=e.length;r',TABLE_TEMPLATE:'
',getCell:function(e,t){return this.body&&this.body.getCell&&this.body.getCell.apply(this.body,arguments)},getClassName:function(){var t=this.host,r=t&&t.constructor.NAME||this.constructor.NAME;return t&&t.getClassName?t.getClassName.apply(t,arguments):e.ClassNameManager.getClassName.apply(e.ClassNameManager,[r].concat(n(arguments,0,!0)))},getRecord:function(){return this.body&&this.body.getRecord&&this.body.getRecord.apply(this.body,arguments)},getRow:function(e){return this.body&&this.body.getRow&&this.body.getRow.apply(this.body,arguments)},_afterSummaryChange:function(e){this._uiSetSummary(e.newVal)},_afterCaptionChange:function(e){this._uiSetCaption(e.newVal)},_afterWidthChange:function(e){this._uiSetWidth(e.newVal)},_bindUI:function(){var t;this._eventHandles||(t=e.bind("_relayAttrChange",this),this._eventHandles=this.after({columnsChange:t,modelListChange:t,summaryChange:e.bind("_afterSummaryChange",this),captionChange:e.bind("_afterCaptionChange",this),widthChange:e.bind("_afterWidthChange",this)}))},_createTable:function(){return e.Node.create(i(this.TABLE_TEMPLATE,{className:this.getClassName("table")})).empty()},_defRenderBodyFn:function(e){e.view.render()},_defRenderFooterFn:function(e){e.view.render()},_defRenderHeaderFn:function(e){e.view.render()},_defRenderTableFn:function(t){var n=this.get("container"),r=this.getAttrs();this.tableNode||(this.tableNode=this._createTable()),r.host=this.get("host")||this,r.table=this,r.container=this.tableNode,this._uiSetCaption(this.get("caption")),this._uiSetSummary(this.get("summary")),this._uiSetWidth(this.get("width"));if(this.head||t.headerView)this.head||(this.head=new t.headerView(e.merge(r,t.headerConfig))),this.fire("renderHeader",{view:this.head});if(this.foot||t.footerView)this.foot||(this.foot=new t.footerView(e.merge(r,t.footerConfig))),this.fire("renderFooter",{view:this.foot});r.columns=this.displayColumns;if(this.body||t.bodyView)this.body||(this.body=new t.bodyView(e.merge(r,t.bodyConfig))),this.fire("renderBody",{view:this.body});n.contains(this.tableNode)||n.append(this.tableNode),this._bindUI()},destructor:function(){this.head&&this.head.destroy&&this.head.destroy(),delete this.head,this.foot&&this.foot.destroy&&this.foot.destroy(),delete this.foot,this.body&&this.body.destroy&&this.body.destroy(),delete this.body,this._eventHandles&&(this._eventHandles.detach(),delete this._eventHandles),this.tableNode&&this.tableNode.remove().destroy(!0)},_extractDisplayColumns:function(){function n(e){var r,i,o;for(r=0,i=e.length;r1; r/=10) {"," x = pad + x;"," }"," return x.toString();","};","","var Dt = {"," formats: {"," a: function (d, l) { return l.a[d.getDay()]; },"," A: function (d, l) { return l.A[d.getDay()]; },"," b: function (d, l) { return l.b[d.getMonth()]; },"," B: function (d, l) { return l.B[d.getMonth()]; },"," C: function (d) { return xPad(parseInt(d.getFullYear()/100, 10), 0); },"," d: [\"getDate\", \"0\"],"," e: [\"getDate\", \" \"],"," g: function (d) { return xPad(parseInt(Dt.formats.G(d)%100, 10), 0); },"," G: function (d) {"," var y = d.getFullYear();"," var V = parseInt(Dt.formats.V(d), 10);"," var W = parseInt(Dt.formats.W(d), 10);"," "," if(W > V) {"," y++;"," } else if(W===0 && V>=52) {"," y--;"," }"," "," return y;"," },"," H: [\"getHours\", \"0\"],"," I: function (d) { var I=d.getHours()%12; return xPad(I===0?12:I, 0); },"," j: function (d) {"," var gmd_1 = new Date(\"\" + d.getFullYear() + \"/1/1 GMT\");"," var gmdate = new Date(\"\" + d.getFullYear() + \"/\" + (d.getMonth()+1) + \"/\" + d.getDate() + \" GMT\");"," var ms = gmdate - gmd_1;"," var doy = parseInt(ms/60000/60/24, 10)+1;"," return xPad(doy, 0, 100);"," },"," k: [\"getHours\", \" \"],"," l: function (d) { var I=d.getHours()%12; return xPad(I===0?12:I, \" \"); },"," m: function (d) { return xPad(d.getMonth()+1, 0); },"," M: [\"getMinutes\", \"0\"],"," p: function (d, l) { return l.p[d.getHours() >= 12 ? 1 : 0 ]; },"," P: function (d, l) { return l.P[d.getHours() >= 12 ? 1 : 0 ]; },"," s: function (d, l) { return parseInt(d.getTime()/1000, 10); },"," S: [\"getSeconds\", \"0\"],"," u: function (d) { var dow = d.getDay(); return dow===0?7:dow; },"," U: function (d) {"," var doy = parseInt(Dt.formats.j(d), 10);"," var rdow = 6-d.getDay();"," var woy = parseInt((doy+rdow)/7, 10);"," return xPad(woy, 0);"," },"," V: function (d) {"," var woy = parseInt(Dt.formats.W(d), 10);"," var dow1_1 = (new Date(\"\" + d.getFullYear() + \"/1/1\")).getDay();"," // First week is 01 and not 00 as in the case of %U and %W,"," // so we add 1 to the final result except if day 1 of the year"," // is a Monday (then %W returns 01)."," // We also need to subtract 1 if the day 1 of the year is "," // Friday-Sunday, so the resulting equation becomes:"," var idow = woy + (dow1_1 > 4 || dow1_1 <= 1 ? 0 : 1);"," if(idow === 53 && (new Date(\"\" + d.getFullYear() + \"/12/31\")).getDay() < 4)"," {"," idow = 1;"," }"," else if(idow === 0)"," {"," idow = Dt.formats.V(new Date(\"\" + (d.getFullYear()-1) + \"/12/31\"));"," }"," "," return xPad(idow, 0);"," },"," w: \"getDay\","," W: function (d) {"," var doy = parseInt(Dt.formats.j(d), 10);"," var rdow = 7-Dt.formats.u(d);"," var woy = parseInt((doy+rdow)/7, 10);"," return xPad(woy, 0, 10);"," },"," y: function (d) { return xPad(d.getFullYear()%100, 0); },"," Y: \"getFullYear\","," z: function (d) {"," var o = d.getTimezoneOffset();"," var H = xPad(parseInt(Math.abs(o/60), 10), 0);"," var M = xPad(Math.abs(o%60), 0);"," return (o>0?\"-\":\"+\") + H + M;"," },"," Z: function (d) {"," var tz = d.toString().replace(/^.*:\\d\\d( GMT[+-]\\d+)? \\(?([A-Za-z ]+)\\)?\\d*$/, \"$2\").replace(/[a-z ]/g, \"\");"," if(tz.length > 4) {"," tz = Dt.formats.z(d);"," }"," return tz;"," },"," \"%\": function (d) { return \"%\"; }"," },",""," aggregates: {"," c: \"locale\","," D: \"%m/%d/%y\","," F: \"%Y-%m-%d\","," h: \"%b\","," n: \"\\n\","," r: \"%I:%M:%S %p\","," R: \"%H:%M\","," t: \"\\t\","," T: \"%H:%M:%S\","," x: \"locale\","," X: \"locale\""," //\"+\": \"%a %b %e %T %Z %Y\""," },",""," /**"," * Takes a native JavaScript Date and formats it as a string for display to user."," *"," * @for Date"," * @method format"," * @param oDate {Date} Date."," * @param oConfig {Object} (Optional) Object literal of configuration values:"," * "," * - format {HTML} (Optional)
"," * - "," *
"," * Any strftime string is supported, such as \"%I:%M:%S %p\". strftime has several format specifiers defined by the Open group at "," * http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html"," * PHP added a few of its own, defined at http://www.php.net/strftime"," *
"," * "," * This javascript implementation supports all the PHP specifiers and a few more. The full list is below."," *
"," * "," * If not specified, it defaults to the ISO 8601 standard date format: %Y-%m-%d."," *
"," * "," * - %a
- abbreviated weekday name according to the current locale
"," * - %A
- full weekday name according to the current locale
"," * - %b
- abbreviated month name according to the current locale
"," * - %B
- full month name according to the current locale
"," * - %c
- preferred date and time representation for the current locale
"," * - %C
- century number (the year divided by 100 and truncated to an integer, range 00 to 99)
"," * - %d
- day of the month as a decimal number (range 01 to 31)
"," * - %D
- same as %m/%d/%y
"," * - %e
- day of the month as a decimal number, a single digit is preceded by a space (range \" 1\" to \"31\")
"," * - %F
- same as %Y-%m-%d (ISO 8601 date format)
"," * - %g
- like %G, but without the century
"," * - %G
- The 4-digit year corresponding to the ISO week number
"," * - %h
- same as %b
"," * - %H
- hour as a decimal number using a 24-hour clock (range 00 to 23)
"," * - %I
- hour as a decimal number using a 12-hour clock (range 01 to 12)
"," * - %j
- day of the year as a decimal number (range 001 to 366)
"," * - %k
- hour as a decimal number using a 24-hour clock (range 0 to 23); single digits are preceded by a blank. (See also %H.)
"," * - %l
- hour as a decimal number using a 12-hour clock (range 1 to 12); single digits are preceded by a blank. (See also %I.)
"," * - %m
- month as a decimal number (range 01 to 12)
"," * - %M
- minute as a decimal number
"," * - %n
- newline character
"," * - %p
- either \"AM\" or \"PM\" according to the given time value, or the corresponding strings for the current locale
"," * - %P
- like %p, but lower case
"," * - %r
- time in a.m. and p.m. notation equal to %I:%M:%S %p
"," * - %R
- time in 24 hour notation equal to %H:%M
"," * - %s
- number of seconds since the Epoch, ie, since 1970-01-01 00:00:00 UTC
"," * - %S
- second as a decimal number
"," * - %t
- tab character
"," * - %T
- current time, equal to %H:%M:%S
"," * - %u
- weekday as a decimal number [1,7], with 1 representing Monday
"," * - %U
- week number of the current year as a decimal number, starting with the"," * first Sunday as the first day of the first week
"," * - %V
- The ISO 8601:1988 week number of the current year as a decimal number,"," * range 01 to 53, where week 1 is the first week that has at least 4 days"," * in the current year, and with Monday as the first day of the week.
"," * - %w
- day of the week as a decimal, Sunday being 0
"," * - %W
- week number of the current year as a decimal number, starting with the"," * first Monday as the first day of the first week
"," * - %x
- preferred date representation for the current locale without the time
"," * - %X
- preferred time representation for the current locale without the date
"," * - %y
- year as a decimal number without a century (range 00 to 99)
"," * - %Y
- year as a decimal number including the century
"," * - %z
- numerical time zone representation
"," * - %Z
- time zone name or abbreviation
"," * - %%
- a literal \"%\" character
"," *
"," * "," *
"," * @return {HTML} Formatted date for display."," */"," format : function (oDate, oConfig) {"," oConfig = oConfig || {};"," "," if(!Y.Lang.isDate(oDate)) {"," return Y.Lang.isValue(oDate) ? oDate : \"\";"," }",""," var format, resources, compatMode, sLocale, LOCALE;",""," format = oConfig.format || \"%Y-%m-%d\";",""," resources = Y.Intl.get('datatype-date-format');",""," var replace_aggs = function (m0, m1) {"," if (compatMode && m1 === \"r\") {"," return resources[m1];"," }"," var f = Dt.aggregates[m1];"," return (f === \"locale\" ? resources[m1] : f);"," };",""," var replace_formats = function (m0, m1) {"," var f = Dt.formats[m1];"," switch(Y.Lang.type(f)) {"," case \"string\": // string => built in date function"," return oDate[f]();"," case \"function\": // function => our own function"," return f.call(oDate, oDate, resources);"," case \"array\": // built in function with padding"," if(Y.Lang.type(f[0]) === \"string\") {"," return xPad(oDate[f[0]](), f[1]);"," } // no break; (fall through to default:)"," default:"," return m1;"," }"," };",""," // First replace aggregates (run in a loop because an agg may be made up of other aggs)"," while(format.match(/%[cDFhnrRtTxX]/)) {"," format = format.replace(/%([cDFhnrRtTxX])/g, replace_aggs);"," }",""," // Now replace formats (do not run in a loop otherwise %%a will be replace with the value of %a)"," var str = format.replace(/%([aAbBCdegGHIjklmMpPsSuUVwWyYzZ%])/g, replace_formats);",""," replace_aggs = replace_formats = undefined;",""," return str;"," }","};","","Y.mix(Y.namespace(\"Date\"), Dt);","","","Y.namespace(\"DataType\");","Y.DataType.Date = Y.Date;","","","}, '3.7.1', {\"lang\": [\"ar\", \"ar-JO\", \"ca\", \"ca-ES\", \"da\", \"da-DK\", \"de\", \"de-AT\", \"de-DE\", \"el\", \"el-GR\", \"en\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-IE\", \"en-IN\", \"en-JO\", \"en-MY\", \"en-NZ\", \"en-PH\", \"en-SG\", \"en-US\", \"es\", \"es-AR\", \"es-BO\", \"es-CL\", \"es-CO\", \"es-EC\", \"es-ES\", \"es-MX\", \"es-PE\", \"es-PY\", \"es-US\", \"es-UY\", \"es-VE\", \"fi\", \"fi-FI\", \"fr\", \"fr-BE\", \"fr-CA\", \"fr-FR\", \"hi\", \"hi-IN\", \"id\", \"id-ID\", \"it\", \"it-IT\", \"ja\", \"ja-JP\", \"ko\", \"ko-KR\", \"ms\", \"ms-MY\", \"nb\", \"nb-NO\", \"nl\", \"nl-BE\", \"nl-NL\", \"pl\", \"pl-PL\", \"pt\", \"pt-BR\", \"ro\", \"ro-RO\", \"ru\", \"ru-RU\", \"sv\", \"sv-SE\", \"th\", \"th-TH\", \"tr\", \"tr-TR\", \"vi\", \"vi-VN\", \"zh-Hans\", \"zh-Hans-CN\", \"zh-Hant\", \"zh-Hant-HK\", \"zh-Hant-TW\"]});"];
+_yuitest_coverage["build/datatype-date-format/datatype-date-format.js"].code=["YUI.add('datatype-date-format', function (Y, NAME) {","","/**"," * The `datatype` module is an alias for three utilities, Y.Date, "," * Y.Number and Y.XML, that provide type-conversion and string-formatting"," * convenience methods for various JavaScript object types."," *"," * @module datatype"," * @main datatype"," */","","/**"," * The Date Utility provides type-conversion and string-formatting"," * convenience methods for Dates."," *"," * @module datatype-date"," * @main datatype-date"," */","","/**"," * Date module."," *"," * @module datatype-date"," */","","/**"," * Format date module implements strftime formatters for javascript based on the"," * Open Group specification defined at"," * http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html"," * This implementation does not include modified conversion specifiers (i.e., Ex and Ox)"," *"," * @module datatype-date"," * @submodule datatype-date-format"," */","","/**"," * Date provides a set of utility functions to operate against Date objects."," *"," * @class Date"," * @static"," */","","/**"," * Pad a number with leading spaces, zeroes or something else"," * @method xPad"," * @param x {Number} The number to be padded"," * @param pad {String} The character to pad the number with"," * @param r {Number} (optional) The base of the pad, eg, 10 implies to two digits, 100 implies to 3 digits."," * @private"," */","var xPad=function (x, pad, r)","{"," if(typeof r === \"undefined\")"," {"," r=10;"," }"," pad = pad + \"\"; "," for( ; parseInt(x, 10)1; r/=10) {"," x = pad + x;"," }"," return x.toString();","};","","var Dt = {"," formats: {"," a: function (d, l) { return l.a[d.getDay()]; },"," A: function (d, l) { return l.A[d.getDay()]; },"," b: function (d, l) { return l.b[d.getMonth()]; },"," B: function (d, l) { return l.B[d.getMonth()]; },"," C: function (d) { return xPad(parseInt(d.getFullYear()/100, 10), 0); },"," d: [\"getDate\", \"0\"],"," e: [\"getDate\", \" \"],"," g: function (d) { return xPad(parseInt(Dt.formats.G(d)%100, 10), 0); },"," G: function (d) {"," var y = d.getFullYear();"," var V = parseInt(Dt.formats.V(d), 10);"," var W = parseInt(Dt.formats.W(d), 10);"," "," if(W > V) {"," y++;"," } else if(W===0 && V>=52) {"," y--;"," }"," "," return y;"," },"," H: [\"getHours\", \"0\"],"," I: function (d) { var I=d.getHours()%12; return xPad(I===0?12:I, 0); },"," j: function (d) {"," var gmd_1 = new Date(\"\" + d.getFullYear() + \"/1/1 GMT\");"," var gmdate = new Date(\"\" + d.getFullYear() + \"/\" + (d.getMonth()+1) + \"/\" + d.getDate() + \" GMT\");"," var ms = gmdate - gmd_1;"," var doy = parseInt(ms/60000/60/24, 10)+1;"," return xPad(doy, 0, 100);"," },"," k: [\"getHours\", \" \"],"," l: function (d) { var I=d.getHours()%12; return xPad(I===0?12:I, \" \"); },"," m: function (d) { return xPad(d.getMonth()+1, 0); },"," M: [\"getMinutes\", \"0\"],"," p: function (d, l) { return l.p[d.getHours() >= 12 ? 1 : 0 ]; },"," P: function (d, l) { return l.P[d.getHours() >= 12 ? 1 : 0 ]; },"," s: function (d, l) { return parseInt(d.getTime()/1000, 10); },"," S: [\"getSeconds\", \"0\"],"," u: function (d) { var dow = d.getDay(); return dow===0?7:dow; },"," U: function (d) {"," var doy = parseInt(Dt.formats.j(d), 10);"," var rdow = 6-d.getDay();"," var woy = parseInt((doy+rdow)/7, 10);"," return xPad(woy, 0);"," },"," V: function (d) {"," var woy = parseInt(Dt.formats.W(d), 10);"," var dow1_1 = (new Date(\"\" + d.getFullYear() + \"/1/1\")).getDay();"," // First week is 01 and not 00 as in the case of %U and %W,"," // so we add 1 to the final result except if day 1 of the year"," // is a Monday (then %W returns 01)."," // We also need to subtract 1 if the day 1 of the year is "," // Friday-Sunday, so the resulting equation becomes:"," var idow = woy + (dow1_1 > 4 || dow1_1 <= 1 ? 0 : 1);"," if(idow === 53 && (new Date(\"\" + d.getFullYear() + \"/12/31\")).getDay() < 4)"," {"," idow = 1;"," }"," else if(idow === 0)"," {"," idow = Dt.formats.V(new Date(\"\" + (d.getFullYear()-1) + \"/12/31\"));"," }"," "," return xPad(idow, 0);"," },"," w: \"getDay\","," W: function (d) {"," var doy = parseInt(Dt.formats.j(d), 10);"," var rdow = 7-Dt.formats.u(d);"," var woy = parseInt((doy+rdow)/7, 10);"," return xPad(woy, 0, 10);"," },"," y: function (d) { return xPad(d.getFullYear()%100, 0); },"," Y: \"getFullYear\","," z: function (d) {"," var o = d.getTimezoneOffset();"," var H = xPad(parseInt(Math.abs(o/60), 10), 0);"," var M = xPad(Math.abs(o%60), 0);"," return (o>0?\"-\":\"+\") + H + M;"," },"," Z: function (d) {"," var tz = d.toString().replace(/^.*:\\d\\d( GMT[+-]\\d+)? \\(?([A-Za-z ]+)\\)?\\d*$/, \"$2\").replace(/[a-z ]/g, \"\");"," if(tz.length > 4) {"," tz = Dt.formats.z(d);"," }"," return tz;"," },"," \"%\": function (d) { return \"%\"; }"," },",""," aggregates: {"," c: \"locale\","," D: \"%m/%d/%y\","," F: \"%Y-%m-%d\","," h: \"%b\","," n: \"\\n\","," r: \"%I:%M:%S %p\","," R: \"%H:%M\","," t: \"\\t\","," T: \"%H:%M:%S\","," x: \"locale\","," X: \"locale\""," //\"+\": \"%a %b %e %T %Z %Y\""," },",""," /**"," * Takes a native JavaScript Date and formats it as a string for display to user."," *"," * @for Date"," * @method format"," * @param oDate {Date} Date."," * @param oConfig {Object} (Optional) Object literal of configuration values:"," * "," * - format {HTML} (Optional)
"," * - "," *
"," * Any strftime string is supported, such as \"%I:%M:%S %p\". strftime has several format specifiers defined by the Open group at "," * http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html"," * PHP added a few of its own, defined at http://www.php.net/strftime"," *
"," * "," * This javascript implementation supports all the PHP specifiers and a few more. The full list is below."," *
"," * "," * If not specified, it defaults to the ISO 8601 standard date format: %Y-%m-%d."," *
"," * "," * - %a
- abbreviated weekday name according to the current locale
"," * - %A
- full weekday name according to the current locale
"," * - %b
- abbreviated month name according to the current locale
"," * - %B
- full month name according to the current locale
"," * - %c
- preferred date and time representation for the current locale
"," * - %C
- century number (the year divided by 100 and truncated to an integer, range 00 to 99)
"," * - %d
- day of the month as a decimal number (range 01 to 31)
"," * - %D
- same as %m/%d/%y
"," * - %e
- day of the month as a decimal number, a single digit is preceded by a space (range \" 1\" to \"31\")
"," * - %F
- same as %Y-%m-%d (ISO 8601 date format)
"," * - %g
- like %G, but without the century
"," * - %G
- The 4-digit year corresponding to the ISO week number
"," * - %h
- same as %b
"," * - %H
- hour as a decimal number using a 24-hour clock (range 00 to 23)
"," * - %I
- hour as a decimal number using a 12-hour clock (range 01 to 12)
"," * - %j
- day of the year as a decimal number (range 001 to 366)
"," * - %k
- hour as a decimal number using a 24-hour clock (range 0 to 23); single digits are preceded by a blank. (See also %H.)
"," * - %l
- hour as a decimal number using a 12-hour clock (range 1 to 12); single digits are preceded by a blank. (See also %I.)
"," * - %m
- month as a decimal number (range 01 to 12)
"," * - %M
- minute as a decimal number
"," * - %n
- newline character
"," * - %p
- either \"AM\" or \"PM\" according to the given time value, or the corresponding strings for the current locale
"," * - %P
- like %p, but lower case
"," * - %r
- time in a.m. and p.m. notation equal to %I:%M:%S %p
"," * - %R
- time in 24 hour notation equal to %H:%M
"," * - %s
- number of seconds since the Epoch, ie, since 1970-01-01 00:00:00 UTC
"," * - %S
- second as a decimal number
"," * - %t
- tab character
"," * - %T
- current time, equal to %H:%M:%S
"," * - %u
- weekday as a decimal number [1,7], with 1 representing Monday
"," * - %U
- week number of the current year as a decimal number, starting with the"," * first Sunday as the first day of the first week
"," * - %V
- The ISO 8601:1988 week number of the current year as a decimal number,"," * range 01 to 53, where week 1 is the first week that has at least 4 days"," * in the current year, and with Monday as the first day of the week.
"," * - %w
- day of the week as a decimal, Sunday being 0
"," * - %W
- week number of the current year as a decimal number, starting with the"," * first Monday as the first day of the first week
"," * - %x
- preferred date representation for the current locale without the time
"," * - %X
- preferred time representation for the current locale without the date
"," * - %y
- year as a decimal number without a century (range 00 to 99)
"," * - %Y
- year as a decimal number including the century
"," * - %z
- numerical time zone representation
"," * - %Z
- time zone name or abbreviation
"," * - %%
- a literal \"%\" character
"," *
"," * "," *
"," * @return {HTML} Formatted date for display."," */"," format : function (oDate, oConfig) {"," oConfig = oConfig || {};"," "," if(!Y.Lang.isDate(oDate)) {"," return Y.Lang.isValue(oDate) ? oDate : \"\";"," }",""," var format, resources, compatMode, sLocale, LOCALE;",""," format = oConfig.format || \"%Y-%m-%d\";",""," resources = Y.Intl.get('datatype-date-format');",""," var replace_aggs = function (m0, m1) {"," if (compatMode && m1 === \"r\") {"," return resources[m1];"," }"," var f = Dt.aggregates[m1];"," return (f === \"locale\" ? resources[m1] : f);"," };",""," var replace_formats = function (m0, m1) {"," var f = Dt.formats[m1];"," switch(Y.Lang.type(f)) {"," case \"string\": // string => built in date function"," return oDate[f]();"," case \"function\": // function => our own function"," return f.call(oDate, oDate, resources);"," case \"array\": // built in function with padding"," if(Y.Lang.type(f[0]) === \"string\") {"," return xPad(oDate[f[0]](), f[1]);"," } // no break; (fall through to default:)"," default:"," return m1;"," }"," };",""," // First replace aggregates (run in a loop because an agg may be made up of other aggs)"," while(format.match(/%[cDFhnrRtTxX]/)) {"," format = format.replace(/%([cDFhnrRtTxX])/g, replace_aggs);"," }",""," // Now replace formats (do not run in a loop otherwise %%a will be replace with the value of %a)"," var str = format.replace(/%([aAbBCdegGHIjklmMpPsSuUVwWyYzZ%])/g, replace_formats);",""," replace_aggs = replace_formats = undefined;",""," return str;"," }","};","","Y.mix(Y.namespace(\"Date\"), Dt);","","","Y.namespace(\"DataType\");","Y.DataType.Date = Y.Date;","","","}, '3.7.2', {\"lang\": [\"ar\", \"ar-JO\", \"ca\", \"ca-ES\", \"da\", \"da-DK\", \"de\", \"de-AT\", \"de-DE\", \"el\", \"el-GR\", \"en\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-IE\", \"en-IN\", \"en-JO\", \"en-MY\", \"en-NZ\", \"en-PH\", \"en-SG\", \"en-US\", \"es\", \"es-AR\", \"es-BO\", \"es-CL\", \"es-CO\", \"es-EC\", \"es-ES\", \"es-MX\", \"es-PE\", \"es-PY\", \"es-US\", \"es-UY\", \"es-VE\", \"fi\", \"fi-FI\", \"fr\", \"fr-BE\", \"fr-CA\", \"fr-FR\", \"hi\", \"hi-IN\", \"id\", \"id-ID\", \"it\", \"it-IT\", \"ja\", \"ja-JP\", \"ko\", \"ko-KR\", \"ms\", \"ms-MY\", \"nb\", \"nb-NO\", \"nl\", \"nl-BE\", \"nl-NL\", \"pl\", \"pl-PL\", \"pt\", \"pt-BR\", \"ro\", \"ro-RO\", \"ru\", \"ru-RU\", \"sv\", \"sv-SE\", \"th\", \"th-TH\", \"tr\", \"tr-TR\", \"vi\", \"vi-VN\", \"zh-Hans\", \"zh-Hans-CN\", \"zh-Hant\", \"zh-Hant-HK\", \"zh-Hant-TW\"]});"];
_yuitest_coverage["build/datatype-date-format/datatype-date-format.js"].lines = {"1":0,"51":0,"53":0,"55":0,"57":0,"58":0,"59":0,"61":0,"64":0,"66":0,"67":0,"68":0,"69":0,"70":0,"73":0,"75":0,"76":0,"77":0,"79":0,"80":0,"81":0,"82":0,"85":0,"88":0,"90":0,"91":0,"92":0,"93":0,"94":0,"97":0,"98":0,"100":0,"101":0,"102":0,"104":0,"106":0,"107":0,"108":0,"109":0,"112":0,"113":0,"119":0,"120":0,"122":0,"124":0,"126":0,"129":0,"133":0,"134":0,"135":0,"136":0,"138":0,"141":0,"142":0,"143":0,"144":0,"147":0,"148":0,"149":0,"151":0,"153":0,"244":0,"246":0,"247":0,"250":0,"252":0,"254":0,"256":0,"257":0,"258":0,"260":0,"261":0,"264":0,"265":0,"266":0,"268":0,"270":0,"272":0,"273":0,"276":0,"281":0,"282":0,"286":0,"288":0,"290":0,"294":0,"297":0,"298":0};
_yuitest_coverage["build/datatype-date-format/datatype-date-format.js"].functions = {"xPad:51":0,"a:66":0,"A:67":0,"b:68":0,"B:69":0,"C:70":0,"g:73":0,"G:74":0,"I:88":0,"j:89":0,"l:97":0,"m:98":0,"p:100":0,"P:101":0,"s:102":0,"u:104":0,"U:105":0,"V:111":0,"W:132":0,"y:138":0,"z:140":0,"Z:146":0,"\"%\":153":0,"replace_aggs:256":0,"replace_formats:264":0,"format:243":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatype-date-format/datatype-date-format.js"].coveredLines = 88;
@@ -452,4 +452,4 @@ _yuitest_coverline("build/datatype-date-format/datatype-date-format.js", 298);
Y.DataType.Date = Y.Date;
-}, '3.7.1', {"lang": ["ar", "ar-JO", "ca", "ca-ES", "da", "da-DK", "de", "de-AT", "de-DE", "el", "el-GR", "en", "en-AU", "en-CA", "en-GB", "en-IE", "en-IN", "en-JO", "en-MY", "en-NZ", "en-PH", "en-SG", "en-US", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-EC", "es-ES", "es-MX", "es-PE", "es-PY", "es-US", "es-UY", "es-VE", "fi", "fi-FI", "fr", "fr-BE", "fr-CA", "fr-FR", "hi", "hi-IN", "id", "id-ID", "it", "it-IT", "ja", "ja-JP", "ko", "ko-KR", "ms", "ms-MY", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "pl", "pl-PL", "pt", "pt-BR", "ro", "ro-RO", "ru", "ru-RU", "sv", "sv-SE", "th", "th-TH", "tr", "tr-TR", "vi", "vi-VN", "zh-Hans", "zh-Hans-CN", "zh-Hant", "zh-Hant-HK", "zh-Hant-TW"]});
+}, '3.7.2', {"lang": ["ar", "ar-JO", "ca", "ca-ES", "da", "da-DK", "de", "de-AT", "de-DE", "el", "el-GR", "en", "en-AU", "en-CA", "en-GB", "en-IE", "en-IN", "en-JO", "en-MY", "en-NZ", "en-PH", "en-SG", "en-US", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-EC", "es-ES", "es-MX", "es-PE", "es-PY", "es-US", "es-UY", "es-VE", "fi", "fi-FI", "fr", "fr-BE", "fr-CA", "fr-FR", "hi", "hi-IN", "id", "id-ID", "it", "it-IT", "ja", "ja-JP", "ko", "ko-KR", "ms", "ms-MY", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "pl", "pl-PL", "pt", "pt-BR", "ro", "ro-RO", "ru", "ru-RU", "sv", "sv-SE", "th", "th-TH", "tr", "tr-TR", "vi", "vi-VN", "zh-Hans", "zh-Hans-CN", "zh-Hant", "zh-Hant-HK", "zh-Hant-TW"]});
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/datatype-date-format-debug.js b/lib/yuilib/3.7.2/build/datatype-date-format/datatype-date-format-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatype-date-format/datatype-date-format-debug.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/datatype-date-format-debug.js
index d366585ffba..66036d8507c 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/datatype-date-format-debug.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/datatype-date-format-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -306,4 +306,4 @@ Y.namespace("DataType");
Y.DataType.Date = Y.Date;
-}, '3.7.1', {"lang": ["ar", "ar-JO", "ca", "ca-ES", "da", "da-DK", "de", "de-AT", "de-DE", "el", "el-GR", "en", "en-AU", "en-CA", "en-GB", "en-IE", "en-IN", "en-JO", "en-MY", "en-NZ", "en-PH", "en-SG", "en-US", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-EC", "es-ES", "es-MX", "es-PE", "es-PY", "es-US", "es-UY", "es-VE", "fi", "fi-FI", "fr", "fr-BE", "fr-CA", "fr-FR", "hi", "hi-IN", "id", "id-ID", "it", "it-IT", "ja", "ja-JP", "ko", "ko-KR", "ms", "ms-MY", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "pl", "pl-PL", "pt", "pt-BR", "ro", "ro-RO", "ru", "ru-RU", "sv", "sv-SE", "th", "th-TH", "tr", "tr-TR", "vi", "vi-VN", "zh-Hans", "zh-Hans-CN", "zh-Hant", "zh-Hant-HK", "zh-Hant-TW"]});
+}, '3.7.2', {"lang": ["ar", "ar-JO", "ca", "ca-ES", "da", "da-DK", "de", "de-AT", "de-DE", "el", "el-GR", "en", "en-AU", "en-CA", "en-GB", "en-IE", "en-IN", "en-JO", "en-MY", "en-NZ", "en-PH", "en-SG", "en-US", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-EC", "es-ES", "es-MX", "es-PE", "es-PY", "es-US", "es-UY", "es-VE", "fi", "fi-FI", "fr", "fr-BE", "fr-CA", "fr-FR", "hi", "hi-IN", "id", "id-ID", "it", "it-IT", "ja", "ja-JP", "ko", "ko-KR", "ms", "ms-MY", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "pl", "pl-PL", "pt", "pt-BR", "ro", "ro-RO", "ru", "ru-RU", "sv", "sv-SE", "th", "th-TH", "tr", "tr-TR", "vi", "vi-VN", "zh-Hans", "zh-Hans-CN", "zh-Hant", "zh-Hant-HK", "zh-Hant-TW"]});
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/datatype-date-format-min.js b/lib/yuilib/3.7.2/build/datatype-date-format/datatype-date-format-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-date-format/datatype-date-format-min.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/datatype-date-format-min.js
index 95c7db459fc..449aeb365be 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/datatype-date-format-min.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/datatype-date-format-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatype-date-format",function(e,t){var n=function(e,t,n){typeof n=="undefined"&&(n=10),t+="";for(;parseInt(e,10)1;n/=10)e=t+e;return e.toString()},r={formats:{a:function(e,t){return t.a[e.getDay()]},A:function(e,t){return t.A[e.getDay()]},b:function(e,t){return t.b[e.getMonth()]},B:function(e,t){return t.B[e.getMonth()]},C:function(e){return n(parseInt(e.getFullYear()/100,10),0)},d:["getDate","0"],e:["getDate"," "],g:function(e){return n(parseInt(r.formats.G(e)%100,10),0)},G:function(e){var t=e.getFullYear(),n=parseInt(r.formats.V(e),10),i=parseInt(r.formats.W(e),10);return i>n?t++:i===0&&n>=52&&t--,t},H:["getHours","0"],I:function(e){var t=e.getHours()%12;return n(t===0?12:t,0)},j:function(e){var t=new Date(""+e.getFullYear()+"/1/1 GMT"),r=new Date(""+e.getFullYear()+"/"+(e.getMonth()+1)+"/"+e.getDate()+" GMT"),i=r-t,s=parseInt(i/6e4/60/24,10)+1;return n(s,0,100)},k:["getHours"," "],l:function(e){var t=e.getHours()%12;return n(t===0?12:t," ")},m:function(e){return n(e.getMonth()+1,0)},M:["getMinutes","0"],p:function(e,t){return t.p[e.getHours()>=12?1:0]},P:function(e,t){return t.P[e.getHours()>=12?1:0]},s:function(e,t){return parseInt(e.getTime()/1e3,10)},S:["getSeconds","0"],u:function(e){var t=e.getDay();return t===0?7:t},U:function(e){var t=parseInt(r.formats.j(e),10),i=6-e.getDay(),s=parseInt((t+i)/7,10);return n(s,0)},V:function(e){var t=parseInt(r.formats.W(e),10),i=(new Date(""+e.getFullYear()+"/1/1")).getDay(),s=t+(i>4||i<=1?0:1);return s===53&&(new Date(""+e.getFullYear()+"/12/31")).getDay()<4?s=1:s===0&&(s=r.formats.V(new Date(""+(e.getFullYear()-1)+"/12/31"))),n(s,0)},w:"getDay",W:function(e){var t=parseInt(r.formats.j(e),10),i=7-r.formats.u(e),s=parseInt((t+i)/7,10);return n(s,0,10)},y:function(e){return n(e.getFullYear()%100,0)},Y:"getFullYear",z:function(e){var t=e.getTimezoneOffset(),r=n(parseInt(Math.abs(t/60),10),0),i=n(Math.abs(t%60),0);return(t>0?"-":"+")+r+i},Z:function(e){var t=e.toString().replace(/^.*:\d\d( GMT[+-]\d+)? \(?([A-Za-z ]+)\)?\d*$/,"$2").replace(/[a-z ]/g,"");return t.length>4&&(t=r.formats.z(e)),t},"%":function(e){return"%"}},aggregates:{c:"locale",D:"%m/%d/%y",F:"%Y-%m-%d",h:"%b",n:"\n",r:"%I:%M:%S %p",R:"%H:%M",t:" ",T:"%H:%M:%S",x:"locale",X:"locale"},format:function(t,i){i=i||{};if(!e.Lang.isDate(t))return e.Lang.isValue(t)?t:"";var s,o,u,a,f;s=i.format||"%Y-%m-%d",o=e.Intl.get("datatype-date-format");var l=function(e,t){if(u&&t==="r")return o[t];var n=r.aggregates[t];return n==="locale"?o[t]:n},c=function(i,s){var u=r.formats[s];switch(e.Lang.type(u)){case"string":return t[u]();case"function":return u.call(t,t,o);case"array":if(e.Lang.type(u[0])==="string")return n(t[u[0]](),u[1]);default:return s}};while(s.match(/%[cDFhnrRtTxX]/))s=s.replace(/%([cDFhnrRtTxX])/g,l);var h=s.replace(/%([aAbBCdegGHIjklmMpPsSuUVwWyYzZ%])/g,c);return l=c=undefined,h}};e.mix(e.namespace("Date"),r),e.namespace("DataType"),e.DataType.Date=e.Date},"3.7.1",{lang:["ar","ar-JO","ca","ca-ES","da","da-DK","de","de-AT","de-DE","el","el-GR","en","en-AU","en-CA","en-GB","en-IE","en-IN","en-JO","en-MY","en-NZ","en-PH","en-SG","en-US","es","es-AR","es-BO","es-CL","es-CO","es-EC","es-ES","es-MX","es-PE","es-PY","es-US","es-UY","es-VE","fi","fi-FI","fr","fr-BE","fr-CA","fr-FR","hi","hi-IN","id","id-ID","it","it-IT","ja","ja-JP","ko","ko-KR","ms","ms-MY","nb","nb-NO","nl","nl-BE","nl-NL","pl","pl-PL","pt","pt-BR","ro","ro-RO","ru","ru-RU","sv","sv-SE","th","th-TH","tr","tr-TR","vi","vi-VN","zh-Hans","zh-Hans-CN","zh-Hant","zh-Hant-HK","zh-Hant-TW"]});
+YUI.add("datatype-date-format",function(e,t){var n=function(e,t,n){typeof n=="undefined"&&(n=10),t+="";for(;parseInt(e,10)1;n/=10)e=t+e;return e.toString()},r={formats:{a:function(e,t){return t.a[e.getDay()]},A:function(e,t){return t.A[e.getDay()]},b:function(e,t){return t.b[e.getMonth()]},B:function(e,t){return t.B[e.getMonth()]},C:function(e){return n(parseInt(e.getFullYear()/100,10),0)},d:["getDate","0"],e:["getDate"," "],g:function(e){return n(parseInt(r.formats.G(e)%100,10),0)},G:function(e){var t=e.getFullYear(),n=parseInt(r.formats.V(e),10),i=parseInt(r.formats.W(e),10);return i>n?t++:i===0&&n>=52&&t--,t},H:["getHours","0"],I:function(e){var t=e.getHours()%12;return n(t===0?12:t,0)},j:function(e){var t=new Date(""+e.getFullYear()+"/1/1 GMT"),r=new Date(""+e.getFullYear()+"/"+(e.getMonth()+1)+"/"+e.getDate()+" GMT"),i=r-t,s=parseInt(i/6e4/60/24,10)+1;return n(s,0,100)},k:["getHours"," "],l:function(e){var t=e.getHours()%12;return n(t===0?12:t," ")},m:function(e){return n(e.getMonth()+1,0)},M:["getMinutes","0"],p:function(e,t){return t.p[e.getHours()>=12?1:0]},P:function(e,t){return t.P[e.getHours()>=12?1:0]},s:function(e,t){return parseInt(e.getTime()/1e3,10)},S:["getSeconds","0"],u:function(e){var t=e.getDay();return t===0?7:t},U:function(e){var t=parseInt(r.formats.j(e),10),i=6-e.getDay(),s=parseInt((t+i)/7,10);return n(s,0)},V:function(e){var t=parseInt(r.formats.W(e),10),i=(new Date(""+e.getFullYear()+"/1/1")).getDay(),s=t+(i>4||i<=1?0:1);return s===53&&(new Date(""+e.getFullYear()+"/12/31")).getDay()<4?s=1:s===0&&(s=r.formats.V(new Date(""+(e.getFullYear()-1)+"/12/31"))),n(s,0)},w:"getDay",W:function(e){var t=parseInt(r.formats.j(e),10),i=7-r.formats.u(e),s=parseInt((t+i)/7,10);return n(s,0,10)},y:function(e){return n(e.getFullYear()%100,0)},Y:"getFullYear",z:function(e){var t=e.getTimezoneOffset(),r=n(parseInt(Math.abs(t/60),10),0),i=n(Math.abs(t%60),0);return(t>0?"-":"+")+r+i},Z:function(e){var t=e.toString().replace(/^.*:\d\d( GMT[+-]\d+)? \(?([A-Za-z ]+)\)?\d*$/,"$2").replace(/[a-z ]/g,"");return t.length>4&&(t=r.formats.z(e)),t},"%":function(e){return"%"}},aggregates:{c:"locale",D:"%m/%d/%y",F:"%Y-%m-%d",h:"%b",n:"\n",r:"%I:%M:%S %p",R:"%H:%M",t:" ",T:"%H:%M:%S",x:"locale",X:"locale"},format:function(t,i){i=i||{};if(!e.Lang.isDate(t))return e.Lang.isValue(t)?t:"";var s,o,u,a,f;s=i.format||"%Y-%m-%d",o=e.Intl.get("datatype-date-format");var l=function(e,t){if(u&&t==="r")return o[t];var n=r.aggregates[t];return n==="locale"?o[t]:n},c=function(i,s){var u=r.formats[s];switch(e.Lang.type(u)){case"string":return t[u]();case"function":return u.call(t,t,o);case"array":if(e.Lang.type(u[0])==="string")return n(t[u[0]](),u[1]);default:return s}};while(s.match(/%[cDFhnrRtTxX]/))s=s.replace(/%([cDFhnrRtTxX])/g,l);var h=s.replace(/%([aAbBCdegGHIjklmMpPsSuUVwWyYzZ%])/g,c);return l=c=undefined,h}};e.mix(e.namespace("Date"),r),e.namespace("DataType"),e.DataType.Date=e.Date},"3.7.2",{lang:["ar","ar-JO","ca","ca-ES","da","da-DK","de","de-AT","de-DE","el","el-GR","en","en-AU","en-CA","en-GB","en-IE","en-IN","en-JO","en-MY","en-NZ","en-PH","en-SG","en-US","es","es-AR","es-BO","es-CL","es-CO","es-EC","es-ES","es-MX","es-PE","es-PY","es-US","es-UY","es-VE","fi","fi-FI","fr","fr-BE","fr-CA","fr-FR","hi","hi-IN","id","id-ID","it","it-IT","ja","ja-JP","ko","ko-KR","ms","ms-MY","nb","nb-NO","nl","nl-BE","nl-NL","pl","pl-PL","pt","pt-BR","ro","ro-RO","ru","ru-RU","sv","sv-SE","th","th-TH","tr","tr-TR","vi","vi-VN","zh-Hans","zh-Hans-CN","zh-Hant","zh-Hant-HK","zh-Hant-TW"]});
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/datatype-date-format.js b/lib/yuilib/3.7.2/build/datatype-date-format/datatype-date-format.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatype-date-format/datatype-date-format.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/datatype-date-format.js
index 1f9c152f7c8..c879900d785 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/datatype-date-format.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/datatype-date-format.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -304,4 +304,4 @@ Y.namespace("DataType");
Y.DataType.Date = Y.Date;
-}, '3.7.1', {"lang": ["ar", "ar-JO", "ca", "ca-ES", "da", "da-DK", "de", "de-AT", "de-DE", "el", "el-GR", "en", "en-AU", "en-CA", "en-GB", "en-IE", "en-IN", "en-JO", "en-MY", "en-NZ", "en-PH", "en-SG", "en-US", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-EC", "es-ES", "es-MX", "es-PE", "es-PY", "es-US", "es-UY", "es-VE", "fi", "fi-FI", "fr", "fr-BE", "fr-CA", "fr-FR", "hi", "hi-IN", "id", "id-ID", "it", "it-IT", "ja", "ja-JP", "ko", "ko-KR", "ms", "ms-MY", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "pl", "pl-PL", "pt", "pt-BR", "ro", "ro-RO", "ru", "ru-RU", "sv", "sv-SE", "th", "th-TH", "tr", "tr-TR", "vi", "vi-VN", "zh-Hans", "zh-Hans-CN", "zh-Hant", "zh-Hant-HK", "zh-Hant-TW"]});
+}, '3.7.2', {"lang": ["ar", "ar-JO", "ca", "ca-ES", "da", "da-DK", "de", "de-AT", "de-DE", "el", "el-GR", "en", "en-AU", "en-CA", "en-GB", "en-IE", "en-IN", "en-JO", "en-MY", "en-NZ", "en-PH", "en-SG", "en-US", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-EC", "es-ES", "es-MX", "es-PE", "es-PY", "es-US", "es-UY", "es-VE", "fi", "fi-FI", "fr", "fr-BE", "fr-CA", "fr-FR", "hi", "hi-IN", "id", "id-ID", "it", "it-IT", "ja", "ja-JP", "ko", "ko-KR", "ms", "ms-MY", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "pl", "pl-PL", "pt", "pt-BR", "ro", "ro-RO", "ru", "ru-RU", "sv", "sv-SE", "th", "th-TH", "tr", "tr-TR", "vi", "vi-VN", "zh-Hans", "zh-Hans-CN", "zh-Hant", "zh-Hant-HK", "zh-Hant-TW"]});
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format.js
index 0c4461d0c86..624b33a130a 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format",function(e){e.Intl.add("datatype-date-format","",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%Y-%m-%dT%H:%M:%S%z",p:["AM","PM"],P:["am","pm"],x:"%Y-%m-%d",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format",function(e){e.Intl.add("datatype-date-format","",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%Y-%m-%dT%H:%M:%S%z",p:["AM","PM"],P:["am","pm"],x:"%Y-%m-%d",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ar-JO.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ar-JO.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ar-JO.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ar-JO.js
index 9040dbfe246..ffc01662b58 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ar-JO.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ar-JO.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ar-JO",function(e){e.Intl.add("datatype-date-format","ar-JO",{a:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],A:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0625\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],b:["\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0634\u0628\u0627\u0637","\u0622\u0630\u0627\u0631","\u0646\u064a\u0633\u0627\u0646","\u0623\u064a\u0627\u0631","\u062d\u0632\u064a\u0631\u0627\u0646","\u062a\u0645\u0648\u0632","\u0622\u0628","\u0623\u064a\u0644\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"],B:["\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0634\u0628\u0627\u0637","\u0622\u0630\u0627\u0631","\u0646\u064a\u0633\u0627\u0646","\u0623\u064a\u0627\u0631","\u062d\u0632\u064a\u0631\u0627\u0646","\u062a\u0645\u0648\u0632","\u0622\u0628","\u0623\u064a\u0644\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"],c:"%a\u060c %d %B %Y %Z %l:%M:%S %p",p:["\u0635","\u0645"],P:["\u0635","\u0645"],x:"%d\u200f/%m\u200f/%Y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ar-JO",function(e){e.Intl.add("datatype-date-format","ar-JO",{a:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],A:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0625\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],b:["\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0634\u0628\u0627\u0637","\u0622\u0630\u0627\u0631","\u0646\u064a\u0633\u0627\u0646","\u0623\u064a\u0627\u0631","\u062d\u0632\u064a\u0631\u0627\u0646","\u062a\u0645\u0648\u0632","\u0622\u0628","\u0623\u064a\u0644\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"],B:["\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0634\u0628\u0627\u0637","\u0622\u0630\u0627\u0631","\u0646\u064a\u0633\u0627\u0646","\u0623\u064a\u0627\u0631","\u062d\u0632\u064a\u0631\u0627\u0646","\u062a\u0645\u0648\u0632","\u0622\u0628","\u0623\u064a\u0644\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"],c:"%a\u060c %d %B %Y %Z %l:%M:%S %p",p:["\u0635","\u0645"],P:["\u0635","\u0645"],x:"%d\u200f/%m\u200f/%Y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ar.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ar.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ar.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ar.js
index 03120c5f49b..976b08bdc97 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ar.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ar.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ar",function(e){e.Intl.add("datatype-date-format","ar",{a:["\u0623\u062d\u062f","\u0625\u062b\u0646\u064a\u0646","\u062b\u0644\u0627\u062b\u0627\u0621","\u0623\u0631\u0628\u0639\u0627\u0621","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639\u0629","\u0633\u0628\u062a"],A:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0625\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],b:["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],B:["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],c:"%a\u060c %d %B %Y %Z %l:%M:%S %p",p:["\u0635","\u0645"],P:["\u0635","\u0645"],x:"%d\u200f/%m\u200f/%Y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ar",function(e){e.Intl.add("datatype-date-format","ar",{a:["\u0623\u062d\u062f","\u0625\u062b\u0646\u064a\u0646","\u062b\u0644\u0627\u062b\u0627\u0621","\u0623\u0631\u0628\u0639\u0627\u0621","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639\u0629","\u0633\u0628\u062a"],A:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0625\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],b:["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],B:["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],c:"%a\u060c %d %B %Y %Z %l:%M:%S %p",p:["\u0635","\u0645"],P:["\u0635","\u0645"],x:"%d\u200f/%m\u200f/%Y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ca-ES.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ca-ES.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ca-ES.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ca-ES.js
index f08d3bc4371..4804abe922f 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ca-ES.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ca-ES.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ca-ES",function(e){e.Intl.add("datatype-date-format","ca-ES",{a:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],A:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],b:["gen.","febr.","mar\u00e7","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],B:["gener","febrer","mar\u00e7","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],c:"%a %d %b %Y %k:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%k:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ca-ES",function(e){e.Intl.add("datatype-date-format","ca-ES",{a:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],A:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],b:["gen.","febr.","mar\u00e7","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],B:["gener","febrer","mar\u00e7","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],c:"%a %d %b %Y %k:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%k:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ca.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ca.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ca.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ca.js
index 9e149ddcff7..c9fb5e013c5 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ca.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ca.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ca",function(e){e.Intl.add("datatype-date-format","ca",{a:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],A:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],b:["gen.","febr.","mar\u00e7","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],B:["gener","febrer","mar\u00e7","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],c:"%a %d %b %Y %k:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%k:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ca",function(e){e.Intl.add("datatype-date-format","ca",{a:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],A:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],b:["gen.","febr.","mar\u00e7","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],B:["gener","febrer","mar\u00e7","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],c:"%a %d %b %Y %k:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%k:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_da-DK.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_da-DK.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_da-DK.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_da-DK.js
index d4bb5cd8140..70dae514244 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_da-DK.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_da-DK.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_da-DK",function(e){e.Intl.add("datatype-date-format","da-DK",{a:["s\u00f8n","man","tir","ons","tor","fre","l\u00f8r"],A:["s\u00f8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\u00f8rdag"],b:["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],c:"%a. %d. %b %Y %H.%M.%S %Z",p:["F.M.","E.M."],P:["f.m.","e.m."],x:"%d/%m/%y",X:"%H.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_da-DK",function(e){e.Intl.add("datatype-date-format","da-DK",{a:["s\u00f8n","man","tir","ons","tor","fre","l\u00f8r"],A:["s\u00f8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\u00f8rdag"],b:["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],c:"%a. %d. %b %Y %H.%M.%S %Z",p:["F.M.","E.M."],P:["f.m.","e.m."],x:"%d/%m/%y",X:"%H.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_da.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_da.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_da.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_da.js
index ce925641a07..d185674981f 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_da.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_da.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_da",function(e){e.Intl.add("datatype-date-format","da",{a:["s\u00f8n","man","tir","ons","tor","fre","l\u00f8r"],A:["s\u00f8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\u00f8rdag"],b:["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],c:"%a. %d. %b %Y %H.%M.%S %Z",p:["F.M.","E.M."],P:["f.m.","e.m."],x:"%d/%m/%y",X:"%H.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_da",function(e){e.Intl.add("datatype-date-format","da",{a:["s\u00f8n","man","tir","ons","tor","fre","l\u00f8r"],A:["s\u00f8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\u00f8rdag"],b:["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],c:"%a. %d. %b %Y %H.%M.%S %Z",p:["F.M.","E.M."],P:["f.m.","e.m."],x:"%d/%m/%y",X:"%H.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_de-AT.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_de-AT.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_de-AT.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_de-AT.js
index a4ab8509d58..25d2006ec3b 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_de-AT.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_de-AT.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_de-AT",function(e){e.Intl.add("datatype-date-format","de-AT",{a:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],A:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],b:["J\u00e4n","Feb","M\u00e4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],B:["J\u00e4nner","Februar","M\u00e4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],c:"%a, %d. %b %Y %H:%M:%S %Z",p:["VORM.","NACHM."],P:["vorm.","nachm."],x:"%d.%m.%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_de-AT",function(e){e.Intl.add("datatype-date-format","de-AT",{a:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],A:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],b:["J\u00e4n","Feb","M\u00e4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],B:["J\u00e4nner","Februar","M\u00e4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],c:"%a, %d. %b %Y %H:%M:%S %Z",p:["VORM.","NACHM."],P:["vorm.","nachm."],x:"%d.%m.%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_de-DE.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_de-DE.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_de-DE.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_de-DE.js
index 85a96ae3c96..5935d47ceb9 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_de-DE.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_de-DE.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_de-DE",function(e){e.Intl.add("datatype-date-format","de-DE",{a:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],A:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],b:["Jan","Feb","M\u00e4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],B:["Januar","Februar","M\u00e4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],c:"%a, %d. %b %Y %H:%M:%S %Z",p:["VORM.","NACHM."],P:["vorm.","nachm."],x:"%d.%m.%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_de-DE",function(e){e.Intl.add("datatype-date-format","de-DE",{a:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],A:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],b:["Jan","Feb","M\u00e4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],B:["Januar","Februar","M\u00e4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],c:"%a, %d. %b %Y %H:%M:%S %Z",p:["VORM.","NACHM."],P:["vorm.","nachm."],x:"%d.%m.%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_de.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_de.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_de.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_de.js
index 187b775f059..377589cbeed 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_de.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_de.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_de",function(e){e.Intl.add("datatype-date-format","de",{a:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],A:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],b:["Jan","Feb","M\u00e4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],B:["Januar","Februar","M\u00e4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],c:"%a, %d. %b %Y %H:%M:%S %Z",p:["VORM.","NACHM."],P:["vorm.","nachm."],x:"%d.%m.%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_de",function(e){e.Intl.add("datatype-date-format","de",{a:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],A:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],b:["Jan","Feb","M\u00e4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],B:["Januar","Februar","M\u00e4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],c:"%a, %d. %b %Y %H:%M:%S %Z",p:["VORM.","NACHM."],P:["vorm.","nachm."],x:"%d.%m.%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_el-GR.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_el-GR.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_el-GR.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_el-GR.js
index fa76b93394d..a58f833a770 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_el-GR.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_el-GR.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_el-GR",function(e){e.Intl.add("datatype-date-format","el-GR",{a:["\u039a\u03c5\u03c1","\u0394\u03b5\u03c5","\u03a4\u03c1\u03b9","\u03a4\u03b5\u03c4","\u03a0\u03b5\u03bc","\u03a0\u03b1\u03c1","\u03a3\u03b1\u03b2"],A:["\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae","\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1","\u03a4\u03c1\u03af\u03c4\u03b7","\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7","\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7","\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae","\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"],b:["\u0399\u03b1\u03bd","\u03a6\u03b5\u03b2","\u039c\u03b1\u03c1","\u0391\u03c0\u03c1","\u039c\u03b1\u03ca","\u0399\u03bf\u03c5\u03bd","\u0399\u03bf\u03c5\u03bb","\u0391\u03c5\u03b3","\u03a3\u03b5\u03c0","\u039f\u03ba\u03c4","\u039d\u03bf\u03b5","\u0394\u03b5\u03ba"],B:["\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5","\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5","\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5","\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5","\u039c\u03b1\u0390\u03bf\u03c5","\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5","\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5","\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5","\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5","\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5","\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5","\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["\u03a0.\u039c.","\u039c.\u039c."],P:["\u03c0.\u03bc.","\u03bc.\u03bc."],x:"%d/%m/%Y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_el-GR",function(e){e.Intl.add("datatype-date-format","el-GR",{a:["\u039a\u03c5\u03c1","\u0394\u03b5\u03c5","\u03a4\u03c1\u03b9","\u03a4\u03b5\u03c4","\u03a0\u03b5\u03bc","\u03a0\u03b1\u03c1","\u03a3\u03b1\u03b2"],A:["\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae","\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1","\u03a4\u03c1\u03af\u03c4\u03b7","\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7","\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7","\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae","\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"],b:["\u0399\u03b1\u03bd","\u03a6\u03b5\u03b2","\u039c\u03b1\u03c1","\u0391\u03c0\u03c1","\u039c\u03b1\u03ca","\u0399\u03bf\u03c5\u03bd","\u0399\u03bf\u03c5\u03bb","\u0391\u03c5\u03b3","\u03a3\u03b5\u03c0","\u039f\u03ba\u03c4","\u039d\u03bf\u03b5","\u0394\u03b5\u03ba"],B:["\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5","\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5","\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5","\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5","\u039c\u03b1\u0390\u03bf\u03c5","\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5","\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5","\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5","\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5","\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5","\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5","\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["\u03a0.\u039c.","\u039c.\u039c."],P:["\u03c0.\u03bc.","\u03bc.\u03bc."],x:"%d/%m/%Y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_el.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_el.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_el.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_el.js
index eb759c77c3a..922dc3d1920 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_el.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_el.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_el",function(e){e.Intl.add("datatype-date-format","el",{a:["\u039a\u03c5\u03c1","\u0394\u03b5\u03c5","\u03a4\u03c1\u03b9","\u03a4\u03b5\u03c4","\u03a0\u03b5\u03bc","\u03a0\u03b1\u03c1","\u03a3\u03b1\u03b2"],A:["\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae","\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1","\u03a4\u03c1\u03af\u03c4\u03b7","\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7","\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7","\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae","\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"],b:["\u0399\u03b1\u03bd","\u03a6\u03b5\u03b2","\u039c\u03b1\u03c1","\u0391\u03c0\u03c1","\u039c\u03b1\u03ca","\u0399\u03bf\u03c5\u03bd","\u0399\u03bf\u03c5\u03bb","\u0391\u03c5\u03b3","\u03a3\u03b5\u03c0","\u039f\u03ba\u03c4","\u039d\u03bf\u03b5","\u0394\u03b5\u03ba"],B:["\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5","\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5","\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5","\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5","\u039c\u03b1\u0390\u03bf\u03c5","\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5","\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5","\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5","\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5","\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5","\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5","\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["\u03a0.\u039c.","\u039c.\u039c."],P:["\u03c0.\u03bc.","\u03bc.\u03bc."],x:"%d/%m/%Y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_el",function(e){e.Intl.add("datatype-date-format","el",{a:["\u039a\u03c5\u03c1","\u0394\u03b5\u03c5","\u03a4\u03c1\u03b9","\u03a4\u03b5\u03c4","\u03a0\u03b5\u03bc","\u03a0\u03b1\u03c1","\u03a3\u03b1\u03b2"],A:["\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae","\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1","\u03a4\u03c1\u03af\u03c4\u03b7","\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7","\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7","\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae","\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"],b:["\u0399\u03b1\u03bd","\u03a6\u03b5\u03b2","\u039c\u03b1\u03c1","\u0391\u03c0\u03c1","\u039c\u03b1\u03ca","\u0399\u03bf\u03c5\u03bd","\u0399\u03bf\u03c5\u03bb","\u0391\u03c5\u03b3","\u03a3\u03b5\u03c0","\u039f\u03ba\u03c4","\u039d\u03bf\u03b5","\u0394\u03b5\u03ba"],B:["\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5","\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5","\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5","\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5","\u039c\u03b1\u0390\u03bf\u03c5","\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5","\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5","\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5","\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5","\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5","\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5","\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["\u03a0.\u039c.","\u039c.\u039c."],P:["\u03c0.\u03bc.","\u03bc.\u03bc."],x:"%d/%m/%Y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-AU.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-AU.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-AU.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-AU.js
index 468fe6a387e..d3250d0ed8a 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-AU.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-AU.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-AU",function(e){e.Intl.add("datatype-date-format","en-AU",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-AU",function(e){e.Intl.add("datatype-date-format","en-AU",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-CA.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-CA.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-CA.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-CA.js
index 9eb49303b18..163ccf412de 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-CA.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-CA.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-CA",function(e){e.Intl.add("datatype-date-format","en-CA",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%y-%m-%d",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-CA",function(e){e.Intl.add("datatype-date-format","en-CA",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%y-%m-%d",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-GB.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-GB.js
similarity index 87%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-GB.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-GB.js
index 18402218a34..f7af46d9c3b 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-GB.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-GB.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-GB",function(e){e.Intl.add("datatype-date-format","en-GB",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%Y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-GB",function(e){e.Intl.add("datatype-date-format","en-GB",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%Y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-IE.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-IE.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-IE.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-IE.js
index 3ebc1c9823e..97655155fed 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-IE.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-IE.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-IE",function(e){e.Intl.add("datatype-date-format","en-IE",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%Y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-IE",function(e){e.Intl.add("datatype-date-format","en-IE",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%Y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-IN.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-IN.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-IN.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-IN.js
index a54baaae2c0..34fd645126e 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-IN.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-IN.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-IN",function(e){e.Intl.add("datatype-date-format","en-IN",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-IN",function(e){e.Intl.add("datatype-date-format","en-IN",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-JO.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-JO.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-JO.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-JO.js
index 4266fc4e1cd..40d65bd6acd 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-JO.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-JO.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-JO",function(e){e.Intl.add("datatype-date-format","en-JO",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-JO",function(e){e.Intl.add("datatype-date-format","en-JO",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-MY.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-MY.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-MY.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-MY.js
index 15eba646edb..13fcb567b65 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-MY.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-MY.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-MY",function(e){e.Intl.add("datatype-date-format","en-MY",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-MY",function(e){e.Intl.add("datatype-date-format","en-MY",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-NZ.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-NZ.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-NZ.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-NZ.js
index cc3352c7f25..13bfe429d5c 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-NZ.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-NZ.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-NZ",function(e){e.Intl.add("datatype-date-format","en-NZ",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-NZ",function(e){e.Intl.add("datatype-date-format","en-NZ",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-PH.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-PH.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-PH.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-PH.js
index b3a1c96173b..485cc76705b 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-PH.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-PH.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-PH",function(e){e.Intl.add("datatype-date-format","en-PH",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-PH",function(e){e.Intl.add("datatype-date-format","en-PH",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-SG.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-SG.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-SG.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-SG.js
index e5ac971c0e2..cd0c17e4f3e 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-SG.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-SG.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-SG",function(e){e.Intl.add("datatype-date-format","en-SG",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-SG",function(e){e.Intl.add("datatype-date-format","en-SG",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-US.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-US.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-US.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-US.js
index 0c6b1ada978..800f87967fd 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en-US.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en-US.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en-US",function(e){e.Intl.add("datatype-date-format","en-US",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en-US",function(e){e.Intl.add("datatype-date-format","en-US",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en.js
similarity index 87%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en.js
index 7423c531cdc..3a25cee58a5 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_en.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_en.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_en",function(e){e.Intl.add("datatype-date-format","en",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_en",function(e){e.Intl.add("datatype-date-format","en",{a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a, %b %d, %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-AR.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-AR.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-AR.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-AR.js
index e6120840775..850986c0261 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-AR.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-AR.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-AR",function(e){e.Intl.add("datatype-date-format","es-AR",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %Hh'%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%Hh'%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-AR",function(e){e.Intl.add("datatype-date-format","es-AR",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %Hh'%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%Hh'%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-BO.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-BO.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-BO.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-BO.js
index 3e6d46b8e37..9efd33abd7c 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-BO.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-BO.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-BO",function(e){e.Intl.add("datatype-date-format","es-BO",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-BO",function(e){e.Intl.add("datatype-date-format","es-BO",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-CL.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-CL.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-CL.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-CL.js
index 148d5d26c2d..ccd7a9a8280 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-CL.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-CL.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-CL",function(e){e.Intl.add("datatype-date-format","es-CL",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-CL",function(e){e.Intl.add("datatype-date-format","es-CL",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-CO.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-CO.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-CO.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-CO.js
index 7742ded6cdb..562a0e81947 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-CO.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-CO.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-CO",function(e){e.Intl.add("datatype-date-format","es-CO",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-CO",function(e){e.Intl.add("datatype-date-format","es-CO",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-EC.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-EC.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-EC.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-EC.js
index 4225934c1e3..1ee70d81a7d 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-EC.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-EC.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-EC",function(e){e.Intl.add("datatype-date-format","es-EC",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-EC",function(e){e.Intl.add("datatype-date-format","es-EC",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-ES.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-ES.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-ES.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-ES.js
index af253a988ca..6f8567ba33e 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-ES.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-ES.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-ES",function(e){e.Intl.add("datatype-date-format","es-ES",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-ES",function(e){e.Intl.add("datatype-date-format","es-ES",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-MX.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-MX.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-MX.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-MX.js
index f75e7d2b8e9..dc4791176cd 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-MX.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-MX.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-MX",function(e){e.Intl.add("datatype-date-format","es-MX",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-MX",function(e){e.Intl.add("datatype-date-format","es-MX",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-PE.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-PE.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-PE.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-PE.js
index 21a5053e4f2..06ec5294d77 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-PE.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-PE.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-PE",function(e){e.Intl.add("datatype-date-format","es-PE",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %HH%M'%S\" %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%HH%M'%S\""})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-PE",function(e){e.Intl.add("datatype-date-format","es-PE",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %HH%M'%S\" %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%HH%M'%S\""})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-PY.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-PY.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-PY.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-PY.js
index 45e9a82daa7..b695243dcc6 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-PY.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-PY.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-PY",function(e){e.Intl.add("datatype-date-format","es-PY",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-PY",function(e){e.Intl.add("datatype-date-format","es-PY",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-US.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-US.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-US.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-US.js
index cebbf661901..1fda0626c5d 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-US.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-US.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-US",function(e){e.Intl.add("datatype-date-format","es-US",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-US",function(e){e.Intl.add("datatype-date-format","es-US",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%m/%d/%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-UY.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-UY.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-UY.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-UY.js
index f8ef5b4b977..d063cbbcd91 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-UY.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-UY.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-UY",function(e){e.Intl.add("datatype-date-format","es-UY",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-UY",function(e){e.Intl.add("datatype-date-format","es-UY",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-VE.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-VE.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-VE.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-VE.js
index 280c58a8427..7135993dd9b 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es-VE.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es-VE.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es-VE",function(e){e.Intl.add("datatype-date-format","es-VE",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es-VE",function(e){e.Intl.add("datatype-date-format","es-VE",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es.js
index 62b2f738934..b0d5f176117 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_es.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_es.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_es",function(e){e.Intl.add("datatype-date-format","es",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_es",function(e){e.Intl.add("datatype-date-format","es",{a:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],A:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],b:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],B:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["A.M.","P.M."],P:["a.m.","p.m."],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fi-FI.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fi-FI.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fi-FI.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fi-FI.js
index 2f28a7170e3..29c6acd4a48 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fi-FI.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fi-FI.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_fi-FI",function(e){e.Intl.add("datatype-date-format","fi-FI",{a:["su","ma","ti","ke","to","pe","la"],A:["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],b:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kes\u00e4kuuta","hein\u00e4kuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],B:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kes\u00e4kuuta","hein\u00e4kuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],c:"%a %d. %b %Y %k.%M.%S %Z",p:["AP.","IP."],P:["ap.","ip."],x:"%d.%m.%Y",X:"%k.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_fi-FI",function(e){e.Intl.add("datatype-date-format","fi-FI",{a:["su","ma","ti","ke","to","pe","la"],A:["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],b:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kes\u00e4kuuta","hein\u00e4kuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],B:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kes\u00e4kuuta","hein\u00e4kuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],c:"%a %d. %b %Y %k.%M.%S %Z",p:["AP.","IP."],P:["ap.","ip."],x:"%d.%m.%Y",X:"%k.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fi.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fi.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fi.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fi.js
index d7d7b58686e..9f59b1ddeb2 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fi.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fi.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_fi",function(e){e.Intl.add("datatype-date-format","fi",{a:["su","ma","ti","ke","to","pe","la"],A:["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],b:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kes\u00e4kuuta","hein\u00e4kuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],B:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kes\u00e4kuuta","hein\u00e4kuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],c:"%a %d. %b %Y %k.%M.%S %Z",p:["AP.","IP."],P:["ap.","ip."],x:"%d.%m.%Y",X:"%k.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_fi",function(e){e.Intl.add("datatype-date-format","fi",{a:["su","ma","ti","ke","to","pe","la"],A:["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],b:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kes\u00e4kuuta","hein\u00e4kuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],B:["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kes\u00e4kuuta","hein\u00e4kuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],c:"%a %d. %b %Y %k.%M.%S %Z",p:["AP.","IP."],P:["ap.","ip."],x:"%d.%m.%Y",X:"%k.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr-BE.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr-BE.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr-BE.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr-BE.js
index adf365611f5..de7b4e184c5 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr-BE.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr-BE.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_fr-BE",function(e){e.Intl.add("datatype-date-format","fr-BE",{a:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],A:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],b:["janv.","f\u00e9vr.","mars","avr.","mai","juin","juil.","ao\u00fbt","sept.","oct.","nov.","d\u00e9c."],B:["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],c:"%a %d %b %Y %k h %M min %S s %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%k h %M min %S s"})},"3.7.1");
+YUI.add("lang/datatype-date-format_fr-BE",function(e){e.Intl.add("datatype-date-format","fr-BE",{a:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],A:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],b:["janv.","f\u00e9vr.","mars","avr.","mai","juin","juil.","ao\u00fbt","sept.","oct.","nov.","d\u00e9c."],B:["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],c:"%a %d %b %Y %k h %M min %S s %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%k h %M min %S s"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr-CA.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr-CA.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr-CA.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr-CA.js
index 2c3aba16832..5542f540bb6 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr-CA.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr-CA.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_fr-CA",function(e){e.Intl.add("datatype-date-format","fr-CA",{a:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],A:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],b:["janv.","f\u00e9vr.","mars","avr.","mai","juin","juil.","ao\u00fbt","sept.","oct.","nov.","d\u00e9c."],B:["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],c:"%a %d %b %Y %H h %M min %S s %Z",p:["AM","PM"],P:["am","pm"],x:"%y-%m-%d",X:"%H h %M min %S s"})},"3.7.1");
+YUI.add("lang/datatype-date-format_fr-CA",function(e){e.Intl.add("datatype-date-format","fr-CA",{a:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],A:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],b:["janv.","f\u00e9vr.","mars","avr.","mai","juin","juil.","ao\u00fbt","sept.","oct.","nov.","d\u00e9c."],B:["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],c:"%a %d %b %Y %H h %M min %S s %Z",p:["AM","PM"],P:["am","pm"],x:"%y-%m-%d",X:"%H h %M min %S s"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr-FR.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr-FR.js
similarity index 91%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr-FR.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr-FR.js
index fc830afa2e6..3de00fe9004 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr-FR.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr-FR.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_fr-FR",function(e){e.Intl.add("datatype-date-format","fr-FR",{a:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],A:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],b:["janv.","f\u00e9vr.","mars","avr.","mai","juin","juil.","ao\u00fbt","sept.","oct.","nov.","d\u00e9c."],B:["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_fr-FR",function(e){e.Intl.add("datatype-date-format","fr-FR",{a:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],A:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],b:["janv.","f\u00e9vr.","mars","avr.","mai","juin","juil.","ao\u00fbt","sept.","oct.","nov.","d\u00e9c."],B:["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr.js
index c054e2fce51..31d489aa15e 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_fr.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_fr.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_fr",function(e){e.Intl.add("datatype-date-format","fr",{a:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],A:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],b:["janv.","f\u00e9vr.","mars","avr.","mai","juin","juil.","ao\u00fbt","sept.","oct.","nov.","d\u00e9c."],B:["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_fr",function(e){e.Intl.add("datatype-date-format","fr",{a:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],A:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],b:["janv.","f\u00e9vr.","mars","avr.","mai","juin","juil.","ao\u00fbt","sept.","oct.","nov.","d\u00e9c."],B:["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_hi-IN.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_hi-IN.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_hi-IN.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_hi-IN.js
index d975efd4e3e..1297e9a5f2f 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_hi-IN.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_hi-IN.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_hi-IN",function(e){e.Intl.add("datatype-date-format","hi-IN",{a:["\u0930\u0935\u093f","\u0938\u094b\u092e","\u092e\u0902\u0917\u0932","\u092c\u0941\u0927","\u0917\u0941\u0930\u0941","\u0936\u0941\u0915\u094d\u0930","\u0936\u0928\u093f"],A:["\u0930\u0935\u093f\u0935\u093e\u0930","\u0938\u094b\u092e\u0935\u093e\u0930","\u092e\u0902\u0917\u0932\u0935\u093e\u0930","\u092c\u0941\u0927\u0935\u093e\u0930","\u0917\u0941\u0930\u0941\u0935\u093e\u0930","\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930","\u0936\u0928\u093f\u0935\u093e\u0930"],b:["\u091c\u0928\u0935\u0930\u0940","\u092b\u0930\u0935\u0930\u0940","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948\u0932","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917\u0938\u094d\u0924","\u0938\u093f\u0924\u092e\u094d\u092c\u0930","\u0905\u0915\u094d\u0924\u0942\u092c\u0930","\u0928\u0935\u092e\u094d\u092c\u0930","\u0926\u093f\u0938\u092e\u094d\u092c\u0930"],B:["\u091c\u0928\u0935\u0930\u0940","\u092b\u0930\u0935\u0930\u0940","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948\u0932","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917\u0938\u094d\u0924","\u0938\u093f\u0924\u092e\u094d\u092c\u0930","\u0905\u0915\u094d\u0924\u0942\u092c\u0930","\u0928\u0935\u092e\u094d\u092c\u0930","\u0926\u093f\u0938\u092e\u094d\u092c\u0930"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_hi-IN",function(e){e.Intl.add("datatype-date-format","hi-IN",{a:["\u0930\u0935\u093f","\u0938\u094b\u092e","\u092e\u0902\u0917\u0932","\u092c\u0941\u0927","\u0917\u0941\u0930\u0941","\u0936\u0941\u0915\u094d\u0930","\u0936\u0928\u093f"],A:["\u0930\u0935\u093f\u0935\u093e\u0930","\u0938\u094b\u092e\u0935\u093e\u0930","\u092e\u0902\u0917\u0932\u0935\u093e\u0930","\u092c\u0941\u0927\u0935\u093e\u0930","\u0917\u0941\u0930\u0941\u0935\u093e\u0930","\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930","\u0936\u0928\u093f\u0935\u093e\u0930"],b:["\u091c\u0928\u0935\u0930\u0940","\u092b\u0930\u0935\u0930\u0940","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948\u0932","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917\u0938\u094d\u0924","\u0938\u093f\u0924\u092e\u094d\u092c\u0930","\u0905\u0915\u094d\u0924\u0942\u092c\u0930","\u0928\u0935\u092e\u094d\u092c\u0930","\u0926\u093f\u0938\u092e\u094d\u092c\u0930"],B:["\u091c\u0928\u0935\u0930\u0940","\u092b\u0930\u0935\u0930\u0940","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948\u0932","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917\u0938\u094d\u0924","\u0938\u093f\u0924\u092e\u094d\u092c\u0930","\u0905\u0915\u094d\u0924\u0942\u092c\u0930","\u0928\u0935\u092e\u094d\u092c\u0930","\u0926\u093f\u0938\u092e\u094d\u092c\u0930"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_hi.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_hi.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_hi.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_hi.js
index 29d632c58d4..c7614587e5b 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_hi.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_hi.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_hi",function(e){e.Intl.add("datatype-date-format","hi",{a:["\u0930\u0935\u093f","\u0938\u094b\u092e","\u092e\u0902\u0917\u0932","\u092c\u0941\u0927","\u0917\u0941\u0930\u0941","\u0936\u0941\u0915\u094d\u0930","\u0936\u0928\u093f"],A:["\u0930\u0935\u093f\u0935\u093e\u0930","\u0938\u094b\u092e\u0935\u093e\u0930","\u092e\u0902\u0917\u0932\u0935\u093e\u0930","\u092c\u0941\u0927\u0935\u093e\u0930","\u0917\u0941\u0930\u0941\u0935\u093e\u0930","\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930","\u0936\u0928\u093f\u0935\u093e\u0930"],b:["\u091c\u0928\u0935\u0930\u0940","\u092b\u0930\u0935\u0930\u0940","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948\u0932","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917\u0938\u094d\u0924","\u0938\u093f\u0924\u092e\u094d\u092c\u0930","\u0905\u0915\u094d\u0924\u0942\u092c\u0930","\u0928\u0935\u092e\u094d\u092c\u0930","\u0926\u093f\u0938\u092e\u094d\u092c\u0930"],B:["\u091c\u0928\u0935\u0930\u0940","\u092b\u0930\u0935\u0930\u0940","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948\u0932","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917\u0938\u094d\u0924","\u0938\u093f\u0924\u092e\u094d\u092c\u0930","\u0905\u0915\u094d\u0924\u0942\u092c\u0930","\u0928\u0935\u092e\u094d\u092c\u0930","\u0926\u093f\u0938\u092e\u094d\u092c\u0930"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%l:%M:%S %p"})},"3.7.1");
+YUI.add("lang/datatype-date-format_hi",function(e){e.Intl.add("datatype-date-format","hi",{a:["\u0930\u0935\u093f","\u0938\u094b\u092e","\u092e\u0902\u0917\u0932","\u092c\u0941\u0927","\u0917\u0941\u0930\u0941","\u0936\u0941\u0915\u094d\u0930","\u0936\u0928\u093f"],A:["\u0930\u0935\u093f\u0935\u093e\u0930","\u0938\u094b\u092e\u0935\u093e\u0930","\u092e\u0902\u0917\u0932\u0935\u093e\u0930","\u092c\u0941\u0927\u0935\u093e\u0930","\u0917\u0941\u0930\u0941\u0935\u093e\u0930","\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930","\u0936\u0928\u093f\u0935\u093e\u0930"],b:["\u091c\u0928\u0935\u0930\u0940","\u092b\u0930\u0935\u0930\u0940","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948\u0932","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917\u0938\u094d\u0924","\u0938\u093f\u0924\u092e\u094d\u092c\u0930","\u0905\u0915\u094d\u0924\u0942\u092c\u0930","\u0928\u0935\u092e\u094d\u092c\u0930","\u0926\u093f\u0938\u092e\u094d\u092c\u0930"],B:["\u091c\u0928\u0935\u0930\u0940","\u092b\u0930\u0935\u0930\u0940","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948\u0932","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917\u0938\u094d\u0924","\u0938\u093f\u0924\u092e\u094d\u092c\u0930","\u0905\u0915\u094d\u0924\u0942\u092c\u0930","\u0928\u0935\u092e\u094d\u092c\u0930","\u0926\u093f\u0938\u092e\u094d\u092c\u0930"],c:"%a, %d %b %Y %l:%M:%S %p %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%l:%M:%S %p"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_id-ID.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_id-ID.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_id-ID.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_id-ID.js
index 91b635fd7a4..7e1f4cd54e1 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_id-ID.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_id-ID.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_id-ID",function(e){e.Intl.add("datatype-date-format","id-ID",{a:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],A:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],b:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],B:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],c:"%a, %Y %b %d %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_id-ID",function(e){e.Intl.add("datatype-date-format","id-ID",{a:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],A:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],b:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],B:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],c:"%a, %Y %b %d %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_id.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_id.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_id.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_id.js
index b4cc1ff46a0..44c05a059bc 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_id.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_id.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_id",function(e){e.Intl.add("datatype-date-format","id",{a:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],A:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],b:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],B:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],c:"%a, %Y %b %d %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_id",function(e){e.Intl.add("datatype-date-format","id",{a:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],A:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],b:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],B:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],c:"%a, %Y %b %d %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_it-IT.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_it-IT.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_it-IT.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_it-IT.js
index 4bb09d7cd66..4f370c85ec3 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_it-IT.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_it-IT.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_it-IT",function(e){e.Intl.add("datatype-date-format","it-IT",{a:["dom","lun","mar","mer","gio","ven","sab"],A:["domenica","luned\u00ec","marted\u00ec","mercoled\u00ec","gioved\u00ec","venerd\u00ec","sabato"],b:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],B:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],c:"%a %d %b %Y %H.%M.%S %Z",p:["M.","P."],P:["m.","p."],x:"%d/%m/%y",X:"%H.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_it-IT",function(e){e.Intl.add("datatype-date-format","it-IT",{a:["dom","lun","mar","mer","gio","ven","sab"],A:["domenica","luned\u00ec","marted\u00ec","mercoled\u00ec","gioved\u00ec","venerd\u00ec","sabato"],b:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],B:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],c:"%a %d %b %Y %H.%M.%S %Z",p:["M.","P."],P:["m.","p."],x:"%d/%m/%y",X:"%H.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_it.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_it.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_it.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_it.js
index 5e9e47c183e..96dcc587d9b 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_it.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_it.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_it",function(e){e.Intl.add("datatype-date-format","it",{a:["dom","lun","mar","mer","gio","ven","sab"],A:["domenica","luned\u00ec","marted\u00ec","mercoled\u00ec","gioved\u00ec","venerd\u00ec","sabato"],b:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],B:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],c:"%a %d %b %Y %H.%M.%S %Z",p:["M.","P."],P:["m.","p."],x:"%d/%m/%y",X:"%H.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_it",function(e){e.Intl.add("datatype-date-format","it",{a:["dom","lun","mar","mer","gio","ven","sab"],A:["domenica","luned\u00ec","marted\u00ec","mercoled\u00ec","gioved\u00ec","venerd\u00ec","sabato"],b:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],B:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],c:"%a %d %b %Y %H.%M.%S %Z",p:["M.","P."],P:["m.","p."],x:"%d/%m/%y",X:"%H.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ja-JP.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ja-JP.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ja-JP.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ja-JP.js
index f5f504c1dd2..3c1c9318a58 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ja-JP.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ja-JP.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ja-JP",function(e){e.Intl.add("datatype-date-format","ja-JP",{a:["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"],A:["\u65e5\u66dc\u65e5","\u6708\u66dc\u65e5","\u706b\u66dc\u65e5","\u6c34\u66dc\u65e5","\u6728\u66dc\u65e5","\u91d1\u66dc\u65e5","\u571f\u66dc\u65e5"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%m\u6708%d\u65e5(%a)%k\u6642%M\u5206%S\u79d2 %Z",p:["\u5348\u524d","\u5348\u5f8c"],P:["\u5348\u524d","\u5348\u5f8c"],x:"%y/%m/%d",X:"%k\u6642%M\u5206%S\u79d2"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ja-JP",function(e){e.Intl.add("datatype-date-format","ja-JP",{a:["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"],A:["\u65e5\u66dc\u65e5","\u6708\u66dc\u65e5","\u706b\u66dc\u65e5","\u6c34\u66dc\u65e5","\u6728\u66dc\u65e5","\u91d1\u66dc\u65e5","\u571f\u66dc\u65e5"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%m\u6708%d\u65e5(%a)%k\u6642%M\u5206%S\u79d2 %Z",p:["\u5348\u524d","\u5348\u5f8c"],P:["\u5348\u524d","\u5348\u5f8c"],x:"%y/%m/%d",X:"%k\u6642%M\u5206%S\u79d2"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ja.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ja.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ja.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ja.js
index 10e47d73f1f..0b5165b6a98 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ja.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ja.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ja",function(e){e.Intl.add("datatype-date-format","ja",{a:["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"],A:["\u65e5\u66dc\u65e5","\u6708\u66dc\u65e5","\u706b\u66dc\u65e5","\u6c34\u66dc\u65e5","\u6728\u66dc\u65e5","\u91d1\u66dc\u65e5","\u571f\u66dc\u65e5"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%m\u6708%d\u65e5(%a)%k\u6642%M\u5206%S\u79d2 %Z",p:["\u5348\u524d","\u5348\u5f8c"],P:["\u5348\u524d","\u5348\u5f8c"],x:"%y/%m/%d",X:"%k\u6642%M\u5206%S\u79d2"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ja",function(e){e.Intl.add("datatype-date-format","ja",{a:["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"],A:["\u65e5\u66dc\u65e5","\u6708\u66dc\u65e5","\u706b\u66dc\u65e5","\u6c34\u66dc\u65e5","\u6728\u66dc\u65e5","\u91d1\u66dc\u65e5","\u571f\u66dc\u65e5"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%m\u6708%d\u65e5(%a)%k\u6642%M\u5206%S\u79d2 %Z",p:["\u5348\u524d","\u5348\u5f8c"],P:["\u5348\u524d","\u5348\u5f8c"],x:"%y/%m/%d",X:"%k\u6642%M\u5206%S\u79d2"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ko-KR.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ko-KR.js
similarity index 91%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ko-KR.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ko-KR.js
index 3434fb1d419..3840bdfd456 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ko-KR.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ko-KR.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ko-KR",function(e){e.Intl.add("datatype-date-format","ko-KR",{a:["\uc77c","\uc6d4","\ud654","\uc218","\ubaa9","\uae08","\ud1a0"],A:["\uc77c\uc694\uc77c","\uc6d4\uc694\uc77c","\ud654\uc694\uc77c","\uc218\uc694\uc77c","\ubaa9\uc694\uc77c","\uae08\uc694\uc77c","\ud1a0\uc694\uc77c"],b:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],B:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],c:"%Y\ub144 %b %d\uc77c %a%p %I\uc2dc %M\ubd84 %S\ucd08 %Z",p:["\uc624\uc804","\uc624\ud6c4"],P:["\uc624\uc804","\uc624\ud6c4"],x:"%y. %m. %d.",X:"%p %I\uc2dc %M\ubd84 %S\ucd08"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ko-KR",function(e){e.Intl.add("datatype-date-format","ko-KR",{a:["\uc77c","\uc6d4","\ud654","\uc218","\ubaa9","\uae08","\ud1a0"],A:["\uc77c\uc694\uc77c","\uc6d4\uc694\uc77c","\ud654\uc694\uc77c","\uc218\uc694\uc77c","\ubaa9\uc694\uc77c","\uae08\uc694\uc77c","\ud1a0\uc694\uc77c"],b:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],B:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],c:"%Y\ub144 %b %d\uc77c %a%p %I\uc2dc %M\ubd84 %S\ucd08 %Z",p:["\uc624\uc804","\uc624\ud6c4"],P:["\uc624\uc804","\uc624\ud6c4"],x:"%y. %m. %d.",X:"%p %I\uc2dc %M\ubd84 %S\ucd08"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ko.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ko.js
similarity index 91%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ko.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ko.js
index cb5ed6a581f..c1b386d9863 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ko.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ko.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ko",function(e){e.Intl.add("datatype-date-format","ko",{a:["\uc77c","\uc6d4","\ud654","\uc218","\ubaa9","\uae08","\ud1a0"],A:["\uc77c\uc694\uc77c","\uc6d4\uc694\uc77c","\ud654\uc694\uc77c","\uc218\uc694\uc77c","\ubaa9\uc694\uc77c","\uae08\uc694\uc77c","\ud1a0\uc694\uc77c"],b:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],B:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],c:"%Y\ub144 %b %d\uc77c %a%p %I\uc2dc %M\ubd84 %S\ucd08 %Z",p:["\uc624\uc804","\uc624\ud6c4"],P:["\uc624\uc804","\uc624\ud6c4"],x:"%y. %m. %d.",X:"%p %I\uc2dc %M\ubd84 %S\ucd08"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ko",function(e){e.Intl.add("datatype-date-format","ko",{a:["\uc77c","\uc6d4","\ud654","\uc218","\ubaa9","\uae08","\ud1a0"],A:["\uc77c\uc694\uc77c","\uc6d4\uc694\uc77c","\ud654\uc694\uc77c","\uc218\uc694\uc77c","\ubaa9\uc694\uc77c","\uae08\uc694\uc77c","\ud1a0\uc694\uc77c"],b:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],B:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],c:"%Y\ub144 %b %d\uc77c %a%p %I\uc2dc %M\ubd84 %S\ucd08 %Z",p:["\uc624\uc804","\uc624\ud6c4"],P:["\uc624\uc804","\uc624\ud6c4"],x:"%y. %m. %d.",X:"%p %I\uc2dc %M\ubd84 %S\ucd08"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ms-MY.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ms-MY.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ms-MY.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ms-MY.js
index 5b108782542..a309fb61368 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ms-MY.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ms-MY.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ms-MY",function(e){e.Intl.add("datatype-date-format","ms-MY",{a:["Ahd","Isn","Sel","Rab","Kha","Jum","Sab"],A:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],b:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sep","Okt","Nov","Dis"],B:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],c:"%a, %Y %b %d %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%Y-%m-%d",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ms-MY",function(e){e.Intl.add("datatype-date-format","ms-MY",{a:["Ahd","Isn","Sel","Rab","Kha","Jum","Sab"],A:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],b:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sep","Okt","Nov","Dis"],B:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],c:"%a, %Y %b %d %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%Y-%m-%d",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ms.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ms.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ms.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ms.js
index c882f5ee1e4..1bdeefab7f6 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ms.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ms.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ms",function(e){e.Intl.add("datatype-date-format","ms",{a:["Ahd","Isn","Sel","Rab","Kha","Jum","Sab"],A:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],b:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sep","Okt","Nov","Dis"],B:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],c:"%a, %Y %b %d %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%Y-%m-%d",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ms",function(e){e.Intl.add("datatype-date-format","ms",{a:["Ahd","Isn","Sel","Rab","Kha","Jum","Sab"],A:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],b:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sep","Okt","Nov","Dis"],B:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],c:"%a, %Y %b %d %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%Y-%m-%d",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nb-NO.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nb-NO.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nb-NO.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nb-NO.js
index 64570ee7654..08512e982aa 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nb-NO.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nb-NO.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_nb-NO",function(e){e.Intl.add("datatype-date-format","nb-NO",{a:["s\u00f8n.","man.","tir.","ons.","tor.","fre.","l\u00f8r."],A:["s\u00f8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\u00f8rdag"],b:["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],B:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],c:"%a %d. %b %Y kl. %H.%M.%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%y",X:"kl. %H.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_nb-NO",function(e){e.Intl.add("datatype-date-format","nb-NO",{a:["s\u00f8n.","man.","tir.","ons.","tor.","fre.","l\u00f8r."],A:["s\u00f8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\u00f8rdag"],b:["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],B:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],c:"%a %d. %b %Y kl. %H.%M.%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%y",X:"kl. %H.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nb.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nb.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nb.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nb.js
index 3f8dbb1bab6..8a95d6b8289 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nb.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nb.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_nb",function(e){e.Intl.add("datatype-date-format","nb",{a:["s\u00f8n.","man.","tir.","ons.","tor.","fre.","l\u00f8r."],A:["s\u00f8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\u00f8rdag"],b:["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],B:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],c:"%a %d. %b %Y kl. %H.%M.%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%y",X:"kl. %H.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_nb",function(e){e.Intl.add("datatype-date-format","nb",{a:["s\u00f8n.","man.","tir.","ons.","tor.","fre.","l\u00f8r."],A:["s\u00f8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\u00f8rdag"],b:["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],B:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],c:"%a %d. %b %Y kl. %H.%M.%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%y",X:"kl. %H.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nl-BE.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nl-BE.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nl-BE.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nl-BE.js
index daaaed0c043..610ad92925d 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nl-BE.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nl-BE.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_nl-BE",function(e){e.Intl.add("datatype-date-format","nl-BE",{a:["zo","ma","di","wo","do","vr","za"],A:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],b:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_nl-BE",function(e){e.Intl.add("datatype-date-format","nl-BE",{a:["zo","ma","di","wo","do","vr","za"],A:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],b:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nl-NL.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nl-NL.js
similarity index 86%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nl-NL.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nl-NL.js
index d6db3e62293..e98b5985855 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nl-NL.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nl-NL.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_nl-NL",function(e){e.Intl.add("datatype-date-format","nl-NL",{a:["zo","ma","di","wo","do","vr","za"],A:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],b:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_nl-NL",function(e){e.Intl.add("datatype-date-format","nl-NL",{a:["zo","ma","di","wo","do","vr","za"],A:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],b:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nl.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nl.js
similarity index 87%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nl.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nl.js
index fbf535b0d77..77522c8b094 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_nl.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_nl.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_nl",function(e){e.Intl.add("datatype-date-format","nl",{a:["zo","ma","di","wo","do","vr","za"],A:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],b:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_nl",function(e){e.Intl.add("datatype-date-format","nl",{a:["zo","ma","di","wo","do","vr","za"],A:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],b:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],B:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],c:"%a %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pl-PL.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pl-PL.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pl-PL.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pl-PL.js
index 9c1762459b2..14d78189f95 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pl-PL.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pl-PL.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_pl-PL",function(e){e.Intl.add("datatype-date-format","pl-PL",{a:["niedz.","pon.","wt.","\u015br.","czw.","pt.","sob."],A:["niedziela","poniedzia\u0142ek","wtorek","\u015broda","czwartek","pi\u0105tek","sobota"],b:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","pa\u017a","lis","gru"],B:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","wrze\u015bnia","pa\u017adziernika","listopada","grudnia"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_pl-PL",function(e){e.Intl.add("datatype-date-format","pl-PL",{a:["niedz.","pon.","wt.","\u015br.","czw.","pt.","sob."],A:["niedziela","poniedzia\u0142ek","wtorek","\u015broda","czwartek","pi\u0105tek","sobota"],b:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","pa\u017a","lis","gru"],B:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","wrze\u015bnia","pa\u017adziernika","listopada","grudnia"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pl.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pl.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pl.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pl.js
index b043ba7cb51..a28a1388a78 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pl.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pl.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_pl",function(e){e.Intl.add("datatype-date-format","pl",{a:["niedz.","pon.","wt.","\u015br.","czw.","pt.","sob."],A:["niedziela","poniedzia\u0142ek","wtorek","\u015broda","czwartek","pi\u0105tek","sobota"],b:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","pa\u017a","lis","gru"],B:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","wrze\u015bnia","pa\u017adziernika","listopada","grudnia"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_pl",function(e){e.Intl.add("datatype-date-format","pl",{a:["niedz.","pon.","wt.","\u015br.","czw.","pt.","sob."],A:["niedziela","poniedzia\u0142ek","wtorek","\u015broda","czwartek","pi\u0105tek","sobota"],b:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","pa\u017a","lis","gru"],B:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","wrze\u015bnia","pa\u017adziernika","listopada","grudnia"],c:"%a, %d %b %Y %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d-%m-%y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pt-BR.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pt-BR.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pt-BR.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pt-BR.js
index 57a719a8e56..f435f227d12 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pt-BR.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pt-BR.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_pt-BR",function(e){e.Intl.add("datatype-date-format","pt-BR",{a:["dom","seg","ter","qua","qui","sex","s\u00e1b"],A:["domingo","segunda-feira","ter\u00e7a-feira","quarta-feira","quinta-feira","sexta-feira","s\u00e1bado"],b:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],B:["janeiro","fevereiro","mar\u00e7o","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],c:"%a, %d de %b de %Y %Hh%Mmin%Ss %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%Hh%Mmin%Ss"})},"3.7.1");
+YUI.add("lang/datatype-date-format_pt-BR",function(e){e.Intl.add("datatype-date-format","pt-BR",{a:["dom","seg","ter","qua","qui","sex","s\u00e1b"],A:["domingo","segunda-feira","ter\u00e7a-feira","quarta-feira","quinta-feira","sexta-feira","s\u00e1bado"],b:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],B:["janeiro","fevereiro","mar\u00e7o","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],c:"%a, %d de %b de %Y %Hh%Mmin%Ss %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%Hh%Mmin%Ss"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pt.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pt.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pt.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pt.js
index 9fc18c95054..36963d283a2 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_pt.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_pt.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_pt",function(e){e.Intl.add("datatype-date-format","pt",{a:["dom","seg","ter","qua","qui","sex","s\u00e1b"],A:["domingo","segunda-feira","ter\u00e7a-feira","quarta-feira","quinta-feira","sexta-feira","s\u00e1bado"],b:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],B:["janeiro","fevereiro","mar\u00e7o","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],c:"%a, %d de %b de %Y %Hh%Mmin%Ss %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%Hh%Mmin%Ss"})},"3.7.1");
+YUI.add("lang/datatype-date-format_pt",function(e){e.Intl.add("datatype-date-format","pt",{a:["dom","seg","ter","qua","qui","sex","s\u00e1b"],A:["domingo","segunda-feira","ter\u00e7a-feira","quarta-feira","quinta-feira","sexta-feira","s\u00e1bado"],b:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],B:["janeiro","fevereiro","mar\u00e7o","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],c:"%a, %d de %b de %Y %Hh%Mmin%Ss %Z",p:["AM","PM"],P:["am","pm"],x:"%d/%m/%y",X:"%Hh%Mmin%Ss"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ro-RO.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ro-RO.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ro-RO.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ro-RO.js
index 059f83f8f92..7b09eef5eac 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ro-RO.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ro-RO.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ro-RO",function(e){e.Intl.add("datatype-date-format","ro-RO",{a:["Du","Lu","Ma","Mi","Jo","Vi","S\u00e2"],A:["duminic\u0103","luni","mar\u021bi","miercuri","joi","vineri","s\u00e2mb\u0103t\u0103"],b:["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],B:["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],c:"%a, %d %b %Y, %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%Y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ro-RO",function(e){e.Intl.add("datatype-date-format","ro-RO",{a:["Du","Lu","Ma","Mi","Jo","Vi","S\u00e2"],A:["duminic\u0103","luni","mar\u021bi","miercuri","joi","vineri","s\u00e2mb\u0103t\u0103"],b:["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],B:["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],c:"%a, %d %b %Y, %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%Y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ro.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ro.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ro.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ro.js
index 1b76ba5c71b..e07c459aa2e 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ro.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ro.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ro",function(e){e.Intl.add("datatype-date-format","ro",{a:["Du","Lu","Ma","Mi","Jo","Vi","S\u00e2"],A:["duminic\u0103","luni","mar\u021bi","miercuri","joi","vineri","s\u00e2mb\u0103t\u0103"],b:["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],B:["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],c:"%a, %d %b %Y, %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%Y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ro",function(e){e.Intl.add("datatype-date-format","ro",{a:["Du","Lu","Ma","Mi","Jo","Vi","S\u00e2"],A:["duminic\u0103","luni","mar\u021bi","miercuri","joi","vineri","s\u00e2mb\u0103t\u0103"],b:["ian.","feb.","mar.","apr.","mai","iun.","iul.","aug.","sept.","oct.","nov.","dec."],B:["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],c:"%a, %d %b %Y, %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%Y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ru-RU.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ru-RU.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ru-RU.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ru-RU.js
index 43ea7e89247..4a9f0c44926 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ru-RU.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ru-RU.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ru-RU",function(e){e.Intl.add("datatype-date-format","ru-RU",{a:["\u0412\u0441","\u041f\u043d","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041f\u0442","\u0421\u0431"],A:["\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435","\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a","\u0432\u0442\u043e\u0440\u043d\u0438\u043a","\u0441\u0440\u0435\u0434\u0430","\u0447\u0435\u0442\u0432\u0435\u0440\u0433","\u043f\u044f\u0442\u043d\u0438\u0446\u0430","\u0441\u0443\u0431\u0431\u043e\u0442\u0430"],b:["\u044f\u043d\u0432.","\u0444\u0435\u0432\u0440.","\u043c\u0430\u0440\u0442\u0430","\u0430\u043f\u0440.","\u043c\u0430\u044f","\u0438\u044e\u043d\u044f","\u0438\u044e\u043b\u044f","\u0430\u0432\u0433.","\u0441\u0435\u043d\u0442.","\u043e\u043a\u0442.","\u043d\u043e\u044f\u0431.","\u0434\u0435\u043a."],B:["\u044f\u043d\u0432\u0430\u0440\u044f","\u0444\u0435\u0432\u0440\u0430\u043b\u044f","\u043c\u0430\u0440\u0442\u0430","\u0430\u043f\u0440\u0435\u043b\u044f","\u043c\u0430\u044f","\u0438\u044e\u043d\u044f","\u0438\u044e\u043b\u044f","\u0430\u0432\u0433\u0443\u0441\u0442\u0430","\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f","\u043e\u043a\u0442\u044f\u0431\u0440\u044f","\u043d\u043e\u044f\u0431\u0440\u044f","\u0434\u0435\u043a\u0430\u0431\u0440\u044f"],c:"%a, %d %b %Y %k:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%y",X:"%k:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ru-RU",function(e){e.Intl.add("datatype-date-format","ru-RU",{a:["\u0412\u0441","\u041f\u043d","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041f\u0442","\u0421\u0431"],A:["\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435","\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a","\u0432\u0442\u043e\u0440\u043d\u0438\u043a","\u0441\u0440\u0435\u0434\u0430","\u0447\u0435\u0442\u0432\u0435\u0440\u0433","\u043f\u044f\u0442\u043d\u0438\u0446\u0430","\u0441\u0443\u0431\u0431\u043e\u0442\u0430"],b:["\u044f\u043d\u0432.","\u0444\u0435\u0432\u0440.","\u043c\u0430\u0440\u0442\u0430","\u0430\u043f\u0440.","\u043c\u0430\u044f","\u0438\u044e\u043d\u044f","\u0438\u044e\u043b\u044f","\u0430\u0432\u0433.","\u0441\u0435\u043d\u0442.","\u043e\u043a\u0442.","\u043d\u043e\u044f\u0431.","\u0434\u0435\u043a."],B:["\u044f\u043d\u0432\u0430\u0440\u044f","\u0444\u0435\u0432\u0440\u0430\u043b\u044f","\u043c\u0430\u0440\u0442\u0430","\u0430\u043f\u0440\u0435\u043b\u044f","\u043c\u0430\u044f","\u0438\u044e\u043d\u044f","\u0438\u044e\u043b\u044f","\u0430\u0432\u0433\u0443\u0441\u0442\u0430","\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f","\u043e\u043a\u0442\u044f\u0431\u0440\u044f","\u043d\u043e\u044f\u0431\u0440\u044f","\u0434\u0435\u043a\u0430\u0431\u0440\u044f"],c:"%a, %d %b %Y %k:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%y",X:"%k:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ru.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ru.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ru.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ru.js
index f39b2f3ee83..a7d4a5955f4 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_ru.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_ru.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_ru",function(e){e.Intl.add("datatype-date-format","ru",{a:["\u0412\u0441","\u041f\u043d","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041f\u0442","\u0421\u0431"],A:["\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435","\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a","\u0432\u0442\u043e\u0440\u043d\u0438\u043a","\u0441\u0440\u0435\u0434\u0430","\u0447\u0435\u0442\u0432\u0435\u0440\u0433","\u043f\u044f\u0442\u043d\u0438\u0446\u0430","\u0441\u0443\u0431\u0431\u043e\u0442\u0430"],b:["\u044f\u043d\u0432.","\u0444\u0435\u0432\u0440.","\u043c\u0430\u0440\u0442\u0430","\u0430\u043f\u0440.","\u043c\u0430\u044f","\u0438\u044e\u043d\u044f","\u0438\u044e\u043b\u044f","\u0430\u0432\u0433.","\u0441\u0435\u043d\u0442.","\u043e\u043a\u0442.","\u043d\u043e\u044f\u0431.","\u0434\u0435\u043a."],B:["\u044f\u043d\u0432\u0430\u0440\u044f","\u0444\u0435\u0432\u0440\u0430\u043b\u044f","\u043c\u0430\u0440\u0442\u0430","\u0430\u043f\u0440\u0435\u043b\u044f","\u043c\u0430\u044f","\u0438\u044e\u043d\u044f","\u0438\u044e\u043b\u044f","\u0430\u0432\u0433\u0443\u0441\u0442\u0430","\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f","\u043e\u043a\u0442\u044f\u0431\u0440\u044f","\u043d\u043e\u044f\u0431\u0440\u044f","\u0434\u0435\u043a\u0430\u0431\u0440\u044f"],c:"%a, %d %b %Y %k:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%y",X:"%k:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_ru",function(e){e.Intl.add("datatype-date-format","ru",{a:["\u0412\u0441","\u041f\u043d","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041f\u0442","\u0421\u0431"],A:["\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435","\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a","\u0432\u0442\u043e\u0440\u043d\u0438\u043a","\u0441\u0440\u0435\u0434\u0430","\u0447\u0435\u0442\u0432\u0435\u0440\u0433","\u043f\u044f\u0442\u043d\u0438\u0446\u0430","\u0441\u0443\u0431\u0431\u043e\u0442\u0430"],b:["\u044f\u043d\u0432.","\u0444\u0435\u0432\u0440.","\u043c\u0430\u0440\u0442\u0430","\u0430\u043f\u0440.","\u043c\u0430\u044f","\u0438\u044e\u043d\u044f","\u0438\u044e\u043b\u044f","\u0430\u0432\u0433.","\u0441\u0435\u043d\u0442.","\u043e\u043a\u0442.","\u043d\u043e\u044f\u0431.","\u0434\u0435\u043a."],B:["\u044f\u043d\u0432\u0430\u0440\u044f","\u0444\u0435\u0432\u0440\u0430\u043b\u044f","\u043c\u0430\u0440\u0442\u0430","\u0430\u043f\u0440\u0435\u043b\u044f","\u043c\u0430\u044f","\u0438\u044e\u043d\u044f","\u0438\u044e\u043b\u044f","\u0430\u0432\u0433\u0443\u0441\u0442\u0430","\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f","\u043e\u043a\u0442\u044f\u0431\u0440\u044f","\u043d\u043e\u044f\u0431\u0440\u044f","\u0434\u0435\u043a\u0430\u0431\u0440\u044f"],c:"%a, %d %b %Y %k:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%y",X:"%k:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_sv-SE.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_sv-SE.js
similarity index 93%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_sv-SE.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_sv-SE.js
index bd6248076d7..fbb63f12914 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_sv-SE.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_sv-SE.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_sv-SE",function(e){e.Intl.add("datatype-date-format","sv-SE",{a:["s\u00f6n","m\u00e5n","tis","ons","tors","fre","l\u00f6r"],A:["s\u00f6ndag","m\u00e5ndag","tisdag","onsdag","torsdag","fredag","l\u00f6rdag"],b:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],B:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],c:"%a %d %b %Y kl. %H.%M.%S %Z",p:["FM","EM"],P:["fm","em"],x:"%Y-%m-%d",X:"kl. %H.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_sv-SE",function(e){e.Intl.add("datatype-date-format","sv-SE",{a:["s\u00f6n","m\u00e5n","tis","ons","tors","fre","l\u00f6r"],A:["s\u00f6ndag","m\u00e5ndag","tisdag","onsdag","torsdag","fredag","l\u00f6rdag"],b:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],B:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],c:"%a %d %b %Y kl. %H.%M.%S %Z",p:["FM","EM"],P:["fm","em"],x:"%Y-%m-%d",X:"kl. %H.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_sv.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_sv.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_sv.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_sv.js
index 315cd672438..a591da35ffa 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_sv.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_sv.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_sv",function(e){e.Intl.add("datatype-date-format","sv",{a:["s\u00f6n","m\u00e5n","tis","ons","tors","fre","l\u00f6r"],A:["s\u00f6ndag","m\u00e5ndag","tisdag","onsdag","torsdag","fredag","l\u00f6rdag"],b:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],B:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],c:"%a %d %b %Y kl. %H.%M.%S %Z",p:["FM","EM"],P:["fm","em"],x:"%Y-%m-%d",X:"kl. %H.%M.%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_sv",function(e){e.Intl.add("datatype-date-format","sv",{a:["s\u00f6n","m\u00e5n","tis","ons","tors","fre","l\u00f6r"],A:["s\u00f6ndag","m\u00e5ndag","tisdag","onsdag","torsdag","fredag","l\u00f6rdag"],b:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],B:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],c:"%a %d %b %Y kl. %H.%M.%S %Z",p:["FM","EM"],P:["fm","em"],x:"%Y-%m-%d",X:"kl. %H.%M.%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_th-TH.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_th-TH.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_th-TH.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_th-TH.js
index 94d668a4778..4b4ba5f9935 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_th-TH.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_th-TH.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_th-TH",function(e){e.Intl.add("datatype-date-format","th-TH",{a:["\u0e2d\u0e32.","\u0e08.","\u0e2d.","\u0e1e.","\u0e1e\u0e24.","\u0e28.","\u0e2a."],A:["\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c","\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23","\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18","\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35","\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"],b:["\u0e21.\u0e04.","\u0e01.\u0e1e.","\u0e21\u0e35.\u0e04.","\u0e40\u0e21.\u0e22.","\u0e1e.\u0e04.","\u0e21\u0e34.\u0e22.","\u0e01.\u0e04.","\u0e2a.\u0e04.","\u0e01.\u0e22.","\u0e15.\u0e04.","\u0e1e.\u0e22.","\u0e18.\u0e04."],B:["\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21","\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c","\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21","\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19","\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21","\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19","\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21","\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21","\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19","\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21","\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19","\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"],c:"%a %d %b %Y, %k \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 %M \u0e19\u0e32\u0e17\u0e35 %S \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 %Z",p:["\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07","\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"],P:["\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07","\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"],x:"%d/%m/%Y",X:"%k \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 %M \u0e19\u0e32\u0e17\u0e35 %S \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35"})},"3.7.1");
+YUI.add("lang/datatype-date-format_th-TH",function(e){e.Intl.add("datatype-date-format","th-TH",{a:["\u0e2d\u0e32.","\u0e08.","\u0e2d.","\u0e1e.","\u0e1e\u0e24.","\u0e28.","\u0e2a."],A:["\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c","\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23","\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18","\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35","\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"],b:["\u0e21.\u0e04.","\u0e01.\u0e1e.","\u0e21\u0e35.\u0e04.","\u0e40\u0e21.\u0e22.","\u0e1e.\u0e04.","\u0e21\u0e34.\u0e22.","\u0e01.\u0e04.","\u0e2a.\u0e04.","\u0e01.\u0e22.","\u0e15.\u0e04.","\u0e1e.\u0e22.","\u0e18.\u0e04."],B:["\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21","\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c","\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21","\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19","\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21","\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19","\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21","\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21","\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19","\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21","\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19","\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"],c:"%a %d %b %Y, %k \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 %M \u0e19\u0e32\u0e17\u0e35 %S \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 %Z",p:["\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07","\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"],P:["\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07","\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"],x:"%d/%m/%Y",X:"%k \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 %M \u0e19\u0e32\u0e17\u0e35 %S \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_th.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_th.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_th.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_th.js
index 0d6b88f7515..fb2e9330d6b 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_th.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_th.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_th",function(e){e.Intl.add("datatype-date-format","th",{a:["\u0e2d\u0e32.","\u0e08.","\u0e2d.","\u0e1e.","\u0e1e\u0e24.","\u0e28.","\u0e2a."],A:["\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c","\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23","\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18","\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35","\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"],b:["\u0e21.\u0e04.","\u0e01.\u0e1e.","\u0e21\u0e35.\u0e04.","\u0e40\u0e21.\u0e22.","\u0e1e.\u0e04.","\u0e21\u0e34.\u0e22.","\u0e01.\u0e04.","\u0e2a.\u0e04.","\u0e01.\u0e22.","\u0e15.\u0e04.","\u0e1e.\u0e22.","\u0e18.\u0e04."],B:["\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21","\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c","\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21","\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19","\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21","\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19","\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21","\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21","\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19","\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21","\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19","\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"],c:"%a %d %b %Y, %k \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 %M \u0e19\u0e32\u0e17\u0e35 %S \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 %Z",p:["\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07","\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"],P:["\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07","\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"],x:"%d/%m/%Y",X:"%k \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 %M \u0e19\u0e32\u0e17\u0e35 %S \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35"})},"3.7.1");
+YUI.add("lang/datatype-date-format_th",function(e){e.Intl.add("datatype-date-format","th",{a:["\u0e2d\u0e32.","\u0e08.","\u0e2d.","\u0e1e.","\u0e1e\u0e24.","\u0e28.","\u0e2a."],A:["\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c","\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23","\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18","\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35","\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"],b:["\u0e21.\u0e04.","\u0e01.\u0e1e.","\u0e21\u0e35.\u0e04.","\u0e40\u0e21.\u0e22.","\u0e1e.\u0e04.","\u0e21\u0e34.\u0e22.","\u0e01.\u0e04.","\u0e2a.\u0e04.","\u0e01.\u0e22.","\u0e15.\u0e04.","\u0e1e.\u0e22.","\u0e18.\u0e04."],B:["\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21","\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c","\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21","\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19","\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21","\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19","\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21","\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21","\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19","\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21","\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19","\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"],c:"%a %d %b %Y, %k \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 %M \u0e19\u0e32\u0e17\u0e35 %S \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 %Z",p:["\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07","\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"],P:["\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07","\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"],x:"%d/%m/%Y",X:"%k \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 %M \u0e19\u0e32\u0e17\u0e35 %S \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_tr-TR.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_tr-TR.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_tr-TR.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_tr-TR.js
index 634f1886434..5fd7c7836b3 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_tr-TR.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_tr-TR.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_tr-TR",function(e){e.Intl.add("datatype-date-format","tr-TR",{a:["Paz","Pzt","Sal","\u00c7ar","Per","Cum","Cmt"],A:["Pazar","Pazartesi","Sal\u0131","\u00c7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],b:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],B:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\u00fcl","Ekim","Kas\u0131m","Aral\u0131k"],c:"%d %b %Y %a %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%Y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_tr-TR",function(e){e.Intl.add("datatype-date-format","tr-TR",{a:["Paz","Pzt","Sal","\u00c7ar","Per","Cum","Cmt"],A:["Pazar","Pazartesi","Sal\u0131","\u00c7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],b:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],B:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\u00fcl","Ekim","Kas\u0131m","Aral\u0131k"],c:"%d %b %Y %a %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%Y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_tr.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_tr.js
similarity index 91%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_tr.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_tr.js
index 2ac788ca1de..aa17de91e36 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_tr.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_tr.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_tr",function(e){e.Intl.add("datatype-date-format","tr",{a:["Paz","Pzt","Sal","\u00c7ar","Per","Cum","Cmt"],A:["Pazar","Pazartesi","Sal\u0131","\u00c7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],b:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],B:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\u00fcl","Ekim","Kas\u0131m","Aral\u0131k"],c:"%d %b %Y %a %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%Y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_tr",function(e){e.Intl.add("datatype-date-format","tr",{a:["Paz","Pzt","Sal","\u00c7ar","Per","Cum","Cmt"],A:["Pazar","Pazartesi","Sal\u0131","\u00c7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],b:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],B:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\u00fcl","Ekim","Kas\u0131m","Aral\u0131k"],c:"%d %b %Y %a %H:%M:%S %Z",p:["AM","PM"],P:["am","pm"],x:"%d.%m.%Y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_vi-VN.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_vi-VN.js
similarity index 90%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_vi-VN.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_vi-VN.js
index f6a58743fdb..72bde481406 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_vi-VN.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_vi-VN.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_vi-VN",function(e){e.Intl.add("datatype-date-format","vi-VN",{a:["CN","Th 2","Th 3","Th 4","Th 5","Th 6","Th 7"],A:["Ch\u1ee7 nh\u1eadt","Th\u1ee9 hai","Th\u1ee9 ba","Th\u1ee9 t\u01b0","Th\u1ee9 n\u0103m","Th\u1ee9 s\u00e1u","Th\u1ee9 b\u1ea3y"],b:["thg 1","thg 2","thg 3","thg 4","thg 5","thg 6","thg 7","thg 8","thg 9","thg 10","thg 11","thg 12"],B:["th\u00e1ng m\u1ed9t","th\u00e1ng hai","th\u00e1ng ba","th\u00e1ng t\u01b0","th\u00e1ng n\u0103m","th\u00e1ng s\u00e1u","th\u00e1ng b\u1ea3y","th\u00e1ng t\u00e1m","th\u00e1ng ch\u00edn","th\u00e1ng m\u01b0\u1eddi","th\u00e1ng m\u01b0\u1eddi m\u1ed9t","th\u00e1ng m\u01b0\u1eddi hai"],c:"%H:%M:%S %Z %a, %d %b %Y",p:["SA","CH"],P:["sa","ch"],x:"%d/%m/%Y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_vi-VN",function(e){e.Intl.add("datatype-date-format","vi-VN",{a:["CN","Th 2","Th 3","Th 4","Th 5","Th 6","Th 7"],A:["Ch\u1ee7 nh\u1eadt","Th\u1ee9 hai","Th\u1ee9 ba","Th\u1ee9 t\u01b0","Th\u1ee9 n\u0103m","Th\u1ee9 s\u00e1u","Th\u1ee9 b\u1ea3y"],b:["thg 1","thg 2","thg 3","thg 4","thg 5","thg 6","thg 7","thg 8","thg 9","thg 10","thg 11","thg 12"],B:["th\u00e1ng m\u1ed9t","th\u00e1ng hai","th\u00e1ng ba","th\u00e1ng t\u01b0","th\u00e1ng n\u0103m","th\u00e1ng s\u00e1u","th\u00e1ng b\u1ea3y","th\u00e1ng t\u00e1m","th\u00e1ng ch\u00edn","th\u00e1ng m\u01b0\u1eddi","th\u00e1ng m\u01b0\u1eddi m\u1ed9t","th\u00e1ng m\u01b0\u1eddi hai"],c:"%H:%M:%S %Z %a, %d %b %Y",p:["SA","CH"],P:["sa","ch"],x:"%d/%m/%Y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_vi.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_vi.js
similarity index 91%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_vi.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_vi.js
index 2fa6d152d61..70ef5546a5a 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_vi.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_vi.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_vi",function(e){e.Intl.add("datatype-date-format","vi",{a:["CN","Th 2","Th 3","Th 4","Th 5","Th 6","Th 7"],A:["Ch\u1ee7 nh\u1eadt","Th\u1ee9 hai","Th\u1ee9 ba","Th\u1ee9 t\u01b0","Th\u1ee9 n\u0103m","Th\u1ee9 s\u00e1u","Th\u1ee9 b\u1ea3y"],b:["thg 1","thg 2","thg 3","thg 4","thg 5","thg 6","thg 7","thg 8","thg 9","thg 10","thg 11","thg 12"],B:["th\u00e1ng m\u1ed9t","th\u00e1ng hai","th\u00e1ng ba","th\u00e1ng t\u01b0","th\u00e1ng n\u0103m","th\u00e1ng s\u00e1u","th\u00e1ng b\u1ea3y","th\u00e1ng t\u00e1m","th\u00e1ng ch\u00edn","th\u00e1ng m\u01b0\u1eddi","th\u00e1ng m\u01b0\u1eddi m\u1ed9t","th\u00e1ng m\u01b0\u1eddi hai"],c:"%H:%M:%S %Z %a, %d %b %Y",p:["SA","CH"],P:["sa","ch"],x:"%d/%m/%Y",X:"%H:%M:%S"})},"3.7.1");
+YUI.add("lang/datatype-date-format_vi",function(e){e.Intl.add("datatype-date-format","vi",{a:["CN","Th 2","Th 3","Th 4","Th 5","Th 6","Th 7"],A:["Ch\u1ee7 nh\u1eadt","Th\u1ee9 hai","Th\u1ee9 ba","Th\u1ee9 t\u01b0","Th\u1ee9 n\u0103m","Th\u1ee9 s\u00e1u","Th\u1ee9 b\u1ea3y"],b:["thg 1","thg 2","thg 3","thg 4","thg 5","thg 6","thg 7","thg 8","thg 9","thg 10","thg 11","thg 12"],B:["th\u00e1ng m\u1ed9t","th\u00e1ng hai","th\u00e1ng ba","th\u00e1ng t\u01b0","th\u00e1ng n\u0103m","th\u00e1ng s\u00e1u","th\u00e1ng b\u1ea3y","th\u00e1ng t\u00e1m","th\u00e1ng ch\u00edn","th\u00e1ng m\u01b0\u1eddi","th\u00e1ng m\u01b0\u1eddi m\u1ed9t","th\u00e1ng m\u01b0\u1eddi hai"],c:"%H:%M:%S %Z %a, %d %b %Y",p:["SA","CH"],P:["sa","ch"],x:"%d/%m/%Y",X:"%H:%M:%S"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hans-CN.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hans-CN.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hans-CN.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hans-CN.js
index 94f605b9332..d775f1f2ca4 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hans-CN.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hans-CN.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_zh-Hans-CN",function(e){e.Intl.add("datatype-date-format","zh-Hans-CN",{a:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u65f6%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y-%m-%d",X:"%p%l\u65f6%M\u5206%S\u79d2"})},"3.7.1");
+YUI.add("lang/datatype-date-format_zh-Hans-CN",function(e){e.Intl.add("datatype-date-format","zh-Hans-CN",{a:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u65f6%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y-%m-%d",X:"%p%l\u65f6%M\u5206%S\u79d2"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hans.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hans.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hans.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hans.js
index 393554ad8db..4d20f5a27ab 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hans.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hans.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_zh-Hans",function(e){e.Intl.add("datatype-date-format","zh-Hans",{a:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u65f6%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y-%m-%d",X:"%p%l\u65f6%M\u5206%S\u79d2"})},"3.7.1");
+YUI.add("lang/datatype-date-format_zh-Hans",function(e){e.Intl.add("datatype-date-format","zh-Hans",{a:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u65f6%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y-%m-%d",X:"%p%l\u65f6%M\u5206%S\u79d2"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hant-HK.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hant-HK.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hant-HK.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hant-HK.js
index c40e2af7cf1..f87fefdb71c 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hant-HK.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hant-HK.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_zh-Hant-HK",function(e){e.Intl.add("datatype-date-format","zh-Hant-HK",{a:["\u9031\u65e5","\u9031\u4e00","\u9031\u4e8c","\u9031\u4e09","\u9031\u56db","\u9031\u4e94","\u9031\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u6642%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y\u5e74%m\u6708%d\u65e5",X:"%p%l\u6642%M\u5206%S\u79d2"})},"3.7.1");
+YUI.add("lang/datatype-date-format_zh-Hant-HK",function(e){e.Intl.add("datatype-date-format","zh-Hant-HK",{a:["\u9031\u65e5","\u9031\u4e00","\u9031\u4e8c","\u9031\u4e09","\u9031\u56db","\u9031\u4e94","\u9031\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u6642%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y\u5e74%m\u6708%d\u65e5",X:"%p%l\u6642%M\u5206%S\u79d2"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hant-TW.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hant-TW.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hant-TW.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hant-TW.js
index e6a470ceda0..08c3e04a8c9 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hant-TW.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hant-TW.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_zh-Hant-TW",function(e){e.Intl.add("datatype-date-format","zh-Hant-TW",{a:["\u9031\u65e5","\u9031\u4e00","\u9031\u4e8c","\u9031\u4e09","\u9031\u56db","\u9031\u4e94","\u9031\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u6642%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y/%m/%d",X:"%p%l\u6642%M\u5206%S\u79d2"})},"3.7.1");
+YUI.add("lang/datatype-date-format_zh-Hant-TW",function(e){e.Intl.add("datatype-date-format","zh-Hant-TW",{a:["\u9031\u65e5","\u9031\u4e00","\u9031\u4e8c","\u9031\u4e09","\u9031\u56db","\u9031\u4e94","\u9031\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u6642%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y/%m/%d",X:"%p%l\u6642%M\u5206%S\u79d2"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hant.js b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hant.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hant.js
rename to lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hant.js
index af1d48e108c..dca5e9e2916 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-format/lang/datatype-date-format_zh-Hant.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-format/lang/datatype-date-format_zh-Hant.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("lang/datatype-date-format_zh-Hant",function(e){e.Intl.add("datatype-date-format","zh-Hant",{a:["\u9031\u65e5","\u9031\u4e00","\u9031\u4e8c","\u9031\u4e09","\u9031\u56db","\u9031\u4e94","\u9031\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u6642%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y/%m/%d",X:"%p%l\u6642%M\u5206%S\u79d2"})},"3.7.1");
+YUI.add("lang/datatype-date-format_zh-Hant",function(e){e.Intl.add("datatype-date-format","zh-Hant",{a:["\u9031\u65e5","\u9031\u4e00","\u9031\u4e8c","\u9031\u4e09","\u9031\u56db","\u9031\u4e94","\u9031\u516d"],A:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],b:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],B:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],c:"%Y\u5e74%b%d\u65e5%a%Z%p%l\u6642%M\u5206%S\u79d2",p:["\u4e0a\u5348","\u4e0b\u5348"],P:["\u4e0a\u5348","\u4e0b\u5348"],x:"%y/%m/%d",X:"%p%l\u6642%M\u5206%S\u79d2"})},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math-coverage.js b/lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math-coverage.js
rename to lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math-coverage.js
index c38a1f4dc85..ceb18441554 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatype-date-math/datatype-date-math.js"] = {
path: "build/datatype-date-math/datatype-date-math.js",
code: []
};
-_yuitest_coverage["build/datatype-date-math/datatype-date-math.js"].code=["YUI.add('datatype-date-math', function (Y, NAME) {","","/**"," * Date Math submodule."," *"," * @module datatype-date"," * @submodule datatype-date-math"," * @for Date"," */","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"Date\"), {",""," /**"," * Checks whether a native JavaScript Date contains a valid value."," * @for Date"," * @method isValidDate"," * @param oDate {Date} Date in the month for which the number of days is desired."," * @return {Boolean} True if the date argument contains a valid value."," */"," isValidDate : function (oDate) {"," if(LANG.isDate(oDate) && (isFinite(oDate)) && (oDate != \"Invalid Date\") && !isNaN(oDate) && (oDate != null)) {"," return true;"," }"," else {"," return false;"," }"," },",""," /**"," * Checks whether two dates correspond to the same date and time."," * @for Date"," * @method areEqual"," * @param aDate {Date} The first date to compare."," * @param bDate {Date} The second date to compare."," * @return {Boolean} True if the two dates correspond to the same"," * date and time."," */ "," areEqual : function (aDate, bDate) {"," return (this.isValidDate(aDate) && this.isValidDate(bDate) && (aDate.getTime() == bDate.getTime())); "," },",""," /**"," * Checks whether the first date comes later than the second."," * @for Date"," * @method isGreater"," * @param aDate {Date} The first date to compare."," * @param bDate {Date} The second date to compare."," * @return {Boolean} True if the first date is later than the second."," */ "," isGreater : function (aDate, bDate) {"," return (this.isValidDate(aDate) && this.isValidDate(bDate) && (aDate.getTime() > bDate.getTime()));"," },",""," /**"," * Checks whether the first date comes later than or is the same as"," * the second."," * @for Date"," * @method isGreaterOrEqual"," * @param aDate {Date} The first date to compare."," * @param bDate {Date} The second date to compare."," * @return {Boolean} True if the first date is later than or "," * the same as the second."," */ "," isGreaterOrEqual : function (aDate, bDate) {"," return (this.isValidDate(aDate) && this.isValidDate(bDate) && (aDate.getTime() >= bDate.getTime()));"," },","",""," /**"," * Checks whether the date is between two other given dates."," * @for Date"," * @method isInRange"," * @param aDate {Date} The date to check"," * @param bDate {Date} Lower bound of the range."," * @param cDate {Date} Higher bound of the range."," * @return {Boolean} True if the date is between the two other given dates."," */ "," isInRange : function (aDate, bDate, cDate) {"," return (this.isGreaterOrEqual(aDate, bDate) && this.isGreaterOrEqual(cDate, aDate));"," },",""," /**"," * Adds a specified number of days to the given date."," * @for Date"," * @method addDays"," * @param oDate {Date} The date to add days to."," * @param numMonths {Number} The number of days to add (can be negative)"," * @return {Date} A new Date with the specified number of days"," * added to the original date."," */ "," addDays : function (oDate, numDays) {"," return new Date(oDate.getTime() + 86400000*numDays);"," },","",""," /**"," * Adds a specified number of months to the given date."," * @for Date"," * @method addMonths"," * @param oDate {Date} The date to add months to."," * @param numMonths {Number} The number of months to add (can be negative)"," * @return {Date} A new Date with the specified number of months"," * added to the original date."," */ "," addMonths : function (oDate, numMonths) {"," var newYear = oDate.getFullYear();"," var newMonth = oDate.getMonth() + numMonths; "," "," newYear = Math.floor(newYear + newMonth / 12);"," newMonth = (newMonth % 12 + 12) % 12;"," "," var newDate = new Date (oDate.getTime());"," newDate.setFullYear(newYear);"," newDate.setMonth(newMonth);"," "," return newDate;"," },",""," /**"," * Adds a specified number of years to the given date."," * @for Date"," * @method addYears"," * @param oDate {Date} The date to add years to."," * @param numYears {Number} The number of years to add (can be negative)"," * @return {Date} A new Date with the specified number of years"," * added to the original date."," */ "," addYears : function (oDate, numYears) {"," var newYear = oDate.getFullYear() + numYears;"," var newDate = new Date(oDate.getTime());"," "," newDate.setFullYear(newYear);"," return newDate;"," },",""," /**"," * Lists all dates in a given month."," * @for Date"," * @method listOfDatesInMonth"," * @param oDate {Date} The date corresponding to the month for"," * which a list of dates is required."," * @return {Array} An `Array` of `Date`s from a given month."," */ "," listOfDatesInMonth : function (oDate) {"," if (!this.isValidDate(oDate)) {"," return [];"," }",""," var daysInMonth = this.daysInMonth(oDate),"," year = oDate.getFullYear(),"," month = oDate.getMonth(),"," output = [];",""," for (var day = 1; day <= daysInMonth; day++) {"," output.push(new Date(year, month, day, 12, 0, 0));"," }",""," return output;"," },",""," /**"," * Takes a native JavaScript Date and returns the number of days"," * in the month that the given date belongs to."," * @for Date"," * @method daysInMonth"," * @param oDate {Date} Date in the month for which the number "," * of days is desired."," * @return {Number} A number (either 28, 29, 30 or 31) of days "," * in the given month."," */"," daysInMonth : function (oDate) {"," if (!this.isValidDate(oDate)) {"," return 0;"," }"," "," var mon = oDate.getMonth();"," var lengths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];",""," if (mon != 1) {"," return lengths[mon];"," }"," else {",""," var year = oDate.getFullYear();"," if (year%400 === 0) {"," return 29;"," } "," else if (year%100 === 0) {"," return 28;"," }"," else if (year%4 === 0) {"," return 29;"," }"," else {"," return 28;"," }"," } "," }","","});","","Y.namespace(\"DataType\");","Y.DataType.Date = Y.Date;","","","}, '3.7.1', {\"requires\": [\"yui-base\"]});"];
+_yuitest_coverage["build/datatype-date-math/datatype-date-math.js"].code=["YUI.add('datatype-date-math', function (Y, NAME) {","","/**"," * Date Math submodule."," *"," * @module datatype-date"," * @submodule datatype-date-math"," * @for Date"," */","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"Date\"), {",""," /**"," * Checks whether a native JavaScript Date contains a valid value."," * @for Date"," * @method isValidDate"," * @param oDate {Date} Date in the month for which the number of days is desired."," * @return {Boolean} True if the date argument contains a valid value."," */"," isValidDate : function (oDate) {"," if(LANG.isDate(oDate) && (isFinite(oDate)) && (oDate != \"Invalid Date\") && !isNaN(oDate) && (oDate != null)) {"," return true;"," }"," else {"," return false;"," }"," },",""," /**"," * Checks whether two dates correspond to the same date and time."," * @for Date"," * @method areEqual"," * @param aDate {Date} The first date to compare."," * @param bDate {Date} The second date to compare."," * @return {Boolean} True if the two dates correspond to the same"," * date and time."," */ "," areEqual : function (aDate, bDate) {"," return (this.isValidDate(aDate) && this.isValidDate(bDate) && (aDate.getTime() == bDate.getTime())); "," },",""," /**"," * Checks whether the first date comes later than the second."," * @for Date"," * @method isGreater"," * @param aDate {Date} The first date to compare."," * @param bDate {Date} The second date to compare."," * @return {Boolean} True if the first date is later than the second."," */ "," isGreater : function (aDate, bDate) {"," return (this.isValidDate(aDate) && this.isValidDate(bDate) && (aDate.getTime() > bDate.getTime()));"," },",""," /**"," * Checks whether the first date comes later than or is the same as"," * the second."," * @for Date"," * @method isGreaterOrEqual"," * @param aDate {Date} The first date to compare."," * @param bDate {Date} The second date to compare."," * @return {Boolean} True if the first date is later than or "," * the same as the second."," */ "," isGreaterOrEqual : function (aDate, bDate) {"," return (this.isValidDate(aDate) && this.isValidDate(bDate) && (aDate.getTime() >= bDate.getTime()));"," },","",""," /**"," * Checks whether the date is between two other given dates."," * @for Date"," * @method isInRange"," * @param aDate {Date} The date to check"," * @param bDate {Date} Lower bound of the range."," * @param cDate {Date} Higher bound of the range."," * @return {Boolean} True if the date is between the two other given dates."," */ "," isInRange : function (aDate, bDate, cDate) {"," return (this.isGreaterOrEqual(aDate, bDate) && this.isGreaterOrEqual(cDate, aDate));"," },",""," /**"," * Adds a specified number of days to the given date."," * @for Date"," * @method addDays"," * @param oDate {Date} The date to add days to."," * @param numMonths {Number} The number of days to add (can be negative)"," * @return {Date} A new Date with the specified number of days"," * added to the original date."," */ "," addDays : function (oDate, numDays) {"," return new Date(oDate.getTime() + 86400000*numDays);"," },","",""," /**"," * Adds a specified number of months to the given date."," * @for Date"," * @method addMonths"," * @param oDate {Date} The date to add months to."," * @param numMonths {Number} The number of months to add (can be negative)"," * @return {Date} A new Date with the specified number of months"," * added to the original date."," */ "," addMonths : function (oDate, numMonths) {"," var newYear = oDate.getFullYear();"," var newMonth = oDate.getMonth() + numMonths; "," "," newYear = Math.floor(newYear + newMonth / 12);"," newMonth = (newMonth % 12 + 12) % 12;"," "," var newDate = new Date (oDate.getTime());"," newDate.setFullYear(newYear);"," newDate.setMonth(newMonth);"," "," return newDate;"," },",""," /**"," * Adds a specified number of years to the given date."," * @for Date"," * @method addYears"," * @param oDate {Date} The date to add years to."," * @param numYears {Number} The number of years to add (can be negative)"," * @return {Date} A new Date with the specified number of years"," * added to the original date."," */ "," addYears : function (oDate, numYears) {"," var newYear = oDate.getFullYear() + numYears;"," var newDate = new Date(oDate.getTime());"," "," newDate.setFullYear(newYear);"," return newDate;"," },",""," /**"," * Lists all dates in a given month."," * @for Date"," * @method listOfDatesInMonth"," * @param oDate {Date} The date corresponding to the month for"," * which a list of dates is required."," * @return {Array} An `Array` of `Date`s from a given month."," */ "," listOfDatesInMonth : function (oDate) {"," if (!this.isValidDate(oDate)) {"," return [];"," }",""," var daysInMonth = this.daysInMonth(oDate),"," year = oDate.getFullYear(),"," month = oDate.getMonth(),"," output = [];",""," for (var day = 1; day <= daysInMonth; day++) {"," output.push(new Date(year, month, day, 12, 0, 0));"," }",""," return output;"," },",""," /**"," * Takes a native JavaScript Date and returns the number of days"," * in the month that the given date belongs to."," * @for Date"," * @method daysInMonth"," * @param oDate {Date} Date in the month for which the number "," * of days is desired."," * @return {Number} A number (either 28, 29, 30 or 31) of days "," * in the given month."," */"," daysInMonth : function (oDate) {"," if (!this.isValidDate(oDate)) {"," return 0;"," }"," "," var mon = oDate.getMonth();"," var lengths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];",""," if (mon != 1) {"," return lengths[mon];"," }"," else {",""," var year = oDate.getFullYear();"," if (year%400 === 0) {"," return 29;"," } "," else if (year%100 === 0) {"," return 28;"," }"," else if (year%4 === 0) {"," return 29;"," }"," else {"," return 28;"," }"," } "," }","","});","","Y.namespace(\"DataType\");","Y.DataType.Date = Y.Date;","","","}, '3.7.2', {\"requires\": [\"yui-base\"]});"];
_yuitest_coverage["build/datatype-date-math/datatype-date-math.js"].lines = {"1":0,"10":0,"12":0,"22":0,"23":0,"26":0,"40":0,"52":0,"66":0,"80":0,"93":0,"107":0,"108":0,"110":0,"111":0,"113":0,"114":0,"115":0,"117":0,"130":0,"131":0,"133":0,"134":0,"146":0,"147":0,"150":0,"155":0,"156":0,"159":0,"173":0,"174":0,"177":0,"178":0,"180":0,"181":0,"185":0,"186":0,"187":0,"189":0,"190":0,"192":0,"193":0,"196":0,"203":0,"204":0};
_yuitest_coverage["build/datatype-date-math/datatype-date-math.js"].functions = {"isValidDate:21":0,"areEqual:39":0,"isGreater:51":0,"isGreaterOrEqual:65":0,"isInRange:79":0,"addDays:92":0,"addMonths:106":0,"addYears:129":0,"listOfDatesInMonth:145":0,"daysInMonth:172":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatype-date-math/datatype-date-math.js"].coveredLines = 45;
@@ -299,4 +299,4 @@ _yuitest_coverline("build/datatype-date-math/datatype-date-math.js", 204);
Y.DataType.Date = Y.Date;
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math-debug.js b/lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math-debug.js
rename to lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math-debug.js
index 92206f38a7a..f50fd8074fc 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math-debug.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -211,4 +211,4 @@ Y.namespace("DataType");
Y.DataType.Date = Y.Date;
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math-min.js b/lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math-min.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math-min.js
rename to lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math-min.js
index 00688bb0027..0ec60d359aa 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math-min.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatype-date-math",function(e,t){var n=e.Lang;e.mix(e.namespace("Date"),{isValidDate:function(e){return n.isDate(e)&&isFinite(e)&&e!="Invalid Date"&&!isNaN(e)&&e!=null?!0:!1},areEqual:function(e,t){return this.isValidDate(e)&&this.isValidDate(t)&&e.getTime()==t.getTime()},isGreater:function(e,t){return this.isValidDate(e)&&this.isValidDate(t)&&e.getTime()>t.getTime()},isGreaterOrEqual:function(e,t){return this.isValidDate(e)&&this.isValidDate(t)&&e.getTime()>=t.getTime()},isInRange:function(e,t,n){return this.isGreaterOrEqual(e,t)&&this.isGreaterOrEqual(n,e)},addDays:function(e,t){return new Date(e.getTime()+864e5*t)},addMonths:function(e,t){var n=e.getFullYear(),r=e.getMonth()+t;n=Math.floor(n+r/12),r=(r%12+12)%12;var i=new Date(e.getTime());return i.setFullYear(n),i.setMonth(r),i},addYears:function(e,t){var n=e.getFullYear()+t,r=new Date(e.getTime());return r.setFullYear(n),r},listOfDatesInMonth:function(e){if(!this.isValidDate(e))return[];var t=this.daysInMonth(e),n=e.getFullYear(),r=e.getMonth(),i=[];for(var s=1;s<=t;s++)i.push(new Date(n,r,s,12,0,0));return i},daysInMonth:function(e){if(!this.isValidDate(e))return 0;var t=e.getMonth(),n=[31,28,31,30,31,30,31,31,30,31,30,31];if(t!=1)return n[t];var r=e.getFullYear();return r%400===0?29:r%100===0?28:r%4===0?29:28}}),e.namespace("DataType"),e.DataType.Date=e.Date},"3.7.1",{requires:["yui-base"]});
+YUI.add("datatype-date-math",function(e,t){var n=e.Lang;e.mix(e.namespace("Date"),{isValidDate:function(e){return n.isDate(e)&&isFinite(e)&&e!="Invalid Date"&&!isNaN(e)&&e!=null?!0:!1},areEqual:function(e,t){return this.isValidDate(e)&&this.isValidDate(t)&&e.getTime()==t.getTime()},isGreater:function(e,t){return this.isValidDate(e)&&this.isValidDate(t)&&e.getTime()>t.getTime()},isGreaterOrEqual:function(e,t){return this.isValidDate(e)&&this.isValidDate(t)&&e.getTime()>=t.getTime()},isInRange:function(e,t,n){return this.isGreaterOrEqual(e,t)&&this.isGreaterOrEqual(n,e)},addDays:function(e,t){return new Date(e.getTime()+864e5*t)},addMonths:function(e,t){var n=e.getFullYear(),r=e.getMonth()+t;n=Math.floor(n+r/12),r=(r%12+12)%12;var i=new Date(e.getTime());return i.setFullYear(n),i.setMonth(r),i},addYears:function(e,t){var n=e.getFullYear()+t,r=new Date(e.getTime());return r.setFullYear(n),r},listOfDatesInMonth:function(e){if(!this.isValidDate(e))return[];var t=this.daysInMonth(e),n=e.getFullYear(),r=e.getMonth(),i=[];for(var s=1;s<=t;s++)i.push(new Date(n,r,s,12,0,0));return i},daysInMonth:function(e){if(!this.isValidDate(e))return 0;var t=e.getMonth(),n=[31,28,31,30,31,30,31,31,30,31,30,31];if(t!=1)return n[t];var r=e.getFullYear();return r%400===0?29:r%100===0?28:r%4===0?29:28}}),e.namespace("DataType"),e.DataType.Date=e.Date},"3.7.2",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math.js b/lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math.js
rename to lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math.js
index e327135c62b..eaa15abc7da 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-math/datatype-date-math.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-math/datatype-date-math.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -210,4 +210,4 @@ Y.namespace("DataType");
Y.DataType.Date = Y.Date;
-}, '3.7.1', {"requires": ["yui-base"]});
+}, '3.7.2', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse-coverage.js b/lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse-coverage.js
rename to lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse-coverage.js
index 081160fa99c..7270e03cc7e 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatype-date-parse/datatype-date-parse.js"] = {
path: "build/datatype-date-parse/datatype-date-parse.js",
code: []
};
-_yuitest_coverage["build/datatype-date-parse/datatype-date-parse.js"].code=["YUI.add('datatype-date-parse', function (Y, NAME) {","","/**"," * Parse number submodule."," *"," * @module datatype-date"," * @submodule datatype-date-parse"," * @for Date"," */","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"Date\"), {"," /**"," * Converts data to type Date."," *"," * @method parse"," * @param data {String | Number} Data to convert. Values supported by the Date constructor are supported."," * @return {Date} A Date, or null."," */"," parse: function(data) {"," var date = null;",""," //Convert to date"," if(!(LANG.isDate(data))) {"," date = new Date(data);"," }"," else {"," return date;"," }",""," // Validate"," if(LANG.isDate(date) && (date != \"Invalid Date\") && !isNaN(date)) { // Workaround for bug 2527965"," return date;"," }"," else {"," return null;"," }"," }","});","","// Add Parsers shortcut","Y.namespace(\"Parsers\").date = Y.Date.parse;","","Y.namespace(\"DataType\");","Y.DataType.Date = Y.Date;","","","}, '3.7.1');"];
+_yuitest_coverage["build/datatype-date-parse/datatype-date-parse.js"].code=["YUI.add('datatype-date-parse', function (Y, NAME) {","","/**"," * Parse number submodule."," *"," * @module datatype-date"," * @submodule datatype-date-parse"," * @for Date"," */","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"Date\"), {"," /**"," * Converts data to type Date."," *"," * @method parse"," * @param data {String | Number} Data to convert. Values supported by the Date constructor are supported."," * @return {Date} A Date, or null."," */"," parse: function(data) {"," var date = null;",""," //Convert to date"," if(!(LANG.isDate(data))) {"," date = new Date(data);"," }"," else {"," return date;"," }",""," // Validate"," if(LANG.isDate(date) && (date != \"Invalid Date\") && !isNaN(date)) { // Workaround for bug 2527965"," return date;"," }"," else {"," return null;"," }"," }","});","","// Add Parsers shortcut","Y.namespace(\"Parsers\").date = Y.Date.parse;","","Y.namespace(\"DataType\");","Y.DataType.Date = Y.Date;","","","}, '3.7.2');"];
_yuitest_coverage["build/datatype-date-parse/datatype-date-parse.js"].lines = {"1":0,"10":0,"12":0,"21":0,"24":0,"25":0,"28":0,"32":0,"33":0,"36":0,"42":0,"44":0,"45":0};
_yuitest_coverage["build/datatype-date-parse/datatype-date-parse.js"].functions = {"parse:20":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatype-date-parse/datatype-date-parse.js"].coveredLines = 13;
@@ -99,4 +99,4 @@ _yuitest_coverline("build/datatype-date-parse/datatype-date-parse.js", 45);
Y.DataType.Date = Y.Date;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse-debug.js b/lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse-debug.js
rename to lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse-debug.js
index 0ce1220c34a..688cb54c868 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse-debug.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -52,4 +52,4 @@ Y.namespace("DataType");
Y.DataType.Date = Y.Date;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse-min.js b/lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse-min.js
similarity index 84%
rename from lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse-min.js
rename to lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse-min.js
index b99790cb79b..7ddd9ca2d6e 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse-min.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatype-date-parse",function(e,t){var n=e.Lang;e.mix(e.namespace("Date"),{parse:function(e){var t=null;return n.isDate(e)?t:(t=new Date(e),n.isDate(t)&&t!="Invalid Date"&&!isNaN(t)?t:null)}}),e.namespace("Parsers").date=e.Date.parse,e.namespace("DataType"),e.DataType.Date=e.Date},"3.7.1");
+YUI.add("datatype-date-parse",function(e,t){var n=e.Lang;e.mix(e.namespace("Date"),{parse:function(e){var t=null;return n.isDate(e)?t:(t=new Date(e),n.isDate(t)&&t!="Invalid Date"&&!isNaN(t)?t:null)}}),e.namespace("Parsers").date=e.Date.parse,e.namespace("DataType"),e.DataType.Date=e.Date},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse.js b/lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse.js
rename to lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse.js
index 2cc89c678d8..35fe4e6675d 100644
--- a/lib/yuilib/3.7.1/build/datatype-date-parse/datatype-date-parse.js
+++ b/lib/yuilib/3.7.2/build/datatype-date-parse/datatype-date-parse.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -51,4 +51,4 @@ Y.namespace("DataType");
Y.DataType.Date = Y.Date;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format-coverage.js b/lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format-coverage.js
rename to lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format-coverage.js
index 13de826b053..0aba2fa9d55 100644
--- a/lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatype-number-format/datatype-number-format.js"] = {
path: "build/datatype-number-format/datatype-number-format.js",
code: []
};
-_yuitest_coverage["build/datatype-number-format/datatype-number-format.js"].code=["YUI.add('datatype-number-format', function (Y, NAME) {","","/**"," * The Number Utility provides type-conversion and string-formatting"," * convenience methods for Numbers."," *"," * @module datatype-number"," * @main datatype-number"," */","","/**"," * Format number submodule."," *"," * @module datatype-number"," * @submodule datatype-number-format"," */"," ","/**"," * Number provides a set of utility functions to operate against Number objects."," *"," * @class Number"," * @static"," */","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"Number\"), {"," /**"," * Takes a Number and formats to string for display to user."," *"," * @method format"," * @param data {Number} Number."," * @param config {Object} (Optional) Optional configuration values:"," * "," * - prefix {HTML}"," *
- String prepended before each number, like a currency designator \"$\"
"," * - decimalPlaces {Number}"," *
- Number of decimal places to round. Must be a number 0 to 20.
"," * - decimalSeparator {HTML}"," *
- Decimal separator
"," * - thousandsSeparator {HTML}"," *
- Thousands separator
"," * - suffix {HTML}"," *
- String appended after each number, like \" items\" (note the space)
"," *
"," * @return {HTML} Formatted number for display. Note, the following values"," * return as \"\": null, undefined, NaN, \"\"."," */"," format: function(data, config) {"," if(LANG.isNumber(data)) {"," config = config || {};",""," var isNeg = (data < 0),"," output = data + \"\","," decPlaces = config.decimalPlaces,"," decSep = config.decimalSeparator || \".\","," thouSep = config.thousandsSeparator,"," decIndex,"," newOutput, count, i;",""," // Decimal precision"," if(LANG.isNumber(decPlaces) && (decPlaces >= 0) && (decPlaces <= 20)) {"," // Round to the correct decimal place"," output = data.toFixed(decPlaces);"," }",""," // Decimal separator"," if(decSep !== \".\"){"," output = output.replace(\".\", decSep);"," }",""," // Add the thousands separator"," if(thouSep) {"," // Find the dot or where it would be"," decIndex = output.lastIndexOf(decSep);"," decIndex = (decIndex > -1) ? decIndex : output.length;"," // Start with the dot and everything to the right"," newOutput = output.substring(decIndex);"," // Working left, every third time add a separator, every time add a digit"," for (count = 0, i=decIndex; i>0; i--) {"," if ((count%3 === 0) && (i !== decIndex) && (!isNeg || (i > 1))) {"," newOutput = thouSep + newOutput;"," }"," newOutput = output.charAt(i-1) + newOutput;"," count++;"," }"," output = newOutput;"," }",""," // Prepend prefix"," output = (config.prefix) ? config.prefix + output : output;",""," // Append suffix"," output = (config.suffix) ? output + config.suffix : output;",""," return output;"," }"," // Not a Number, just return as string"," else {"," return (LANG.isValue(data) && data.toString) ? data.toString() : \"\";"," }"," }","});","","Y.namespace(\"DataType\");","Y.DataType.Number = Y.Number;","","","}, '3.7.1');"];
+_yuitest_coverage["build/datatype-number-format/datatype-number-format.js"].code=["YUI.add('datatype-number-format', function (Y, NAME) {","","/**"," * The Number Utility provides type-conversion and string-formatting"," * convenience methods for Numbers."," *"," * @module datatype-number"," * @main datatype-number"," */","","/**"," * Format number submodule."," *"," * @module datatype-number"," * @submodule datatype-number-format"," */"," ","/**"," * Number provides a set of utility functions to operate against Number objects."," *"," * @class Number"," * @static"," */","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"Number\"), {"," /**"," * Takes a Number and formats to string for display to user."," *"," * @method format"," * @param data {Number} Number."," * @param config {Object} (Optional) Optional configuration values:"," * "," * - prefix {HTML}"," *
- String prepended before each number, like a currency designator \"$\"
"," * - decimalPlaces {Number}"," *
- Number of decimal places to round. Must be a number 0 to 20.
"," * - decimalSeparator {HTML}"," *
- Decimal separator
"," * - thousandsSeparator {HTML}"," *
- Thousands separator
"," * - suffix {HTML}"," *
- String appended after each number, like \" items\" (note the space)
"," *
"," * @return {HTML} Formatted number for display. Note, the following values"," * return as \"\": null, undefined, NaN, \"\"."," */"," format: function(data, config) {"," if(LANG.isNumber(data)) {"," config = config || {};",""," var isNeg = (data < 0),"," output = data + \"\","," decPlaces = config.decimalPlaces,"," decSep = config.decimalSeparator || \".\","," thouSep = config.thousandsSeparator,"," decIndex,"," newOutput, count, i;",""," // Decimal precision"," if(LANG.isNumber(decPlaces) && (decPlaces >= 0) && (decPlaces <= 20)) {"," // Round to the correct decimal place"," output = data.toFixed(decPlaces);"," }",""," // Decimal separator"," if(decSep !== \".\"){"," output = output.replace(\".\", decSep);"," }",""," // Add the thousands separator"," if(thouSep) {"," // Find the dot or where it would be"," decIndex = output.lastIndexOf(decSep);"," decIndex = (decIndex > -1) ? decIndex : output.length;"," // Start with the dot and everything to the right"," newOutput = output.substring(decIndex);"," // Working left, every third time add a separator, every time add a digit"," for (count = 0, i=decIndex; i>0; i--) {"," if ((count%3 === 0) && (i !== decIndex) && (!isNeg || (i > 1))) {"," newOutput = thouSep + newOutput;"," }"," newOutput = output.charAt(i-1) + newOutput;"," count++;"," }"," output = newOutput;"," }",""," // Prepend prefix"," output = (config.prefix) ? config.prefix + output : output;",""," // Append suffix"," output = (config.suffix) ? output + config.suffix : output;",""," return output;"," }"," // Not a Number, just return as string"," else {"," return (LANG.isValue(data) && data.toString) ? data.toString() : \"\";"," }"," }","});","","Y.namespace(\"DataType\");","Y.DataType.Number = Y.Number;","","","}, '3.7.2');"];
_yuitest_coverage["build/datatype-number-format/datatype-number-format.js"].lines = {"1":0,"24":0,"26":0,"49":0,"50":0,"52":0,"61":0,"63":0,"67":0,"68":0,"72":0,"74":0,"75":0,"77":0,"79":0,"80":0,"81":0,"83":0,"84":0,"86":0,"90":0,"93":0,"95":0,"99":0,"104":0,"105":0};
_yuitest_coverage["build/datatype-number-format/datatype-number-format.js"].functions = {"format:48":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatype-number-format/datatype-number-format.js"].coveredLines = 26;
@@ -172,4 +172,4 @@ _yuitest_coverline("build/datatype-number-format/datatype-number-format.js", 105
Y.DataType.Number = Y.Number;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format-debug.js b/lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format-debug.js
rename to lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format-debug.js
index 10a1c0f20f3..288e8692940 100644
--- a/lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format-debug.js
+++ b/lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -112,4 +112,4 @@ Y.namespace("DataType");
Y.DataType.Number = Y.Number;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format-min.js b/lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format-min.js
similarity index 91%
rename from lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format-min.js
rename to lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format-min.js
index 84a2390930e..4e75e59489c 100644
--- a/lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format-min.js
+++ b/lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatype-number-format",function(e,t){var n=e.Lang;e.mix(e.namespace("Number"),{format:function(e,t){if(n.isNumber(e)){t=t||{};var r=e<0,i=e+"",s=t.decimalPlaces,o=t.decimalSeparator||".",u=t.thousandsSeparator,a,f,l,c;n.isNumber(s)&&s>=0&&s<=20&&(i=e.toFixed(s)),o!=="."&&(i=i.replace(".",o));if(u){a=i.lastIndexOf(o),a=a>-1?a:i.length,f=i.substring(a);for(l=0,c=a;c>0;c--)l%3===0&&c!==a&&(!r||c>1)&&(f=u+f),f=i.charAt(c-1)+f,l++;i=f}return i=t.prefix?t.prefix+i:i,i=t.suffix?i+t.suffix:i,i}return n.isValue(e)&&e.toString?e.toString():""}}),e.namespace("DataType"),e.DataType.Number=e.Number},"3.7.1");
+YUI.add("datatype-number-format",function(e,t){var n=e.Lang;e.mix(e.namespace("Number"),{format:function(e,t){if(n.isNumber(e)){t=t||{};var r=e<0,i=e+"",s=t.decimalPlaces,o=t.decimalSeparator||".",u=t.thousandsSeparator,a,f,l,c;n.isNumber(s)&&s>=0&&s<=20&&(i=e.toFixed(s)),o!=="."&&(i=i.replace(".",o));if(u){a=i.lastIndexOf(o),a=a>-1?a:i.length,f=i.substring(a);for(l=0,c=a;c>0;c--)l%3===0&&c!==a&&(!r||c>1)&&(f=u+f),f=i.charAt(c-1)+f,l++;i=f}return i=t.prefix?t.prefix+i:i,i=t.suffix?i+t.suffix:i,i}return n.isValue(e)&&e.toString?e.toString():""}}),e.namespace("DataType"),e.DataType.Number=e.Number},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format.js b/lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format.js
rename to lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format.js
index ebeee9b5a8e..8bec0f10f42 100644
--- a/lib/yuilib/3.7.1/build/datatype-number-format/datatype-number-format.js
+++ b/lib/yuilib/3.7.2/build/datatype-number-format/datatype-number-format.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -111,4 +111,4 @@ Y.namespace("DataType");
Y.DataType.Number = Y.Number;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse-coverage.js b/lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse-coverage.js
rename to lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse-coverage.js
index f410fcfa96c..ccc2d8b8c12 100644
--- a/lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatype-number-parse/datatype-number-parse.js"] = {
path: "build/datatype-number-parse/datatype-number-parse.js",
code: []
};
-_yuitest_coverage["build/datatype-number-parse/datatype-number-parse.js"].code=["YUI.add('datatype-number-parse', function (Y, NAME) {","","/**"," * Parse number submodule."," *"," * @module datatype-number"," * @submodule datatype-number-parse"," * @for Number"," */","","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"Number\"), {"," /**"," * Converts data to type Number."," *"," * @method parse"," * @param data {String | Number | Boolean} Data to convert. The following"," * values return as null: null, undefined, NaN, \"\"."," * @return {Number} A number, or null."," */"," parse: function(data) {"," var number = (data === null) ? data : +data;"," if(LANG.isNumber(number)) {"," return number;"," }"," else {"," return null;"," }"," }","});","","// Add Parsers shortcut","Y.namespace(\"Parsers\").number = Y.Number.parse;","Y.namespace(\"DataType\");","Y.DataType.Number = Y.Number;","","","}, '3.7.1');"];
+_yuitest_coverage["build/datatype-number-parse/datatype-number-parse.js"].code=["YUI.add('datatype-number-parse', function (Y, NAME) {","","/**"," * Parse number submodule."," *"," * @module datatype-number"," * @submodule datatype-number-parse"," * @for Number"," */","","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"Number\"), {"," /**"," * Converts data to type Number."," *"," * @method parse"," * @param data {String | Number | Boolean} Data to convert. The following"," * values return as null: null, undefined, NaN, \"\"."," * @return {Number} A number, or null."," */"," parse: function(data) {"," var number = (data === null) ? data : +data;"," if(LANG.isNumber(number)) {"," return number;"," }"," else {"," return null;"," }"," }","});","","// Add Parsers shortcut","Y.namespace(\"Parsers\").number = Y.Number.parse;","Y.namespace(\"DataType\");","Y.DataType.Number = Y.Number;","","","}, '3.7.2');"];
_yuitest_coverage["build/datatype-number-parse/datatype-number-parse.js"].lines = {"1":0,"11":0,"13":0,"23":0,"24":0,"25":0,"28":0,"34":0,"35":0,"36":0};
_yuitest_coverage["build/datatype-number-parse/datatype-number-parse.js"].functions = {"parse:22":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatype-number-parse/datatype-number-parse.js"].coveredLines = 10;
@@ -87,4 +87,4 @@ _yuitest_coverline("build/datatype-number-parse/datatype-number-parse.js", 36);
Y.DataType.Number = Y.Number;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse-debug.js b/lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse-debug.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse-debug.js
rename to lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse-debug.js
index 56c54802557..6816205dbcf 100644
--- a/lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse-debug.js
+++ b/lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -43,4 +43,4 @@ Y.namespace("DataType");
Y.DataType.Number = Y.Number;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse-min.js b/lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse-min.js
similarity index 92%
rename from lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse-min.js
rename to lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse-min.js
index 31095d5220a..c5a318c5896 100644
--- a/lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse-min.js
+++ b/lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatype-number-parse",function(e,t){var n=e.Lang;e.mix(e.namespace("Number"),{parse:function(e){var t=e===null?e:+e;return n.isNumber(t)?t:null}}),e.namespace("Parsers").number=e.Number.parse,e.namespace("DataType"),e.DataType.Number=e.Number},"3.7.1");
+YUI.add("datatype-number-parse",function(e,t){var n=e.Lang;e.mix(e.namespace("Number"),{parse:function(e){var t=e===null?e:+e;return n.isNumber(t)?t:null}}),e.namespace("Parsers").number=e.Number.parse,e.namespace("DataType"),e.DataType.Number=e.Number},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse.js b/lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse.js
rename to lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse.js
index 82c8cad5f7a..a149f9fdef2 100644
--- a/lib/yuilib/3.7.1/build/datatype-number-parse/datatype-number-parse.js
+++ b/lib/yuilib/3.7.2/build/datatype-number-parse/datatype-number-parse.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -42,4 +42,4 @@ Y.namespace("DataType");
Y.DataType.Number = Y.Number;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format-coverage.js b/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format-coverage.js
rename to lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-coverage.js
index f36d9e2cd4d..6c593f29165 100644
--- a/lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatype-xml-format/datatype-xml-format.js"] = {
path: "build/datatype-xml-format/datatype-xml-format.js",
code: []
};
-_yuitest_coverage["build/datatype-xml-format/datatype-xml-format.js"].code=["YUI.add('datatype-xml-format', function (Y, NAME) {","","/**"," * The Number Utility provides type-conversion and string-formatting"," * convenience methods for Numbers."," *"," * @module datatype-xml"," * @submodule datatype-xml-format"," */","","/**"," * XML provides a set of utility functions to operate against XML documents."," *"," * @class XML"," * @static"," */","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"XML\"), {"," /**"," * Converts data to type XMLDocument."," *"," * @method format"," * @param data {XMLDoc} Data to convert."," * @return {String} String."," */"," format: function(data) {"," try {"," if(!LANG.isUndefined(XMLSerializer)) {"," return (new XMLSerializer()).serializeToString(data);"," }"," }"," catch(e) {"," if(data && data.xml) {"," return data.xml;"," }"," else {"," return (LANG.isValue(data) && data.toString) ? data.toString() : \"\";"," }"," }"," }","});","","Y.namespace(\"DataType\");","Y.DataType.XML = Y.XML;","","","}, '3.7.1');"];
+_yuitest_coverage["build/datatype-xml-format/datatype-xml-format.js"].code=["YUI.add('datatype-xml-format', function (Y, NAME) {","","/**"," * The Number Utility provides type-conversion and string-formatting"," * convenience methods for Numbers."," *"," * @module datatype-xml"," * @submodule datatype-xml-format"," */","","/**"," * XML provides a set of utility functions to operate against XML documents."," *"," * @class XML"," * @static"," */","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"XML\"), {"," /**"," * Converts data to type XMLDocument."," *"," * @method format"," * @param data {XMLDoc} Data to convert."," * @return {String} String."," */"," format: function(data) {"," try {"," if(!LANG.isUndefined(XMLSerializer)) {"," return (new XMLSerializer()).serializeToString(data);"," }"," }"," catch(e) {"," if(data && data.xml) {"," return data.xml;"," }"," else {"," return (LANG.isValue(data) && data.toString) ? data.toString() : \"\";"," }"," }"," }","});","","Y.namespace(\"DataType\");","Y.DataType.XML = Y.XML;","","","}, '3.7.2');"];
_yuitest_coverage["build/datatype-xml-format/datatype-xml-format.js"].lines = {"1":0,"17":0,"19":0,"28":0,"29":0,"30":0,"34":0,"35":0,"38":0,"44":0,"45":0};
_yuitest_coverage["build/datatype-xml-format/datatype-xml-format.js"].functions = {"format:27":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatype-xml-format/datatype-xml-format.js"].coveredLines = 11;
@@ -97,4 +97,4 @@ _yuitest_coverline("build/datatype-xml-format/datatype-xml-format.js", 45);
Y.DataType.XML = Y.XML;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format-debug.js b/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format-debug.js
rename to lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-debug.js
index 9ced0d446b6..6ecc3cc6968 100644
--- a/lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format-debug.js
+++ b/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -52,4 +52,4 @@ Y.namespace("DataType");
Y.DataType.XML = Y.XML;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format-min.js b/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-min.js
similarity index 81%
rename from lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format-min.js
rename to lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-min.js
index b603481941f..6208913e3ff 100644
--- a/lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format-min.js
+++ b/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatype-xml-format",function(e,t){var n=e.Lang;e.mix(e.namespace("XML"),{format:function(e){try{if(!n.isUndefined(XMLSerializer))return(new XMLSerializer).serializeToString(e)}catch(t){return e&&e.xml?e.xml:n.isValue(e)&&e.toString?e.toString():""}}}),e.namespace("DataType"),e.DataType.XML=e.XML},"3.7.1");
+YUI.add("datatype-xml-format",function(e,t){var n=e.Lang;e.mix(e.namespace("XML"),{format:function(e){try{if(!n.isUndefined(XMLSerializer))return(new XMLSerializer).serializeToString(e)}catch(t){return e&&e.xml?e.xml:n.isValue(e)&&e.toString?e.toString():""}}}),e.namespace("DataType"),e.DataType.XML=e.XML},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format.js b/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format.js
rename to lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format.js
index ec3ae2159ca..765b04740e7 100644
--- a/lib/yuilib/3.7.1/build/datatype-xml-format/datatype-xml-format.js
+++ b/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -51,4 +51,4 @@ Y.namespace("DataType");
Y.DataType.XML = Y.XML;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse-coverage.js b/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse-coverage.js
rename to lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-coverage.js
index 36f7842c9bf..9f17adfc8a4 100644
--- a/lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse-coverage.js
+++ b/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/datatype-xml-parse/datatype-xml-parse.js"] = {
path: "build/datatype-xml-parse/datatype-xml-parse.js",
code: []
};
-_yuitest_coverage["build/datatype-xml-parse/datatype-xml-parse.js"].code=["YUI.add('datatype-xml-parse', function (Y, NAME) {","","/**"," * Parse XML submodule."," *"," * @module datatype-xml"," * @submodule datatype-xml-parse"," * @for XML"," */","","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"XML\"), {"," /**"," * Converts data to type XMLDocument."," *"," * @method parse"," * @param data {String} Data to convert."," * @return {XMLDoc} XML Document."," */"," parse: function(data) {"," var xmlDoc = null;"," if(LANG.isString(data)) {"," try {"," if(!LANG.isUndefined(ActiveXObject)) {"," xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");"," xmlDoc.async = false;"," xmlDoc.loadXML(data);"," }"," }"," catch(ee) {"," try {"," if(!LANG.isUndefined(DOMParser)) {"," xmlDoc = new DOMParser().parseFromString(data, \"text/xml\");"," }"," }"," catch(e) {"," }"," }"," }"," "," if( (LANG.isNull(xmlDoc)) || (LANG.isNull(xmlDoc.documentElement)) || (xmlDoc.documentElement.nodeName === \"parsererror\") ) {"," }"," "," return xmlDoc;"," }","});","","// Add Parsers shortcut","Y.namespace(\"Parsers\").xml = Y.XML.parse;","","Y.namespace(\"DataType\");","Y.DataType.XML = Y.XML;","","","}, '3.7.1');"];
+_yuitest_coverage["build/datatype-xml-parse/datatype-xml-parse.js"].code=["YUI.add('datatype-xml-parse', function (Y, NAME) {","","/**"," * Parse XML submodule."," *"," * @module datatype-xml"," * @submodule datatype-xml-parse"," * @for XML"," */","","var LANG = Y.Lang;","","Y.mix(Y.namespace(\"XML\"), {"," /**"," * Converts data to type XMLDocument."," *"," * @method parse"," * @param data {String} Data to convert."," * @return {XMLDoc} XML Document."," */"," parse: function(data) {"," var xmlDoc = null;"," if(LANG.isString(data)) {"," try {"," if(!LANG.isUndefined(ActiveXObject)) {"," xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");"," xmlDoc.async = false;"," xmlDoc.loadXML(data);"," }"," }"," catch(ee) {"," try {"," if(!LANG.isUndefined(DOMParser)) {"," xmlDoc = new DOMParser().parseFromString(data, \"text/xml\");"," }"," }"," catch(e) {"," }"," }"," }"," "," if( (LANG.isNull(xmlDoc)) || (LANG.isNull(xmlDoc.documentElement)) || (xmlDoc.documentElement.nodeName === \"parsererror\") ) {"," }"," "," return xmlDoc;"," }","});","","// Add Parsers shortcut","Y.namespace(\"Parsers\").xml = Y.XML.parse;","","Y.namespace(\"DataType\");","Y.DataType.XML = Y.XML;","","","}, '3.7.2');"];
_yuitest_coverage["build/datatype-xml-parse/datatype-xml-parse.js"].lines = {"1":0,"11":0,"13":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"32":0,"33":0,"34":0,"42":0,"45":0,"50":0,"52":0,"53":0};
_yuitest_coverage["build/datatype-xml-parse/datatype-xml-parse.js"].functions = {"parse:21":0,"(anonymous 1):1":0};
_yuitest_coverage["build/datatype-xml-parse/datatype-xml-parse.js"].coveredLines = 18;
@@ -112,4 +112,4 @@ _yuitest_coverline("build/datatype-xml-parse/datatype-xml-parse.js", 53);
Y.DataType.XML = Y.XML;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse-debug.js b/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse-debug.js
rename to lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-debug.js
index 4dc7f5ae189..ab6ee14a481 100644
--- a/lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse-debug.js
+++ b/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -61,4 +61,4 @@ Y.namespace("DataType");
Y.DataType.XML = Y.XML;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse-min.js b/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-min.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse-min.js
rename to lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-min.js
index 6cbe49dc8cb..0f1e4498f99 100644
--- a/lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse-min.js
+++ b/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("datatype-xml-parse",function(e,t){var n=e.Lang;e.mix(e.namespace("XML"),{parse:function(e){var t=null;if(n.isString(e))try{n.isUndefined(ActiveXObject)||(t=new ActiveXObject("Microsoft.XMLDOM"),t.async=!1,t.loadXML(e))}catch(r){try{n.isUndefined(DOMParser)||(t=(new DOMParser).parseFromString(e,"text/xml"))}catch(i){}}return n.isNull(t)||n.isNull(t.documentElement)||t.documentElement.nodeName==="parsererror",t}}),e.namespace("Parsers").xml=e.XML.parse,e.namespace("DataType"),e.DataType.XML=e.XML},"3.7.1");
+YUI.add("datatype-xml-parse",function(e,t){var n=e.Lang;e.mix(e.namespace("XML"),{parse:function(e){var t=null;if(n.isString(e))try{n.isUndefined(ActiveXObject)||(t=new ActiveXObject("Microsoft.XMLDOM"),t.async=!1,t.loadXML(e))}catch(r){try{n.isUndefined(DOMParser)||(t=(new DOMParser).parseFromString(e,"text/xml"))}catch(i){}}return n.isNull(t)||n.isNull(t.documentElement)||t.documentElement.nodeName==="parsererror",t}}),e.namespace("Parsers").xml=e.XML.parse,e.namespace("DataType"),e.DataType.XML=e.XML},"3.7.2");
diff --git a/lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse.js b/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse.js
rename to lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse.js
index 59218a0be5a..f857c7b2296 100644
--- a/lib/yuilib/3.7.1/build/datatype-xml-parse/datatype-xml-parse.js
+++ b/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -59,4 +59,4 @@ Y.namespace("DataType");
Y.DataType.XML = Y.XML;
-}, '3.7.1');
+}, '3.7.2');
diff --git a/lib/yuilib/3.7.1/build/dd-constrain/dd-constrain-coverage.js b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-constrain/dd-constrain-coverage.js
rename to lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-coverage.js
index 99bafabed84..1841e51436b 100644
--- a/lib/yuilib/3.7.1/build/dd-constrain/dd-constrain-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-constrain/dd-constrain.js"] = {
path: "build/dd-constrain/dd-constrain.js",
code: []
};
-_yuitest_coverage["build/dd-constrain/dd-constrain.js"].code=["YUI.add('dd-constrain', function (Y, NAME) {","",""," /**"," * The Drag & Drop Utility allows you to create a draggable interface efficiently, buffering you from browser-level abnormalities and enabling you to focus on the interesting logic surrounding your particular implementation. This component enables you to create a variety of standard draggable objects with just a few lines of code and then, using its extensive API, add your own specific implementation logic."," * @module dd"," * @main dd"," * @submodule dd-constrain"," */"," /**"," * Plugin for the dd-drag module to add the constraining methods to it. It supports constraining to a node or viewport. It supports tick based moves and XY axis constraints."," * @class DDConstrained"," * @extends Base"," * @constructor"," * @namespace Plugin"," */",""," var DRAG_NODE = 'dragNode',"," OFFSET_HEIGHT = 'offsetHeight',"," OFFSET_WIDTH = 'offsetWidth',"," HOST = 'host',"," TICK_X_ARRAY = 'tickXArray',"," TICK_Y_ARRAY = 'tickYArray',"," DDM = Y.DD.DDM,"," TOP = 'top',"," RIGHT = 'right',"," BOTTOM = 'bottom',"," LEFT = 'left',"," VIEW = 'view',"," proto = null,",""," /**"," * @event drag:tickAlignX"," * @description Fires when this node is aligned with the tickX value."," * @param {EventFacade} event An Event Facade object"," * @type {CustomEvent}"," */"," EV_TICK_ALIGN_X = 'drag:tickAlignX',",""," /**"," * @event drag:tickAlignY"," * @description Fires when this node is aligned with the tickY value."," * @param {EventFacade} event An Event Facade object"," * @type {CustomEvent}"," */"," EV_TICK_ALIGN_Y = 'drag:tickAlignY',",""," C = function(config) {"," this._lazyAddAttrs = false;"," C.superclass.constructor.apply(this, arguments);"," };",""," C.NAME = 'ddConstrained';"," /**"," * @property NS"," * @default con"," * @readonly"," * @protected"," * @static"," * @description The Constrained instance will be placed on the Drag instance under the con namespace."," * @type {String}","*/"," C.NS = 'con';",""," C.ATTRS = {"," host: {"," },"," /**"," * @attribute stickX"," * @description Stick the drag movement to the X-Axis. Default: false"," * @type Boolean"," */"," stickX: {"," value: false"," },"," /**"," * @attribute stickY"," * @description Stick the drag movement to the Y-Axis"," * @type Boolean"," */"," stickY: {"," value: false"," },"," /**"," * @attribute tickX"," * @description The X tick offset the drag node should snap to on each drag move. False for no ticks. Default: false"," * @type Number/false"," */"," tickX: {"," value: false"," },"," /**"," * @attribute tickY"," * @description The Y tick offset the drag node should snap to on each drag move. False for no ticks. Default: false"," * @type Number/false"," */"," tickY: {"," value: false"," },"," /**"," * @attribute tickXArray"," * @description An array of page coordinates to use as X ticks for drag movement."," * @type Array"," */"," tickXArray: {"," value: false"," },"," /**"," * @attribute tickYArray"," * @description An array of page coordinates to use as Y ticks for drag movement."," * @type Array"," */"," tickYArray: {"," value: false"," },"," /**"," * @attribute gutter"," * @description CSS style string for the gutter of a region (supports negative values): '5 0' (sets top and bottom to 5px, left and right to 0px), '1 2 3 4' (top 1px, right 2px, bottom 3px, left 4px)"," * @type String"," */"," gutter: {"," value: '0',"," setter: function(gutter) {"," return Y.DD.DDM.cssSizestoObject(gutter);"," }"," },"," /**"," * @attribute constrain"," * @description Will attempt to constrain the drag node to the boundaries. Arguments:
"," * 'view': Contrain to Viewport
"," * '#selector_string': Constrain to this node
"," * '{Region Object}': An Object Literal containing a valid region (top, right, bottom, left) of page positions"," * @type {String/Object/Node}"," */"," constrain: {"," value: VIEW,"," setter: function(con) {"," var node = Y.one(con);"," if (node) {"," con = node;"," }"," return con;"," }"," },"," /**"," * @deprecated"," * @attribute constrain2region"," * @description An Object Literal containing a valid region (top, right, bottom, left) of page positions to constrain the drag node to."," * @type Object"," */"," constrain2region: {"," setter: function(r) {"," return this.set('constrain', r);"," }"," },"," /**"," * @deprecated"," * @attribute constrain2node"," * @description Will attempt to constrain the drag node to the boundaries of this node."," * @type Object"," */"," constrain2node: {"," setter: function(n) {"," return this.set('constrain', Y.one(n));"," }"," },"," /**"," * @deprecated"," * @attribute constrain2view"," * @description Will attempt to constrain the drag node to the boundaries of the viewport region."," * @type Object"," */"," constrain2view: {"," setter: function(n) {"," return this.set('constrain', VIEW);"," }"," },"," /**"," * @attribute cacheRegion"," * @description Should the region be cached for performace. Default: true"," * @type Boolean"," */"," cacheRegion: {"," value: true"," }"," };",""," proto = {"," _lastTickXFired: null,"," _lastTickYFired: null,",""," initializer: function() {"," this._createEvents();",""," this._eventHandles = ["," this.get(HOST).on('drag:end', Y.bind(this._handleEnd, this)),"," this.get(HOST).on('drag:start', Y.bind(this._handleStart, this)),"," this.get(HOST).after('drag:align', Y.bind(this.align, this)),"," this.get(HOST).after('drag:drag', Y.bind(this.drag, this))"," ];"," },"," destructor: function() {"," Y.each("," this._eventHandles,"," function(handle, index) {"," handle.detach();"," }"," );",""," this._eventHandles.length = 0;"," },"," /**"," * @private"," * @method _createEvents"," * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling."," */"," _createEvents: function() {"," var ev = ["," EV_TICK_ALIGN_X,"," EV_TICK_ALIGN_Y"," ];",""," Y.each(ev, function(v, k) {"," this.publish(v, {"," type: v,"," emitFacade: true,"," bubbles: true,"," queuable: false,"," prefix: 'drag'"," });"," }, this);"," },"," /**"," * @private"," * @method _handleEnd"," * @description Fires on drag:end"," */"," _handleEnd: function() {"," this._lastTickYFired = null;"," this._lastTickXFired = null;"," },"," /**"," * @private"," * @method _handleStart"," * @description Fires on drag:start and clears the _regionCache"," */"," _handleStart: function() {"," this.resetCache();"," },"," /**"," * @private"," * @property _regionCache"," * @description Store a cache of the region that we are constraining to"," * @type Object"," */"," _regionCache: null,"," /**"," * @private"," * @method _cacheRegion"," * @description Get's the region and caches it, called from window.resize and when the cache is null"," */"," _cacheRegion: function() {"," this._regionCache = this.get('constrain').get('region');"," },"," /**"," * @method resetCache"," * @description Reset the internal region cache."," */"," resetCache: function() {"," this._regionCache = null;"," },"," /**"," * @private"," * @method _getConstraint"," * @description Standardizes the 'constraint' attribute"," */"," _getConstraint: function() {"," var con = this.get('constrain'),"," g = this.get('gutter'),"," region;",""," if (con) {"," if (con instanceof Y.Node) {"," if (!this._regionCache) {"," this._eventHandles.push(Y.on('resize', Y.bind(this._cacheRegion, this), Y.config.win));"," this._cacheRegion();"," }"," region = Y.clone(this._regionCache);"," if (!this.get('cacheRegion')) {"," this.resetCache();"," }"," } else if (Y.Lang.isObject(con)) {"," region = Y.clone(con);"," }"," }"," if (!con || !region) {"," con = VIEW;"," }"," if (con === VIEW) {"," region = this.get(HOST).get(DRAG_NODE).get('viewportRegion');"," }",""," Y.each(g, function(i, n) {"," if ((n == RIGHT) || (n == BOTTOM)) {"," region[n] -= i;"," } else {"," region[n] += i;"," }"," });"," return region;"," },",""," /**"," * @method getRegion"," * @description Get the active region: viewport, node, custom region"," * @param {Boolean} inc Include the node's height and width"," * @return {Object} The active region."," */"," getRegion: function(inc) {"," var r = {}, oh = null, ow = null,"," host = this.get(HOST);",""," r = this._getConstraint();",""," if (inc) {"," oh = host.get(DRAG_NODE).get(OFFSET_HEIGHT);"," ow = host.get(DRAG_NODE).get(OFFSET_WIDTH);"," r[RIGHT] = r[RIGHT] - ow;"," r[BOTTOM] = r[BOTTOM] - oh;"," }"," return r;"," },"," /**"," * @private"," * @method _checkRegion"," * @description Check if xy is inside a given region, if not change to it be inside."," * @param {Array} _xy The XY to check if it's in the current region, if it isn't inside the region, it will reset the xy array to be inside the region."," * @return {Array} The new XY that is inside the region"," */"," _checkRegion: function(_xy) {"," var oxy = _xy,"," r = this.getRegion(),"," host = this.get(HOST),"," oh = host.get(DRAG_NODE).get(OFFSET_HEIGHT),"," ow = host.get(DRAG_NODE).get(OFFSET_WIDTH);",""," if (oxy[1] > (r[BOTTOM] - oh)) {"," _xy[1] = (r[BOTTOM] - oh);"," }"," if (r[TOP] > oxy[1]) {"," _xy[1] = r[TOP];",""," }"," if (oxy[0] > (r[RIGHT] - ow)) {"," _xy[0] = (r[RIGHT] - ow);"," }"," if (r[LEFT] > oxy[0]) {"," _xy[0] = r[LEFT];"," }",""," return _xy;"," },"," /**"," * @method inRegion"," * @description Checks if the XY passed or the dragNode is inside the active region."," * @param {Array} xy Optional XY to check, if not supplied this.get('dragNode').getXY() is used."," * @return {Boolean} True if the XY is inside the region, false otherwise."," */"," inRegion: function(xy) {"," xy = xy || this.get(HOST).get(DRAG_NODE).getXY();",""," var _xy = this._checkRegion([xy[0], xy[1]]),"," inside = false;"," if ((xy[0] === _xy[0]) && (xy[1] === _xy[1])) {"," inside = true;"," }"," return inside;"," },"," /**"," * @method align"," * @description Modifies the Drag.actXY method from the after drag:align event. This is where the constraining happens."," */"," align: function() {"," var host = this.get(HOST),"," _xy = [host.actXY[0], host.actXY[1]],"," r = this.getRegion(true);",""," if (this.get('stickX')) {"," _xy[1] = (host.startXY[1] - host.deltaXY[1]);"," }"," if (this.get('stickY')) {"," _xy[0] = (host.startXY[0] - host.deltaXY[0]);"," }",""," if (r) {"," _xy = this._checkRegion(_xy);"," }",""," _xy = this._checkTicks(_xy, r);",""," host.actXY = _xy;"," },"," /**"," * @method drag"," * @description Fires after drag:drag. Handle the tickX and tickX align events."," */"," drag: function(event) {"," var host = this.get(HOST),"," xt = this.get('tickX'),"," yt = this.get('tickY'),"," _xy = [host.actXY[0], host.actXY[1]];",""," if ((Y.Lang.isNumber(xt) || this.get(TICK_X_ARRAY)) && (this._lastTickXFired !== _xy[0])) {"," this._tickAlignX();"," this._lastTickXFired = _xy[0];"," }",""," if ((Y.Lang.isNumber(yt) || this.get(TICK_Y_ARRAY)) && (this._lastTickYFired !== _xy[1])) {"," this._tickAlignY();"," this._lastTickYFired = _xy[1];"," }"," },"," /**"," * @private"," * @method _checkTicks"," * @description This method delegates the proper helper method for tick calculations"," * @param {Array} xy The XY coords for the Drag"," * @param {Object} r The optional region that we are bound to."," * @return {Array} The calced XY coords"," */"," _checkTicks: function(xy, r) {"," var host = this.get(HOST),"," lx = (host.startXY[0] - host.deltaXY[0]),"," ly = (host.startXY[1] - host.deltaXY[1]),"," xt = this.get('tickX'),"," yt = this.get('tickY');"," if (xt && !this.get(TICK_X_ARRAY)) {"," xy[0] = DDM._calcTicks(xy[0], lx, xt, r[LEFT], r[RIGHT]);"," }"," if (yt && !this.get(TICK_Y_ARRAY)) {"," xy[1] = DDM._calcTicks(xy[1], ly, yt, r[TOP], r[BOTTOM]);"," }"," if (this.get(TICK_X_ARRAY)) {"," xy[0] = DDM._calcTickArray(xy[0], this.get(TICK_X_ARRAY), r[LEFT], r[RIGHT]);"," }"," if (this.get(TICK_Y_ARRAY)) {"," xy[1] = DDM._calcTickArray(xy[1], this.get(TICK_Y_ARRAY), r[TOP], r[BOTTOM]);"," }",""," return xy;"," },"," /**"," * @private"," * @method _tickAlignX"," * @description Fires when the actXY[0] reach a new value respecting the tickX gap."," */"," _tickAlignX: function() {"," this.fire(EV_TICK_ALIGN_X);"," },"," /**"," * @private"," * @method _tickAlignY"," * @description Fires when the actXY[1] reach a new value respecting the tickY gap."," */"," _tickAlignY: function() {"," this.fire(EV_TICK_ALIGN_Y);"," }"," };",""," Y.namespace('Plugin');"," Y.extend(C, Y.Base, proto);"," Y.Plugin.DDConstrained = C;",""," Y.mix(DDM, {"," /**"," * @for DDM"," * @namespace DD"," * @private"," * @method _calcTicks"," * @description Helper method to calculate the tick offsets for a given position"," * @param {Number} pos The current X or Y position"," * @param {Number} start The start X or Y position"," * @param {Number} tick The X or Y tick increment"," * @param {Number} off1 The min offset that we can't pass (region)"," * @param {Number} off2 The max offset that we can't pass (region)"," * @return {Number} The new position based on the tick calculation"," */"," _calcTicks: function(pos, start, tick, off1, off2) {"," var ix = ((pos - start) / tick),"," min = Math.floor(ix),"," max = Math.ceil(ix);"," if ((min !== 0) || (max !== 0)) {"," if ((ix >= min) && (ix <= max)) {"," pos = (start + (tick * min));"," if (off1 && off2) {"," if (pos < off1) {"," pos = (start + (tick * (min + 1)));"," }"," if (pos > off2) {"," pos = (start + (tick * (min - 1)));"," }"," }"," }"," }"," return pos;"," },"," /**"," * @for DDM"," * @namespace DD"," * @private"," * @method _calcTickArray"," * @description This method is used with the tickXArray and tickYArray config options"," * @param {Number} pos The current X or Y position"," * @param {Number} ticks The array containing our custom tick positions."," * @param {Number} off1 The min offset that we can't pass (region)"," * @param {Number} off2 The max offset that we can't pass (region)"," * @return The tick position"," */"," _calcTickArray: function(pos, ticks, off1, off2) {"," var i = 0, len = ticks.length, next = 0,"," diff1, diff2, ret;",""," if (!ticks || (ticks.length === 0)) {"," return pos;"," }"," if (ticks[0] >= pos) {"," return ticks[0];"," }",""," for (i = 0; i < len; i++) {"," next = (i + 1);"," if (ticks[next] && ticks[next] >= pos) {"," diff1 = pos - ticks[i];"," diff2 = ticks[next] - pos;"," ret = (diff2 > diff1) ? ticks[i] : ticks[next];"," if (off1 && off2) {"," if (ret > off2) {"," if (ticks[i]) {"," ret = ticks[i];"," } else {"," ret = ticks[len - 1];"," }"," }"," }"," return ret;"," }",""," }"," return ticks[ticks.length - 1];"," }"," });","","","","}, '3.7.1', {\"requires\": [\"dd-drag\"]});"];
+_yuitest_coverage["build/dd-constrain/dd-constrain.js"].code=["YUI.add('dd-constrain', function (Y, NAME) {","",""," /**"," * The Drag & Drop Utility allows you to create a draggable interface efficiently, buffering you from browser-level abnormalities and enabling you to focus on the interesting logic surrounding your particular implementation. This component enables you to create a variety of standard draggable objects with just a few lines of code and then, using its extensive API, add your own specific implementation logic."," * @module dd"," * @main dd"," * @submodule dd-constrain"," */"," /**"," * Plugin for the dd-drag module to add the constraining methods to it. It supports constraining to a node or viewport. It supports tick based moves and XY axis constraints."," * @class DDConstrained"," * @extends Base"," * @constructor"," * @namespace Plugin"," */",""," var DRAG_NODE = 'dragNode',"," OFFSET_HEIGHT = 'offsetHeight',"," OFFSET_WIDTH = 'offsetWidth',"," HOST = 'host',"," TICK_X_ARRAY = 'tickXArray',"," TICK_Y_ARRAY = 'tickYArray',"," DDM = Y.DD.DDM,"," TOP = 'top',"," RIGHT = 'right',"," BOTTOM = 'bottom',"," LEFT = 'left',"," VIEW = 'view',"," proto = null,",""," /**"," * @event drag:tickAlignX"," * @description Fires when this node is aligned with the tickX value."," * @param {EventFacade} event An Event Facade object"," * @type {CustomEvent}"," */"," EV_TICK_ALIGN_X = 'drag:tickAlignX',",""," /**"," * @event drag:tickAlignY"," * @description Fires when this node is aligned with the tickY value."," * @param {EventFacade} event An Event Facade object"," * @type {CustomEvent}"," */"," EV_TICK_ALIGN_Y = 'drag:tickAlignY',",""," C = function(config) {"," this._lazyAddAttrs = false;"," C.superclass.constructor.apply(this, arguments);"," };",""," C.NAME = 'ddConstrained';"," /**"," * @property NS"," * @default con"," * @readonly"," * @protected"," * @static"," * @description The Constrained instance will be placed on the Drag instance under the con namespace."," * @type {String}","*/"," C.NS = 'con';",""," C.ATTRS = {"," host: {"," },"," /**"," * @attribute stickX"," * @description Stick the drag movement to the X-Axis. Default: false"," * @type Boolean"," */"," stickX: {"," value: false"," },"," /**"," * @attribute stickY"," * @description Stick the drag movement to the Y-Axis"," * @type Boolean"," */"," stickY: {"," value: false"," },"," /**"," * @attribute tickX"," * @description The X tick offset the drag node should snap to on each drag move. False for no ticks. Default: false"," * @type Number/false"," */"," tickX: {"," value: false"," },"," /**"," * @attribute tickY"," * @description The Y tick offset the drag node should snap to on each drag move. False for no ticks. Default: false"," * @type Number/false"," */"," tickY: {"," value: false"," },"," /**"," * @attribute tickXArray"," * @description An array of page coordinates to use as X ticks for drag movement."," * @type Array"," */"," tickXArray: {"," value: false"," },"," /**"," * @attribute tickYArray"," * @description An array of page coordinates to use as Y ticks for drag movement."," * @type Array"," */"," tickYArray: {"," value: false"," },"," /**"," * @attribute gutter"," * @description CSS style string for the gutter of a region (supports negative values): '5 0' (sets top and bottom to 5px, left and right to 0px), '1 2 3 4' (top 1px, right 2px, bottom 3px, left 4px)"," * @type String"," */"," gutter: {"," value: '0',"," setter: function(gutter) {"," return Y.DD.DDM.cssSizestoObject(gutter);"," }"," },"," /**"," * @attribute constrain"," * @description Will attempt to constrain the drag node to the boundaries. Arguments:
"," * 'view': Contrain to Viewport
"," * '#selector_string': Constrain to this node
"," * '{Region Object}': An Object Literal containing a valid region (top, right, bottom, left) of page positions"," * @type {String/Object/Node}"," */"," constrain: {"," value: VIEW,"," setter: function(con) {"," var node = Y.one(con);"," if (node) {"," con = node;"," }"," return con;"," }"," },"," /**"," * @deprecated"," * @attribute constrain2region"," * @description An Object Literal containing a valid region (top, right, bottom, left) of page positions to constrain the drag node to."," * @type Object"," */"," constrain2region: {"," setter: function(r) {"," return this.set('constrain', r);"," }"," },"," /**"," * @deprecated"," * @attribute constrain2node"," * @description Will attempt to constrain the drag node to the boundaries of this node."," * @type Object"," */"," constrain2node: {"," setter: function(n) {"," return this.set('constrain', Y.one(n));"," }"," },"," /**"," * @deprecated"," * @attribute constrain2view"," * @description Will attempt to constrain the drag node to the boundaries of the viewport region."," * @type Object"," */"," constrain2view: {"," setter: function(n) {"," return this.set('constrain', VIEW);"," }"," },"," /**"," * @attribute cacheRegion"," * @description Should the region be cached for performace. Default: true"," * @type Boolean"," */"," cacheRegion: {"," value: true"," }"," };",""," proto = {"," _lastTickXFired: null,"," _lastTickYFired: null,",""," initializer: function() {"," this._createEvents();",""," this._eventHandles = ["," this.get(HOST).on('drag:end', Y.bind(this._handleEnd, this)),"," this.get(HOST).on('drag:start', Y.bind(this._handleStart, this)),"," this.get(HOST).after('drag:align', Y.bind(this.align, this)),"," this.get(HOST).after('drag:drag', Y.bind(this.drag, this))"," ];"," },"," destructor: function() {"," Y.each("," this._eventHandles,"," function(handle, index) {"," handle.detach();"," }"," );",""," this._eventHandles.length = 0;"," },"," /**"," * @private"," * @method _createEvents"," * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling."," */"," _createEvents: function() {"," var ev = ["," EV_TICK_ALIGN_X,"," EV_TICK_ALIGN_Y"," ];",""," Y.each(ev, function(v, k) {"," this.publish(v, {"," type: v,"," emitFacade: true,"," bubbles: true,"," queuable: false,"," prefix: 'drag'"," });"," }, this);"," },"," /**"," * @private"," * @method _handleEnd"," * @description Fires on drag:end"," */"," _handleEnd: function() {"," this._lastTickYFired = null;"," this._lastTickXFired = null;"," },"," /**"," * @private"," * @method _handleStart"," * @description Fires on drag:start and clears the _regionCache"," */"," _handleStart: function() {"," this.resetCache();"," },"," /**"," * @private"," * @property _regionCache"," * @description Store a cache of the region that we are constraining to"," * @type Object"," */"," _regionCache: null,"," /**"," * @private"," * @method _cacheRegion"," * @description Get's the region and caches it, called from window.resize and when the cache is null"," */"," _cacheRegion: function() {"," this._regionCache = this.get('constrain').get('region');"," },"," /**"," * @method resetCache"," * @description Reset the internal region cache."," */"," resetCache: function() {"," this._regionCache = null;"," },"," /**"," * @private"," * @method _getConstraint"," * @description Standardizes the 'constraint' attribute"," */"," _getConstraint: function() {"," var con = this.get('constrain'),"," g = this.get('gutter'),"," region;",""," if (con) {"," if (con instanceof Y.Node) {"," if (!this._regionCache) {"," this._eventHandles.push(Y.on('resize', Y.bind(this._cacheRegion, this), Y.config.win));"," this._cacheRegion();"," }"," region = Y.clone(this._regionCache);"," if (!this.get('cacheRegion')) {"," this.resetCache();"," }"," } else if (Y.Lang.isObject(con)) {"," region = Y.clone(con);"," }"," }"," if (!con || !region) {"," con = VIEW;"," }"," if (con === VIEW) {"," region = this.get(HOST).get(DRAG_NODE).get('viewportRegion');"," }",""," Y.each(g, function(i, n) {"," if ((n == RIGHT) || (n == BOTTOM)) {"," region[n] -= i;"," } else {"," region[n] += i;"," }"," });"," return region;"," },",""," /**"," * @method getRegion"," * @description Get the active region: viewport, node, custom region"," * @param {Boolean} inc Include the node's height and width"," * @return {Object} The active region."," */"," getRegion: function(inc) {"," var r = {}, oh = null, ow = null,"," host = this.get(HOST);",""," r = this._getConstraint();",""," if (inc) {"," oh = host.get(DRAG_NODE).get(OFFSET_HEIGHT);"," ow = host.get(DRAG_NODE).get(OFFSET_WIDTH);"," r[RIGHT] = r[RIGHT] - ow;"," r[BOTTOM] = r[BOTTOM] - oh;"," }"," return r;"," },"," /**"," * @private"," * @method _checkRegion"," * @description Check if xy is inside a given region, if not change to it be inside."," * @param {Array} _xy The XY to check if it's in the current region, if it isn't inside the region, it will reset the xy array to be inside the region."," * @return {Array} The new XY that is inside the region"," */"," _checkRegion: function(_xy) {"," var oxy = _xy,"," r = this.getRegion(),"," host = this.get(HOST),"," oh = host.get(DRAG_NODE).get(OFFSET_HEIGHT),"," ow = host.get(DRAG_NODE).get(OFFSET_WIDTH);",""," if (oxy[1] > (r[BOTTOM] - oh)) {"," _xy[1] = (r[BOTTOM] - oh);"," }"," if (r[TOP] > oxy[1]) {"," _xy[1] = r[TOP];",""," }"," if (oxy[0] > (r[RIGHT] - ow)) {"," _xy[0] = (r[RIGHT] - ow);"," }"," if (r[LEFT] > oxy[0]) {"," _xy[0] = r[LEFT];"," }",""," return _xy;"," },"," /**"," * @method inRegion"," * @description Checks if the XY passed or the dragNode is inside the active region."," * @param {Array} xy Optional XY to check, if not supplied this.get('dragNode').getXY() is used."," * @return {Boolean} True if the XY is inside the region, false otherwise."," */"," inRegion: function(xy) {"," xy = xy || this.get(HOST).get(DRAG_NODE).getXY();",""," var _xy = this._checkRegion([xy[0], xy[1]]),"," inside = false;"," if ((xy[0] === _xy[0]) && (xy[1] === _xy[1])) {"," inside = true;"," }"," return inside;"," },"," /**"," * @method align"," * @description Modifies the Drag.actXY method from the after drag:align event. This is where the constraining happens."," */"," align: function() {"," var host = this.get(HOST),"," _xy = [host.actXY[0], host.actXY[1]],"," r = this.getRegion(true);",""," if (this.get('stickX')) {"," _xy[1] = (host.startXY[1] - host.deltaXY[1]);"," }"," if (this.get('stickY')) {"," _xy[0] = (host.startXY[0] - host.deltaXY[0]);"," }",""," if (r) {"," _xy = this._checkRegion(_xy);"," }",""," _xy = this._checkTicks(_xy, r);",""," host.actXY = _xy;"," },"," /**"," * @method drag"," * @description Fires after drag:drag. Handle the tickX and tickX align events."," */"," drag: function(event) {"," var host = this.get(HOST),"," xt = this.get('tickX'),"," yt = this.get('tickY'),"," _xy = [host.actXY[0], host.actXY[1]];",""," if ((Y.Lang.isNumber(xt) || this.get(TICK_X_ARRAY)) && (this._lastTickXFired !== _xy[0])) {"," this._tickAlignX();"," this._lastTickXFired = _xy[0];"," }",""," if ((Y.Lang.isNumber(yt) || this.get(TICK_Y_ARRAY)) && (this._lastTickYFired !== _xy[1])) {"," this._tickAlignY();"," this._lastTickYFired = _xy[1];"," }"," },"," /**"," * @private"," * @method _checkTicks"," * @description This method delegates the proper helper method for tick calculations"," * @param {Array} xy The XY coords for the Drag"," * @param {Object} r The optional region that we are bound to."," * @return {Array} The calced XY coords"," */"," _checkTicks: function(xy, r) {"," var host = this.get(HOST),"," lx = (host.startXY[0] - host.deltaXY[0]),"," ly = (host.startXY[1] - host.deltaXY[1]),"," xt = this.get('tickX'),"," yt = this.get('tickY');"," if (xt && !this.get(TICK_X_ARRAY)) {"," xy[0] = DDM._calcTicks(xy[0], lx, xt, r[LEFT], r[RIGHT]);"," }"," if (yt && !this.get(TICK_Y_ARRAY)) {"," xy[1] = DDM._calcTicks(xy[1], ly, yt, r[TOP], r[BOTTOM]);"," }"," if (this.get(TICK_X_ARRAY)) {"," xy[0] = DDM._calcTickArray(xy[0], this.get(TICK_X_ARRAY), r[LEFT], r[RIGHT]);"," }"," if (this.get(TICK_Y_ARRAY)) {"," xy[1] = DDM._calcTickArray(xy[1], this.get(TICK_Y_ARRAY), r[TOP], r[BOTTOM]);"," }",""," return xy;"," },"," /**"," * @private"," * @method _tickAlignX"," * @description Fires when the actXY[0] reach a new value respecting the tickX gap."," */"," _tickAlignX: function() {"," this.fire(EV_TICK_ALIGN_X);"," },"," /**"," * @private"," * @method _tickAlignY"," * @description Fires when the actXY[1] reach a new value respecting the tickY gap."," */"," _tickAlignY: function() {"," this.fire(EV_TICK_ALIGN_Y);"," }"," };",""," Y.namespace('Plugin');"," Y.extend(C, Y.Base, proto);"," Y.Plugin.DDConstrained = C;",""," Y.mix(DDM, {"," /**"," * @for DDM"," * @namespace DD"," * @private"," * @method _calcTicks"," * @description Helper method to calculate the tick offsets for a given position"," * @param {Number} pos The current X or Y position"," * @param {Number} start The start X or Y position"," * @param {Number} tick The X or Y tick increment"," * @param {Number} off1 The min offset that we can't pass (region)"," * @param {Number} off2 The max offset that we can't pass (region)"," * @return {Number} The new position based on the tick calculation"," */"," _calcTicks: function(pos, start, tick, off1, off2) {"," var ix = ((pos - start) / tick),"," min = Math.floor(ix),"," max = Math.ceil(ix);"," if ((min !== 0) || (max !== 0)) {"," if ((ix >= min) && (ix <= max)) {"," pos = (start + (tick * min));"," if (off1 && off2) {"," if (pos < off1) {"," pos = (start + (tick * (min + 1)));"," }"," if (pos > off2) {"," pos = (start + (tick * (min - 1)));"," }"," }"," }"," }"," return pos;"," },"," /**"," * @for DDM"," * @namespace DD"," * @private"," * @method _calcTickArray"," * @description This method is used with the tickXArray and tickYArray config options"," * @param {Number} pos The current X or Y position"," * @param {Number} ticks The array containing our custom tick positions."," * @param {Number} off1 The min offset that we can't pass (region)"," * @param {Number} off2 The max offset that we can't pass (region)"," * @return The tick position"," */"," _calcTickArray: function(pos, ticks, off1, off2) {"," var i = 0, len = ticks.length, next = 0,"," diff1, diff2, ret;",""," if (!ticks || (ticks.length === 0)) {"," return pos;"," }"," if (ticks[0] >= pos) {"," return ticks[0];"," }",""," for (i = 0; i < len; i++) {"," next = (i + 1);"," if (ticks[next] && ticks[next] >= pos) {"," diff1 = pos - ticks[i];"," diff2 = ticks[next] - pos;"," ret = (diff2 > diff1) ? ticks[i] : ticks[next];"," if (off1 && off2) {"," if (ret > off2) {"," if (ticks[i]) {"," ret = ticks[i];"," } else {"," ret = ticks[len - 1];"," }"," }"," }"," return ret;"," }",""," }"," return ticks[ticks.length - 1];"," }"," });","","","","}, '3.7.2', {\"requires\": [\"dd-drag\"]});"];
_yuitest_coverage["build/dd-constrain/dd-constrain.js"].lines = {"1":0,"18":0,"49":0,"50":0,"53":0,"63":0,"65":0,"124":0,"138":0,"139":0,"140":0,"142":0,"153":0,"164":0,"175":0,"188":0,"193":0,"195":0,"203":0,"206":0,"210":0,"218":0,"223":0,"224":0,"239":0,"240":0,"248":0,"263":0,"270":0,"278":0,"282":0,"283":0,"284":0,"285":0,"286":0,"288":0,"289":0,"290":0,"292":0,"293":0,"296":0,"297":0,"299":0,"300":0,"303":0,"304":0,"305":0,"307":0,"310":0,"320":0,"323":0,"325":0,"326":0,"327":0,"328":0,"329":0,"331":0,"341":0,"347":0,"348":0,"350":0,"351":0,"354":0,"355":0,"357":0,"358":0,"361":0,"370":0,"372":0,"374":0,"375":0,"377":0,"384":0,"388":0,"389":0,"391":0,"392":0,"395":0,"396":0,"399":0,"401":0,"408":0,"413":0,"414":0,"415":0,"418":0,"419":0,"420":0,"432":0,"437":0,"438":0,"440":0,"441":0,"443":0,"444":0,"446":0,"447":0,"450":0,"458":0,"466":0,"470":0,"471":0,"472":0,"474":0,"489":0,"492":0,"493":0,"494":0,"495":0,"496":0,"497":0,"499":0,"500":0,"505":0,"520":0,"523":0,"524":0,"526":0,"527":0,"530":0,"531":0,"532":0,"533":0,"534":0,"535":0,"536":0,"537":0,"538":0,"539":0,"541":0,"545":0,"549":0};
_yuitest_coverage["build/dd-constrain/dd-constrain.js"].functions = {"C:48":0,"setter:123":0,"setter:137":0,"setter:152":0,"setter:163":0,"setter:174":0,"initializer:192":0,"(anonymous 2):205":0,"destructor:202":0,"(anonymous 3):223":0,"_createEvents:217":0,"_handleEnd:238":0,"_handleStart:247":0,"_cacheRegion:262":0,"resetCache:269":0,"(anonymous 4):303":0,"_getConstraint:277":0,"getRegion:319":0,"_checkRegion:340":0,"inRegion:369":0,"align:383":0,"drag:407":0,"_checkTicks:431":0,"_tickAlignX:457":0,"_tickAlignY:465":0,"_calcTicks:488":0,"_calcTickArray:519":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-constrain/dd-constrain.js"].coveredLines = 132;
@@ -751,4 +751,4 @@ return ticks[ticks.length - 1];
-}, '3.7.1', {"requires": ["dd-drag"]});
+}, '3.7.2', {"requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-constrain/dd-constrain-debug.js b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-constrain/dd-constrain-debug.js
rename to lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-debug.js
index 7552c72dd4e..8a38f1b7ca6 100644
--- a/lib/yuilib/3.7.1/build/dd-constrain/dd-constrain-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -558,4 +558,4 @@ YUI.add('dd-constrain', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag"]});
+}, '3.7.2', {"requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-constrain/dd-constrain-min.js b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-min.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/dd-constrain/dd-constrain-min.js
rename to lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-min.js
index 9f6d51ca695..9b107210406 100644
--- a/lib/yuilib/3.7.1/build/dd-constrain/dd-constrain-min.js
+++ b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-constrain",function(e,t){var n="dragNode",r="offsetHeight",i="offsetWidth",s="host",o="tickXArray",u="tickYArray",a=e.DD.DDM,f="top",l="right",c="bottom",h="left",p="view",d=null,v="drag:tickAlignX",m="drag:tickAlignY",g=function(e){this._lazyAddAttrs=!1,g.superclass.constructor.apply(this,arguments)};g.NAME="ddConstrained",g.NS="con",g.ATTRS={host:{},stickX:{value:!1},stickY:{value:!1},tickX:{value:!1},tickY:{value:!1},tickXArray:{value:!1},tickYArray:{value:!1},gutter:{value:"0",setter:function(t){return e.DD.DDM.cssSizestoObject(t)}},constrain:{value:p,setter:function(t){var n=e.one(t);return n&&(t=n),t}},constrain2region:{setter:function(e){return this.set("constrain",e)}},constrain2node:{setter:function(t){return this.set("constrain",e.one(t))}},constrain2view:{setter:function(e){return this.set("constrain",p)}},cacheRegion:{value:!0}},d={_lastTickXFired:null,_lastTickYFired:null,initializer:function(){this._createEvents(),this._eventHandles=[this.get(s).on("drag:end",e.bind(this._handleEnd,this)),this.get(s).on("drag:start",e.bind(this._handleStart,this)),this.get(s).after("drag:align",e.bind(this.align,this)),this.get(s).after("drag:drag",e.bind(this.drag,this))]},destructor:function(){e.each(this._eventHandles,function(e,t){e.detach()}),this._eventHandles.length=0},_createEvents:function(){var t=[v,m];e.each(t,function(e,t){this.publish(e,{type:e,emitFacade:!0,bubbles:!0,queuable:!1,prefix:"drag"})},this)},_handleEnd:function(){this._lastTickYFired=null,this._lastTickXFired=null},_handleStart:function(){this.resetCache()},_regionCache:null,_cacheRegion:function(){this._regionCache=this.get("constrain").get("region")},resetCache:function(){this._regionCache=null},_getConstraint:function(){var t=this.get("constrain"),r=this.get("gutter"),i;t&&(t instanceof e.Node?(this._regionCache||(this._eventHandles.push(e.on("resize",e.bind(this._cacheRegion,this),e.config.win)),this._cacheRegion()),i=e.clone(this._regionCache),this.get("cacheRegion")||this.resetCache()):e.Lang.isObject(t)&&(i=e.clone(t)));if(!t||!i)t=p;return t===p&&(i=this.get(s).get(n).get("viewportRegion")),e.each(r,function(e,t){t==l||t==c?i[t]-=e:i[t]+=e}),i},getRegion:function(e){var t={},o=null,u=null,a=this.get(s);return t=this._getConstraint(),e&&(o=a.get(n).get(r),u=a.get(n).get(i),t[l]=t[l]-u,t[c]=t[c]-o),t},_checkRegion:function(e){var t=e,o=this.getRegion(),u=this.get(s),a=u.get(n).get(r),p=u.get(n).get(i);return t[1]>o[c]-a&&(e[1]=o[c]-a),o[f]>t[1]&&(e[1]=o[f]),t[0]>o[l]-p&&(e[0]=o[l]-p),o[h]>t[0]&&(e[0]=o[h]),e},inRegion:function(e){e=e||this.get(s).get(n).getXY();var t=this._checkRegion([e[0],e[1]]),r=!1;return e[0]===t[0]&&e[1]===t[1]&&(r=!0),r},align:function(){var e=this.get(s),t=[e.actXY[0],e.actXY[1]],n=this.getRegion(!0);this.get("stickX")&&(t[1]=e.startXY[1]-e.deltaXY[1]),this.get("stickY")&&(t[0]=e.startXY[0]-e.deltaXY[0]),n&&(t=this._checkRegion(t)),t=this._checkTicks(t,n),e.actXY=t},drag:function(t){var n=this.get(s),r=this.get("tickX"),i=this.get("tickY"),a=[n.actXY[0],n.actXY[1]];(e.Lang.isNumber(r)||this.get(o))&&this._lastTickXFired!==a[0]&&(this._tickAlignX(),this._lastTickXFired=a[0]),(e.Lang.isNumber(i)||this.get(u))&&this._lastTickYFired!==a[1]&&(this._tickAlignY(),this._lastTickYFired=a[1])},_checkTicks:function(e,t){var n=this.get(s),r=n.startXY[0]-n.deltaXY[0],i=n.startXY[1]-n.deltaXY[1],p=this.get("tickX"),d=this.get("tickY");return p&&!this.get(o)&&(e[0]=a._calcTicks(e[0],r,p,t[h],t[l])),d&&!this.get(u)&&(e[1]=a._calcTicks(e[1],i,d,t[f],t[c])),this.get(o)&&(e[0]=a._calcTickArray(e[0],this.get(o),t[h],t[l])),this.get(u)&&(e[1]=a._calcTickArray(e[1],this.get(u),t[f],t[c])),e},_tickAlignX:function(){this.fire(v)},_tickAlignY:function(){this.fire(m)}},e.namespace("Plugin"),e.extend(g,e.Base,d),e.Plugin.DDConstrained=g,e.mix(a,{_calcTicks:function(e,t,n,r,i){var s=(e-t)/n,o=Math.floor(s),u=Math.ceil(s);return(o!==0||u!==0)&&s>=o&&s<=u&&(e=t+n*o,r&&i&&(ei&&(e=t+n*(o-1)))),e},_calcTickArray:function(e,t,n,r){var i=0,s=t.length,o=0,u,a,f;if(!t||t.length===0)return e;if(t[0]>=e)return t[0];for(i=0;i=e)return u=e-t[i],a=t[o]-e,f=a>u?t[i]:t[o],n&&r&&f>r&&(t[i]?f=t[i]:f=t[s-1]),f}return t[t.length-1]}})},"3.7.1",{requires:["dd-drag"]});
+YUI.add("dd-constrain",function(e,t){var n="dragNode",r="offsetHeight",i="offsetWidth",s="host",o="tickXArray",u="tickYArray",a=e.DD.DDM,f="top",l="right",c="bottom",h="left",p="view",d=null,v="drag:tickAlignX",m="drag:tickAlignY",g=function(e){this._lazyAddAttrs=!1,g.superclass.constructor.apply(this,arguments)};g.NAME="ddConstrained",g.NS="con",g.ATTRS={host:{},stickX:{value:!1},stickY:{value:!1},tickX:{value:!1},tickY:{value:!1},tickXArray:{value:!1},tickYArray:{value:!1},gutter:{value:"0",setter:function(t){return e.DD.DDM.cssSizestoObject(t)}},constrain:{value:p,setter:function(t){var n=e.one(t);return n&&(t=n),t}},constrain2region:{setter:function(e){return this.set("constrain",e)}},constrain2node:{setter:function(t){return this.set("constrain",e.one(t))}},constrain2view:{setter:function(e){return this.set("constrain",p)}},cacheRegion:{value:!0}},d={_lastTickXFired:null,_lastTickYFired:null,initializer:function(){this._createEvents(),this._eventHandles=[this.get(s).on("drag:end",e.bind(this._handleEnd,this)),this.get(s).on("drag:start",e.bind(this._handleStart,this)),this.get(s).after("drag:align",e.bind(this.align,this)),this.get(s).after("drag:drag",e.bind(this.drag,this))]},destructor:function(){e.each(this._eventHandles,function(e,t){e.detach()}),this._eventHandles.length=0},_createEvents:function(){var t=[v,m];e.each(t,function(e,t){this.publish(e,{type:e,emitFacade:!0,bubbles:!0,queuable:!1,prefix:"drag"})},this)},_handleEnd:function(){this._lastTickYFired=null,this._lastTickXFired=null},_handleStart:function(){this.resetCache()},_regionCache:null,_cacheRegion:function(){this._regionCache=this.get("constrain").get("region")},resetCache:function(){this._regionCache=null},_getConstraint:function(){var t=this.get("constrain"),r=this.get("gutter"),i;t&&(t instanceof e.Node?(this._regionCache||(this._eventHandles.push(e.on("resize",e.bind(this._cacheRegion,this),e.config.win)),this._cacheRegion()),i=e.clone(this._regionCache),this.get("cacheRegion")||this.resetCache()):e.Lang.isObject(t)&&(i=e.clone(t)));if(!t||!i)t=p;return t===p&&(i=this.get(s).get(n).get("viewportRegion")),e.each(r,function(e,t){t==l||t==c?i[t]-=e:i[t]+=e}),i},getRegion:function(e){var t={},o=null,u=null,a=this.get(s);return t=this._getConstraint(),e&&(o=a.get(n).get(r),u=a.get(n).get(i),t[l]=t[l]-u,t[c]=t[c]-o),t},_checkRegion:function(e){var t=e,o=this.getRegion(),u=this.get(s),a=u.get(n).get(r),p=u.get(n).get(i);return t[1]>o[c]-a&&(e[1]=o[c]-a),o[f]>t[1]&&(e[1]=o[f]),t[0]>o[l]-p&&(e[0]=o[l]-p),o[h]>t[0]&&(e[0]=o[h]),e},inRegion:function(e){e=e||this.get(s).get(n).getXY();var t=this._checkRegion([e[0],e[1]]),r=!1;return e[0]===t[0]&&e[1]===t[1]&&(r=!0),r},align:function(){var e=this.get(s),t=[e.actXY[0],e.actXY[1]],n=this.getRegion(!0);this.get("stickX")&&(t[1]=e.startXY[1]-e.deltaXY[1]),this.get("stickY")&&(t[0]=e.startXY[0]-e.deltaXY[0]),n&&(t=this._checkRegion(t)),t=this._checkTicks(t,n),e.actXY=t},drag:function(t){var n=this.get(s),r=this.get("tickX"),i=this.get("tickY"),a=[n.actXY[0],n.actXY[1]];(e.Lang.isNumber(r)||this.get(o))&&this._lastTickXFired!==a[0]&&(this._tickAlignX(),this._lastTickXFired=a[0]),(e.Lang.isNumber(i)||this.get(u))&&this._lastTickYFired!==a[1]&&(this._tickAlignY(),this._lastTickYFired=a[1])},_checkTicks:function(e,t){var n=this.get(s),r=n.startXY[0]-n.deltaXY[0],i=n.startXY[1]-n.deltaXY[1],p=this.get("tickX"),d=this.get("tickY");return p&&!this.get(o)&&(e[0]=a._calcTicks(e[0],r,p,t[h],t[l])),d&&!this.get(u)&&(e[1]=a._calcTicks(e[1],i,d,t[f],t[c])),this.get(o)&&(e[0]=a._calcTickArray(e[0],this.get(o),t[h],t[l])),this.get(u)&&(e[1]=a._calcTickArray(e[1],this.get(u),t[f],t[c])),e},_tickAlignX:function(){this.fire(v)},_tickAlignY:function(){this.fire(m)}},e.namespace("Plugin"),e.extend(g,e.Base,d),e.Plugin.DDConstrained=g,e.mix(a,{_calcTicks:function(e,t,n,r,i){var s=(e-t)/n,o=Math.floor(s),u=Math.ceil(s);return(o!==0||u!==0)&&s>=o&&s<=u&&(e=t+n*o,r&&i&&(ei&&(e=t+n*(o-1)))),e},_calcTickArray:function(e,t,n,r){var i=0,s=t.length,o=0,u,a,f;if(!t||t.length===0)return e;if(t[0]>=e)return t[0];for(i=0;i=e)return u=e-t[i],a=t[o]-e,f=a>u?t[i]:t[o],n&&r&&f>r&&(t[i]?f=t[i]:f=t[s-1]),f}return t[t.length-1]}})},"3.7.2",{requires:["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-constrain/dd-constrain.js b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-constrain/dd-constrain.js
rename to lib/yuilib/3.7.2/build/dd-constrain/dd-constrain.js
index 7552c72dd4e..8a38f1b7ca6 100644
--- a/lib/yuilib/3.7.1/build/dd-constrain/dd-constrain.js
+++ b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -558,4 +558,4 @@ YUI.add('dd-constrain', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag"]});
+}, '3.7.2', {"requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base-coverage.js b/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base-coverage.js
rename to lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-coverage.js
index f26288d031d..dcc1b17d04e 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-ddm-base/dd-ddm-base.js"] = {
path: "build/dd-ddm-base/dd-ddm-base.js",
code: []
};
-_yuitest_coverage["build/dd-ddm-base/dd-ddm-base.js"].code=["YUI.add('dd-ddm-base', function (Y, NAME) {","",""," /**"," * Provides the base Drag Drop Manger required for making a Node draggable."," * @module dd"," * @submodule dd-ddm-base"," */ "," /**"," * Provides the base Drag Drop Manger required for making a Node draggable."," * @class DDM"," * @extends Base"," * @constructor"," * @namespace DD"," */"," "," var DDMBase = function() {"," DDMBase.superclass.constructor.apply(this, arguments);"," };",""," DDMBase.NAME = 'ddm';",""," DDMBase.ATTRS = {"," /**"," * @attribute dragCursor"," * @description The cursor to apply when dragging, if shimmed the shim will get the cursor."," * @type String"," */"," dragCursor: {"," value: 'move'"," },"," /**"," * @attribute clickPixelThresh"," * @description The number of pixels to move to start a drag operation, default is 3."," * @type Number"," */"," clickPixelThresh: {"," value: 3"," },"," /**"," * @attribute clickTimeThresh"," * @description The number of milliseconds a mousedown has to pass to start a drag operation, default is 1000."," * @type Number"," */ "," clickTimeThresh: {"," value: 1000"," },"," /**"," * @attribute throttleTime"," * @description The number of milliseconds to throttle the mousemove event. Default: 150"," * @type Number"," */ "," throttleTime: {"," //value: 150"," value: -1"," },"," /**"," * @attribute dragMode"," * @description This attribute only works if the dd-drop module is active. It will set the dragMode (point, intersect, strict) of all future Drag instances. "," * @type String"," */ "," dragMode: {"," value: 'point',"," setter: function(mode) {"," this._setDragMode(mode);"," return mode;"," } "," }",""," };",""," Y.extend(DDMBase, Y.Base, {"," _createPG: function() {},"," /**"," * @property _active"," * @description flag set when we activate our first drag, so DDM can start listening for events."," * @type {Boolean}"," */"," _active: null,"," /**"," * @private"," * @method _setDragMode"," * @description Handler for dragMode attribute setter."," * @param String/Number The Number value or the String for the DragMode to default all future drag instances to."," * @return Number The Mode to be set"," */"," _setDragMode: function(mode) {"," if (mode === null) {"," mode = Y.DD.DDM.get('dragMode');"," }"," switch (mode) {"," case 1:"," case 'intersect':"," return 1;"," case 2:"," case 'strict':"," return 2;"," case 0:"," case 'point':"," return 0;"," }"," return 0; "," },"," /**"," * @property CSS_PREFIX"," * @description The PREFIX to attach to all DD CSS class names"," * @type {String}"," */"," CSS_PREFIX: Y.ClassNameManager.getClassName('dd'),"," _activateTargets: function() {}, "," /**"," * @private"," * @property _drags"," * @description Holder for all registered drag elements."," * @type {Array}"," */"," _drags: [],"," /**"," * @property activeDrag"," * @description A reference to the currently active draggable object."," * @type {Drag}"," */"," activeDrag: false,"," /**"," * @private"," * @method _regDrag"," * @description Adds a reference to the drag object to the DDM._drags array, called in the constructor of Drag."," * @param {Drag} d The Drag object"," */"," _regDrag: function(d) {"," if (this.getDrag(d.get('node'))) {"," return false;"," }"," "," if (!this._active) {"," this._setupListeners();"," }"," this._drags.push(d);"," return true;"," },"," /**"," * @private"," * @method _unregDrag"," * @description Remove this drag object from the DDM._drags array."," * @param {Drag} d The drag object."," */"," _unregDrag: function(d) {"," var tmp = [];"," Y.each(this._drags, function(n, i) {"," if (n !== d) {"," tmp[tmp.length] = n;"," }"," });"," this._drags = tmp;"," },"," /**"," * @private"," * @method _setupListeners"," * @description Add the document listeners."," */"," _setupListeners: function() {"," this._createPG();"," this._active = true;",""," var doc = Y.one(Y.config.doc);"," doc.on('mousemove', Y.throttle(Y.bind(this._docMove, this), this.get('throttleTime')));"," doc.on('mouseup', Y.bind(this._end, this));"," },"," /**"," * @private"," * @method _start"," * @description Internal method used by Drag to signal the start of a drag operation"," */"," _start: function() {"," this.fire('ddm:start');"," this._startDrag();"," },"," /**"," * @private"," * @method _startDrag"," * @description Factory method to be overwritten by other DDM's"," * @param {Number} x The x position of the drag element"," * @param {Number} y The y position of the drag element"," * @param {Number} w The width of the drag element"," * @param {Number} h The height of the drag element"," */"," _startDrag: function() {},"," /**"," * @private"," * @method _endDrag"," * @description Factory method to be overwritten by other DDM's"," */"," _endDrag: function() {},"," _dropMove: function() {},"," /**"," * @private"," * @method _end"," * @description Internal method used by Drag to signal the end of a drag operation"," */"," _end: function() {"," if (this.activeDrag) {"," this._shimming = false;"," this._endDrag();"," this.fire('ddm:end');"," this.activeDrag.end.call(this.activeDrag);"," this.activeDrag = null;"," }"," },"," /**"," * @method stopDrag"," * @description Method will forcefully stop a drag operation. For example calling this from inside an ESC keypress handler will stop this drag."," * @return {Self}"," * @chainable"," */ "," stopDrag: function() {"," if (this.activeDrag) {"," this._end();"," }"," return this;"," },"," /**"," * @private"," * @property _shimming"," * @description Set to true when drag starts and useShim is true. Used in pairing with _docMove"," * @see _docMove"," * @type {Boolean}"," */"," _shimming: false,"," /**"," * @private"," * @method _docMove"," * @description Internal listener for the mousemove on Document. Checks if the shim is in place to only call _move once per mouse move"," * @param {Event.Facade} ev The Dom mousemove Event"," */"," _docMove: function(ev) {"," if (!this._shimming) {"," this._move(ev);"," }"," },"," /**"," * @private"," * @method _move"," * @description Internal listener for the mousemove DOM event to pass to the Drag's move method."," * @param {Event.Facade} ev The Dom mousemove Event"," */"," _move: function(ev) {"," if (this.activeDrag) {"," this.activeDrag._move.call(this.activeDrag, ev);"," this._dropMove();"," }"," },"," /**"," * //TODO Private, rename??..."," * @private"," * @method cssSizestoObject"," * @description Helper method to use to set the gutter from the attribute setter."," * @param {String} gutter CSS style string for gutter: '5 0' (sets top and bottom to 5px, left and right to 0px), '1 2 3 4' (top 1px, right 2px, bottom 3px, left 4px)"," * @return {Object} The gutter Object Literal."," */"," cssSizestoObject: function(gutter) {"," var x = gutter.split(' ');"," "," switch (x.length) {"," case 1: x[1] = x[2] = x[3] = x[0]; break;"," case 2: x[2] = x[0]; x[3] = x[1]; break;"," case 3: x[3] = x[1]; break;"," }",""," return {"," top : parseInt(x[0],10),"," right : parseInt(x[1],10),"," bottom: parseInt(x[2],10),"," left : parseInt(x[3],10)"," };"," },"," /**"," * @method getDrag"," * @description Get a valid Drag instance back from a Node or a selector string, false otherwise"," * @param {String/Object} node The Node instance or Selector string to check for a valid Drag Object"," * @return {Object}"," */"," getDrag: function(node) {"," var drag = false,"," n = Y.one(node);"," if (n instanceof Y.Node) {"," Y.each(this._drags, function(v, k) {"," if (n.compareTo(v.get('node'))) {"," drag = v;"," }"," });"," }"," return drag;"," },"," /**"," * @method swapPosition"," * @description Swap the position of 2 nodes based on their CSS positioning."," * @param {Node} n1 The first node to swap"," * @param {Node} n2 The first node to swap"," * @return {Node}"," */"," swapPosition: function(n1, n2) {"," n1 = Y.DD.DDM.getNode(n1);"," n2 = Y.DD.DDM.getNode(n2);"," var xy1 = n1.getXY(),"," xy2 = n2.getXY();",""," n1.setXY(xy2);"," n2.setXY(xy1);"," return n1;"," },"," /**"," * @method getNode"," * @description Return a node instance from the given node, selector string or Y.Base extended object."," * @param {Node/Object/String} n The node to resolve."," * @return {Node}"," */"," getNode: function(n) {"," if (n instanceof Y.Node) {"," return n;"," }"," if (n && n.get) {"," if (Y.Widget && (n instanceof Y.Widget)) {"," n = n.get('boundingBox');"," } else {"," n = n.get('node');"," }"," } else {"," n = Y.one(n);"," }"," return n;"," },"," /**"," * @method swapNode"," * @description Swap the position of 2 nodes based on their DOM location."," * @param {Node} n1 The first node to swap"," * @param {Node} n2 The first node to swap"," * @return {Node}"," */"," swapNode: function(n1, n2) {"," n1 = Y.DD.DDM.getNode(n1);"," n2 = Y.DD.DDM.getNode(n2);"," var p = n2.get('parentNode'),"," s = n2.get('nextSibling');",""," if (s == n1) {"," p.insertBefore(n1, n2);"," } else if (n2 == n1.get('nextSibling')) {"," p.insertBefore(n2, n1);"," } else {"," n1.get('parentNode').replaceChild(n2, n1);"," p.insertBefore(n1, s);"," }"," return n1;"," }"," });",""," Y.namespace('DD');"," Y.DD.DDM = new DDMBase();",""," /**"," * @event ddm:start"," * @description Fires from the DDM before all drag events fire."," * @type {CustomEvent}"," */"," /**"," * @event ddm:end"," * @description Fires from the DDM after the DDM finishes, before the drag end events."," * @type {CustomEvent}"," */","","","","","}, '3.7.1', {\"requires\": [\"node\", \"base\", \"yui-throttle\", \"classnamemanager\"]});"];
+_yuitest_coverage["build/dd-ddm-base/dd-ddm-base.js"].code=["YUI.add('dd-ddm-base', function (Y, NAME) {","",""," /**"," * Provides the base Drag Drop Manger required for making a Node draggable."," * @module dd"," * @submodule dd-ddm-base"," */ "," /**"," * Provides the base Drag Drop Manger required for making a Node draggable."," * @class DDM"," * @extends Base"," * @constructor"," * @namespace DD"," */"," "," var DDMBase = function() {"," DDMBase.superclass.constructor.apply(this, arguments);"," };",""," DDMBase.NAME = 'ddm';",""," DDMBase.ATTRS = {"," /**"," * @attribute dragCursor"," * @description The cursor to apply when dragging, if shimmed the shim will get the cursor."," * @type String"," */"," dragCursor: {"," value: 'move'"," },"," /**"," * @attribute clickPixelThresh"," * @description The number of pixels to move to start a drag operation, default is 3."," * @type Number"," */"," clickPixelThresh: {"," value: 3"," },"," /**"," * @attribute clickTimeThresh"," * @description The number of milliseconds a mousedown has to pass to start a drag operation, default is 1000."," * @type Number"," */ "," clickTimeThresh: {"," value: 1000"," },"," /**"," * @attribute throttleTime"," * @description The number of milliseconds to throttle the mousemove event. Default: 150"," * @type Number"," */ "," throttleTime: {"," //value: 150"," value: -1"," },"," /**"," * @attribute dragMode"," * @description This attribute only works if the dd-drop module is active. It will set the dragMode (point, intersect, strict) of all future Drag instances. "," * @type String"," */ "," dragMode: {"," value: 'point',"," setter: function(mode) {"," this._setDragMode(mode);"," return mode;"," } "," }",""," };",""," Y.extend(DDMBase, Y.Base, {"," _createPG: function() {},"," /**"," * @property _active"," * @description flag set when we activate our first drag, so DDM can start listening for events."," * @type {Boolean}"," */"," _active: null,"," /**"," * @private"," * @method _setDragMode"," * @description Handler for dragMode attribute setter."," * @param String/Number The Number value or the String for the DragMode to default all future drag instances to."," * @return Number The Mode to be set"," */"," _setDragMode: function(mode) {"," if (mode === null) {"," mode = Y.DD.DDM.get('dragMode');"," }"," switch (mode) {"," case 1:"," case 'intersect':"," return 1;"," case 2:"," case 'strict':"," return 2;"," case 0:"," case 'point':"," return 0;"," }"," return 0; "," },"," /**"," * @property CSS_PREFIX"," * @description The PREFIX to attach to all DD CSS class names"," * @type {String}"," */"," CSS_PREFIX: Y.ClassNameManager.getClassName('dd'),"," _activateTargets: function() {}, "," /**"," * @private"," * @property _drags"," * @description Holder for all registered drag elements."," * @type {Array}"," */"," _drags: [],"," /**"," * @property activeDrag"," * @description A reference to the currently active draggable object."," * @type {Drag}"," */"," activeDrag: false,"," /**"," * @private"," * @method _regDrag"," * @description Adds a reference to the drag object to the DDM._drags array, called in the constructor of Drag."," * @param {Drag} d The Drag object"," */"," _regDrag: function(d) {"," if (this.getDrag(d.get('node'))) {"," return false;"," }"," "," if (!this._active) {"," this._setupListeners();"," }"," this._drags.push(d);"," return true;"," },"," /**"," * @private"," * @method _unregDrag"," * @description Remove this drag object from the DDM._drags array."," * @param {Drag} d The drag object."," */"," _unregDrag: function(d) {"," var tmp = [];"," Y.each(this._drags, function(n, i) {"," if (n !== d) {"," tmp[tmp.length] = n;"," }"," });"," this._drags = tmp;"," },"," /**"," * @private"," * @method _setupListeners"," * @description Add the document listeners."," */"," _setupListeners: function() {"," this._createPG();"," this._active = true;",""," var doc = Y.one(Y.config.doc);"," doc.on('mousemove', Y.throttle(Y.bind(this._docMove, this), this.get('throttleTime')));"," doc.on('mouseup', Y.bind(this._end, this));"," },"," /**"," * @private"," * @method _start"," * @description Internal method used by Drag to signal the start of a drag operation"," */"," _start: function() {"," this.fire('ddm:start');"," this._startDrag();"," },"," /**"," * @private"," * @method _startDrag"," * @description Factory method to be overwritten by other DDM's"," * @param {Number} x The x position of the drag element"," * @param {Number} y The y position of the drag element"," * @param {Number} w The width of the drag element"," * @param {Number} h The height of the drag element"," */"," _startDrag: function() {},"," /**"," * @private"," * @method _endDrag"," * @description Factory method to be overwritten by other DDM's"," */"," _endDrag: function() {},"," _dropMove: function() {},"," /**"," * @private"," * @method _end"," * @description Internal method used by Drag to signal the end of a drag operation"," */"," _end: function() {"," if (this.activeDrag) {"," this._shimming = false;"," this._endDrag();"," this.fire('ddm:end');"," this.activeDrag.end.call(this.activeDrag);"," this.activeDrag = null;"," }"," },"," /**"," * @method stopDrag"," * @description Method will forcefully stop a drag operation. For example calling this from inside an ESC keypress handler will stop this drag."," * @return {Self}"," * @chainable"," */ "," stopDrag: function() {"," if (this.activeDrag) {"," this._end();"," }"," return this;"," },"," /**"," * @private"," * @property _shimming"," * @description Set to true when drag starts and useShim is true. Used in pairing with _docMove"," * @see _docMove"," * @type {Boolean}"," */"," _shimming: false,"," /**"," * @private"," * @method _docMove"," * @description Internal listener for the mousemove on Document. Checks if the shim is in place to only call _move once per mouse move"," * @param {Event.Facade} ev The Dom mousemove Event"," */"," _docMove: function(ev) {"," if (!this._shimming) {"," this._move(ev);"," }"," },"," /**"," * @private"," * @method _move"," * @description Internal listener for the mousemove DOM event to pass to the Drag's move method."," * @param {Event.Facade} ev The Dom mousemove Event"," */"," _move: function(ev) {"," if (this.activeDrag) {"," this.activeDrag._move.call(this.activeDrag, ev);"," this._dropMove();"," }"," },"," /**"," * //TODO Private, rename??..."," * @private"," * @method cssSizestoObject"," * @description Helper method to use to set the gutter from the attribute setter."," * @param {String} gutter CSS style string for gutter: '5 0' (sets top and bottom to 5px, left and right to 0px), '1 2 3 4' (top 1px, right 2px, bottom 3px, left 4px)"," * @return {Object} The gutter Object Literal."," */"," cssSizestoObject: function(gutter) {"," var x = gutter.split(' ');"," "," switch (x.length) {"," case 1: x[1] = x[2] = x[3] = x[0]; break;"," case 2: x[2] = x[0]; x[3] = x[1]; break;"," case 3: x[3] = x[1]; break;"," }",""," return {"," top : parseInt(x[0],10),"," right : parseInt(x[1],10),"," bottom: parseInt(x[2],10),"," left : parseInt(x[3],10)"," };"," },"," /**"," * @method getDrag"," * @description Get a valid Drag instance back from a Node or a selector string, false otherwise"," * @param {String/Object} node The Node instance or Selector string to check for a valid Drag Object"," * @return {Object}"," */"," getDrag: function(node) {"," var drag = false,"," n = Y.one(node);"," if (n instanceof Y.Node) {"," Y.each(this._drags, function(v, k) {"," if (n.compareTo(v.get('node'))) {"," drag = v;"," }"," });"," }"," return drag;"," },"," /**"," * @method swapPosition"," * @description Swap the position of 2 nodes based on their CSS positioning."," * @param {Node} n1 The first node to swap"," * @param {Node} n2 The first node to swap"," * @return {Node}"," */"," swapPosition: function(n1, n2) {"," n1 = Y.DD.DDM.getNode(n1);"," n2 = Y.DD.DDM.getNode(n2);"," var xy1 = n1.getXY(),"," xy2 = n2.getXY();",""," n1.setXY(xy2);"," n2.setXY(xy1);"," return n1;"," },"," /**"," * @method getNode"," * @description Return a node instance from the given node, selector string or Y.Base extended object."," * @param {Node/Object/String} n The node to resolve."," * @return {Node}"," */"," getNode: function(n) {"," if (n instanceof Y.Node) {"," return n;"," }"," if (n && n.get) {"," if (Y.Widget && (n instanceof Y.Widget)) {"," n = n.get('boundingBox');"," } else {"," n = n.get('node');"," }"," } else {"," n = Y.one(n);"," }"," return n;"," },"," /**"," * @method swapNode"," * @description Swap the position of 2 nodes based on their DOM location."," * @param {Node} n1 The first node to swap"," * @param {Node} n2 The first node to swap"," * @return {Node}"," */"," swapNode: function(n1, n2) {"," n1 = Y.DD.DDM.getNode(n1);"," n2 = Y.DD.DDM.getNode(n2);"," var p = n2.get('parentNode'),"," s = n2.get('nextSibling');",""," if (s == n1) {"," p.insertBefore(n1, n2);"," } else if (n2 == n1.get('nextSibling')) {"," p.insertBefore(n2, n1);"," } else {"," n1.get('parentNode').replaceChild(n2, n1);"," p.insertBefore(n1, s);"," }"," return n1;"," }"," });",""," Y.namespace('DD');"," Y.DD.DDM = new DDMBase();",""," /**"," * @event ddm:start"," * @description Fires from the DDM before all drag events fire."," * @type {CustomEvent}"," */"," /**"," * @event ddm:end"," * @description Fires from the DDM after the DDM finishes, before the drag end events."," * @type {CustomEvent}"," */","","","","","}, '3.7.2', {\"requires\": [\"node\", \"base\", \"yui-throttle\", \"classnamemanager\"]});"];
_yuitest_coverage["build/dd-ddm-base/dd-ddm-base.js"].lines = {"1":0,"17":0,"18":0,"21":0,"23":0,"65":0,"66":0,"72":0,"88":0,"89":0,"91":0,"94":0,"97":0,"100":0,"102":0,"131":0,"132":0,"135":0,"136":0,"138":0,"139":0,"148":0,"149":0,"150":0,"151":0,"154":0,"162":0,"163":0,"165":0,"166":0,"167":0,"175":0,"176":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"216":0,"217":0,"219":0,"236":0,"237":0,"247":0,"248":0,"249":0,"261":0,"263":0,"264":0,"265":0,"266":0,"269":0,"283":0,"285":0,"286":0,"287":0,"288":0,"292":0,"302":0,"303":0,"304":0,"307":0,"308":0,"309":0,"318":0,"319":0,"321":0,"322":0,"323":0,"325":0,"328":0,"330":0,"340":0,"341":0,"342":0,"345":0,"346":0,"347":0,"348":0,"350":0,"351":0,"353":0,"357":0,"358":0};
_yuitest_coverage["build/dd-ddm-base/dd-ddm-base.js"].functions = {"DDMBase:17":0,"setter:64":0,"_setDragMode:87":0,"_regDrag:130":0,"(anonymous 2):149":0,"_unregDrag:147":0,"_setupListeners:161":0,"_start:174":0,"_end:200":0,"stopDrag:215":0,"_docMove:235":0,"_move:246":0,"cssSizestoObject:260":0,"(anonymous 3):286":0,"getDrag:282":0,"swapPosition:301":0,"getNode:317":0,"swapNode:339":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-ddm-base/dd-ddm-base.js"].coveredLines = 85;
@@ -514,4 +514,4 @@ Y.DD.DDM = new DDMBase();
-}, '3.7.1', {"requires": ["node", "base", "yui-throttle", "classnamemanager"]});
+}, '3.7.2', {"requires": ["node", "base", "yui-throttle", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base-debug.js b/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base-debug.js
rename to lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-debug.js
index 54c48d92a72..fa324864340 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -377,4 +377,4 @@ YUI.add('dd-ddm-base', function (Y, NAME) {
-}, '3.7.1', {"requires": ["node", "base", "yui-throttle", "classnamemanager"]});
+}, '3.7.2', {"requires": ["node", "base", "yui-throttle", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base-min.js b/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-min.js
similarity index 96%
rename from lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base-min.js
rename to lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-min.js
index e2d7ff43108..ceb7ab9047c 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base-min.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-ddm-base",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};n.NAME="ddm",n.ATTRS={dragCursor:{value:"move"},clickPixelThresh:{value:3},clickTimeThresh:{value:1e3},throttleTime:{value:-1},dragMode:{value:"point",setter:function(e){return this._setDragMode(e),e}}},e.extend(n,e.Base,{_createPG:function(){},_active:null,_setDragMode:function(t){t===null&&(t=e.DD.DDM.get("dragMode"));switch(t){case 1:case"intersect":return 1;case 2:case"strict":return 2;case 0:case"point":return 0}return 0},CSS_PREFIX:e.ClassNameManager.getClassName("dd"),_activateTargets:function(){},_drags:[],activeDrag:!1,_regDrag:function(e){return this.getDrag(e.get("node"))?!1:(this._active||this._setupListeners(),this._drags.push(e),!0)},_unregDrag:function(t){var n=[];e.each(this._drags,function(e,r){e!==t&&(n[n.length]=e)}),this._drags=n},_setupListeners:function(){this._createPG(),this._active=!0;var t=e.one(e.config.doc);t.on("mousemove",e.throttle(e.bind(this._docMove,this),this.get("throttleTime"))),t.on("mouseup",e.bind(this._end,this))},_start:function(){this.fire("ddm:start"),this._startDrag()},_startDrag:function(){},_endDrag:function(){},_dropMove:function(){},_end:function(){this.activeDrag&&(this._shimming=!1,this._endDrag(),this.fire("ddm:end"),this.activeDrag.end.call(this.activeDrag),this.activeDrag=null)},stopDrag:function(){return this.activeDrag&&this._end(),this},_shimming:!1,_docMove:function(e){this._shimming||this._move(e)},_move:function(e){this.activeDrag&&(this.activeDrag._move.call(this.activeDrag,e),this._dropMove())},cssSizestoObject:function(e){var t=e.split(" ");switch(t.length){case 1:t[1]=t[2]=t[3]=t[0];break;case 2:t[2]=t[0],t[3]=t[1];break;case 3:t[3]=t[1]}return{top:parseInt(t[0],10),right:parseInt(t[1],10),bottom:parseInt(t[2],10),left:parseInt(t[3],10)}},getDrag:function(t){var n=!1,r=e.one(t);return r instanceof e.Node&&e.each(this._drags,function(e,t){r.compareTo(e.get("node"))&&(n=e)}),n},swapPosition:function(t,n){t=e.DD.DDM.getNode(t),n=e.DD.DDM.getNode(n);var r=t.getXY(),i=n.getXY();return t.setXY(i),n.setXY(r),t},getNode:function(t){return t instanceof e.Node?t:(t&&t.get?e.Widget&&t instanceof e.Widget?t=t.get("boundingBox"):t=t.get("node"):t=e.one(t),t)},swapNode:function(t,n){t=e.DD.DDM.getNode(t),n=e.DD.DDM.getNode(n);var r=n.get("parentNode"),i=n.get("nextSibling");return i==t?r.insertBefore(t,n):n==t.get("nextSibling")?r.insertBefore(n,t):(t.get("parentNode").replaceChild(n,t),r.insertBefore(t,i)),t}}),e.namespace("DD"),e.DD.DDM=new n},"3.7.1",{requires:["node","base","yui-throttle","classnamemanager"]});
+YUI.add("dd-ddm-base",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};n.NAME="ddm",n.ATTRS={dragCursor:{value:"move"},clickPixelThresh:{value:3},clickTimeThresh:{value:1e3},throttleTime:{value:-1},dragMode:{value:"point",setter:function(e){return this._setDragMode(e),e}}},e.extend(n,e.Base,{_createPG:function(){},_active:null,_setDragMode:function(t){t===null&&(t=e.DD.DDM.get("dragMode"));switch(t){case 1:case"intersect":return 1;case 2:case"strict":return 2;case 0:case"point":return 0}return 0},CSS_PREFIX:e.ClassNameManager.getClassName("dd"),_activateTargets:function(){},_drags:[],activeDrag:!1,_regDrag:function(e){return this.getDrag(e.get("node"))?!1:(this._active||this._setupListeners(),this._drags.push(e),!0)},_unregDrag:function(t){var n=[];e.each(this._drags,function(e,r){e!==t&&(n[n.length]=e)}),this._drags=n},_setupListeners:function(){this._createPG(),this._active=!0;var t=e.one(e.config.doc);t.on("mousemove",e.throttle(e.bind(this._docMove,this),this.get("throttleTime"))),t.on("mouseup",e.bind(this._end,this))},_start:function(){this.fire("ddm:start"),this._startDrag()},_startDrag:function(){},_endDrag:function(){},_dropMove:function(){},_end:function(){this.activeDrag&&(this._shimming=!1,this._endDrag(),this.fire("ddm:end"),this.activeDrag.end.call(this.activeDrag),this.activeDrag=null)},stopDrag:function(){return this.activeDrag&&this._end(),this},_shimming:!1,_docMove:function(e){this._shimming||this._move(e)},_move:function(e){this.activeDrag&&(this.activeDrag._move.call(this.activeDrag,e),this._dropMove())},cssSizestoObject:function(e){var t=e.split(" ");switch(t.length){case 1:t[1]=t[2]=t[3]=t[0];break;case 2:t[2]=t[0],t[3]=t[1];break;case 3:t[3]=t[1]}return{top:parseInt(t[0],10),right:parseInt(t[1],10),bottom:parseInt(t[2],10),left:parseInt(t[3],10)}},getDrag:function(t){var n=!1,r=e.one(t);return r instanceof e.Node&&e.each(this._drags,function(e,t){r.compareTo(e.get("node"))&&(n=e)}),n},swapPosition:function(t,n){t=e.DD.DDM.getNode(t),n=e.DD.DDM.getNode(n);var r=t.getXY(),i=n.getXY();return t.setXY(i),n.setXY(r),t},getNode:function(t){return t instanceof e.Node?t:(t&&t.get?e.Widget&&t instanceof e.Widget?t=t.get("boundingBox"):t=t.get("node"):t=e.one(t),t)},swapNode:function(t,n){t=e.DD.DDM.getNode(t),n=e.DD.DDM.getNode(n);var r=n.get("parentNode"),i=n.get("nextSibling");return i==t?r.insertBefore(t,n):n==t.get("nextSibling")?r.insertBefore(n,t):(t.get("parentNode").replaceChild(n,t),r.insertBefore(t,i)),t}}),e.namespace("DD"),e.DD.DDM=new n},"3.7.2",{requires:["node","base","yui-throttle","classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base.js b/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base.js
rename to lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base.js
index 54c48d92a72..fa324864340 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm-base/dd-ddm-base.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -377,4 +377,4 @@ YUI.add('dd-ddm-base', function (Y, NAME) {
-}, '3.7.1', {"requires": ["node", "base", "yui-throttle", "classnamemanager"]});
+}, '3.7.2', {"requires": ["node", "base", "yui-throttle", "classnamemanager"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop-coverage.js b/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop-coverage.js
rename to lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-coverage.js
index 29d29c96b65..1f00be4e3ea 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-ddm-drop/dd-ddm-drop.js"] = {
path: "build/dd-ddm-drop/dd-ddm-drop.js",
code: []
};
-_yuitest_coverage["build/dd-ddm-drop/dd-ddm-drop.js"].code=["YUI.add('dd-ddm-drop', function (Y, NAME) {","",""," /**"," * Extends the dd-ddm Class to add support for the placement of Drop Target shims inside the viewport shim. It also handles all Drop Target related events and interactions."," * @module dd"," * @submodule dd-ddm-drop"," * @for DDM"," * @namespace DD"," */",""," //TODO CSS class name for the bestMatch.."," Y.mix(Y.DD.DDM, {"," /**"," * @private"," * @property _noShim"," * @description This flag turns off the use of the mouseover/mouseout shim. It should not be used unless you know what you are doing."," * @type {Boolean}"," */"," _noShim: false,"," /**"," * @private"," * @property _activeShims"," * @description Placeholder for all active shims on the page"," * @type {Array}"," */"," _activeShims: [],"," /**"," * @private"," * @method _hasActiveShim"," * @description This method checks the _activeShims Object to see if there is a shim active."," * @return {Boolean}"," */"," _hasActiveShim: function() {"," if (this._noShim) {"," return true;"," }"," return this._activeShims.length;"," },"," /**"," * @private"," * @method _addActiveShim "," * @description Adds a Drop Target to the list of active shims"," * @param {Object} d The Drop instance to add to the list."," */"," _addActiveShim: function(d) {"," this._activeShims[this._activeShims.length] = d;"," },"," /**"," * @private"," * @method _removeActiveShim "," * @description Removes a Drop Target to the list of active shims"," * @param {Object} d The Drop instance to remove from the list."," */"," _removeActiveShim: function(d) {"," var s = [];"," Y.each(this._activeShims, function(v, k) {"," if (v._yuid !== d._yuid) {"," s[s.length] = v;"," }"," "," });"," this._activeShims = s;"," },"," /**"," * @method syncActiveShims"," * @description This method will sync the position of the shims on the Drop Targets that are currently active."," * @param {Boolean} force Resize/sync all Targets."," */"," syncActiveShims: function(force) {"," Y.later(0, this, function(force) {"," var drops = ((force) ? this.targets : this._lookup());"," Y.each(drops, function(v, k) {"," v.sizeShim.call(v);"," }, this);"," }, force);"," },"," /**"," * @private"," * @property mode"," * @description The mode that the drag operations will run in 0 for Point, 1 for Intersect, 2 for Strict"," * @type Number"," */"," mode: 0,"," /**"," * @private"," * @property POINT"," * @description In point mode, a Drop is targeted by the cursor being over the Target"," * @type Number"," */"," POINT: 0,"," /**"," * @private"," * @property INTERSECT"," * @description In intersect mode, a Drop is targeted by \"part\" of the drag node being over the Target"," * @type Number"," */"," INTERSECT: 1,"," /**"," * @private"," * @property STRICT"," * @description In strict mode, a Drop is targeted by the \"entire\" drag node being over the Target"," * @type Number"," */"," STRICT: 2,"," /**"," * @property useHash"," * @description Should we only check targets that are in the viewport on drags (for performance), default: true"," * @type {Boolean}"," */"," useHash: true,"," /**"," * @property activeDrop"," * @description A reference to the active Drop Target"," * @type {Object}"," */"," activeDrop: null,"," /**"," * @property validDrops"," * @description An array of the valid Drop Targets for this interaction."," * @type {Array}"," */"," //TODO Change array/object literals to be in sync.."," validDrops: [],"," /**"," * @property otherDrops"," * @description An object literal of Other Drop Targets that we encountered during this interaction (in the case of overlapping Drop Targets)"," * @type {Object}"," */"," otherDrops: {},"," /**"," * @property targets"," * @description All of the Targets"," * @type {Array}"," */"," targets: [],"," /**"," * @private "," * @method _addValid"," * @description Add a Drop Target to the list of Valid Targets. This list get's regenerated on each new drag operation."," * @param {Object} drop"," * @return {Self}"," * @chainable"," */"," _addValid: function(drop) {"," this.validDrops[this.validDrops.length] = drop;"," return this;"," },"," /**"," * @private "," * @method _removeValid"," * @description Removes a Drop Target from the list of Valid Targets. This list get's regenerated on each new drag operation."," * @param {Object} drop"," * @return {Self}"," * @chainable"," */"," _removeValid: function(drop) {"," var drops = [];"," Y.each(this.validDrops, function(v, k) {"," if (v !== drop) {"," drops[drops.length] = v;"," }"," });",""," this.validDrops = drops;"," return this;"," },"," /**"," * @method isOverTarget"," * @description Check to see if the Drag element is over the target, method varies on current mode"," * @param {Object} drop The drop to check against"," * @return {Boolean}"," */"," isOverTarget: function(drop) {"," if (this.activeDrag && drop) {"," var xy = this.activeDrag.mouseXY, r, dMode = this.activeDrag.get('dragMode'),"," aRegion, node = drop.shim;"," if (xy && this.activeDrag) {"," aRegion = this.activeDrag.region;"," if (dMode == this.STRICT) {"," return this.activeDrag.get('dragNode').inRegion(drop.region, true, aRegion);"," }"," if (drop && drop.shim) {"," if ((dMode == this.INTERSECT) && this._noShim) {"," r = aRegion || this.activeDrag.get('node');"," return drop.get('node').intersect(r, drop.region).inRegion;"," }",""," if (this._noShim) {"," node = drop.get('node');"," }"," return node.intersect({"," top: xy[1],"," bottom: xy[1],"," left: xy[0], "," right: xy[0]"," }, drop.region).inRegion;"," }"," }"," }"," return false;"," },"," /**"," * @method clearCache"," * @description Clears the cache data used for this interaction."," */"," clearCache: function() {"," this.validDrops = [];"," this.otherDrops = {};"," this._activeShims = [];"," },"," /**"," * @private"," * @method _activateTargets"," * @description Clear the cache and activate the shims of all the targets"," */"," _activateTargets: function() {"," this._noShim = true;"," this.clearCache();"," Y.each(this.targets, function(v, k) {"," v._activateShim([]);"," if (v.get('noShim') == true) {"," this._noShim = false;"," }"," }, this);"," this._handleTargetOver();"," "," },"," /**"," * @method getBestMatch"," * @description This method will gather the area for all potential targets and see which has the hightest covered area and return it."," * @param {Array} drops An Array of drops to scan for the best match."," * @param {Boolean} all If present, it returns an Array. First item is best match, second is an Array of the other items in the original Array."," * @return {Object or Array} "," */"," getBestMatch: function(drops, all) {"," var biggest = null, area = 0, out;"," "," Y.each(drops, function(v, k) {"," var inter = this.activeDrag.get('dragNode').intersect(v.get('node'));"," v.region.area = inter.area;",""," if (inter.inRegion) {"," if (inter.area > area) {"," area = inter.area;"," biggest = v;"," }"," }"," }, this);"," if (all) {"," out = [];"," //TODO Sort the others in numeric order by area covered.."," Y.each(drops, function(v, k) {"," if (v !== biggest) {"," out[out.length] = v;"," }"," }, this);"," return [biggest, out];"," }"," return biggest;"," },"," /**"," * @private"," * @method _deactivateTargets"," * @description This method fires the drop:hit, drag:drophit, drag:dropmiss methods and deactivates the shims.."," */"," _deactivateTargets: function() {"," var other = [], tmp,"," activeDrag = this.activeDrag,"," activeDrop = this.activeDrop;"," "," //TODO why is this check so hard??"," if (activeDrag && activeDrop && this.otherDrops[activeDrop]) {"," if (!activeDrag.get('dragMode')) {"," //TODO otherDrops -- private.."," other = this.otherDrops;"," delete other[activeDrop];"," } else {"," tmp = this.getBestMatch(this.otherDrops, true);"," activeDrop = tmp[0];"," other = tmp[1];"," }"," activeDrag.get('node').removeClass(this.CSS_PREFIX + '-drag-over');"," if (activeDrop) {"," activeDrop.fire('drop:hit', { drag: activeDrag, drop: activeDrop, others: other });"," activeDrag.fire('drag:drophit', { drag: activeDrag, drop: activeDrop, others: other });"," }"," } else if (activeDrag && activeDrag.get('dragging')) {"," activeDrag.get('node').removeClass(this.CSS_PREFIX + '-drag-over');"," activeDrag.fire('drag:dropmiss', { pageX: activeDrag.lastXY[0], pageY: activeDrag.lastXY[1] });"," }"," "," this.activeDrop = null;",""," Y.each(this.targets, function(v, k) {"," v._deactivateShim([]);"," }, this);"," },"," /**"," * @private"," * @method _dropMove"," * @description This method is called when the move method is called on the Drag Object."," */"," _dropMove: function() {"," if (this._hasActiveShim()) {"," this._handleTargetOver();"," } else {"," Y.each(this.otherDrops, function(v, k) {"," v._handleOut.apply(v, []);"," });"," }"," },"," /**"," * @private"," * @method _lookup"," * @description Filters the list of Drops down to those in the viewport."," * @return {Array} The valid Drop Targets that are in the viewport."," */"," _lookup: function() {"," if (!this.useHash || this._noShim) {"," return this.validDrops;"," }"," var drops = [];"," //Only scan drop shims that are in the Viewport"," Y.each(this.validDrops, function(v, k) {"," if (v.shim && v.shim.inViewportRegion(false, v.region)) {"," drops[drops.length] = v;"," }"," });"," return drops;"," "," },"," /**"," * @private"," * @method _handleTargetOver"," * @description This method execs _handleTargetOver on all valid Drop Targets"," */"," _handleTargetOver: function() {"," var drops = this._lookup();"," Y.each(drops, function(v, k) {"," v._handleTargetOver.call(v);"," }, this);"," },"," /**"," * @private"," * @method _regTarget"," * @description Add the passed in Target to the targets collection"," * @param {Object} t The Target to add to the targets collection"," */"," _regTarget: function(t) {"," this.targets[this.targets.length] = t;"," },"," /**"," * @private"," * @method _unregTarget"," * @description Remove the passed in Target from the targets collection"," * @param {Object} drop The Target to remove from the targets collection"," */"," _unregTarget: function(drop) {"," var targets = [], vdrops;"," Y.each(this.targets, function(v, k) {"," if (v != drop) {"," targets[targets.length] = v;"," }"," }, this);"," this.targets = targets;",""," vdrops = [];"," Y.each(this.validDrops, function(v, k) {"," if (v !== drop) {"," vdrops[vdrops.length] = v;"," }"," });",""," this.validDrops = vdrops;"," },"," /**"," * @method getDrop"," * @description Get a valid Drop instance back from a Node or a selector string, false otherwise"," * @param {String/Object} node The Node instance or Selector string to check for a valid Drop Object"," * @return {Object}"," */"," getDrop: function(node) {"," var drop = false,"," n = Y.one(node);"," if (n instanceof Y.Node) {"," Y.each(this.targets, function(v, k) {"," if (n.compareTo(v.get('node'))) {"," drop = v;"," }"," });"," }"," return drop;"," }"," }, true);","","","","","}, '3.7.1', {\"requires\": [\"dd-ddm\"]});"];
+_yuitest_coverage["build/dd-ddm-drop/dd-ddm-drop.js"].code=["YUI.add('dd-ddm-drop', function (Y, NAME) {","",""," /**"," * Extends the dd-ddm Class to add support for the placement of Drop Target shims inside the viewport shim. It also handles all Drop Target related events and interactions."," * @module dd"," * @submodule dd-ddm-drop"," * @for DDM"," * @namespace DD"," */",""," //TODO CSS class name for the bestMatch.."," Y.mix(Y.DD.DDM, {"," /**"," * @private"," * @property _noShim"," * @description This flag turns off the use of the mouseover/mouseout shim. It should not be used unless you know what you are doing."," * @type {Boolean}"," */"," _noShim: false,"," /**"," * @private"," * @property _activeShims"," * @description Placeholder for all active shims on the page"," * @type {Array}"," */"," _activeShims: [],"," /**"," * @private"," * @method _hasActiveShim"," * @description This method checks the _activeShims Object to see if there is a shim active."," * @return {Boolean}"," */"," _hasActiveShim: function() {"," if (this._noShim) {"," return true;"," }"," return this._activeShims.length;"," },"," /**"," * @private"," * @method _addActiveShim "," * @description Adds a Drop Target to the list of active shims"," * @param {Object} d The Drop instance to add to the list."," */"," _addActiveShim: function(d) {"," this._activeShims[this._activeShims.length] = d;"," },"," /**"," * @private"," * @method _removeActiveShim "," * @description Removes a Drop Target to the list of active shims"," * @param {Object} d The Drop instance to remove from the list."," */"," _removeActiveShim: function(d) {"," var s = [];"," Y.each(this._activeShims, function(v, k) {"," if (v._yuid !== d._yuid) {"," s[s.length] = v;"," }"," "," });"," this._activeShims = s;"," },"," /**"," * @method syncActiveShims"," * @description This method will sync the position of the shims on the Drop Targets that are currently active."," * @param {Boolean} force Resize/sync all Targets."," */"," syncActiveShims: function(force) {"," Y.later(0, this, function(force) {"," var drops = ((force) ? this.targets : this._lookup());"," Y.each(drops, function(v, k) {"," v.sizeShim.call(v);"," }, this);"," }, force);"," },"," /**"," * @private"," * @property mode"," * @description The mode that the drag operations will run in 0 for Point, 1 for Intersect, 2 for Strict"," * @type Number"," */"," mode: 0,"," /**"," * @private"," * @property POINT"," * @description In point mode, a Drop is targeted by the cursor being over the Target"," * @type Number"," */"," POINT: 0,"," /**"," * @private"," * @property INTERSECT"," * @description In intersect mode, a Drop is targeted by \"part\" of the drag node being over the Target"," * @type Number"," */"," INTERSECT: 1,"," /**"," * @private"," * @property STRICT"," * @description In strict mode, a Drop is targeted by the \"entire\" drag node being over the Target"," * @type Number"," */"," STRICT: 2,"," /**"," * @property useHash"," * @description Should we only check targets that are in the viewport on drags (for performance), default: true"," * @type {Boolean}"," */"," useHash: true,"," /**"," * @property activeDrop"," * @description A reference to the active Drop Target"," * @type {Object}"," */"," activeDrop: null,"," /**"," * @property validDrops"," * @description An array of the valid Drop Targets for this interaction."," * @type {Array}"," */"," //TODO Change array/object literals to be in sync.."," validDrops: [],"," /**"," * @property otherDrops"," * @description An object literal of Other Drop Targets that we encountered during this interaction (in the case of overlapping Drop Targets)"," * @type {Object}"," */"," otherDrops: {},"," /**"," * @property targets"," * @description All of the Targets"," * @type {Array}"," */"," targets: [],"," /**"," * @private "," * @method _addValid"," * @description Add a Drop Target to the list of Valid Targets. This list get's regenerated on each new drag operation."," * @param {Object} drop"," * @return {Self}"," * @chainable"," */"," _addValid: function(drop) {"," this.validDrops[this.validDrops.length] = drop;"," return this;"," },"," /**"," * @private "," * @method _removeValid"," * @description Removes a Drop Target from the list of Valid Targets. This list get's regenerated on each new drag operation."," * @param {Object} drop"," * @return {Self}"," * @chainable"," */"," _removeValid: function(drop) {"," var drops = [];"," Y.each(this.validDrops, function(v, k) {"," if (v !== drop) {"," drops[drops.length] = v;"," }"," });",""," this.validDrops = drops;"," return this;"," },"," /**"," * @method isOverTarget"," * @description Check to see if the Drag element is over the target, method varies on current mode"," * @param {Object} drop The drop to check against"," * @return {Boolean}"," */"," isOverTarget: function(drop) {"," if (this.activeDrag && drop) {"," var xy = this.activeDrag.mouseXY, r, dMode = this.activeDrag.get('dragMode'),"," aRegion, node = drop.shim;"," if (xy && this.activeDrag) {"," aRegion = this.activeDrag.region;"," if (dMode == this.STRICT) {"," return this.activeDrag.get('dragNode').inRegion(drop.region, true, aRegion);"," }"," if (drop && drop.shim) {"," if ((dMode == this.INTERSECT) && this._noShim) {"," r = aRegion || this.activeDrag.get('node');"," return drop.get('node').intersect(r, drop.region).inRegion;"," }",""," if (this._noShim) {"," node = drop.get('node');"," }"," return node.intersect({"," top: xy[1],"," bottom: xy[1],"," left: xy[0], "," right: xy[0]"," }, drop.region).inRegion;"," }"," }"," }"," return false;"," },"," /**"," * @method clearCache"," * @description Clears the cache data used for this interaction."," */"," clearCache: function() {"," this.validDrops = [];"," this.otherDrops = {};"," this._activeShims = [];"," },"," /**"," * @private"," * @method _activateTargets"," * @description Clear the cache and activate the shims of all the targets"," */"," _activateTargets: function() {"," this._noShim = true;"," this.clearCache();"," Y.each(this.targets, function(v, k) {"," v._activateShim([]);"," if (v.get('noShim') == true) {"," this._noShim = false;"," }"," }, this);"," this._handleTargetOver();"," "," },"," /**"," * @method getBestMatch"," * @description This method will gather the area for all potential targets and see which has the hightest covered area and return it."," * @param {Array} drops An Array of drops to scan for the best match."," * @param {Boolean} all If present, it returns an Array. First item is best match, second is an Array of the other items in the original Array."," * @return {Object or Array} "," */"," getBestMatch: function(drops, all) {"," var biggest = null, area = 0, out;"," "," Y.each(drops, function(v, k) {"," var inter = this.activeDrag.get('dragNode').intersect(v.get('node'));"," v.region.area = inter.area;",""," if (inter.inRegion) {"," if (inter.area > area) {"," area = inter.area;"," biggest = v;"," }"," }"," }, this);"," if (all) {"," out = [];"," //TODO Sort the others in numeric order by area covered.."," Y.each(drops, function(v, k) {"," if (v !== biggest) {"," out[out.length] = v;"," }"," }, this);"," return [biggest, out];"," }"," return biggest;"," },"," /**"," * @private"," * @method _deactivateTargets"," * @description This method fires the drop:hit, drag:drophit, drag:dropmiss methods and deactivates the shims.."," */"," _deactivateTargets: function() {"," var other = [], tmp,"," activeDrag = this.activeDrag,"," activeDrop = this.activeDrop;"," "," //TODO why is this check so hard??"," if (activeDrag && activeDrop && this.otherDrops[activeDrop]) {"," if (!activeDrag.get('dragMode')) {"," //TODO otherDrops -- private.."," other = this.otherDrops;"," delete other[activeDrop];"," } else {"," tmp = this.getBestMatch(this.otherDrops, true);"," activeDrop = tmp[0];"," other = tmp[1];"," }"," activeDrag.get('node').removeClass(this.CSS_PREFIX + '-drag-over');"," if (activeDrop) {"," activeDrop.fire('drop:hit', { drag: activeDrag, drop: activeDrop, others: other });"," activeDrag.fire('drag:drophit', { drag: activeDrag, drop: activeDrop, others: other });"," }"," } else if (activeDrag && activeDrag.get('dragging')) {"," activeDrag.get('node').removeClass(this.CSS_PREFIX + '-drag-over');"," activeDrag.fire('drag:dropmiss', { pageX: activeDrag.lastXY[0], pageY: activeDrag.lastXY[1] });"," }"," "," this.activeDrop = null;",""," Y.each(this.targets, function(v, k) {"," v._deactivateShim([]);"," }, this);"," },"," /**"," * @private"," * @method _dropMove"," * @description This method is called when the move method is called on the Drag Object."," */"," _dropMove: function() {"," if (this._hasActiveShim()) {"," this._handleTargetOver();"," } else {"," Y.each(this.otherDrops, function(v, k) {"," v._handleOut.apply(v, []);"," });"," }"," },"," /**"," * @private"," * @method _lookup"," * @description Filters the list of Drops down to those in the viewport."," * @return {Array} The valid Drop Targets that are in the viewport."," */"," _lookup: function() {"," if (!this.useHash || this._noShim) {"," return this.validDrops;"," }"," var drops = [];"," //Only scan drop shims that are in the Viewport"," Y.each(this.validDrops, function(v, k) {"," if (v.shim && v.shim.inViewportRegion(false, v.region)) {"," drops[drops.length] = v;"," }"," });"," return drops;"," "," },"," /**"," * @private"," * @method _handleTargetOver"," * @description This method execs _handleTargetOver on all valid Drop Targets"," */"," _handleTargetOver: function() {"," var drops = this._lookup();"," Y.each(drops, function(v, k) {"," v._handleTargetOver.call(v);"," }, this);"," },"," /**"," * @private"," * @method _regTarget"," * @description Add the passed in Target to the targets collection"," * @param {Object} t The Target to add to the targets collection"," */"," _regTarget: function(t) {"," this.targets[this.targets.length] = t;"," },"," /**"," * @private"," * @method _unregTarget"," * @description Remove the passed in Target from the targets collection"," * @param {Object} drop The Target to remove from the targets collection"," */"," _unregTarget: function(drop) {"," var targets = [], vdrops;"," Y.each(this.targets, function(v, k) {"," if (v != drop) {"," targets[targets.length] = v;"," }"," }, this);"," this.targets = targets;",""," vdrops = [];"," Y.each(this.validDrops, function(v, k) {"," if (v !== drop) {"," vdrops[vdrops.length] = v;"," }"," });",""," this.validDrops = vdrops;"," },"," /**"," * @method getDrop"," * @description Get a valid Drop instance back from a Node or a selector string, false otherwise"," * @param {String/Object} node The Node instance or Selector string to check for a valid Drop Object"," * @return {Object}"," */"," getDrop: function(node) {"," var drop = false,"," n = Y.one(node);"," if (n instanceof Y.Node) {"," Y.each(this.targets, function(v, k) {"," if (n.compareTo(v.get('node'))) {"," drop = v;"," }"," });"," }"," return drop;"," }"," }, true);","","","","","}, '3.7.2', {\"requires\": [\"dd-ddm\"]});"];
_yuitest_coverage["build/dd-ddm-drop/dd-ddm-drop.js"].lines = {"1":0,"13":0,"35":0,"36":0,"38":0,"47":0,"56":0,"57":0,"58":0,"59":0,"63":0,"71":0,"72":0,"73":0,"74":0,"146":0,"147":0,"158":0,"159":0,"160":0,"161":0,"165":0,"166":0,"175":0,"176":0,"178":0,"179":0,"180":0,"181":0,"183":0,"184":0,"185":0,"186":0,"189":0,"190":0,"192":0,"201":0,"208":0,"209":0,"210":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"226":0,"237":0,"239":0,"240":0,"241":0,"243":0,"244":0,"245":0,"246":0,"250":0,"251":0,"253":0,"254":0,"255":0,"258":0,"260":0,"268":0,"273":0,"274":0,"276":0,"277":0,"279":0,"280":0,"281":0,"283":0,"284":0,"285":0,"286":0,"288":0,"289":0,"290":0,"293":0,"295":0,"296":0,"305":0,"306":0,"308":0,"309":0,"320":0,"321":0,"323":0,"325":0,"326":0,"327":0,"330":0,"339":0,"340":0,"341":0,"351":0,"360":0,"361":0,"362":0,"363":0,"366":0,"368":0,"369":0,"370":0,"371":0,"375":0,"384":0,"386":0,"387":0,"388":0,"389":0,"393":0};
_yuitest_coverage["build/dd-ddm-drop/dd-ddm-drop.js"].functions = {"_hasActiveShim:34":0,"_addActiveShim:46":0,"(anonymous 2):57":0,"_removeActiveShim:55":0,"(anonymous 4):73":0,"(anonymous 3):71":0,"syncActiveShims:70":0,"_addValid:145":0,"(anonymous 5):159":0,"_removeValid:157":0,"isOverTarget:174":0,"clearCache:207":0,"(anonymous 6):220":0,"_activateTargets:217":0,"(anonymous 7):239":0,"(anonymous 8):253":0,"getBestMatch:236":0,"(anonymous 9):295":0,"_deactivateTargets:267":0,"(anonymous 10):308":0,"_dropMove:304":0,"(anonymous 11):325":0,"_lookup:319":0,"(anonymous 12):340":0,"_handleTargetOver:338":0,"_regTarget:350":0,"(anonymous 13):361":0,"(anonymous 14):369":0,"_unregTarget:359":0,"(anonymous 15):387":0,"getDrop:383":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-ddm-drop/dd-ddm-drop.js"].coveredLines = 111;
@@ -579,4 +579,4 @@ return drop;
-}, '3.7.1', {"requires": ["dd-ddm"]});
+}, '3.7.2', {"requires": ["dd-ddm"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop-debug.js b/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop-debug.js
rename to lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-debug.js
index 7e78627577e..5a8a4f90754 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -403,4 +403,4 @@ YUI.add('dd-ddm-drop', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-ddm"]});
+}, '3.7.2', {"requires": ["dd-ddm"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop-min.js b/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop-min.js
rename to lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-min.js
index 707854900f9..b50c65221e3 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop-min.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-ddm-drop",function(e,t){e.mix(e.DD.DDM,{_noShim:!1,_activeShims:[],_hasActiveShim:function(){return this._noShim?!0:this._activeShims.length},_addActiveShim:function(e){this._activeShims[this._activeShims.length]=e},_removeActiveShim:function(t){var n=[];e.each(this._activeShims,function(e,r){e._yuid!==t._yuid&&(n[n.length]=e)}),this._activeShims=n},syncActiveShims:function(t){e.later(0,this,function(t){var n=t?this.targets:this._lookup();e.each(n,function(e,t){e.sizeShim.call(e)},this)},t)},mode:0,POINT:0,INTERSECT:1,STRICT:2,useHash:!0,activeDrop:null,validDrops:[],otherDrops:{},targets:[],_addValid:function(e){return this.validDrops[this.validDrops.length]=e,this},_removeValid:function(t){var n=[];return e.each(this.validDrops,function(e,r){e!==t&&(n[n.length]=e)}),this.validDrops=n,this},isOverTarget:function(e){if(this.activeDrag&&e){var t=this.activeDrag.mouseXY,n,r=this.activeDrag.get("dragMode"),i,s=e.shim;if(t&&this.activeDrag){i=this.activeDrag.region;if(r==this.STRICT)return this.activeDrag.get("dragNode").inRegion(e.region,!0,i);if(e&&e.shim)return r==this.INTERSECT&&this._noShim?(n=i||this.activeDrag.get("node"),e.get("node").intersect(n,e.region).inRegion):(this._noShim&&(s=e.get("node")),s.intersect({top:t[1],bottom:t[1],left:t[0],right:t[0]},e.region).inRegion)}}return!1},clearCache:function(){this.validDrops=[],this.otherDrops={},this._activeShims=[]},_activateTargets:function(){this._noShim=!0,this.clearCache(),e.each(this.targets,function(e,t){e._activateShim([]),e.get("noShim")==1&&(this._noShim=!1)},this),this._handleTargetOver()},getBestMatch:function(t,n){var r=null,i=0,s;return e.each(t,function(e,t){var n=this.activeDrag.get("dragNode").intersect(e.get("node"));e.region.area=n.area,n.inRegion&&n.area>i&&(i=n.area,r=e)},this),n?(s=[],e.each(t,function(e,t){e!==r&&(s[s.length]=e)},this),[r,s]):r},_deactivateTargets:function(){var t=[],n,r=this.activeDrag,i=this.activeDrop;r&&i&&this.otherDrops[i]?(r.get("dragMode")?(n=this.getBestMatch(this.otherDrops,!0),i=n[0],t=n[1]):(t=this.otherDrops,delete t[i]),r.get("node").removeClass(this.CSS_PREFIX+"-drag-over"),i&&(i.fire("drop:hit",{drag:r,drop:i,others:t}),r.fire("drag:drophit",{drag:r,drop:i,others:t}))):r&&r.get("dragging")&&(r.get("node").removeClass(this.CSS_PREFIX+"-drag-over"),r.fire("drag:dropmiss",{pageX:r.lastXY[0],pageY:r.lastXY[1]})),this.activeDrop=null,e.each(this.targets,function(e,t){e._deactivateShim([])},this)},_dropMove:function(){this._hasActiveShim()?this._handleTargetOver():e.each(this.otherDrops,function(e,t){e._handleOut.apply(e,[])})},_lookup:function(){if(!this.useHash||this._noShim)return this.validDrops;var t=[];return e.each(this.validDrops,function(e,n){e.shim&&e.shim.inViewportRegion(!1,e.region)&&(t[t.length]=e)}),t},_handleTargetOver:function(){var t=this._lookup();e.each(t,function(e,t){e._handleTargetOver.call(e)},this)},_regTarget:function(e){this.targets[this.targets.length]=e},_unregTarget:function(t){var n=[],r;e.each(this.targets,function(e,r){e!=t&&(n[n.length]=e)},this),this.targets=n,r=[],e.each(this.validDrops,function(e,n){e!==t&&(r[r.length]=e)}),this.validDrops=r},getDrop:function(t){var n=!1,r=e.one(t);return r instanceof e.Node&&e.each(this.targets,function(e,t){r.compareTo(e.get("node"))&&(n=e)}),n}},!0)},"3.7.1",{requires:["dd-ddm"]});
+YUI.add("dd-ddm-drop",function(e,t){e.mix(e.DD.DDM,{_noShim:!1,_activeShims:[],_hasActiveShim:function(){return this._noShim?!0:this._activeShims.length},_addActiveShim:function(e){this._activeShims[this._activeShims.length]=e},_removeActiveShim:function(t){var n=[];e.each(this._activeShims,function(e,r){e._yuid!==t._yuid&&(n[n.length]=e)}),this._activeShims=n},syncActiveShims:function(t){e.later(0,this,function(t){var n=t?this.targets:this._lookup();e.each(n,function(e,t){e.sizeShim.call(e)},this)},t)},mode:0,POINT:0,INTERSECT:1,STRICT:2,useHash:!0,activeDrop:null,validDrops:[],otherDrops:{},targets:[],_addValid:function(e){return this.validDrops[this.validDrops.length]=e,this},_removeValid:function(t){var n=[];return e.each(this.validDrops,function(e,r){e!==t&&(n[n.length]=e)}),this.validDrops=n,this},isOverTarget:function(e){if(this.activeDrag&&e){var t=this.activeDrag.mouseXY,n,r=this.activeDrag.get("dragMode"),i,s=e.shim;if(t&&this.activeDrag){i=this.activeDrag.region;if(r==this.STRICT)return this.activeDrag.get("dragNode").inRegion(e.region,!0,i);if(e&&e.shim)return r==this.INTERSECT&&this._noShim?(n=i||this.activeDrag.get("node"),e.get("node").intersect(n,e.region).inRegion):(this._noShim&&(s=e.get("node")),s.intersect({top:t[1],bottom:t[1],left:t[0],right:t[0]},e.region).inRegion)}}return!1},clearCache:function(){this.validDrops=[],this.otherDrops={},this._activeShims=[]},_activateTargets:function(){this._noShim=!0,this.clearCache(),e.each(this.targets,function(e,t){e._activateShim([]),e.get("noShim")==1&&(this._noShim=!1)},this),this._handleTargetOver()},getBestMatch:function(t,n){var r=null,i=0,s;return e.each(t,function(e,t){var n=this.activeDrag.get("dragNode").intersect(e.get("node"));e.region.area=n.area,n.inRegion&&n.area>i&&(i=n.area,r=e)},this),n?(s=[],e.each(t,function(e,t){e!==r&&(s[s.length]=e)},this),[r,s]):r},_deactivateTargets:function(){var t=[],n,r=this.activeDrag,i=this.activeDrop;r&&i&&this.otherDrops[i]?(r.get("dragMode")?(n=this.getBestMatch(this.otherDrops,!0),i=n[0],t=n[1]):(t=this.otherDrops,delete t[i]),r.get("node").removeClass(this.CSS_PREFIX+"-drag-over"),i&&(i.fire("drop:hit",{drag:r,drop:i,others:t}),r.fire("drag:drophit",{drag:r,drop:i,others:t}))):r&&r.get("dragging")&&(r.get("node").removeClass(this.CSS_PREFIX+"-drag-over"),r.fire("drag:dropmiss",{pageX:r.lastXY[0],pageY:r.lastXY[1]})),this.activeDrop=null,e.each(this.targets,function(e,t){e._deactivateShim([])},this)},_dropMove:function(){this._hasActiveShim()?this._handleTargetOver():e.each(this.otherDrops,function(e,t){e._handleOut.apply(e,[])})},_lookup:function(){if(!this.useHash||this._noShim)return this.validDrops;var t=[];return e.each(this.validDrops,function(e,n){e.shim&&e.shim.inViewportRegion(!1,e.region)&&(t[t.length]=e)}),t},_handleTargetOver:function(){var t=this._lookup();e.each(t,function(e,t){e._handleTargetOver.call(e)},this)},_regTarget:function(e){this.targets[this.targets.length]=e},_unregTarget:function(t){var n=[],r;e.each(this.targets,function(e,r){e!=t&&(n[n.length]=e)},this),this.targets=n,r=[],e.each(this.validDrops,function(e,n){e!==t&&(r[r.length]=e)}),this.validDrops=r},getDrop:function(t){var n=!1,r=e.one(t);return r instanceof e.Node&&e.each(this.targets,function(e,t){r.compareTo(e.get("node"))&&(n=e)}),n}},!0)},"3.7.2",{requires:["dd-ddm"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop.js b/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop.js
rename to lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop.js
index 7e78627577e..5a8a4f90754 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm-drop/dd-ddm-drop.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -403,4 +403,4 @@ YUI.add('dd-ddm-drop', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-ddm"]});
+}, '3.7.2', {"requires": ["dd-ddm"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm/dd-ddm-coverage.js b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-coverage.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/dd-ddm/dd-ddm-coverage.js
rename to lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-coverage.js
index a12379b95eb..6bda595b831 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm/dd-ddm-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-ddm/dd-ddm.js"] = {
path: "build/dd-ddm/dd-ddm.js",
code: []
};
-_yuitest_coverage["build/dd-ddm/dd-ddm.js"].code=["YUI.add('dd-ddm', function (Y, NAME) {","",""," /**"," * Extends the dd-ddm-base Class to add support for the viewport shim to allow a draggable node to drag to be dragged over an iframe or any other node that traps mousemove events."," * It is also required to have Drop Targets enabled, as the viewport shim will contain the shims for the Drop Targets."," * @module dd"," * @submodule dd-ddm"," * @for DDM"," * @namespace DD"," */"," Y.mix(Y.DD.DDM, {"," /**"," * @private"," * @property _pg"," * @description The shim placed over the screen to track the mousemove event."," * @type {Node}"," */"," _pg: null,"," /**"," * @private"," * @property _debugShim"," * @description Set this to true to set the shims opacity to .5 for debugging it, default: false."," * @type {Boolean}"," */"," _debugShim: false,"," _activateTargets: function() { },"," _deactivateTargets: function() {},"," _startDrag: function() {"," if (this.activeDrag && this.activeDrag.get('useShim')) {"," this._shimming = true;"," this._pg_activate();"," this._activateTargets();"," }"," },"," _endDrag: function() {"," this._pg_deactivate();"," this._deactivateTargets();"," },"," /**"," * @private"," * @method _pg_deactivate"," * @description Deactivates the shim"," */"," _pg_deactivate: function() {"," this._pg.setStyle('display', 'none');"," },"," /**"," * @private"," * @method _pg_activate"," * @description Activates the shim"," */"," _pg_activate: function() {"," if (!this._pg) {"," this._createPG();"," }"," var ah = this.activeDrag.get('activeHandle'), cur = 'auto';"," if (ah) {"," cur = ah.getStyle('cursor');"," }"," if (cur == 'auto') {"," cur = this.get('dragCursor');"," }"," "," this._pg_size();"," this._pg.setStyles({"," top: 0,"," left: 0,"," display: 'block',"," opacity: ((this._debugShim) ? '.5' : '0'),"," cursor: cur"," });"," },"," /**"," * @private"," * @method _pg_size"," * @description Sizes the shim on: activatation, window:scroll, window:resize"," */"," _pg_size: function() {"," if (this.activeDrag) {"," var b = Y.one('body'),"," h = b.get('docHeight'),"," w = b.get('docWidth');"," this._pg.setStyles({"," height: h + 'px',"," width: w + 'px'"," });"," }"," },"," /**"," * @private"," * @method _createPG"," * @description Creates the shim and adds it's listeners to it."," */"," _createPG: function() {"," var pg = Y.Node.create(''),"," bd = Y.one('body'), win;"," pg.setStyles({"," top: '0',"," left: '0',"," position: 'absolute',"," zIndex: '9999',"," overflow: 'hidden',"," backgroundColor: 'red',"," display: 'none',"," height: '5px',"," width: '5px'"," });"," pg.set('id', Y.stamp(pg));"," pg.addClass(Y.DD.DDM.CSS_PREFIX + '-shim');"," bd.prepend(pg);"," this._pg = pg;"," this._pg.on('mousemove', Y.throttle(Y.bind(this._move, this), this.get('throttleTime')));"," this._pg.on('mouseup', Y.bind(this._end, this));"," "," win = Y.one('win');"," Y.on('window:resize', Y.bind(this._pg_size, this));"," win.on('scroll', Y.bind(this._pg_size, this));"," } "," }, true);","","","","","}, '3.7.1', {\"requires\": [\"dd-ddm-base\", \"event-resize\"]});"];
+_yuitest_coverage["build/dd-ddm/dd-ddm.js"].code=["YUI.add('dd-ddm', function (Y, NAME) {","",""," /**"," * Extends the dd-ddm-base Class to add support for the viewport shim to allow a draggable node to drag to be dragged over an iframe or any other node that traps mousemove events."," * It is also required to have Drop Targets enabled, as the viewport shim will contain the shims for the Drop Targets."," * @module dd"," * @submodule dd-ddm"," * @for DDM"," * @namespace DD"," */"," Y.mix(Y.DD.DDM, {"," /**"," * @private"," * @property _pg"," * @description The shim placed over the screen to track the mousemove event."," * @type {Node}"," */"," _pg: null,"," /**"," * @private"," * @property _debugShim"," * @description Set this to true to set the shims opacity to .5 for debugging it, default: false."," * @type {Boolean}"," */"," _debugShim: false,"," _activateTargets: function() { },"," _deactivateTargets: function() {},"," _startDrag: function() {"," if (this.activeDrag && this.activeDrag.get('useShim')) {"," this._shimming = true;"," this._pg_activate();"," this._activateTargets();"," }"," },"," _endDrag: function() {"," this._pg_deactivate();"," this._deactivateTargets();"," },"," /**"," * @private"," * @method _pg_deactivate"," * @description Deactivates the shim"," */"," _pg_deactivate: function() {"," this._pg.setStyle('display', 'none');"," },"," /**"," * @private"," * @method _pg_activate"," * @description Activates the shim"," */"," _pg_activate: function() {"," if (!this._pg) {"," this._createPG();"," }"," var ah = this.activeDrag.get('activeHandle'), cur = 'auto';"," if (ah) {"," cur = ah.getStyle('cursor');"," }"," if (cur == 'auto') {"," cur = this.get('dragCursor');"," }"," "," this._pg_size();"," this._pg.setStyles({"," top: 0,"," left: 0,"," display: 'block',"," opacity: ((this._debugShim) ? '.5' : '0'),"," cursor: cur"," });"," },"," /**"," * @private"," * @method _pg_size"," * @description Sizes the shim on: activatation, window:scroll, window:resize"," */"," _pg_size: function() {"," if (this.activeDrag) {"," var b = Y.one('body'),"," h = b.get('docHeight'),"," w = b.get('docWidth');"," this._pg.setStyles({"," height: h + 'px',"," width: w + 'px'"," });"," }"," },"," /**"," * @private"," * @method _createPG"," * @description Creates the shim and adds it's listeners to it."," */"," _createPG: function() {"," var pg = Y.Node.create(''),"," bd = Y.one('body'), win;"," pg.setStyles({"," top: '0',"," left: '0',"," position: 'absolute',"," zIndex: '9999',"," overflow: 'hidden',"," backgroundColor: 'red',"," display: 'none',"," height: '5px',"," width: '5px'"," });"," pg.set('id', Y.stamp(pg));"," pg.addClass(Y.DD.DDM.CSS_PREFIX + '-shim');"," bd.prepend(pg);"," this._pg = pg;"," this._pg.on('mousemove', Y.throttle(Y.bind(this._move, this), this.get('throttleTime')));"," this._pg.on('mouseup', Y.bind(this._end, this));"," "," win = Y.one('win');"," Y.on('window:resize', Y.bind(this._pg_size, this));"," win.on('scroll', Y.bind(this._pg_size, this));"," } "," }, true);","","","","","}, '3.7.2', {\"requires\": [\"dd-ddm-base\", \"event-resize\"]});"];
_yuitest_coverage["build/dd-ddm/dd-ddm.js"].lines = {"1":0,"12":0,"30":0,"31":0,"32":0,"33":0,"37":0,"38":0,"46":0,"54":0,"55":0,"57":0,"58":0,"59":0,"61":0,"62":0,"65":0,"66":0,"80":0,"81":0,"84":0,"96":0,"98":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"116":0,"117":0,"118":0};
_yuitest_coverage["build/dd-ddm/dd-ddm.js"].functions = {"_startDrag:29":0,"_endDrag:36":0,"_pg_deactivate:45":0,"_pg_activate:53":0,"_pg_size:79":0,"_createPG:95":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-ddm/dd-ddm.js"].coveredLines = 32;
@@ -200,4 +200,4 @@ win.on('scroll', Y.bind(this._pg_size, this));
-}, '3.7.1', {"requires": ["dd-ddm-base", "event-resize"]});
+}, '3.7.2', {"requires": ["dd-ddm-base", "event-resize"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm/dd-ddm-debug.js b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-debug.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dd-ddm/dd-ddm-debug.js
rename to lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-debug.js
index 9eb967f6877..1334c758071 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm/dd-ddm-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -128,4 +128,4 @@ YUI.add('dd-ddm', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-ddm-base", "event-resize"]});
+}, '3.7.2', {"requires": ["dd-ddm-base", "event-resize"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm/dd-ddm-min.js b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-min.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/dd-ddm/dd-ddm-min.js
rename to lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-min.js
index e270d1a3428..565b21bff76 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm/dd-ddm-min.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-ddm",function(e,t){e.mix(e.DD.DDM,{_pg:null,_debugShim:!1,_activateTargets:function(){},_deactivateTargets:function(){},_startDrag:function(){this.activeDrag&&this.activeDrag.get("useShim")&&(this._shimming=!0,this._pg_activate(),this._activateTargets())},_endDrag:function(){this._pg_deactivate(),this._deactivateTargets()},_pg_deactivate:function(){this._pg.setStyle("display","none")},_pg_activate:function(){this._pg||this._createPG();var e=this.activeDrag.get("activeHandle"),t="auto";e&&(t=e.getStyle("cursor")),t=="auto"&&(t=this.get("dragCursor")),this._pg_size(),this._pg.setStyles({top:0,left:0,display:"block",opacity:this._debugShim?".5":"0",cursor:t})},_pg_size:function(){if(this.activeDrag){var t=e.one("body"),n=t.get("docHeight"),r=t.get("docWidth");this._pg.setStyles({height:n+"px",width:r+"px"})}},_createPG:function(){var t=e.Node.create(""),n=e.one("body"),r;t.setStyles({top:"0",left:"0",position:"absolute",zIndex:"9999",overflow:"hidden",backgroundColor:"red",display:"none",height:"5px",width:"5px"}),t.set("id",e.stamp(t)),t.addClass(e.DD.DDM.CSS_PREFIX+"-shim"),n.prepend(t),this._pg=t,this._pg.on("mousemove",e.throttle(e.bind(this._move,this),this.get("throttleTime"))),this._pg.on("mouseup",e.bind(this._end,this)),r=e.one("win"),e.on("window:resize",e.bind(this._pg_size,this)),r.on("scroll",e.bind(this._pg_size,this))}},!0)},"3.7.1",{requires:["dd-ddm-base","event-resize"]});
+YUI.add("dd-ddm",function(e,t){e.mix(e.DD.DDM,{_pg:null,_debugShim:!1,_activateTargets:function(){},_deactivateTargets:function(){},_startDrag:function(){this.activeDrag&&this.activeDrag.get("useShim")&&(this._shimming=!0,this._pg_activate(),this._activateTargets())},_endDrag:function(){this._pg_deactivate(),this._deactivateTargets()},_pg_deactivate:function(){this._pg.setStyle("display","none")},_pg_activate:function(){this._pg||this._createPG();var e=this.activeDrag.get("activeHandle"),t="auto";e&&(t=e.getStyle("cursor")),t=="auto"&&(t=this.get("dragCursor")),this._pg_size(),this._pg.setStyles({top:0,left:0,display:"block",opacity:this._debugShim?".5":"0",cursor:t})},_pg_size:function(){if(this.activeDrag){var t=e.one("body"),n=t.get("docHeight"),r=t.get("docWidth");this._pg.setStyles({height:n+"px",width:r+"px"})}},_createPG:function(){var t=e.Node.create(""),n=e.one("body"),r;t.setStyles({top:"0",left:"0",position:"absolute",zIndex:"9999",overflow:"hidden",backgroundColor:"red",display:"none",height:"5px",width:"5px"}),t.set("id",e.stamp(t)),t.addClass(e.DD.DDM.CSS_PREFIX+"-shim"),n.prepend(t),this._pg=t,this._pg.on("mousemove",e.throttle(e.bind(this._move,this),this.get("throttleTime"))),this._pg.on("mouseup",e.bind(this._end,this)),r=e.one("win"),e.on("window:resize",e.bind(this._pg_size,this)),r.on("scroll",e.bind(this._pg_size,this))}},!0)},"3.7.2",{requires:["dd-ddm-base","event-resize"]});
diff --git a/lib/yuilib/3.7.1/build/dd-ddm/dd-ddm.js b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dd-ddm/dd-ddm.js
rename to lib/yuilib/3.7.2/build/dd-ddm/dd-ddm.js
index 9eb967f6877..1334c758071 100644
--- a/lib/yuilib/3.7.1/build/dd-ddm/dd-ddm.js
+++ b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -128,4 +128,4 @@ YUI.add('dd-ddm', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-ddm-base", "event-resize"]});
+}, '3.7.2', {"requires": ["dd-ddm-base", "event-resize"]});
diff --git a/lib/yuilib/3.7.1/build/dd-delegate/dd-delegate-coverage.js b/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-delegate/dd-delegate-coverage.js
rename to lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-coverage.js
index 581e65ee95b..02351fe196e 100644
--- a/lib/yuilib/3.7.1/build/dd-delegate/dd-delegate-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-delegate/dd-delegate.js"] = {
path: "build/dd-delegate/dd-delegate.js",
code: []
};
-_yuitest_coverage["build/dd-delegate/dd-delegate.js"].code=["YUI.add('dd-delegate', function (Y, NAME) {","",""," /**"," * Provides the ability to drag multiple nodes under a container element using only one Y.DD.Drag instance as a delegate."," * @module dd"," * @submodule dd-delegate"," */ "," /**"," * Provides the ability to drag multiple nodes under a container element using only one Y.DD.Drag instance as a delegate."," * @class Delegate"," * @extends Base"," * @constructor"," * @namespace DD"," */","",""," var Delegate = function(o) {"," Delegate.superclass.constructor.apply(this, arguments);"," },"," CONT = 'container',"," NODES = 'nodes',"," _tmpNode = Y.Node.create('Temp Node');","",""," Y.extend(Delegate, Y.Base, {"," /**"," * @private"," * @property _bubbleTargets"," * @description The default bubbleTarget for this object. Default: Y.DD.DDM"," */"," _bubbleTargets: Y.DD.DDM,"," /**"," * @property dd"," * @description A reference to the temporary dd instance used under the hood."," */ "," dd: null,"," /**"," * @property _shimState"," * @private"," * @description The state of the Y.DD.DDM._noShim property to it can be reset."," */ "," _shimState: null,"," /**"," * @private"," * @property _handles"," * @description Array of event handles to be destroyed"," */"," _handles: null,"," /**"," * @private"," * @method _onNodeChange"," * @description Listens to the nodeChange event and sets the dragNode on the temp dd instance."," * @param {Event} e The Event."," */"," _onNodeChange: function(e) {"," this.set('dragNode', e.newVal);"," },"," /**"," * @private"," * @method _afterDragEnd"," * @description Listens for the drag:end event and updates the temp dd instance."," * @param {Event} e The Event."," */"," _afterDragEnd: function(e) {"," Y.DD.DDM._noShim = this._shimState;",""," this.set('lastNode', this.dd.get('node'));"," this.get('lastNode').removeClass(Y.DD.DDM.CSS_PREFIX + '-dragging');"," this.dd._unprep();"," this.dd.set('node', _tmpNode);"," },"," /**"," * @private"," * @method _delMouseDown"," * @description The callback for the Y.DD.Delegate instance used"," * @param {Event} e The MouseDown Event."," */"," _delMouseDown: function(e) {"," var tar = e.currentTarget,"," dd = this.dd,"," dNode = tar,"," config = this.get('dragConfig');"," "," if (tar.test(this.get(NODES)) && !tar.test(this.get('invalid'))) {"," this._shimState = Y.DD.DDM._noShim;"," Y.DD.DDM._noShim = true;"," this.set('currentNode', tar);"," dd.set('node', tar);"," if (config && config.dragNode) {"," dNode = config.dragNode;"," } else if (dd.proxy) {"," dNode = Y.DD.DDM._proxy;"," }"," dd.set('dragNode', dNode);"," dd._prep();"," "," dd.fire('drag:mouseDown', { ev: e });"," }"," },"," /**"," * @private"," * @method _onMouseEnter"," * @description Sets the target shim state"," * @param {Event} e The MouseEnter Event"," */"," _onMouseEnter: function(e) {"," this._shimState = Y.DD.DDM._noShim;"," Y.DD.DDM._noShim = true;"," },"," /**"," * @private"," * @method _onMouseLeave"," * @description Resets the target shim state"," * @param {Event} e The MouseLeave Event"," */"," _onMouseLeave: function(e) {"," Y.DD.DDM._noShim = this._shimState;"," },"," initializer: function(cfg) {"," this._handles = [];"," //Create a tmp DD instance under the hood."," //var conf = Y.clone(this.get('dragConfig') || {}),"," var conf = this.get('dragConfig') || {},"," cont = this.get(CONT);",""," conf.node = _tmpNode.cloneNode(true);"," conf.bubbleTargets = this;",""," if (this.get('handles')) {"," conf.handles = this.get('handles');"," }",""," this.dd = new Y.DD.Drag(conf);",""," //On end drag, detach the listeners"," this.dd.after('drag:end', Y.bind(this._afterDragEnd, this));"," this.dd.on('dragNodeChange', Y.bind(this._onNodeChange, this));"," this.dd.after('drag:mouseup', function() {"," this._unprep();"," });",""," //Attach the delegate to the container"," this._handles.push(Y.delegate(Y.DD.Drag.START_EVENT, Y.bind(this._delMouseDown, this), cont, this.get(NODES)));",""," this._handles.push(Y.on('mouseenter', Y.bind(this._onMouseEnter, this), cont));",""," this._handles.push(Y.on('mouseleave', Y.bind(this._onMouseLeave, this), cont));",""," Y.later(50, this, this.syncTargets);"," Y.DD.DDM.regDelegate(this);"," },"," /**"," * @method syncTargets"," * @description Applies the Y.Plugin.Drop to all nodes matching the cont + nodes selector query."," * @return {Self}"," * @chainable"," */ "," syncTargets: function() {"," if (!Y.Plugin.Drop || this.get('destroyed')) {"," return;"," }"," var items, groups, config;",""," if (this.get('target')) {"," items = Y.one(this.get(CONT)).all(this.get(NODES));"," groups = this.dd.get('groups');"," config = this.get('dragConfig');"," "," if (config && config.groups) {"," groups = config.groups;"," }",""," items.each(function(i) {"," this.createDrop(i, groups);"," }, this);"," }"," return this;"," },"," /**"," * @method createDrop"," * @description Apply the Drop plugin to this node"," * @param {Node} node The Node to apply the plugin to"," * @param {Array} groups The default groups to assign this target to."," * @return Node"," */"," createDrop: function(node, groups) {"," var config = {"," useShim: false,"," bubbleTargets: this"," };",""," if (!node.drop) {"," node.plug(Y.Plugin.Drop, config);"," }"," node.drop.set('groups', groups);"," return node;"," },"," destructor: function() {"," if (this.dd) {"," this.dd.destroy();"," }"," if (Y.Plugin.Drop) {"," var targets = Y.one(this.get(CONT)).all(this.get(NODES));"," targets.unplug(Y.Plugin.Drop);"," }"," Y.each(this._handles, function(v) {"," v.detach();"," });"," }"," }, {"," NAME: 'delegate',"," ATTRS: {"," /**"," * @attribute container"," * @description A selector query to get the container to listen for mousedown events on. All \"nodes\" should be a child of this container."," * @type String"," */ "," container: {"," value: 'body'"," },"," /**"," * @attribute nodes"," * @description A selector query to get the children of the \"container\" to make draggable elements from."," * @type String"," */ "," nodes: {"," value: '.dd-draggable'"," },"," /**"," * @attribute invalid"," * @description A selector query to test a node to see if it's an invalid item."," * @type String"," */ "," invalid: {"," value: 'input, select, button, a, textarea'"," },"," /**"," * @attribute lastNode"," * @description Y.Node instance of the last item dragged."," * @type Node"," */ "," lastNode: {"," value: _tmpNode"," },"," /**"," * @attribute currentNode"," * @description Y.Node instance of the dd node."," * @type Node"," */ "," currentNode: {"," value: _tmpNode"," },"," /**"," * @attribute dragNode"," * @description Y.Node instance of the dd dragNode."," * @type Node"," */ "," dragNode: {"," value: _tmpNode"," },"," /**"," * @attribute over"," * @description Is the mouse currently over the container"," * @type Boolean"," */ "," over: {"," value: false"," },"," /**"," * @attribute target"," * @description Should the items also be a drop target."," * @type Boolean"," */ "," target: {"," value: false"," },"," /**"," * @attribute dragConfig"," * @description The default config to be used when creating the DD instance."," * @type Object"," */ "," dragConfig: {"," value: null"," },"," /**"," * @attribute handles"," * @description The handles config option added to the temp DD instance."," * @type Array"," */ "," handles: {"," value: null"," }"," }"," });",""," Y.mix(Y.DD.DDM, {"," /**"," * @private"," * @for DDM"," * @property _delegates"," * @description Holder for all Y.DD.Delegate instances"," * @type Array"," */"," _delegates: [],"," /**"," * @for DDM"," * @method regDelegate"," * @description Register a Delegate with the DDM"," */"," regDelegate: function(del) {"," this._delegates.push(del);"," },"," /**"," * @for DDM"," * @method getDelegate"," * @description Get a delegate instance from a container node"," * @return Y.DD.Delegate"," */"," getDelegate: function(node) {"," var del = null;"," node = Y.one(node);"," Y.each(this._delegates, function(v) {"," if (node.test(v.get(CONT))) {"," del = v;"," }"," }, this);"," return del;"," }"," });",""," Y.namespace('DD'); "," Y.DD.Delegate = Delegate;","","","","","}, '3.7.1', {\"requires\": [\"dd-drag\", \"dd-drop-plugin\", \"event-mouseenter\"]});"];
+_yuitest_coverage["build/dd-delegate/dd-delegate.js"].code=["YUI.add('dd-delegate', function (Y, NAME) {","",""," /**"," * Provides the ability to drag multiple nodes under a container element using only one Y.DD.Drag instance as a delegate."," * @module dd"," * @submodule dd-delegate"," */ "," /**"," * Provides the ability to drag multiple nodes under a container element using only one Y.DD.Drag instance as a delegate."," * @class Delegate"," * @extends Base"," * @constructor"," * @namespace DD"," */","",""," var Delegate = function(o) {"," Delegate.superclass.constructor.apply(this, arguments);"," },"," CONT = 'container',"," NODES = 'nodes',"," _tmpNode = Y.Node.create('Temp Node');","",""," Y.extend(Delegate, Y.Base, {"," /**"," * @private"," * @property _bubbleTargets"," * @description The default bubbleTarget for this object. Default: Y.DD.DDM"," */"," _bubbleTargets: Y.DD.DDM,"," /**"," * @property dd"," * @description A reference to the temporary dd instance used under the hood."," */ "," dd: null,"," /**"," * @property _shimState"," * @private"," * @description The state of the Y.DD.DDM._noShim property to it can be reset."," */ "," _shimState: null,"," /**"," * @private"," * @property _handles"," * @description Array of event handles to be destroyed"," */"," _handles: null,"," /**"," * @private"," * @method _onNodeChange"," * @description Listens to the nodeChange event and sets the dragNode on the temp dd instance."," * @param {Event} e The Event."," */"," _onNodeChange: function(e) {"," this.set('dragNode', e.newVal);"," },"," /**"," * @private"," * @method _afterDragEnd"," * @description Listens for the drag:end event and updates the temp dd instance."," * @param {Event} e The Event."," */"," _afterDragEnd: function(e) {"," Y.DD.DDM._noShim = this._shimState;",""," this.set('lastNode', this.dd.get('node'));"," this.get('lastNode').removeClass(Y.DD.DDM.CSS_PREFIX + '-dragging');"," this.dd._unprep();"," this.dd.set('node', _tmpNode);"," },"," /**"," * @private"," * @method _delMouseDown"," * @description The callback for the Y.DD.Delegate instance used"," * @param {Event} e The MouseDown Event."," */"," _delMouseDown: function(e) {"," var tar = e.currentTarget,"," dd = this.dd,"," dNode = tar,"," config = this.get('dragConfig');"," "," if (tar.test(this.get(NODES)) && !tar.test(this.get('invalid'))) {"," this._shimState = Y.DD.DDM._noShim;"," Y.DD.DDM._noShim = true;"," this.set('currentNode', tar);"," dd.set('node', tar);"," if (config && config.dragNode) {"," dNode = config.dragNode;"," } else if (dd.proxy) {"," dNode = Y.DD.DDM._proxy;"," }"," dd.set('dragNode', dNode);"," dd._prep();"," "," dd.fire('drag:mouseDown', { ev: e });"," }"," },"," /**"," * @private"," * @method _onMouseEnter"," * @description Sets the target shim state"," * @param {Event} e The MouseEnter Event"," */"," _onMouseEnter: function(e) {"," this._shimState = Y.DD.DDM._noShim;"," Y.DD.DDM._noShim = true;"," },"," /**"," * @private"," * @method _onMouseLeave"," * @description Resets the target shim state"," * @param {Event} e The MouseLeave Event"," */"," _onMouseLeave: function(e) {"," Y.DD.DDM._noShim = this._shimState;"," },"," initializer: function(cfg) {"," this._handles = [];"," //Create a tmp DD instance under the hood."," //var conf = Y.clone(this.get('dragConfig') || {}),"," var conf = this.get('dragConfig') || {},"," cont = this.get(CONT);",""," conf.node = _tmpNode.cloneNode(true);"," conf.bubbleTargets = this;",""," if (this.get('handles')) {"," conf.handles = this.get('handles');"," }",""," this.dd = new Y.DD.Drag(conf);",""," //On end drag, detach the listeners"," this.dd.after('drag:end', Y.bind(this._afterDragEnd, this));"," this.dd.on('dragNodeChange', Y.bind(this._onNodeChange, this));"," this.dd.after('drag:mouseup', function() {"," this._unprep();"," });",""," //Attach the delegate to the container"," this._handles.push(Y.delegate(Y.DD.Drag.START_EVENT, Y.bind(this._delMouseDown, this), cont, this.get(NODES)));",""," this._handles.push(Y.on('mouseenter', Y.bind(this._onMouseEnter, this), cont));",""," this._handles.push(Y.on('mouseleave', Y.bind(this._onMouseLeave, this), cont));",""," Y.later(50, this, this.syncTargets);"," Y.DD.DDM.regDelegate(this);"," },"," /**"," * @method syncTargets"," * @description Applies the Y.Plugin.Drop to all nodes matching the cont + nodes selector query."," * @return {Self}"," * @chainable"," */ "," syncTargets: function() {"," if (!Y.Plugin.Drop || this.get('destroyed')) {"," return;"," }"," var items, groups, config;",""," if (this.get('target')) {"," items = Y.one(this.get(CONT)).all(this.get(NODES));"," groups = this.dd.get('groups');"," config = this.get('dragConfig');"," "," if (config && config.groups) {"," groups = config.groups;"," }",""," items.each(function(i) {"," this.createDrop(i, groups);"," }, this);"," }"," return this;"," },"," /**"," * @method createDrop"," * @description Apply the Drop plugin to this node"," * @param {Node} node The Node to apply the plugin to"," * @param {Array} groups The default groups to assign this target to."," * @return Node"," */"," createDrop: function(node, groups) {"," var config = {"," useShim: false,"," bubbleTargets: this"," };",""," if (!node.drop) {"," node.plug(Y.Plugin.Drop, config);"," }"," node.drop.set('groups', groups);"," return node;"," },"," destructor: function() {"," if (this.dd) {"," this.dd.destroy();"," }"," if (Y.Plugin.Drop) {"," var targets = Y.one(this.get(CONT)).all(this.get(NODES));"," targets.unplug(Y.Plugin.Drop);"," }"," Y.each(this._handles, function(v) {"," v.detach();"," });"," }"," }, {"," NAME: 'delegate',"," ATTRS: {"," /**"," * @attribute container"," * @description A selector query to get the container to listen for mousedown events on. All \"nodes\" should be a child of this container."," * @type String"," */ "," container: {"," value: 'body'"," },"," /**"," * @attribute nodes"," * @description A selector query to get the children of the \"container\" to make draggable elements from."," * @type String"," */ "," nodes: {"," value: '.dd-draggable'"," },"," /**"," * @attribute invalid"," * @description A selector query to test a node to see if it's an invalid item."," * @type String"," */ "," invalid: {"," value: 'input, select, button, a, textarea'"," },"," /**"," * @attribute lastNode"," * @description Y.Node instance of the last item dragged."," * @type Node"," */ "," lastNode: {"," value: _tmpNode"," },"," /**"," * @attribute currentNode"," * @description Y.Node instance of the dd node."," * @type Node"," */ "," currentNode: {"," value: _tmpNode"," },"," /**"," * @attribute dragNode"," * @description Y.Node instance of the dd dragNode."," * @type Node"," */ "," dragNode: {"," value: _tmpNode"," },"," /**"," * @attribute over"," * @description Is the mouse currently over the container"," * @type Boolean"," */ "," over: {"," value: false"," },"," /**"," * @attribute target"," * @description Should the items also be a drop target."," * @type Boolean"," */ "," target: {"," value: false"," },"," /**"," * @attribute dragConfig"," * @description The default config to be used when creating the DD instance."," * @type Object"," */ "," dragConfig: {"," value: null"," },"," /**"," * @attribute handles"," * @description The handles config option added to the temp DD instance."," * @type Array"," */ "," handles: {"," value: null"," }"," }"," });",""," Y.mix(Y.DD.DDM, {"," /**"," * @private"," * @for DDM"," * @property _delegates"," * @description Holder for all Y.DD.Delegate instances"," * @type Array"," */"," _delegates: [],"," /**"," * @for DDM"," * @method regDelegate"," * @description Register a Delegate with the DDM"," */"," regDelegate: function(del) {"," this._delegates.push(del);"," },"," /**"," * @for DDM"," * @method getDelegate"," * @description Get a delegate instance from a container node"," * @return Y.DD.Delegate"," */"," getDelegate: function(node) {"," var del = null;"," node = Y.one(node);"," Y.each(this._delegates, function(v) {"," if (node.test(v.get(CONT))) {"," del = v;"," }"," }, this);"," return del;"," }"," });",""," Y.namespace('DD'); "," Y.DD.Delegate = Delegate;","","","","","}, '3.7.2', {\"requires\": [\"dd-drag\", \"dd-drop-plugin\", \"event-mouseenter\"]});"];
_yuitest_coverage["build/dd-delegate/dd-delegate.js"].lines = {"1":0,"18":0,"19":0,"26":0,"57":0,"66":0,"68":0,"69":0,"70":0,"71":0,"80":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"95":0,"96":0,"98":0,"108":0,"109":0,"118":0,"121":0,"124":0,"127":0,"128":0,"130":0,"131":0,"134":0,"137":0,"138":0,"139":0,"140":0,"144":0,"146":0,"148":0,"150":0,"151":0,"160":0,"161":0,"163":0,"165":0,"166":0,"167":0,"168":0,"170":0,"171":0,"174":0,"175":0,"178":0,"188":0,"193":0,"194":0,"196":0,"197":0,"200":0,"201":0,"203":0,"204":0,"205":0,"207":0,"208":0,"297":0,"312":0,"321":0,"322":0,"323":0,"324":0,"325":0,"328":0,"332":0,"333":0};
_yuitest_coverage["build/dd-delegate/dd-delegate.js"].functions = {"Delegate:18":0,"_onNodeChange:56":0,"_afterDragEnd:65":0,"_delMouseDown:79":0,"_onMouseEnter:107":0,"_onMouseLeave:117":0,"(anonymous 2):139":0,"initializer:120":0,"(anonymous 3):174":0,"syncTargets:159":0,"createDrop:187":0,"(anonymous 4):207":0,"destructor:199":0,"regDelegate:311":0,"(anonymous 5):323":0,"getDelegate:320":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-delegate/dd-delegate.js"].coveredLines = 76;
@@ -467,4 +467,4 @@ Y.DD.Delegate = Delegate;
-}, '3.7.1', {"requires": ["dd-drag", "dd-drop-plugin", "event-mouseenter"]});
+}, '3.7.2', {"requires": ["dd-drag", "dd-drop-plugin", "event-mouseenter"]});
diff --git a/lib/yuilib/3.7.1/build/dd-delegate/dd-delegate-debug.js b/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-delegate/dd-delegate-debug.js
rename to lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-debug.js
index bffa4c3dffa..947a68289bb 100644
--- a/lib/yuilib/3.7.1/build/dd-delegate/dd-delegate-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -341,4 +341,4 @@ YUI.add('dd-delegate', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag", "dd-drop-plugin", "event-mouseenter"]});
+}, '3.7.2', {"requires": ["dd-drag", "dd-drop-plugin", "event-mouseenter"]});
diff --git a/lib/yuilib/3.7.1/build/dd-delegate/dd-delegate-min.js b/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dd-delegate/dd-delegate-min.js
rename to lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-min.js
index 16b333a2ce0..06ef1626292 100644
--- a/lib/yuilib/3.7.1/build/dd-delegate/dd-delegate-min.js
+++ b/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-delegate",function(e,t){var n=function(e){n.superclass.constructor.apply(this,arguments)},r="container",i="nodes",s=e.Node.create("Temp Node");e.extend(n,e.Base,{_bubbleTargets:e.DD.DDM,dd:null,_shimState:null,_handles:null,_onNodeChange:function(e){this.set("dragNode",e.newVal)},_afterDragEnd:function(t){e.DD.DDM._noShim=this._shimState,this.set("lastNode",this.dd.get("node")),this.get("lastNode").removeClass(e.DD.DDM.CSS_PREFIX+"-dragging"),this.dd._unprep(),this.dd.set("node",s)},_delMouseDown:function(t){var n=t.currentTarget,r=this.dd,s=n,o=this.get("dragConfig");n.test(this.get(i))&&!n.test(this.get("invalid"))&&(this._shimState=e.DD.DDM._noShim,e.DD.DDM._noShim=!0,this.set("currentNode",n),r.set("node",n),o&&o.dragNode?s=o.dragNode:r.proxy&&(s=e.DD.DDM._proxy),r.set("dragNode",s),r._prep(),r.fire("drag:mouseDown",{ev:t}))},_onMouseEnter:function(t){this._shimState=e.DD.DDM._noShim,e.DD.DDM._noShim=!0},_onMouseLeave:function(t){e.DD.DDM._noShim=this._shimState},initializer:function(t){this._handles=[];var n=this.get("dragConfig")||{},o=this.get(r);n.node=s.cloneNode(!0),n.bubbleTargets=this,this.get("handles")&&(n.handles=this.get("handles")),this.dd=new e.DD.Drag(n),this.dd.after("drag:end",e.bind(this._afterDragEnd,this)),this.dd.on("dragNodeChange",e.bind(this._onNodeChange,this)),this.dd.after("drag:mouseup",function(){this._unprep()}),this._handles.push(e.delegate(e.DD.Drag.START_EVENT,e.bind(this._delMouseDown,this),o,this.get(i))),this._handles.push(e.on("mouseenter",e.bind(this._onMouseEnter,this),o)),this._handles.push(e.on("mouseleave",e.bind(this._onMouseLeave,this),o)),e.later(50,this,this.syncTargets),e.DD.DDM.regDelegate(this)},syncTargets:function(){if(!e.Plugin.Drop||this.get("destroyed"))return;var t,n,s;return this.get("target")&&(t=e.one(this.get(r)).all(this.get(i)),n=this.dd.get("groups"),s=this.get("dragConfig"),s&&s.groups&&(n=s.groups),t.each(function(e){this.createDrop(e,n)},this)),this},createDrop:function(t,n){var r={useShim:!1,bubbleTargets:this};return t.drop||t.plug(e.Plugin.Drop,r),t.drop.set("groups",n),t},destructor:function(){this.dd&&this.dd.destroy();if(e.Plugin.Drop){var t=e.one(this.get(r)).all(this.get(i));t.unplug(e.Plugin.Drop)}e.each(this._handles,function(e){e.detach()})}},{NAME:"delegate",ATTRS:{container:{value:"body"},nodes:{value:".dd-draggable"},invalid:{value:"input, select, button, a, textarea"},lastNode:{value:s},currentNode:{value:s},dragNode:{value:s},over:{value:!1},target:{value:!1},dragConfig:{value:null},handles:{value:null}}}),e.mix(e.DD.DDM,{_delegates:[],regDelegate:function(e){this._delegates.push(e)},getDelegate:function(t){var n=null;return t=e.one(t),e.each(this._delegates,function(e){t.test(e.get(r))&&(n=e)},this),n}}),e.namespace("DD"),e.DD.Delegate=n},"3.7.1",{requires:["dd-drag","dd-drop-plugin","event-mouseenter"]});
+YUI.add("dd-delegate",function(e,t){var n=function(e){n.superclass.constructor.apply(this,arguments)},r="container",i="nodes",s=e.Node.create("Temp Node");e.extend(n,e.Base,{_bubbleTargets:e.DD.DDM,dd:null,_shimState:null,_handles:null,_onNodeChange:function(e){this.set("dragNode",e.newVal)},_afterDragEnd:function(t){e.DD.DDM._noShim=this._shimState,this.set("lastNode",this.dd.get("node")),this.get("lastNode").removeClass(e.DD.DDM.CSS_PREFIX+"-dragging"),this.dd._unprep(),this.dd.set("node",s)},_delMouseDown:function(t){var n=t.currentTarget,r=this.dd,s=n,o=this.get("dragConfig");n.test(this.get(i))&&!n.test(this.get("invalid"))&&(this._shimState=e.DD.DDM._noShim,e.DD.DDM._noShim=!0,this.set("currentNode",n),r.set("node",n),o&&o.dragNode?s=o.dragNode:r.proxy&&(s=e.DD.DDM._proxy),r.set("dragNode",s),r._prep(),r.fire("drag:mouseDown",{ev:t}))},_onMouseEnter:function(t){this._shimState=e.DD.DDM._noShim,e.DD.DDM._noShim=!0},_onMouseLeave:function(t){e.DD.DDM._noShim=this._shimState},initializer:function(t){this._handles=[];var n=this.get("dragConfig")||{},o=this.get(r);n.node=s.cloneNode(!0),n.bubbleTargets=this,this.get("handles")&&(n.handles=this.get("handles")),this.dd=new e.DD.Drag(n),this.dd.after("drag:end",e.bind(this._afterDragEnd,this)),this.dd.on("dragNodeChange",e.bind(this._onNodeChange,this)),this.dd.after("drag:mouseup",function(){this._unprep()}),this._handles.push(e.delegate(e.DD.Drag.START_EVENT,e.bind(this._delMouseDown,this),o,this.get(i))),this._handles.push(e.on("mouseenter",e.bind(this._onMouseEnter,this),o)),this._handles.push(e.on("mouseleave",e.bind(this._onMouseLeave,this),o)),e.later(50,this,this.syncTargets),e.DD.DDM.regDelegate(this)},syncTargets:function(){if(!e.Plugin.Drop||this.get("destroyed"))return;var t,n,s;return this.get("target")&&(t=e.one(this.get(r)).all(this.get(i)),n=this.dd.get("groups"),s=this.get("dragConfig"),s&&s.groups&&(n=s.groups),t.each(function(e){this.createDrop(e,n)},this)),this},createDrop:function(t,n){var r={useShim:!1,bubbleTargets:this};return t.drop||t.plug(e.Plugin.Drop,r),t.drop.set("groups",n),t},destructor:function(){this.dd&&this.dd.destroy();if(e.Plugin.Drop){var t=e.one(this.get(r)).all(this.get(i));t.unplug(e.Plugin.Drop)}e.each(this._handles,function(e){e.detach()})}},{NAME:"delegate",ATTRS:{container:{value:"body"},nodes:{value:".dd-draggable"},invalid:{value:"input, select, button, a, textarea"},lastNode:{value:s},currentNode:{value:s},dragNode:{value:s},over:{value:!1},target:{value:!1},dragConfig:{value:null},handles:{value:null}}}),e.mix(e.DD.DDM,{_delegates:[],regDelegate:function(e){this._delegates.push(e)},getDelegate:function(t){var n=null;return t=e.one(t),e.each(this._delegates,function(e){t.test(e.get(r))&&(n=e)},this),n}}),e.namespace("DD"),e.DD.Delegate=n},"3.7.2",{requires:["dd-drag","dd-drop-plugin","event-mouseenter"]});
diff --git a/lib/yuilib/3.7.1/build/dd-delegate/dd-delegate.js b/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-delegate/dd-delegate.js
rename to lib/yuilib/3.7.2/build/dd-delegate/dd-delegate.js
index bffa4c3dffa..947a68289bb 100644
--- a/lib/yuilib/3.7.1/build/dd-delegate/dd-delegate.js
+++ b/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -341,4 +341,4 @@ YUI.add('dd-delegate', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag", "dd-drop-plugin", "event-mouseenter"]});
+}, '3.7.2', {"requires": ["dd-drag", "dd-drop-plugin", "event-mouseenter"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drag/dd-drag-coverage.js b/lib/yuilib/3.7.2/build/dd-drag/dd-drag-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-drag/dd-drag-coverage.js
rename to lib/yuilib/3.7.2/build/dd-drag/dd-drag-coverage.js
index c1b74993c45..4aa9baf28e0 100644
--- a/lib/yuilib/3.7.1/build/dd-drag/dd-drag-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-drag/dd-drag-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-drag/dd-drag.js"] = {
path: "build/dd-drag/dd-drag.js",
code: []
};
-_yuitest_coverage["build/dd-drag/dd-drag.js"].code=["YUI.add('dd-drag', function (Y, NAME) {","",""," /**"," * Provides the ability to drag a Node."," * @module dd"," * @submodule dd-drag"," */ "," /**"," * Provides the ability to drag a Node."," * @class Drag"," * @extends Base"," * @constructor"," * @namespace DD"," */",""," var DDM = Y.DD.DDM,"," NODE = 'node',"," DRAGGING = 'dragging',"," DRAG_NODE = 'dragNode',"," OFFSET_HEIGHT = 'offsetHeight',"," OFFSET_WIDTH = 'offsetWidth', "," /**"," * @event drag:mouseup"," * @description Handles the mouseup DOM event, does nothing internally just fires."," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:mouseDown"," * @description Handles the mousedown DOM event, checks to see if you have a valid handle then starts the drag timers."," * @preventable _defMouseDownFn"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - ev
- The original mousedown event.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_MOUSE_DOWN = 'drag:mouseDown',"," /**"," * @event drag:afterMouseDown"," * @description Fires after the mousedown event has been cleared."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - ev
- The original mousedown event.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_AFTER_MOUSE_DOWN = 'drag:afterMouseDown',"," /**"," * @event drag:removeHandle"," * @description Fires after a handle is removed."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - handle
- The handle that was removed.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_REMOVE_HANDLE = 'drag:removeHandle',"," /**"," * @event drag:addHandle"," * @description Fires after a handle is added."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - handle
- The handle that was added.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_ADD_HANDLE = 'drag:addHandle',"," /**"," * @event drag:removeInvalid"," * @description Fires after an invalid selector is removed."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - handle
- The handle that was removed.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_REMOVE_INVALID = 'drag:removeInvalid',"," /**"," * @event drag:addInvalid"," * @description Fires after an invalid selector is added."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - handle
- The handle that was added.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_ADD_INVALID = 'drag:addInvalid',"," /**"," * @event drag:start"," * @description Fires at the start of a drag operation."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The original node position X.
"," * - pageY
- The original node position Y.
"," * - startTime
- The startTime of the event. getTime on the current Date object.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_START = 'drag:start',"," /**"," * @event drag:end"," * @description Fires at the end of a drag operation."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The current node position X.
"," * - pageY
- The current node position Y.
"," * - startTime
- The startTime of the event, from the start event.
"," * - endTime
- The endTime of the event. getTime on the current Date object.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_END = 'drag:end',"," /**"," * @event drag:drag"," * @description Fires every mousemove during a drag operation."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The current node position X.
"," * - pageY
- The current node position Y.
"," * - scroll
- Should a scroll action occur.
"," * - info
- Object hash containing calculated XY arrays: start, xy, delta, offset
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_DRAG = 'drag:drag',"," /**"," * @event drag:align"," * @preventable _defAlignFn"," * @description Fires when this node is aligned."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The current node position X.
"," * - pageY
- The current node position Y.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_ALIGN = 'drag:align',"," /**"," * @event drag:over"," * @description Fires when this node is over a Drop Target. (Fired from dd-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," * - drag
- The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:enter"," * @description Fires when this node enters a Drop Target. (Fired from dd-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," * - drag
- The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:exit"," * @description Fires when this node exits a Drop Target. (Fired from dd-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:drophit"," * @description Fires when this node is dropped on a valid Drop Target. (Fired from dd-ddm-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The best guess on what was dropped on.
"," * - drag
- The drag object at the time of the event.
"," * - others
- An array of all the other drop targets that was dropped on.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:dropmiss"," * @description Fires when this node is dropped on an invalid Drop Target. (Fired from dd-ddm-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The current node position X.
"," * - pageY
- The current node position Y.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," "," Drag = function(o) {"," this._lazyAddAttrs = false;"," Drag.superclass.constructor.apply(this, arguments);",""," var valid = DDM._regDrag(this);"," if (!valid) {"," Y.error('Failed to register node, already in use: ' + o.node);"," }"," };",""," Drag.NAME = 'drag';"," "," /**"," * This property defaults to \"mousedown\", but when drag-gestures is loaded, it is changed to \"gesturemovestart\""," * @static"," * @property START_EVENT"," */"," Drag.START_EVENT = 'mousedown';",""," Drag.ATTRS = {"," /**"," * @attribute node"," * @description Y.Node instance to use as the element to initiate a drag operation"," * @type Node"," */"," node: {"," setter: function(node) {"," if (this._canDrag(node)) {"," return node;"," }"," var n = Y.one(node);"," if (!n) {"," Y.error('DD.Drag: Invalid Node Given: ' + node);"," }"," return n;"," }"," },"," /**"," * @attribute dragNode"," * @description Y.Node instance to use as the draggable element, defaults to node"," * @type Node"," */"," dragNode: {"," setter: function(node) {"," if (this._canDrag(node)) {"," return node;"," }"," var n = Y.one(node);"," if (!n) {"," Y.error('DD.Drag: Invalid dragNode Given: ' + node);"," }"," return n;"," }"," },"," /**"," * @attribute offsetNode"," * @description Offset the drag element by the difference in cursor position: default true"," * @type Boolean"," */"," offsetNode: {"," value: true"," },"," /**"," * @attribute startCentered"," * @description Center the dragNode to the mouse position on drag:start: default false"," * @type Boolean"," */"," startCentered: {"," value: false"," },"," /**"," * @attribute clickPixelThresh"," * @description The number of pixels to move to start a drag operation, default is 3."," * @type Number"," */"," clickPixelThresh: {"," value: DDM.get('clickPixelThresh')"," },"," /**"," * @attribute clickTimeThresh"," * @description The number of milliseconds a mousedown has to pass to start a drag operation, default is 1000."," * @type Number"," */"," clickTimeThresh: {"," value: DDM.get('clickTimeThresh')"," },"," /**"," * @attribute lock"," * @description Set to lock this drag element so that it can't be dragged: default false."," * @type Boolean"," */"," lock: {"," value: false,"," setter: function(lock) {"," if (lock) {"," this.get(NODE).addClass(DDM.CSS_PREFIX + '-locked');"," } else {"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-locked');"," }"," return lock;"," }"," },"," /**"," * @attribute data"," * @description A payload holder to store arbitrary data about this drag object, can be used to store any value."," * @type Mixed"," */"," data: {"," value: false"," },"," /**"," * @attribute move"," * @description If this is false, the drag element will not move with the cursor: default true. Can be used to \"resize\" the element."," * @type Boolean"," */"," move: {"," value: true"," },"," /**"," * @attribute useShim"," * @description Use the protective shim on all drag operations: default true. Only works with dd-ddm, not dd-ddm-base."," * @type Boolean"," */"," useShim: {"," value: true"," },"," /**"," * @attribute activeHandle"," * @description This config option is set by Drag to inform you of which handle fired the drag event (in the case that there are several handles): default false."," * @type Node"," */"," activeHandle: {"," value: false"," },"," /**"," * @attribute primaryButtonOnly"," * @description By default a drag operation will only begin if the mousedown occurred with the primary mouse button. Setting this to false will allow for all mousedown events to trigger a drag."," * @type Boolean"," */"," primaryButtonOnly: {"," value: true"," },"," /**"," * @attribute dragging"," * @description This attribute is not meant to be used by the implementor, it is meant to be used as an Event tracker so you can listen for it to change."," * @type Boolean"," */"," dragging: {"," value: false"," },"," parent: {"," value: false"," },"," /**"," * @attribute target"," * @description This attribute only works if the dd-drop module has been loaded. It will make this node a drop target as well as draggable."," * @type Boolean"," */"," target: {"," value: false,"," setter: function(config) {"," this._handleTarget(config);"," return config;"," }"," },"," /**"," * @attribute dragMode"," * @description This attribute only works if the dd-drop module is active. It will set the dragMode (point, intersect, strict) of this Drag instance."," * @type String"," */"," dragMode: {"," value: null,"," setter: function(mode) {"," return DDM._setDragMode(mode);"," }"," },"," /**"," * @attribute groups"," * @description Array of groups to add this drag into."," * @type Array"," */"," groups: {"," value: ['default'],"," getter: function() {"," if (!this._groups) {"," this._groups = {};"," }"," var ret = [];"," Y.each(this._groups, function(v, k) {"," ret[ret.length] = k;"," });"," return ret;"," },"," setter: function(g) {"," this._groups = {};"," Y.each(g, function(v, k) {"," this._groups[v] = true;"," }, this);"," return g;"," }"," },"," /**"," * @attribute handles"," * @description Array of valid handles to add. Adding something here will set all handles, even if previously added with addHandle"," * @type Array"," */"," handles: {"," value: null,"," setter: function(g) {"," if (g) {"," this._handles = {};"," Y.each(g, function(v, k) {"," var key = v;"," if (v instanceof Y.Node || v instanceof Y.NodeList) {"," key = v._yuid;"," }"," this._handles[key] = v;"," }, this);"," } else {"," this._handles = null;"," }"," return g;"," }"," },"," /**"," * @deprecated"," * @attribute bubbles"," * @description Controls the default bubble parent for this Drag instance. Default: Y.DD.DDM. Set to false to disable bubbling. Use bubbleTargets in config"," * @type Object"," */"," bubbles: {"," setter: function(t) {"," this.addTarget(t);"," return t;"," }"," },"," /**"," * @attribute haltDown"," * @description Should the mousedown event be halted. Default: true"," * @type Boolean"," */"," haltDown: {"," value: true"," }"," };",""," Y.extend(Drag, Y.Base, {"," /**"," * Checks the object for the methods needed to drag the object around. "," * Normally this would be a node instance, but in the case of Graphics, it"," * may be an SVG node or something similar."," * @method _canDrag"," * @private"," * @param {Object} n The object to check"," * @return {Boolean} True or false if the Object contains the methods needed to Drag"," */"," _canDrag: function(n) {"," if (n && n.setXY && n.getXY && n.test && n.contains) {"," return true;"," }"," return false;"," },"," /**"," * @private"," * @property _bubbleTargets"," * @description The default bubbleTarget for this object. Default: Y.DD.DDM"," */"," _bubbleTargets: Y.DD.DDM,"," /**"," * @method addToGroup"," * @description Add this Drag instance to a group, this should be used for on-the-fly group additions."," * @param {String} g The group to add this Drag Instance to."," * @return {Self}"," * @chainable"," */"," addToGroup: function(g) {"," this._groups[g] = true;"," DDM._activateTargets();"," return this;"," },"," /**"," * @method removeFromGroup"," * @description Remove this Drag instance from a group, this should be used for on-the-fly group removals."," * @param {String} g The group to remove this Drag Instance from."," * @return {Self}"," * @chainable"," */"," removeFromGroup: function(g) {"," delete this._groups[g];"," DDM._activateTargets();"," return this;"," },"," /**"," * @property target"," * @description This will be a reference to the Drop instance associated with this drag if the target: true config attribute is set.."," * @type {Object}"," */"," target: null,"," /**"," * @private"," * @method _handleTarget"," * @description Attribute handler for the target config attribute."," * @param {Boolean/Object} config The Config"," */"," _handleTarget: function(config) {"," if (Y.DD.Drop) {"," if (config === false) {"," if (this.target) {"," DDM._unregTarget(this.target);"," this.target = null;"," }"," } else {"," if (!Y.Lang.isObject(config)) {"," config = {};"," }"," config.bubbleTargets = config.bubbleTargets || Y.Object.values(this._yuievt.targets);"," config.node = this.get(NODE);"," config.groups = config.groups || this.get('groups');"," this.target = new Y.DD.Drop(config);"," }"," }"," },"," /**"," * @private"," * @property _groups"," * @description Storage Array for the groups this drag belongs to."," * @type {Array}"," */"," _groups: null,"," /**"," * @private"," * @method _createEvents"," * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling."," */"," _createEvents: function() {"," "," this.publish(EV_MOUSE_DOWN, {"," defaultFn: this._defMouseDownFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," this.publish(EV_ALIGN, {"," defaultFn: this._defAlignFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," this.publish(EV_DRAG, {"," defaultFn: this._defDragFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," this.publish(EV_END, {"," defaultFn: this._defEndFn,"," preventedFn: this._prevEndFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," var ev = ["," EV_AFTER_MOUSE_DOWN,"," EV_REMOVE_HANDLE,"," EV_ADD_HANDLE,"," EV_REMOVE_INVALID,"," EV_ADD_INVALID,"," EV_START,"," 'drag:drophit',"," 'drag:dropmiss',"," 'drag:over',"," 'drag:enter',"," 'drag:exit'"," ];"," "," Y.each(ev, function(v, k) {"," this.publish(v, {"," type: v,"," emitFacade: true,"," bubbles: true,"," preventable: false,"," queuable: false,"," prefix: 'drag'"," });"," }, this);"," },"," /**"," * @private"," * @property _ev_md"," * @description A private reference to the mousedown DOM event"," * @type {EventFacade}"," */"," _ev_md: null,"," /**"," * @private"," * @property _startTime"," * @description The getTime of the mousedown event. Not used, just here in case someone wants/needs to use it."," * @type Date"," */"," _startTime: null,"," /**"," * @private"," * @property _endTime"," * @description The getTime of the mouseup event. Not used, just here in case someone wants/needs to use it."," * @type Date"," */"," _endTime: null,"," /**"," * @private"," * @property _handles"," * @description A private hash of the valid drag handles"," * @type {Object}"," */"," _handles: null,"," /**"," * @private"," * @property _invalids"," * @description A private hash of the invalid selector strings"," * @type {Object}"," */"," _invalids: null,"," /**"," * @private"," * @property _invalidsDefault"," * @description A private hash of the default invalid selector strings: {'textarea': true, 'input': true, 'a': true, 'button': true, 'select': true}"," * @type {Object}"," */"," _invalidsDefault: {'textarea': true, 'input': true, 'a': true, 'button': true, 'select': true },"," /**"," * @private"," * @property _dragThreshMet"," * @description Private flag to see if the drag threshhold was met"," * @type {Boolean}"," */"," _dragThreshMet: null,"," /**"," * @private"," * @property _fromTimeout"," * @description Flag to determine if the drag operation came from a timeout"," * @type {Boolean}"," */"," _fromTimeout: null,"," /**"," * @private"," * @property _clickTimeout"," * @description Holder for the setTimeout call"," * @type {Boolean}"," */"," _clickTimeout: null,"," /**"," * @property deltaXY"," * @description The offset of the mouse position to the element's position"," * @type {Array}"," */"," deltaXY: null,"," /**"," * @property startXY"," * @description The initial mouse position"," * @type {Array}"," */"," startXY: null,"," /**"," * @property nodeXY"," * @description The initial element position"," * @type {Array}"," */"," nodeXY: null,"," /**"," * @property lastXY"," * @description The position of the element as it's moving (for offset calculations)"," * @type {Array}"," */"," lastXY: null,"," /**"," * @property actXY"," * @description The xy that the node will be set to. Changing this will alter the position as it's dragged."," * @type {Array}"," */"," actXY: null,"," /**"," * @property realXY"," * @description The real xy position of the node."," * @type {Array}"," */"," realXY: null,"," /**"," * @property mouseXY"," * @description The XY coords of the mousemove"," * @type {Array}"," */"," mouseXY: null,"," /**"," * @property region"," * @description A region object associated with this drag, used for checking regions while dragging."," * @type Object"," */"," region: null, "," /**"," * @private"," * @method _handleMouseUp"," * @description Handler for the mouseup DOM event"," * @param {EventFacade} ev The Event"," */"," _handleMouseUp: function(ev) {"," this.fire('drag:mouseup');"," this._fixIEMouseUp();"," if (DDM.activeDrag) {"," DDM._end();"," }"," },"," /** "," * @private"," * @method _fixDragStart"," * @description The function we use as the ondragstart handler when we start a drag in Internet Explorer. This keeps IE from blowing up on images as drag handles."," * @param {Event} e The Event"," */"," _fixDragStart: function(e) {"," if (this.validClick(e)) {"," e.preventDefault();"," }"," },"," /** "," * @private"," * @method _ieSelectFix"," * @description The function we use as the onselectstart handler when we start a drag in Internet Explorer"," */"," _ieSelectFix: function() {"," return false;"," },"," /** "," * @private"," * @property _ieSelectBack"," * @description We will hold a copy of the current \"onselectstart\" method on this property, and reset it after we are done using it."," */"," _ieSelectBack: null,"," /**"," * @private"," * @method _fixIEMouseDown"," * @description This method copies the onselectstart listner on the document to the _ieSelectFix property"," */"," _fixIEMouseDown: function(e) {"," if (Y.UA.ie) {"," this._ieSelectBack = Y.config.doc.body.onselectstart;"," Y.config.doc.body.onselectstart = this._ieSelectFix;"," } "," },"," /**"," * @private"," * @method _fixIEMouseUp"," * @description This method copies the _ieSelectFix property back to the onselectstart listner on the document."," */"," _fixIEMouseUp: function() {"," if (Y.UA.ie) {"," Y.config.doc.body.onselectstart = this._ieSelectBack;"," } "," },"," /**"," * @private"," * @method _handleMouseDownEvent"," * @description Handler for the mousedown DOM event"," * @param {EventFacade} ev The Event"," */"," _handleMouseDownEvent: function(ev) {"," this.fire(EV_MOUSE_DOWN, { ev: ev });"," },"," /**"," * @private"," * @method _defMouseDownFn"," * @description Handler for the mousedown DOM event"," * @param {EventFacade} e The Event"," */"," _defMouseDownFn: function(e) {"," var ev = e.ev;",""," this._dragThreshMet = false;"," this._ev_md = ev;"," "," if (this.get('primaryButtonOnly') && ev.button > 1) {"," return false;"," }"," if (this.validClick(ev)) {"," this._fixIEMouseDown(ev);"," if (this.get('haltDown')) {"," ev.halt();"," } else {"," ev.preventDefault();"," }"," "," this._setStartPosition([ev.pageX, ev.pageY]);",""," DDM.activeDrag = this;"," "," this._clickTimeout = Y.later(this.get('clickTimeThresh'), this, this._timeoutCheck);"," }"," this.fire(EV_AFTER_MOUSE_DOWN, { ev: ev });"," },"," /**"," * @method validClick"," * @description Method first checks to see if we have handles, if so it validates the click against the handle. Then if it finds a valid handle, it checks it against the invalid handles list. Returns true if a good handle was used, false otherwise."," * @param {EventFacade} ev The Event"," * @return {Boolean}"," */"," validClick: function(ev) {"," var r = false, n = false,"," tar = ev.target,"," hTest = null,"," els = null,"," nlist = null,"," set = false;"," if (this._handles) {"," Y.each(this._handles, function(i, n) {"," if (i instanceof Y.Node || i instanceof Y.NodeList) {"," if (!r) {"," nlist = i;"," if (nlist instanceof Y.Node) {"," nlist = new Y.NodeList(i._node);"," }"," nlist.each(function(nl) {"," if (nl.contains(tar)) {"," r = true;"," }"," });"," }"," } else if (Y.Lang.isString(n)) {"," //Am I this or am I inside this"," if (tar.test(n + ', ' + n + ' *') && !hTest) {"," hTest = n;"," r = true;"," }"," }"," });"," } else {"," n = this.get(NODE);"," if (n.contains(tar) || n.compareTo(tar)) {"," r = true;"," }"," }"," if (r) {"," if (this._invalids) {"," Y.each(this._invalids, function(i, n) {"," if (Y.Lang.isString(n)) {"," //Am I this or am I inside this"," if (tar.test(n + ', ' + n + ' *')) {"," r = false;"," }"," }"," });"," }"," }"," if (r) {"," if (hTest) {"," els = ev.currentTarget.all(hTest);"," set = false;"," els.each(function(n, i) {"," if ((n.contains(tar) || n.compareTo(tar)) && !set) {"," set = true;"," this.set('activeHandle', n);"," }"," }, this);"," } else {"," this.set('activeHandle', this.get(NODE));"," }"," }"," return r;"," },"," /**"," * @private"," * @method _setStartPosition"," * @description Sets the current position of the Element and calculates the offset"," * @param {Array} xy The XY coords to set the position to."," */"," _setStartPosition: function(xy) {"," this.startXY = xy;"," "," this.nodeXY = this.lastXY = this.realXY = this.get(NODE).getXY();"," "," if (this.get('offsetNode')) {"," this.deltaXY = [(this.startXY[0] - this.nodeXY[0]), (this.startXY[1] - this.nodeXY[1])];"," } else {"," this.deltaXY = [0, 0];"," }"," },"," /**"," * @private"," * @method _timeoutCheck"," * @description The method passed to setTimeout to determine if the clickTimeThreshold was met."," */"," _timeoutCheck: function() {"," if (!this.get('lock') && !this._dragThreshMet && this._ev_md) {"," this._fromTimeout = this._dragThreshMet = true;"," this.start();"," this._alignNode([this._ev_md.pageX, this._ev_md.pageY], true);"," }"," },"," /**"," * @method removeHandle"," * @description Remove a Selector added by addHandle"," * @param {String} str The selector for the handle to be removed. "," * @return {Self}"," * @chainable"," */"," removeHandle: function(str) {"," var key = str;"," if (str instanceof Y.Node || str instanceof Y.NodeList) {"," key = str._yuid;"," }"," if (this._handles[key]) {"," delete this._handles[key];"," this.fire(EV_REMOVE_HANDLE, { handle: str });"," }"," return this;"," },"," /**"," * @method addHandle"," * @description Add a handle to a drag element. Drag only initiates when a mousedown happens on this element."," * @param {String} str The selector to test for a valid handle. Must be a child of the element."," * @return {Self}"," * @chainable"," */"," addHandle: function(str) {"," if (!this._handles) {"," this._handles = {};"," }"," var key = str;"," if (str instanceof Y.Node || str instanceof Y.NodeList) {"," key = str._yuid;"," }"," this._handles[key] = str;"," this.fire(EV_ADD_HANDLE, { handle: str });"," return this;"," },"," /**"," * @method removeInvalid"," * @description Remove an invalid handle added by addInvalid"," * @param {String} str The invalid handle to remove from the internal list."," * @return {Self}"," * @chainable"," */"," removeInvalid: function(str) {"," if (this._invalids[str]) {"," this._invalids[str] = null;"," delete this._invalids[str];"," this.fire(EV_REMOVE_INVALID, { handle: str });"," }"," return this;"," },"," /**"," * @method addInvalid"," * @description Add a selector string to test the handle against. If the test passes the drag operation will not continue."," * @param {String} str The selector to test against to determine if this is an invalid drag handle."," * @return {Self}"," * @chainable"," */"," addInvalid: function(str) {"," if (Y.Lang.isString(str)) {"," this._invalids[str] = true;"," this.fire(EV_ADD_INVALID, { handle: str });"," }"," return this;"," },"," /**"," * @private"," * @method initializer"," * @description Internal init handler"," */"," initializer: function(cfg) {",""," this.get(NODE).dd = this;",""," if (!this.get(NODE).get('id')) {"," var id = Y.stamp(this.get(NODE));"," this.get(NODE).set('id', id);"," }",""," this.actXY = [];"," "," this._invalids = Y.clone(this._invalidsDefault, true);",""," this._createEvents();"," "," if (!this.get(DRAG_NODE)) {"," this.set(DRAG_NODE, this.get(NODE));"," }",""," //Fix for #2528096"," //Don't prep the DD instance until all plugins are loaded."," this.on('initializedChange', Y.bind(this._prep, this));",""," //Shouldn't have to do this.."," this.set('groups', this.get('groups'));"," },"," /**"," * @private"," * @method _prep"," * @description Attach event listners and add classname"," */"," _prep: function() {"," this._dragThreshMet = false;"," var node = this.get(NODE);"," node.addClass(DDM.CSS_PREFIX + '-draggable');"," node.on(Drag.START_EVENT, Y.bind(this._handleMouseDownEvent, this));"," node.on('mouseup', Y.bind(this._handleMouseUp, this));"," node.on('dragstart', Y.bind(this._fixDragStart, this));"," },"," /**"," * @private"," * @method _unprep"," * @description Detach event listeners and remove classname"," */"," _unprep: function() {"," var node = this.get(NODE);"," node.removeClass(DDM.CSS_PREFIX + '-draggable');"," node.detachAll('mouseup');"," node.detachAll('dragstart');"," node.detachAll(Drag.START_EVENT);"," this.mouseXY = [];"," this.deltaXY = [0,0];"," this.startXY = [];"," this.nodeXY = [];"," this.lastXY = [];"," this.actXY = [];"," this.realXY = [];"," },"," /**"," * @method start"," * @description Starts the drag operation"," * @return {Self}"," * @chainable"," */"," start: function() {"," if (!this.get('lock') && !this.get(DRAGGING)) {"," var node = this.get(NODE), ow, oh, xy;"," this._startTime = (new Date()).getTime();",""," DDM._start();"," node.addClass(DDM.CSS_PREFIX + '-dragging');"," this.fire(EV_START, {"," pageX: this.nodeXY[0],"," pageY: this.nodeXY[1],"," startTime: this._startTime"," });"," node = this.get(DRAG_NODE);"," xy = this.nodeXY;"," "," ow = node.get(OFFSET_WIDTH);"," oh = node.get(OFFSET_HEIGHT);"," "," if (this.get('startCentered')) {"," this._setStartPosition([xy[0] + (ow / 2), xy[1] + (oh / 2)]);"," }"," "," "," this.region = {"," '0': xy[0], "," '1': xy[1],"," area: 0,"," top: xy[1],"," right: xy[0] + ow,"," bottom: xy[1] + oh,"," left: xy[0]"," };"," this.set(DRAGGING, true);"," }"," return this;"," },"," /**"," * @method end"," * @description Ends the drag operation"," * @return {Self}"," * @chainable"," */"," end: function() {"," this._endTime = (new Date()).getTime();"," if (this._clickTimeout) {"," this._clickTimeout.cancel();"," }"," this._dragThreshMet = this._fromTimeout = false;",""," if (!this.get('lock') && this.get(DRAGGING)) {"," this.fire(EV_END, {"," pageX: this.lastXY[0],"," pageY: this.lastXY[1],"," startTime: this._startTime,"," endTime: this._endTime"," });"," }"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-dragging');"," this.set(DRAGGING, false);"," this.deltaXY = [0, 0];",""," return this;"," },"," /**"," * @private"," * @method _defEndFn"," * @description Handler for fixing the selection in IE"," */"," _defEndFn: function(e) {"," this._fixIEMouseUp();"," this._ev_md = null;"," },"," /**"," * @private"," * @method _prevEndFn"," * @description Handler for preventing the drag:end event. It will reset the node back to it's start position"," */"," _prevEndFn: function(e) {"," this._fixIEMouseUp();"," //Bug #1852577"," this.get(DRAG_NODE).setXY(this.nodeXY);"," this._ev_md = null;"," this.region = null;"," },"," /**"," * @private"," * @method _align"," * @description Calculates the offsets and set's the XY that the element will move to."," * @param {Array} xy The xy coords to align with."," */"," _align: function(xy) {"," this.fire(EV_ALIGN, {pageX: xy[0], pageY: xy[1] });"," },"," /**"," * @private"," * @method _defAlignFn"," * @description Calculates the offsets and set's the XY that the element will move to."," * @param {EventFacade} e The drag:align event."," */"," _defAlignFn: function(e) {"," this.actXY = [e.pageX - this.deltaXY[0], e.pageY - this.deltaXY[1]];"," },"," /**"," * @private"," * @method _alignNode"," * @description This method performs the alignment before the element move."," * @param {Array} eXY The XY to move the element to, usually comes from the mousemove DOM event."," */"," _alignNode: function(eXY, scroll) {"," this._align(eXY);"," if (!scroll) {"," this._moveNode();"," }"," },"," /**"," * @private"," * @method _moveNode"," * @description This method performs the actual element move."," */"," _moveNode: function(scroll) {"," //if (!this.get(DRAGGING)) {"," // return;"," //}"," var diffXY = [], diffXY2 = [], startXY = this.nodeXY, xy = this.actXY;",""," diffXY[0] = (xy[0] - this.lastXY[0]);"," diffXY[1] = (xy[1] - this.lastXY[1]);",""," diffXY2[0] = (xy[0] - this.nodeXY[0]);"," diffXY2[1] = (xy[1] - this.nodeXY[1]);","",""," this.region = {"," '0': xy[0], "," '1': xy[1],"," area: 0,"," top: xy[1],"," right: xy[0] + this.get(DRAG_NODE).get(OFFSET_WIDTH),"," bottom: xy[1] + this.get(DRAG_NODE).get(OFFSET_HEIGHT),"," left: xy[0]"," };",""," this.fire(EV_DRAG, {"," pageX: xy[0],"," pageY: xy[1],"," scroll: scroll,"," info: {"," start: startXY,"," xy: xy,"," delta: diffXY,"," offset: diffXY2"," } "," });"," "," this.lastXY = xy;"," },"," /**"," * @private"," * @method _defDragFn"," * @description Default function for drag:drag. Fired from _moveNode."," * @param {EventFacade} ev The drag:drag event"," */"," _defDragFn: function(e) {"," if (this.get('move')) {"," if (e.scroll && e.scroll.node) {"," e.scroll.node.set('scrollTop', e.scroll.top);"," e.scroll.node.set('scrollLeft', e.scroll.left);"," }"," this.get(DRAG_NODE).setXY([e.pageX, e.pageY]);"," this.realXY = [e.pageX, e.pageY];"," }"," },"," /**"," * @private"," * @method _move"," * @description Fired from DragDropMgr (DDM) on mousemove."," * @param {EventFacade} ev The mousemove DOM event"," */"," _move: function(ev) {"," if (this.get('lock')) {"," return false;"," }",""," this.mouseXY = [ev.pageX, ev.pageY];"," if (!this._dragThreshMet) {"," var diffX = Math.abs(this.startXY[0] - ev.pageX),"," diffY = Math.abs(this.startXY[1] - ev.pageY);"," if (diffX > this.get('clickPixelThresh') || diffY > this.get('clickPixelThresh')) {"," this._dragThreshMet = true;"," this.start();"," this._alignNode([ev.pageX, ev.pageY]);"," }"," } else {"," if (this._clickTimeout) {"," this._clickTimeout.cancel();"," }"," this._alignNode([ev.pageX, ev.pageY]);"," }"," },"," /**"," * @method stopDrag"," * @description Method will forcefully stop a drag operation. For example calling this from inside an ESC keypress handler will stop this drag."," * @return {Self}"," * @chainable"," */"," stopDrag: function() {"," if (this.get(DRAGGING)) {"," DDM._end();"," }"," return this;"," },"," /**"," * @private"," * @method destructor"," * @description Lifecycle destructor, unreg the drag from the DDM and remove listeners"," */"," destructor: function() {"," this._unprep();"," if (this.target) {"," this.target.destroy();"," }"," DDM._unregDrag(this);"," }"," });"," Y.namespace('DD'); "," Y.DD.Drag = Drag;","","","","","}, '3.7.1', {\"requires\": [\"dd-ddm-base\"]});"];
+_yuitest_coverage["build/dd-drag/dd-drag.js"].code=["YUI.add('dd-drag', function (Y, NAME) {","",""," /**"," * Provides the ability to drag a Node."," * @module dd"," * @submodule dd-drag"," */ "," /**"," * Provides the ability to drag a Node."," * @class Drag"," * @extends Base"," * @constructor"," * @namespace DD"," */",""," var DDM = Y.DD.DDM,"," NODE = 'node',"," DRAGGING = 'dragging',"," DRAG_NODE = 'dragNode',"," OFFSET_HEIGHT = 'offsetHeight',"," OFFSET_WIDTH = 'offsetWidth', "," /**"," * @event drag:mouseup"," * @description Handles the mouseup DOM event, does nothing internally just fires."," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:mouseDown"," * @description Handles the mousedown DOM event, checks to see if you have a valid handle then starts the drag timers."," * @preventable _defMouseDownFn"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - ev
- The original mousedown event.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_MOUSE_DOWN = 'drag:mouseDown',"," /**"," * @event drag:afterMouseDown"," * @description Fires after the mousedown event has been cleared."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - ev
- The original mousedown event.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_AFTER_MOUSE_DOWN = 'drag:afterMouseDown',"," /**"," * @event drag:removeHandle"," * @description Fires after a handle is removed."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - handle
- The handle that was removed.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_REMOVE_HANDLE = 'drag:removeHandle',"," /**"," * @event drag:addHandle"," * @description Fires after a handle is added."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - handle
- The handle that was added.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_ADD_HANDLE = 'drag:addHandle',"," /**"," * @event drag:removeInvalid"," * @description Fires after an invalid selector is removed."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - handle
- The handle that was removed.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_REMOVE_INVALID = 'drag:removeInvalid',"," /**"," * @event drag:addInvalid"," * @description Fires after an invalid selector is added."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * - handle
- The handle that was added.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_ADD_INVALID = 'drag:addInvalid',"," /**"," * @event drag:start"," * @description Fires at the start of a drag operation."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The original node position X.
"," * - pageY
- The original node position Y.
"," * - startTime
- The startTime of the event. getTime on the current Date object.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_START = 'drag:start',"," /**"," * @event drag:end"," * @description Fires at the end of a drag operation."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The current node position X.
"," * - pageY
- The current node position Y.
"," * - startTime
- The startTime of the event, from the start event.
"," * - endTime
- The endTime of the event. getTime on the current Date object.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_END = 'drag:end',"," /**"," * @event drag:drag"," * @description Fires every mousemove during a drag operation."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The current node position X.
"," * - pageY
- The current node position Y.
"," * - scroll
- Should a scroll action occur.
"," * - info
- Object hash containing calculated XY arrays: start, xy, delta, offset
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_DRAG = 'drag:drag',"," /**"," * @event drag:align"," * @preventable _defAlignFn"," * @description Fires when this node is aligned."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The current node position X.
"," * - pageY
- The current node position Y.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_ALIGN = 'drag:align',"," /**"," * @event drag:over"," * @description Fires when this node is over a Drop Target. (Fired from dd-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," * - drag
- The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:enter"," * @description Fires when this node enters a Drop Target. (Fired from dd-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," * - drag
- The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:exit"," * @description Fires when this node exits a Drop Target. (Fired from dd-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:drophit"," * @description Fires when this node is dropped on a valid Drop Target. (Fired from dd-ddm-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The best guess on what was dropped on.
"," * - drag
- The drag object at the time of the event.
"," * - others
- An array of all the other drop targets that was dropped on.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:dropmiss"," * @description Fires when this node is dropped on an invalid Drop Target. (Fired from dd-ddm-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - pageX
- The current node position X.
"," * - pageY
- The current node position Y.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," "," Drag = function(o) {"," this._lazyAddAttrs = false;"," Drag.superclass.constructor.apply(this, arguments);",""," var valid = DDM._regDrag(this);"," if (!valid) {"," Y.error('Failed to register node, already in use: ' + o.node);"," }"," };",""," Drag.NAME = 'drag';"," "," /**"," * This property defaults to \"mousedown\", but when drag-gestures is loaded, it is changed to \"gesturemovestart\""," * @static"," * @property START_EVENT"," */"," Drag.START_EVENT = 'mousedown';",""," Drag.ATTRS = {"," /**"," * @attribute node"," * @description Y.Node instance to use as the element to initiate a drag operation"," * @type Node"," */"," node: {"," setter: function(node) {"," if (this._canDrag(node)) {"," return node;"," }"," var n = Y.one(node);"," if (!n) {"," Y.error('DD.Drag: Invalid Node Given: ' + node);"," }"," return n;"," }"," },"," /**"," * @attribute dragNode"," * @description Y.Node instance to use as the draggable element, defaults to node"," * @type Node"," */"," dragNode: {"," setter: function(node) {"," if (this._canDrag(node)) {"," return node;"," }"," var n = Y.one(node);"," if (!n) {"," Y.error('DD.Drag: Invalid dragNode Given: ' + node);"," }"," return n;"," }"," },"," /**"," * @attribute offsetNode"," * @description Offset the drag element by the difference in cursor position: default true"," * @type Boolean"," */"," offsetNode: {"," value: true"," },"," /**"," * @attribute startCentered"," * @description Center the dragNode to the mouse position on drag:start: default false"," * @type Boolean"," */"," startCentered: {"," value: false"," },"," /**"," * @attribute clickPixelThresh"," * @description The number of pixels to move to start a drag operation, default is 3."," * @type Number"," */"," clickPixelThresh: {"," value: DDM.get('clickPixelThresh')"," },"," /**"," * @attribute clickTimeThresh"," * @description The number of milliseconds a mousedown has to pass to start a drag operation, default is 1000."," * @type Number"," */"," clickTimeThresh: {"," value: DDM.get('clickTimeThresh')"," },"," /**"," * @attribute lock"," * @description Set to lock this drag element so that it can't be dragged: default false."," * @type Boolean"," */"," lock: {"," value: false,"," setter: function(lock) {"," if (lock) {"," this.get(NODE).addClass(DDM.CSS_PREFIX + '-locked');"," } else {"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-locked');"," }"," return lock;"," }"," },"," /**"," * @attribute data"," * @description A payload holder to store arbitrary data about this drag object, can be used to store any value."," * @type Mixed"," */"," data: {"," value: false"," },"," /**"," * @attribute move"," * @description If this is false, the drag element will not move with the cursor: default true. Can be used to \"resize\" the element."," * @type Boolean"," */"," move: {"," value: true"," },"," /**"," * @attribute useShim"," * @description Use the protective shim on all drag operations: default true. Only works with dd-ddm, not dd-ddm-base."," * @type Boolean"," */"," useShim: {"," value: true"," },"," /**"," * @attribute activeHandle"," * @description This config option is set by Drag to inform you of which handle fired the drag event (in the case that there are several handles): default false."," * @type Node"," */"," activeHandle: {"," value: false"," },"," /**"," * @attribute primaryButtonOnly"," * @description By default a drag operation will only begin if the mousedown occurred with the primary mouse button. Setting this to false will allow for all mousedown events to trigger a drag."," * @type Boolean"," */"," primaryButtonOnly: {"," value: true"," },"," /**"," * @attribute dragging"," * @description This attribute is not meant to be used by the implementor, it is meant to be used as an Event tracker so you can listen for it to change."," * @type Boolean"," */"," dragging: {"," value: false"," },"," parent: {"," value: false"," },"," /**"," * @attribute target"," * @description This attribute only works if the dd-drop module has been loaded. It will make this node a drop target as well as draggable."," * @type Boolean"," */"," target: {"," value: false,"," setter: function(config) {"," this._handleTarget(config);"," return config;"," }"," },"," /**"," * @attribute dragMode"," * @description This attribute only works if the dd-drop module is active. It will set the dragMode (point, intersect, strict) of this Drag instance."," * @type String"," */"," dragMode: {"," value: null,"," setter: function(mode) {"," return DDM._setDragMode(mode);"," }"," },"," /**"," * @attribute groups"," * @description Array of groups to add this drag into."," * @type Array"," */"," groups: {"," value: ['default'],"," getter: function() {"," if (!this._groups) {"," this._groups = {};"," }"," var ret = [];"," Y.each(this._groups, function(v, k) {"," ret[ret.length] = k;"," });"," return ret;"," },"," setter: function(g) {"," this._groups = {};"," Y.each(g, function(v, k) {"," this._groups[v] = true;"," }, this);"," return g;"," }"," },"," /**"," * @attribute handles"," * @description Array of valid handles to add. Adding something here will set all handles, even if previously added with addHandle"," * @type Array"," */"," handles: {"," value: null,"," setter: function(g) {"," if (g) {"," this._handles = {};"," Y.each(g, function(v, k) {"," var key = v;"," if (v instanceof Y.Node || v instanceof Y.NodeList) {"," key = v._yuid;"," }"," this._handles[key] = v;"," }, this);"," } else {"," this._handles = null;"," }"," return g;"," }"," },"," /**"," * @deprecated"," * @attribute bubbles"," * @description Controls the default bubble parent for this Drag instance. Default: Y.DD.DDM. Set to false to disable bubbling. Use bubbleTargets in config"," * @type Object"," */"," bubbles: {"," setter: function(t) {"," this.addTarget(t);"," return t;"," }"," },"," /**"," * @attribute haltDown"," * @description Should the mousedown event be halted. Default: true"," * @type Boolean"," */"," haltDown: {"," value: true"," }"," };",""," Y.extend(Drag, Y.Base, {"," /**"," * Checks the object for the methods needed to drag the object around. "," * Normally this would be a node instance, but in the case of Graphics, it"," * may be an SVG node or something similar."," * @method _canDrag"," * @private"," * @param {Object} n The object to check"," * @return {Boolean} True or false if the Object contains the methods needed to Drag"," */"," _canDrag: function(n) {"," if (n && n.setXY && n.getXY && n.test && n.contains) {"," return true;"," }"," return false;"," },"," /**"," * @private"," * @property _bubbleTargets"," * @description The default bubbleTarget for this object. Default: Y.DD.DDM"," */"," _bubbleTargets: Y.DD.DDM,"," /**"," * @method addToGroup"," * @description Add this Drag instance to a group, this should be used for on-the-fly group additions."," * @param {String} g The group to add this Drag Instance to."," * @return {Self}"," * @chainable"," */"," addToGroup: function(g) {"," this._groups[g] = true;"," DDM._activateTargets();"," return this;"," },"," /**"," * @method removeFromGroup"," * @description Remove this Drag instance from a group, this should be used for on-the-fly group removals."," * @param {String} g The group to remove this Drag Instance from."," * @return {Self}"," * @chainable"," */"," removeFromGroup: function(g) {"," delete this._groups[g];"," DDM._activateTargets();"," return this;"," },"," /**"," * @property target"," * @description This will be a reference to the Drop instance associated with this drag if the target: true config attribute is set.."," * @type {Object}"," */"," target: null,"," /**"," * @private"," * @method _handleTarget"," * @description Attribute handler for the target config attribute."," * @param {Boolean/Object} config The Config"," */"," _handleTarget: function(config) {"," if (Y.DD.Drop) {"," if (config === false) {"," if (this.target) {"," DDM._unregTarget(this.target);"," this.target = null;"," }"," } else {"," if (!Y.Lang.isObject(config)) {"," config = {};"," }"," config.bubbleTargets = config.bubbleTargets || Y.Object.values(this._yuievt.targets);"," config.node = this.get(NODE);"," config.groups = config.groups || this.get('groups');"," this.target = new Y.DD.Drop(config);"," }"," }"," },"," /**"," * @private"," * @property _groups"," * @description Storage Array for the groups this drag belongs to."," * @type {Array}"," */"," _groups: null,"," /**"," * @private"," * @method _createEvents"," * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling."," */"," _createEvents: function() {"," "," this.publish(EV_MOUSE_DOWN, {"," defaultFn: this._defMouseDownFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," this.publish(EV_ALIGN, {"," defaultFn: this._defAlignFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," this.publish(EV_DRAG, {"," defaultFn: this._defDragFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," this.publish(EV_END, {"," defaultFn: this._defEndFn,"," preventedFn: this._prevEndFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," var ev = ["," EV_AFTER_MOUSE_DOWN,"," EV_REMOVE_HANDLE,"," EV_ADD_HANDLE,"," EV_REMOVE_INVALID,"," EV_ADD_INVALID,"," EV_START,"," 'drag:drophit',"," 'drag:dropmiss',"," 'drag:over',"," 'drag:enter',"," 'drag:exit'"," ];"," "," Y.each(ev, function(v, k) {"," this.publish(v, {"," type: v,"," emitFacade: true,"," bubbles: true,"," preventable: false,"," queuable: false,"," prefix: 'drag'"," });"," }, this);"," },"," /**"," * @private"," * @property _ev_md"," * @description A private reference to the mousedown DOM event"," * @type {EventFacade}"," */"," _ev_md: null,"," /**"," * @private"," * @property _startTime"," * @description The getTime of the mousedown event. Not used, just here in case someone wants/needs to use it."," * @type Date"," */"," _startTime: null,"," /**"," * @private"," * @property _endTime"," * @description The getTime of the mouseup event. Not used, just here in case someone wants/needs to use it."," * @type Date"," */"," _endTime: null,"," /**"," * @private"," * @property _handles"," * @description A private hash of the valid drag handles"," * @type {Object}"," */"," _handles: null,"," /**"," * @private"," * @property _invalids"," * @description A private hash of the invalid selector strings"," * @type {Object}"," */"," _invalids: null,"," /**"," * @private"," * @property _invalidsDefault"," * @description A private hash of the default invalid selector strings: {'textarea': true, 'input': true, 'a': true, 'button': true, 'select': true}"," * @type {Object}"," */"," _invalidsDefault: {'textarea': true, 'input': true, 'a': true, 'button': true, 'select': true },"," /**"," * @private"," * @property _dragThreshMet"," * @description Private flag to see if the drag threshhold was met"," * @type {Boolean}"," */"," _dragThreshMet: null,"," /**"," * @private"," * @property _fromTimeout"," * @description Flag to determine if the drag operation came from a timeout"," * @type {Boolean}"," */"," _fromTimeout: null,"," /**"," * @private"," * @property _clickTimeout"," * @description Holder for the setTimeout call"," * @type {Boolean}"," */"," _clickTimeout: null,"," /**"," * @property deltaXY"," * @description The offset of the mouse position to the element's position"," * @type {Array}"," */"," deltaXY: null,"," /**"," * @property startXY"," * @description The initial mouse position"," * @type {Array}"," */"," startXY: null,"," /**"," * @property nodeXY"," * @description The initial element position"," * @type {Array}"," */"," nodeXY: null,"," /**"," * @property lastXY"," * @description The position of the element as it's moving (for offset calculations)"," * @type {Array}"," */"," lastXY: null,"," /**"," * @property actXY"," * @description The xy that the node will be set to. Changing this will alter the position as it's dragged."," * @type {Array}"," */"," actXY: null,"," /**"," * @property realXY"," * @description The real xy position of the node."," * @type {Array}"," */"," realXY: null,"," /**"," * @property mouseXY"," * @description The XY coords of the mousemove"," * @type {Array}"," */"," mouseXY: null,"," /**"," * @property region"," * @description A region object associated with this drag, used for checking regions while dragging."," * @type Object"," */"," region: null, "," /**"," * @private"," * @method _handleMouseUp"," * @description Handler for the mouseup DOM event"," * @param {EventFacade} ev The Event"," */"," _handleMouseUp: function(ev) {"," this.fire('drag:mouseup');"," this._fixIEMouseUp();"," if (DDM.activeDrag) {"," DDM._end();"," }"," },"," /** "," * @private"," * @method _fixDragStart"," * @description The function we use as the ondragstart handler when we start a drag in Internet Explorer. This keeps IE from blowing up on images as drag handles."," * @param {Event} e The Event"," */"," _fixDragStart: function(e) {"," if (this.validClick(e)) {"," e.preventDefault();"," }"," },"," /** "," * @private"," * @method _ieSelectFix"," * @description The function we use as the onselectstart handler when we start a drag in Internet Explorer"," */"," _ieSelectFix: function() {"," return false;"," },"," /** "," * @private"," * @property _ieSelectBack"," * @description We will hold a copy of the current \"onselectstart\" method on this property, and reset it after we are done using it."," */"," _ieSelectBack: null,"," /**"," * @private"," * @method _fixIEMouseDown"," * @description This method copies the onselectstart listner on the document to the _ieSelectFix property"," */"," _fixIEMouseDown: function(e) {"," if (Y.UA.ie) {"," this._ieSelectBack = Y.config.doc.body.onselectstart;"," Y.config.doc.body.onselectstart = this._ieSelectFix;"," } "," },"," /**"," * @private"," * @method _fixIEMouseUp"," * @description This method copies the _ieSelectFix property back to the onselectstart listner on the document."," */"," _fixIEMouseUp: function() {"," if (Y.UA.ie) {"," Y.config.doc.body.onselectstart = this._ieSelectBack;"," } "," },"," /**"," * @private"," * @method _handleMouseDownEvent"," * @description Handler for the mousedown DOM event"," * @param {EventFacade} ev The Event"," */"," _handleMouseDownEvent: function(ev) {"," this.fire(EV_MOUSE_DOWN, { ev: ev });"," },"," /**"," * @private"," * @method _defMouseDownFn"," * @description Handler for the mousedown DOM event"," * @param {EventFacade} e The Event"," */"," _defMouseDownFn: function(e) {"," var ev = e.ev;",""," this._dragThreshMet = false;"," this._ev_md = ev;"," "," if (this.get('primaryButtonOnly') && ev.button > 1) {"," return false;"," }"," if (this.validClick(ev)) {"," this._fixIEMouseDown(ev);"," if (this.get('haltDown')) {"," ev.halt();"," } else {"," ev.preventDefault();"," }"," "," this._setStartPosition([ev.pageX, ev.pageY]);",""," DDM.activeDrag = this;"," "," this._clickTimeout = Y.later(this.get('clickTimeThresh'), this, this._timeoutCheck);"," }"," this.fire(EV_AFTER_MOUSE_DOWN, { ev: ev });"," },"," /**"," * @method validClick"," * @description Method first checks to see if we have handles, if so it validates the click against the handle. Then if it finds a valid handle, it checks it against the invalid handles list. Returns true if a good handle was used, false otherwise."," * @param {EventFacade} ev The Event"," * @return {Boolean}"," */"," validClick: function(ev) {"," var r = false, n = false,"," tar = ev.target,"," hTest = null,"," els = null,"," nlist = null,"," set = false;"," if (this._handles) {"," Y.each(this._handles, function(i, n) {"," if (i instanceof Y.Node || i instanceof Y.NodeList) {"," if (!r) {"," nlist = i;"," if (nlist instanceof Y.Node) {"," nlist = new Y.NodeList(i._node);"," }"," nlist.each(function(nl) {"," if (nl.contains(tar)) {"," r = true;"," }"," });"," }"," } else if (Y.Lang.isString(n)) {"," //Am I this or am I inside this"," if (tar.test(n + ', ' + n + ' *') && !hTest) {"," hTest = n;"," r = true;"," }"," }"," });"," } else {"," n = this.get(NODE);"," if (n.contains(tar) || n.compareTo(tar)) {"," r = true;"," }"," }"," if (r) {"," if (this._invalids) {"," Y.each(this._invalids, function(i, n) {"," if (Y.Lang.isString(n)) {"," //Am I this or am I inside this"," if (tar.test(n + ', ' + n + ' *')) {"," r = false;"," }"," }"," });"," }"," }"," if (r) {"," if (hTest) {"," els = ev.currentTarget.all(hTest);"," set = false;"," els.each(function(n, i) {"," if ((n.contains(tar) || n.compareTo(tar)) && !set) {"," set = true;"," this.set('activeHandle', n);"," }"," }, this);"," } else {"," this.set('activeHandle', this.get(NODE));"," }"," }"," return r;"," },"," /**"," * @private"," * @method _setStartPosition"," * @description Sets the current position of the Element and calculates the offset"," * @param {Array} xy The XY coords to set the position to."," */"," _setStartPosition: function(xy) {"," this.startXY = xy;"," "," this.nodeXY = this.lastXY = this.realXY = this.get(NODE).getXY();"," "," if (this.get('offsetNode')) {"," this.deltaXY = [(this.startXY[0] - this.nodeXY[0]), (this.startXY[1] - this.nodeXY[1])];"," } else {"," this.deltaXY = [0, 0];"," }"," },"," /**"," * @private"," * @method _timeoutCheck"," * @description The method passed to setTimeout to determine if the clickTimeThreshold was met."," */"," _timeoutCheck: function() {"," if (!this.get('lock') && !this._dragThreshMet && this._ev_md) {"," this._fromTimeout = this._dragThreshMet = true;"," this.start();"," this._alignNode([this._ev_md.pageX, this._ev_md.pageY], true);"," }"," },"," /**"," * @method removeHandle"," * @description Remove a Selector added by addHandle"," * @param {String} str The selector for the handle to be removed. "," * @return {Self}"," * @chainable"," */"," removeHandle: function(str) {"," var key = str;"," if (str instanceof Y.Node || str instanceof Y.NodeList) {"," key = str._yuid;"," }"," if (this._handles[key]) {"," delete this._handles[key];"," this.fire(EV_REMOVE_HANDLE, { handle: str });"," }"," return this;"," },"," /**"," * @method addHandle"," * @description Add a handle to a drag element. Drag only initiates when a mousedown happens on this element."," * @param {String} str The selector to test for a valid handle. Must be a child of the element."," * @return {Self}"," * @chainable"," */"," addHandle: function(str) {"," if (!this._handles) {"," this._handles = {};"," }"," var key = str;"," if (str instanceof Y.Node || str instanceof Y.NodeList) {"," key = str._yuid;"," }"," this._handles[key] = str;"," this.fire(EV_ADD_HANDLE, { handle: str });"," return this;"," },"," /**"," * @method removeInvalid"," * @description Remove an invalid handle added by addInvalid"," * @param {String} str The invalid handle to remove from the internal list."," * @return {Self}"," * @chainable"," */"," removeInvalid: function(str) {"," if (this._invalids[str]) {"," this._invalids[str] = null;"," delete this._invalids[str];"," this.fire(EV_REMOVE_INVALID, { handle: str });"," }"," return this;"," },"," /**"," * @method addInvalid"," * @description Add a selector string to test the handle against. If the test passes the drag operation will not continue."," * @param {String} str The selector to test against to determine if this is an invalid drag handle."," * @return {Self}"," * @chainable"," */"," addInvalid: function(str) {"," if (Y.Lang.isString(str)) {"," this._invalids[str] = true;"," this.fire(EV_ADD_INVALID, { handle: str });"," }"," return this;"," },"," /**"," * @private"," * @method initializer"," * @description Internal init handler"," */"," initializer: function(cfg) {",""," this.get(NODE).dd = this;",""," if (!this.get(NODE).get('id')) {"," var id = Y.stamp(this.get(NODE));"," this.get(NODE).set('id', id);"," }",""," this.actXY = [];"," "," this._invalids = Y.clone(this._invalidsDefault, true);",""," this._createEvents();"," "," if (!this.get(DRAG_NODE)) {"," this.set(DRAG_NODE, this.get(NODE));"," }",""," //Fix for #2528096"," //Don't prep the DD instance until all plugins are loaded."," this.on('initializedChange', Y.bind(this._prep, this));",""," //Shouldn't have to do this.."," this.set('groups', this.get('groups'));"," },"," /**"," * @private"," * @method _prep"," * @description Attach event listners and add classname"," */"," _prep: function() {"," this._dragThreshMet = false;"," var node = this.get(NODE);"," node.addClass(DDM.CSS_PREFIX + '-draggable');"," node.on(Drag.START_EVENT, Y.bind(this._handleMouseDownEvent, this));"," node.on('mouseup', Y.bind(this._handleMouseUp, this));"," node.on('dragstart', Y.bind(this._fixDragStart, this));"," },"," /**"," * @private"," * @method _unprep"," * @description Detach event listeners and remove classname"," */"," _unprep: function() {"," var node = this.get(NODE);"," node.removeClass(DDM.CSS_PREFIX + '-draggable');"," node.detachAll('mouseup');"," node.detachAll('dragstart');"," node.detachAll(Drag.START_EVENT);"," this.mouseXY = [];"," this.deltaXY = [0,0];"," this.startXY = [];"," this.nodeXY = [];"," this.lastXY = [];"," this.actXY = [];"," this.realXY = [];"," },"," /**"," * @method start"," * @description Starts the drag operation"," * @return {Self}"," * @chainable"," */"," start: function() {"," if (!this.get('lock') && !this.get(DRAGGING)) {"," var node = this.get(NODE), ow, oh, xy;"," this._startTime = (new Date()).getTime();",""," DDM._start();"," node.addClass(DDM.CSS_PREFIX + '-dragging');"," this.fire(EV_START, {"," pageX: this.nodeXY[0],"," pageY: this.nodeXY[1],"," startTime: this._startTime"," });"," node = this.get(DRAG_NODE);"," xy = this.nodeXY;"," "," ow = node.get(OFFSET_WIDTH);"," oh = node.get(OFFSET_HEIGHT);"," "," if (this.get('startCentered')) {"," this._setStartPosition([xy[0] + (ow / 2), xy[1] + (oh / 2)]);"," }"," "," "," this.region = {"," '0': xy[0], "," '1': xy[1],"," area: 0,"," top: xy[1],"," right: xy[0] + ow,"," bottom: xy[1] + oh,"," left: xy[0]"," };"," this.set(DRAGGING, true);"," }"," return this;"," },"," /**"," * @method end"," * @description Ends the drag operation"," * @return {Self}"," * @chainable"," */"," end: function() {"," this._endTime = (new Date()).getTime();"," if (this._clickTimeout) {"," this._clickTimeout.cancel();"," }"," this._dragThreshMet = this._fromTimeout = false;",""," if (!this.get('lock') && this.get(DRAGGING)) {"," this.fire(EV_END, {"," pageX: this.lastXY[0],"," pageY: this.lastXY[1],"," startTime: this._startTime,"," endTime: this._endTime"," });"," }"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-dragging');"," this.set(DRAGGING, false);"," this.deltaXY = [0, 0];",""," return this;"," },"," /**"," * @private"," * @method _defEndFn"," * @description Handler for fixing the selection in IE"," */"," _defEndFn: function(e) {"," this._fixIEMouseUp();"," this._ev_md = null;"," },"," /**"," * @private"," * @method _prevEndFn"," * @description Handler for preventing the drag:end event. It will reset the node back to it's start position"," */"," _prevEndFn: function(e) {"," this._fixIEMouseUp();"," //Bug #1852577"," this.get(DRAG_NODE).setXY(this.nodeXY);"," this._ev_md = null;"," this.region = null;"," },"," /**"," * @private"," * @method _align"," * @description Calculates the offsets and set's the XY that the element will move to."," * @param {Array} xy The xy coords to align with."," */"," _align: function(xy) {"," this.fire(EV_ALIGN, {pageX: xy[0], pageY: xy[1] });"," },"," /**"," * @private"," * @method _defAlignFn"," * @description Calculates the offsets and set's the XY that the element will move to."," * @param {EventFacade} e The drag:align event."," */"," _defAlignFn: function(e) {"," this.actXY = [e.pageX - this.deltaXY[0], e.pageY - this.deltaXY[1]];"," },"," /**"," * @private"," * @method _alignNode"," * @description This method performs the alignment before the element move."," * @param {Array} eXY The XY to move the element to, usually comes from the mousemove DOM event."," */"," _alignNode: function(eXY, scroll) {"," this._align(eXY);"," if (!scroll) {"," this._moveNode();"," }"," },"," /**"," * @private"," * @method _moveNode"," * @description This method performs the actual element move."," */"," _moveNode: function(scroll) {"," //if (!this.get(DRAGGING)) {"," // return;"," //}"," var diffXY = [], diffXY2 = [], startXY = this.nodeXY, xy = this.actXY;",""," diffXY[0] = (xy[0] - this.lastXY[0]);"," diffXY[1] = (xy[1] - this.lastXY[1]);",""," diffXY2[0] = (xy[0] - this.nodeXY[0]);"," diffXY2[1] = (xy[1] - this.nodeXY[1]);","",""," this.region = {"," '0': xy[0], "," '1': xy[1],"," area: 0,"," top: xy[1],"," right: xy[0] + this.get(DRAG_NODE).get(OFFSET_WIDTH),"," bottom: xy[1] + this.get(DRAG_NODE).get(OFFSET_HEIGHT),"," left: xy[0]"," };",""," this.fire(EV_DRAG, {"," pageX: xy[0],"," pageY: xy[1],"," scroll: scroll,"," info: {"," start: startXY,"," xy: xy,"," delta: diffXY,"," offset: diffXY2"," } "," });"," "," this.lastXY = xy;"," },"," /**"," * @private"," * @method _defDragFn"," * @description Default function for drag:drag. Fired from _moveNode."," * @param {EventFacade} ev The drag:drag event"," */"," _defDragFn: function(e) {"," if (this.get('move')) {"," if (e.scroll && e.scroll.node) {"," e.scroll.node.set('scrollTop', e.scroll.top);"," e.scroll.node.set('scrollLeft', e.scroll.left);"," }"," this.get(DRAG_NODE).setXY([e.pageX, e.pageY]);"," this.realXY = [e.pageX, e.pageY];"," }"," },"," /**"," * @private"," * @method _move"," * @description Fired from DragDropMgr (DDM) on mousemove."," * @param {EventFacade} ev The mousemove DOM event"," */"," _move: function(ev) {"," if (this.get('lock')) {"," return false;"," }",""," this.mouseXY = [ev.pageX, ev.pageY];"," if (!this._dragThreshMet) {"," var diffX = Math.abs(this.startXY[0] - ev.pageX),"," diffY = Math.abs(this.startXY[1] - ev.pageY);"," if (diffX > this.get('clickPixelThresh') || diffY > this.get('clickPixelThresh')) {"," this._dragThreshMet = true;"," this.start();"," this._alignNode([ev.pageX, ev.pageY]);"," }"," } else {"," if (this._clickTimeout) {"," this._clickTimeout.cancel();"," }"," this._alignNode([ev.pageX, ev.pageY]);"," }"," },"," /**"," * @method stopDrag"," * @description Method will forcefully stop a drag operation. For example calling this from inside an ESC keypress handler will stop this drag."," * @return {Self}"," * @chainable"," */"," stopDrag: function() {"," if (this.get(DRAGGING)) {"," DDM._end();"," }"," return this;"," },"," /**"," * @private"," * @method destructor"," * @description Lifecycle destructor, unreg the drag from the DDM and remove listeners"," */"," destructor: function() {"," this._unprep();"," if (this.target) {"," this.target.destroy();"," }"," DDM._unregDrag(this);"," }"," });"," Y.namespace('DD'); "," Y.DD.Drag = Drag;","","","","","}, '3.7.2', {\"requires\": [\"dd-ddm-base\"]});"];
_yuitest_coverage["build/dd-drag/dd-drag.js"].lines = {"1":0,"17":0,"195":0,"196":0,"198":0,"199":0,"200":0,"204":0,"211":0,"213":0,"221":0,"222":0,"224":0,"225":0,"226":0,"228":0,"238":0,"239":0,"241":0,"242":0,"243":0,"245":0,"288":0,"289":0,"291":0,"293":0,"355":0,"356":0,"367":0,"378":0,"379":0,"381":0,"382":0,"383":0,"385":0,"388":0,"389":0,"390":0,"392":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"410":0,"413":0,"415":0,"426":0,"427":0,"440":0,"451":0,"452":0,"454":0,"470":0,"471":0,"472":0,"482":0,"483":0,"484":0,"499":0,"500":0,"501":0,"502":0,"503":0,"506":0,"507":0,"509":0,"510":0,"511":0,"512":0,"530":0,"538":0,"546":0,"554":0,"563":0,"577":0,"578":0,"706":0,"707":0,"708":0,"709":0,"719":0,"720":0,"729":0,"743":0,"744":0,"745":0,"754":0,"755":0,"765":0,"774":0,"776":0,"777":0,"779":0,"780":0,"782":0,"783":0,"784":0,"785":0,"787":0,"790":0,"792":0,"794":0,"796":0,"805":0,"811":0,"812":0,"813":0,"814":0,"815":0,"816":0,"817":0,"819":0,"820":0,"821":0,"825":0,"827":0,"828":0,"829":0,"834":0,"835":0,"836":0,"839":0,"840":0,"841":0,"842":0,"844":0,"845":0,"851":0,"852":0,"853":0,"854":0,"855":0,"856":0,"857":0,"858":0,"862":0,"865":0,"874":0,"876":0,"878":0,"879":0,"881":0,"890":0,"891":0,"892":0,"893":0,"904":0,"905":0,"906":0,"908":0,"909":0,"910":0,"912":0,"922":0,"923":0,"925":0,"926":0,"927":0,"929":0,"930":0,"931":0,"941":0,"942":0,"943":0,"944":0,"946":0,"956":0,"957":0,"958":0,"960":0,"969":0,"971":0,"972":0,"973":0,"976":0,"978":0,"980":0,"982":0,"983":0,"988":0,"991":0,"999":0,"1000":0,"1001":0,"1002":0,"1003":0,"1004":0,"1012":0,"1013":0,"1014":0,"1015":0,"1016":0,"1017":0,"1018":0,"1019":0,"1020":0,"1021":0,"1022":0,"1023":0,"1032":0,"1033":0,"1034":0,"1036":0,"1037":0,"1038":0,"1043":0,"1044":0,"1046":0,"1047":0,"1049":0,"1050":0,"1054":0,"1063":0,"1065":0,"1074":0,"1075":0,"1076":0,"1078":0,"1080":0,"1081":0,"1088":0,"1089":0,"1090":0,"1092":0,"1100":0,"1101":0,"1109":0,"1111":0,"1112":0,"1113":0,"1122":0,"1131":0,"1140":0,"1141":0,"1142":0,"1154":0,"1156":0,"1157":0,"1159":0,"1160":0,"1163":0,"1173":0,"1185":0,"1194":0,"1195":0,"1196":0,"1197":0,"1199":0,"1200":0,"1210":0,"1211":0,"1214":0,"1215":0,"1216":0,"1218":0,"1219":0,"1220":0,"1221":0,"1224":0,"1225":0,"1227":0,"1237":0,"1238":0,"1240":0,"1248":0,"1249":0,"1250":0,"1252":0,"1255":0,"1256":0};
_yuitest_coverage["build/dd-drag/dd-drag.js"].functions = {"Drag:194":0,"setter:220":0,"setter:237":0,"setter:287":0,"setter:354":0,"setter:366":0,"(anonymous 2):382":0,"getter:377":0,"(anonymous 3):389":0,"setter:387":0,"(anonymous 4):405":0,"setter:402":0,"setter:425":0,"_canDrag:450":0,"addToGroup:469":0,"removeFromGroup:481":0,"_handleTarget:498":0,"(anonymous 5):577":0,"_createEvents:528":0,"_handleMouseUp:705":0,"_fixDragStart:718":0,"_ieSelectFix:728":0,"_fixIEMouseDown:742":0,"_fixIEMouseUp:753":0,"_handleMouseDownEvent:764":0,"_defMouseDownFn:773":0,"(anonymous 7):819":0,"(anonymous 6):812":0,"(anonymous 8):841":0,"(anonymous 9):855":0,"validClick:804":0,"_setStartPosition:873":0,"_timeoutCheck:889":0,"removeHandle:903":0,"addHandle:921":0,"removeInvalid:940":0,"addInvalid:955":0,"initializer:967":0,"_prep:998":0,"_unprep:1011":0,"start:1031":0,"end:1073":0,"_defEndFn:1099":0,"_prevEndFn:1108":0,"_align:1121":0,"_defAlignFn:1130":0,"_alignNode:1139":0,"_moveNode:1150":0,"_defDragFn:1193":0,"_move:1209":0,"stopDrag:1236":0,"destructor:1247":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-drag/dd-drag.js"].coveredLines = 272;
@@ -1622,4 +1622,4 @@ Y.DD.Drag = Drag;
-}, '3.7.1', {"requires": ["dd-ddm-base"]});
+}, '3.7.2', {"requires": ["dd-ddm-base"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drag/dd-drag-debug.js b/lib/yuilib/3.7.2/build/dd-drag/dd-drag-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-drag/dd-drag-debug.js
rename to lib/yuilib/3.7.2/build/dd-drag/dd-drag-debug.js
index 3be19690a7d..6e56794b973 100644
--- a/lib/yuilib/3.7.1/build/dd-drag/dd-drag-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-drag/dd-drag-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1267,4 +1267,4 @@ YUI.add('dd-drag', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-ddm-base"]});
+}, '3.7.2', {"requires": ["dd-ddm-base"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drag/dd-drag-min.js b/lib/yuilib/3.7.2/build/dd-drag/dd-drag-min.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-drag/dd-drag-min.js
rename to lib/yuilib/3.7.2/build/dd-drag/dd-drag-min.js
index 1f59d4dd441..ef2feba10fa 100644
--- a/lib/yuilib/3.7.1/build/dd-drag/dd-drag-min.js
+++ b/lib/yuilib/3.7.2/build/dd-drag/dd-drag-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-drag",function(e,t){var n=e.DD.DDM,r="node",i="dragging",s="dragNode",o="offsetHeight",u="offsetWidth",a="drag:mouseDown",f="drag:afterMouseDown",l="drag:removeHandle",c="drag:addHandle",h="drag:removeInvalid",p="drag:addInvalid",d="drag:start",v="drag:end",m="drag:drag",g="drag:align",y=function(t){this._lazyAddAttrs=!1,y.superclass.constructor.apply(this,arguments);var r=n._regDrag(this);r||e.error("Failed to register node, already in use: "+t.node)};y.NAME="drag",y.START_EVENT="mousedown",y.ATTRS={node:{setter:function(t){if(this._canDrag(t))return t;var n=e.one(t);return n||e.error("DD.Drag: Invalid Node Given: "+t),n}},dragNode:{setter:function(t){if(this._canDrag(t))return t;var n=e.one(t);return n||e.error("DD.Drag: Invalid dragNode Given: "+t),n}},offsetNode:{value:!0},startCentered:{value:!1},clickPixelThresh:{value:n.get("clickPixelThresh")},clickTimeThresh:{value:n.get("clickTimeThresh")},lock:{value:!1,setter:function(e){return e?this.get(r).addClass(n.CSS_PREFIX+"-locked"):this.get(r).removeClass(n.CSS_PREFIX+"-locked"),e}},data:{value:!1},move:{value:!0},useShim:{value:!0},activeHandle:{value:!1},primaryButtonOnly:{value:!0},dragging:{value:!1},parent:{value:!1},target:{value:!1,setter:function(e){return this._handleTarget(e),e}},dragMode:{value:null,setter:function(e){return n._setDragMode(e)}},groups:{value:["default"],getter:function(){this._groups||(this._groups={});var t=[];return e.each(this._groups,function(e,n){t[t.length]=n}),t},setter:function(t){return this._groups={},e.each(t,function(e,t){this._groups[e]=!0},this),t}},handles:{value:null,setter:function(t){return t?(this._handles={},e.each(t,function(t,n){var r=t;if(t instanceof e.Node||t instanceof e.NodeList)r=t._yuid;this._handles[r]=t},this)):this._handles=null,t}},bubbles:{setter:function(e){return this.addTarget(e),e}},haltDown:{value:!0}},e.extend(y,e.Base,{_canDrag:function(e){return e&&e.setXY&&e.getXY&&e.test&&e.contains?!0:!1},_bubbleTargets:e.DD.DDM,addToGroup:function(e){return this._groups[e]=!0,n._activateTargets(),this},removeFromGroup:function(e){return delete this._groups[e],n._activateTargets(),this},target:null,_handleTarget:function(t){e.DD.Drop&&(t===!1?this.target&&(n._unregTarget(this.target),this.target=null):(e.Lang.isObject(t)||(t={}),t.bubbleTargets=t.bubbleTargets||e.Object.values(this._yuievt.targets),t.node=this.get(r),t.groups=t.groups||this.get("groups"),this.target=new e.DD.Drop(t)))},_groups:null,_createEvents:function(){this.publish(a,{defaultFn:this._defMouseDownFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"}),this.publish(g,{defaultFn:this._defAlignFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"}),this.publish(m,{defaultFn:this._defDragFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"}),this.publish(v,{defaultFn:this._defEndFn,preventedFn:this._prevEndFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"});var t=[f,l,c,h,p,d,"drag:drophit","drag:dropmiss","drag:over","drag:enter","drag:exit"];e.each(t,function(e,t){this.publish(e,{type:e,emitFacade:!0,bubbles:!0,preventable:!1,queuable:!1,prefix:"drag"})},this)},_ev_md:null,_startTime:null,_endTime:null,_handles:null,_invalids:null,_invalidsDefault:{textarea:!0,input:!0,a:!0,button:!0,select:!0},_dragThreshMet:null,_fromTimeout:null,_clickTimeout:null,deltaXY:null,startXY:null,nodeXY:null,lastXY:null,actXY:null,realXY:null,mouseXY:null,region:null,_handleMouseUp:function(e){this.fire("drag:mouseup"),this._fixIEMouseUp(),n.activeDrag&&n._end()},_fixDragStart:function(e){this.validClick(e)&&e.preventDefault()},_ieSelectFix:function(){return!1},_ieSelectBack:null,_fixIEMouseDown:function(t){e.UA.ie&&(this._ieSelectBack=e.config.doc.body.onselectstart,e.config.doc.body.onselectstart=this._ieSelectFix)},_fixIEMouseUp:function(){e.UA.ie&&(e.config.doc.body.onselectstart=this._ieSelectBack)},_handleMouseDownEvent:function(e){this.fire(a,{ev:e})},_defMouseDownFn:function(t){var r=t.ev;this._dragThreshMet=!1,this._ev_md=r;if(this.get("primaryButtonOnly")&&r.button>1)return!1;this.validClick(r)&&(this._fixIEMouseDown(r),this.get("haltDown")?r.halt():r.preventDefault(),this._setStartPosition([r.pageX,r.pageY]),n.activeDrag=this,this._clickTimeout=e.later(this.get("clickTimeThresh"),this,this._timeoutCheck)),this.fire(f,{ev:r})},validClick:function(t){var n=!1,i=!1,s=t.target,o=null,u=null,a=null,f=!1;if(this._handles)e.each(this._handles,function(t,r){t instanceof e.Node||t instanceof e.NodeList?n||(a=t,a instanceof e.Node&&(a=new e.NodeList(t._node)),a.each(function(e){e.contains(s)&&(n=!0)})):e.Lang.isString(r)&&s.test(r+", "+r+" *")&&!o&&(o=r,n=!0)});else{i=this.get(r);if(i.contains(s)||i.compareTo(s))n=!0}return n&&this._invalids&&e.each(this._invalids,function(t,r){e.Lang.isString(r)&&s.test(r+", "+r+" *")&&(n=!1)}),n&&(o?(u=t.currentTarget.all(o),f=!1,u.each(function(e,t){(e.contains(s)||e.compareTo(s))&&!f&&(f=!0,this.set("activeHandle",e))},this)):this.set("activeHandle",this.get(r))),n},_setStartPosition:function(e){this.startXY=e,this.nodeXY=this.lastXY=this.realXY=this.get(r).getXY(),this.get("offsetNode")?this.deltaXY=[this.startXY[0]-this.nodeXY[0],this.startXY[1]-this.nodeXY[1]]:this.deltaXY=[0,0]},_timeoutCheck:function(){!this.get("lock")&&!this._dragThreshMet&&this._ev_md&&(this._fromTimeout=this._dragThreshMet=!0,this.start(),this._alignNode([this._ev_md.pageX,this._ev_md.pageY],!0))},removeHandle:function(t){var n=t;if(t instanceof e.Node||t instanceof e.NodeList)n=t._yuid;return this._handles[n]&&(delete this._handles[n],this.fire(l,{handle:t})),this},addHandle:function(t){this._handles||(this._handles={});var n=t;if(t instanceof e.Node||t instanceof e.NodeList)n=t._yuid;return this._handles[n]=t,this.fire(c,{handle:t}),this},removeInvalid:function(e){return this._invalids[e]&&(this._invalids[e]=null,delete this._invalids[e],this.fire(h,{handle:e})),this},addInvalid:function(t){return e.Lang.isString(t)&&(this._invalids[t]=!0,this.fire(p,{handle:t})),this},initializer:function(t){this.get(r).dd=this;if(!this.get(r).get("id")){var n=e.stamp(this.get(r));this.get(r).set("id",n)}this.actXY=[],this._invalids=e.clone(this._invalidsDefault,!0),this._createEvents(),this.get(s)||this.set(s,this.get(r)),this.on("initializedChange",e.bind(this._prep,this)),this.set("groups",this.get("groups"))},_prep:function(){this._dragThreshMet=!1;var t=this.get(r);t.addClass(n.CSS_PREFIX+"-draggable"),t.on(y.START_EVENT,e.bind(this._handleMouseDownEvent,this)),t.on("mouseup",e.bind(this._handleMouseUp,this)),t.on("dragstart",e.bind(this._fixDragStart,this))},_unprep:function(){var e=this.get(r);e.removeClass(n.CSS_PREFIX+"-draggable"),e.detachAll("mouseup"),e.detachAll("dragstart"),e.detachAll(y.START_EVENT),this.mouseXY=[],this.deltaXY=[0,0],this.startXY=[],this.nodeXY=[],this.lastXY=[],this.actXY=[],this.realXY=[]},start:function(){if(!this.get("lock")&&!this.get(i)){var e=this.get(r),t,a,f;this._startTime=(new Date).getTime(),n._start(),e.addClass(n.CSS_PREFIX+"-dragging"),this.fire(d,{pageX:this.nodeXY[0],pageY:this.nodeXY[1],startTime:this._startTime}),e=this.get(s),f=this.nodeXY,t=e.get(u),a=e.get(o),this.get("startCentered")&&this._setStartPosition([f[0]+t/2,f[1]+a/2]),this.region={0:f[0],1:f[1],area:0,top:f[1],right:f[0]+t,bottom:f[1]+a,left:f[0]},this.set(i,!0)}return this},end:function(){return this._endTime=(new Date).getTime(),this._clickTimeout&&this._clickTimeout.cancel(),this._dragThreshMet=this._fromTimeout=!1,!this.get("lock")&&this.get(i)&&this.fire(v,{pageX:this.lastXY[0],pageY:this.lastXY[1],startTime:this._startTime,endTime:this._endTime}),this.get(r).removeClass(n.CSS_PREFIX+"-dragging"),this.set(i,!1),this.deltaXY=[0,0],this},_defEndFn:function(e){this._fixIEMouseUp(),this._ev_md=null},_prevEndFn:function(e){this._fixIEMouseUp(),this.get(s).setXY(this.nodeXY),this._ev_md=null,this.region=null},_align:function(e){this.fire(g,{pageX:e[0],pageY:e[1]})},_defAlignFn:function(e){this.actXY=[e.pageX-this.deltaXY[0],e.pageY-this.deltaXY[1]]},_alignNode:function(e,t){this._align(e),t||this._moveNode()},_moveNode:function(e){var t=[],n=[],r=this.nodeXY,i=this.actXY;t[0]=i[0]-this.lastXY[0],t[1]=i[1]-this.lastXY[1],n[0]=i[0]-this.nodeXY[0],n[1]=i[1]-this.nodeXY[1],this.region={0:i[0],1:i[1],area:0,top:i[1],right:i[0]+this.get(s).get(u),bottom:i[1]+this.get(s).get(o),left:i[0]},this.fire(m,{pageX:i[0],pageY:i[1],scroll:e,info:{start:r,xy:i,delta:t,offset:n}}),this.lastXY=i},_defDragFn:function(e){this.get("move")&&(e.scroll&&e.scroll.node&&(e.scroll.node.set("scrollTop",e.scroll.top),e.scroll.node.set("scrollLeft",e.scroll.left)),this.get(s).setXY([e.pageX,e.pageY]),this.realXY=[e.pageX,e.pageY])},_move:function(e){if(this.get("lock"))return!1;this.mouseXY=[e.pageX,e.pageY];if(!this._dragThreshMet){var t=Math.abs(this.startXY[0]-e.pageX),n=Math.abs(this.startXY[1]-e.pageY);if(t>this.get("clickPixelThresh")||n>this.get("clickPixelThresh"))this._dragThreshMet=!0,this.start(),this._alignNode([e.pageX,e.pageY])}else this._clickTimeout&&this._clickTimeout.cancel(),this._alignNode([e.pageX,e.pageY])},stopDrag:function(){return this.get(i)&&n._end(),this},destructor:function(){this._unprep(),this.target&&this.target.destroy(),n._unregDrag(this)}}),e.namespace("DD"),e.DD.Drag=y},"3.7.1",{requires:["dd-ddm-base"]});
+YUI.add("dd-drag",function(e,t){var n=e.DD.DDM,r="node",i="dragging",s="dragNode",o="offsetHeight",u="offsetWidth",a="drag:mouseDown",f="drag:afterMouseDown",l="drag:removeHandle",c="drag:addHandle",h="drag:removeInvalid",p="drag:addInvalid",d="drag:start",v="drag:end",m="drag:drag",g="drag:align",y=function(t){this._lazyAddAttrs=!1,y.superclass.constructor.apply(this,arguments);var r=n._regDrag(this);r||e.error("Failed to register node, already in use: "+t.node)};y.NAME="drag",y.START_EVENT="mousedown",y.ATTRS={node:{setter:function(t){if(this._canDrag(t))return t;var n=e.one(t);return n||e.error("DD.Drag: Invalid Node Given: "+t),n}},dragNode:{setter:function(t){if(this._canDrag(t))return t;var n=e.one(t);return n||e.error("DD.Drag: Invalid dragNode Given: "+t),n}},offsetNode:{value:!0},startCentered:{value:!1},clickPixelThresh:{value:n.get("clickPixelThresh")},clickTimeThresh:{value:n.get("clickTimeThresh")},lock:{value:!1,setter:function(e){return e?this.get(r).addClass(n.CSS_PREFIX+"-locked"):this.get(r).removeClass(n.CSS_PREFIX+"-locked"),e}},data:{value:!1},move:{value:!0},useShim:{value:!0},activeHandle:{value:!1},primaryButtonOnly:{value:!0},dragging:{value:!1},parent:{value:!1},target:{value:!1,setter:function(e){return this._handleTarget(e),e}},dragMode:{value:null,setter:function(e){return n._setDragMode(e)}},groups:{value:["default"],getter:function(){this._groups||(this._groups={});var t=[];return e.each(this._groups,function(e,n){t[t.length]=n}),t},setter:function(t){return this._groups={},e.each(t,function(e,t){this._groups[e]=!0},this),t}},handles:{value:null,setter:function(t){return t?(this._handles={},e.each(t,function(t,n){var r=t;if(t instanceof e.Node||t instanceof e.NodeList)r=t._yuid;this._handles[r]=t},this)):this._handles=null,t}},bubbles:{setter:function(e){return this.addTarget(e),e}},haltDown:{value:!0}},e.extend(y,e.Base,{_canDrag:function(e){return e&&e.setXY&&e.getXY&&e.test&&e.contains?!0:!1},_bubbleTargets:e.DD.DDM,addToGroup:function(e){return this._groups[e]=!0,n._activateTargets(),this},removeFromGroup:function(e){return delete this._groups[e],n._activateTargets(),this},target:null,_handleTarget:function(t){e.DD.Drop&&(t===!1?this.target&&(n._unregTarget(this.target),this.target=null):(e.Lang.isObject(t)||(t={}),t.bubbleTargets=t.bubbleTargets||e.Object.values(this._yuievt.targets),t.node=this.get(r),t.groups=t.groups||this.get("groups"),this.target=new e.DD.Drop(t)))},_groups:null,_createEvents:function(){this.publish(a,{defaultFn:this._defMouseDownFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"}),this.publish(g,{defaultFn:this._defAlignFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"}),this.publish(m,{defaultFn:this._defDragFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"}),this.publish(v,{defaultFn:this._defEndFn,preventedFn:this._prevEndFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"});var t=[f,l,c,h,p,d,"drag:drophit","drag:dropmiss","drag:over","drag:enter","drag:exit"];e.each(t,function(e,t){this.publish(e,{type:e,emitFacade:!0,bubbles:!0,preventable:!1,queuable:!1,prefix:"drag"})},this)},_ev_md:null,_startTime:null,_endTime:null,_handles:null,_invalids:null,_invalidsDefault:{textarea:!0,input:!0,a:!0,button:!0,select:!0},_dragThreshMet:null,_fromTimeout:null,_clickTimeout:null,deltaXY:null,startXY:null,nodeXY:null,lastXY:null,actXY:null,realXY:null,mouseXY:null,region:null,_handleMouseUp:function(e){this.fire("drag:mouseup"),this._fixIEMouseUp(),n.activeDrag&&n._end()},_fixDragStart:function(e){this.validClick(e)&&e.preventDefault()},_ieSelectFix:function(){return!1},_ieSelectBack:null,_fixIEMouseDown:function(t){e.UA.ie&&(this._ieSelectBack=e.config.doc.body.onselectstart,e.config.doc.body.onselectstart=this._ieSelectFix)},_fixIEMouseUp:function(){e.UA.ie&&(e.config.doc.body.onselectstart=this._ieSelectBack)},_handleMouseDownEvent:function(e){this.fire(a,{ev:e})},_defMouseDownFn:function(t){var r=t.ev;this._dragThreshMet=!1,this._ev_md=r;if(this.get("primaryButtonOnly")&&r.button>1)return!1;this.validClick(r)&&(this._fixIEMouseDown(r),this.get("haltDown")?r.halt():r.preventDefault(),this._setStartPosition([r.pageX,r.pageY]),n.activeDrag=this,this._clickTimeout=e.later(this.get("clickTimeThresh"),this,this._timeoutCheck)),this.fire(f,{ev:r})},validClick:function(t){var n=!1,i=!1,s=t.target,o=null,u=null,a=null,f=!1;if(this._handles)e.each(this._handles,function(t,r){t instanceof e.Node||t instanceof e.NodeList?n||(a=t,a instanceof e.Node&&(a=new e.NodeList(t._node)),a.each(function(e){e.contains(s)&&(n=!0)})):e.Lang.isString(r)&&s.test(r+", "+r+" *")&&!o&&(o=r,n=!0)});else{i=this.get(r);if(i.contains(s)||i.compareTo(s))n=!0}return n&&this._invalids&&e.each(this._invalids,function(t,r){e.Lang.isString(r)&&s.test(r+", "+r+" *")&&(n=!1)}),n&&(o?(u=t.currentTarget.all(o),f=!1,u.each(function(e,t){(e.contains(s)||e.compareTo(s))&&!f&&(f=!0,this.set("activeHandle",e))},this)):this.set("activeHandle",this.get(r))),n},_setStartPosition:function(e){this.startXY=e,this.nodeXY=this.lastXY=this.realXY=this.get(r).getXY(),this.get("offsetNode")?this.deltaXY=[this.startXY[0]-this.nodeXY[0],this.startXY[1]-this.nodeXY[1]]:this.deltaXY=[0,0]},_timeoutCheck:function(){!this.get("lock")&&!this._dragThreshMet&&this._ev_md&&(this._fromTimeout=this._dragThreshMet=!0,this.start(),this._alignNode([this._ev_md.pageX,this._ev_md.pageY],!0))},removeHandle:function(t){var n=t;if(t instanceof e.Node||t instanceof e.NodeList)n=t._yuid;return this._handles[n]&&(delete this._handles[n],this.fire(l,{handle:t})),this},addHandle:function(t){this._handles||(this._handles={});var n=t;if(t instanceof e.Node||t instanceof e.NodeList)n=t._yuid;return this._handles[n]=t,this.fire(c,{handle:t}),this},removeInvalid:function(e){return this._invalids[e]&&(this._invalids[e]=null,delete this._invalids[e],this.fire(h,{handle:e})),this},addInvalid:function(t){return e.Lang.isString(t)&&(this._invalids[t]=!0,this.fire(p,{handle:t})),this},initializer:function(t){this.get(r).dd=this;if(!this.get(r).get("id")){var n=e.stamp(this.get(r));this.get(r).set("id",n)}this.actXY=[],this._invalids=e.clone(this._invalidsDefault,!0),this._createEvents(),this.get(s)||this.set(s,this.get(r)),this.on("initializedChange",e.bind(this._prep,this)),this.set("groups",this.get("groups"))},_prep:function(){this._dragThreshMet=!1;var t=this.get(r);t.addClass(n.CSS_PREFIX+"-draggable"),t.on(y.START_EVENT,e.bind(this._handleMouseDownEvent,this)),t.on("mouseup",e.bind(this._handleMouseUp,this)),t.on("dragstart",e.bind(this._fixDragStart,this))},_unprep:function(){var e=this.get(r);e.removeClass(n.CSS_PREFIX+"-draggable"),e.detachAll("mouseup"),e.detachAll("dragstart"),e.detachAll(y.START_EVENT),this.mouseXY=[],this.deltaXY=[0,0],this.startXY=[],this.nodeXY=[],this.lastXY=[],this.actXY=[],this.realXY=[]},start:function(){if(!this.get("lock")&&!this.get(i)){var e=this.get(r),t,a,f;this._startTime=(new Date).getTime(),n._start(),e.addClass(n.CSS_PREFIX+"-dragging"),this.fire(d,{pageX:this.nodeXY[0],pageY:this.nodeXY[1],startTime:this._startTime}),e=this.get(s),f=this.nodeXY,t=e.get(u),a=e.get(o),this.get("startCentered")&&this._setStartPosition([f[0]+t/2,f[1]+a/2]),this.region={0:f[0],1:f[1],area:0,top:f[1],right:f[0]+t,bottom:f[1]+a,left:f[0]},this.set(i,!0)}return this},end:function(){return this._endTime=(new Date).getTime(),this._clickTimeout&&this._clickTimeout.cancel(),this._dragThreshMet=this._fromTimeout=!1,!this.get("lock")&&this.get(i)&&this.fire(v,{pageX:this.lastXY[0],pageY:this.lastXY[1],startTime:this._startTime,endTime:this._endTime}),this.get(r).removeClass(n.CSS_PREFIX+"-dragging"),this.set(i,!1),this.deltaXY=[0,0],this},_defEndFn:function(e){this._fixIEMouseUp(),this._ev_md=null},_prevEndFn:function(e){this._fixIEMouseUp(),this.get(s).setXY(this.nodeXY),this._ev_md=null,this.region=null},_align:function(e){this.fire(g,{pageX:e[0],pageY:e[1]})},_defAlignFn:function(e){this.actXY=[e.pageX-this.deltaXY[0],e.pageY-this.deltaXY[1]]},_alignNode:function(e,t){this._align(e),t||this._moveNode()},_moveNode:function(e){var t=[],n=[],r=this.nodeXY,i=this.actXY;t[0]=i[0]-this.lastXY[0],t[1]=i[1]-this.lastXY[1],n[0]=i[0]-this.nodeXY[0],n[1]=i[1]-this.nodeXY[1],this.region={0:i[0],1:i[1],area:0,top:i[1],right:i[0]+this.get(s).get(u),bottom:i[1]+this.get(s).get(o),left:i[0]},this.fire(m,{pageX:i[0],pageY:i[1],scroll:e,info:{start:r,xy:i,delta:t,offset:n}}),this.lastXY=i},_defDragFn:function(e){this.get("move")&&(e.scroll&&e.scroll.node&&(e.scroll.node.set("scrollTop",e.scroll.top),e.scroll.node.set("scrollLeft",e.scroll.left)),this.get(s).setXY([e.pageX,e.pageY]),this.realXY=[e.pageX,e.pageY])},_move:function(e){if(this.get("lock"))return!1;this.mouseXY=[e.pageX,e.pageY];if(!this._dragThreshMet){var t=Math.abs(this.startXY[0]-e.pageX),n=Math.abs(this.startXY[1]-e.pageY);if(t>this.get("clickPixelThresh")||n>this.get("clickPixelThresh"))this._dragThreshMet=!0,this.start(),this._alignNode([e.pageX,e.pageY])}else this._clickTimeout&&this._clickTimeout.cancel(),this._alignNode([e.pageX,e.pageY])},stopDrag:function(){return this.get(i)&&n._end(),this},destructor:function(){this._unprep(),this.target&&this.target.destroy(),n._unregDrag(this)}}),e.namespace("DD"),e.DD.Drag=y},"3.7.2",{requires:["dd-ddm-base"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drag/dd-drag.js b/lib/yuilib/3.7.2/build/dd-drag/dd-drag.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-drag/dd-drag.js
rename to lib/yuilib/3.7.2/build/dd-drag/dd-drag.js
index bff91392599..2654080d848 100644
--- a/lib/yuilib/3.7.1/build/dd-drag/dd-drag.js
+++ b/lib/yuilib/3.7.2/build/dd-drag/dd-drag.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1264,4 +1264,4 @@ YUI.add('dd-drag', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-ddm-base"]});
+}, '3.7.2', {"requires": ["dd-ddm-base"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin-coverage.js b/lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin-coverage.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin-coverage.js
rename to lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin-coverage.js
index 9083b371f31..612374d71d8 100644
--- a/lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-drop-plugin/dd-drop-plugin.js"] = {
path: "build/dd-drop-plugin/dd-drop-plugin.js",
code: []
};
-_yuitest_coverage["build/dd-drop-plugin/dd-drop-plugin.js"].code=["YUI.add('dd-drop-plugin', function (Y, NAME) {","",""," /**"," * Simple Drop plugin that can be attached to a Node via the plug method."," * @module dd"," * @submodule dd-drop-plugin"," */"," /**"," * Simple Drop plugin that can be attached to a Node via the plug method."," * @class Drop"," * @extends DD.Drop"," * @constructor"," * @namespace Plugin"," */","",""," var Drop = function(config) {"," config.node = config.host;"," Drop.superclass.constructor.apply(this, arguments);"," };"," "," /**"," * @property NAME"," * @description dd-drop-plugin"," * @type {String}"," */"," Drop.NAME = \"dd-drop-plugin\";"," /**"," * @property NS"," * @description The Drop instance will be placed on the Node instance under the drop namespace. It can be accessed via Node.drop;"," * @type {String}"," */"," Drop.NS = \"drop\";","",""," Y.extend(Drop, Y.DD.Drop);"," Y.namespace('Plugin');"," Y.Plugin.Drop = Drop;","","","","","}, '3.7.1', {\"requires\": [\"dd-drop\"]});"];
+_yuitest_coverage["build/dd-drop-plugin/dd-drop-plugin.js"].code=["YUI.add('dd-drop-plugin', function (Y, NAME) {","",""," /**"," * Simple Drop plugin that can be attached to a Node via the plug method."," * @module dd"," * @submodule dd-drop-plugin"," */"," /**"," * Simple Drop plugin that can be attached to a Node via the plug method."," * @class Drop"," * @extends DD.Drop"," * @constructor"," * @namespace Plugin"," */","",""," var Drop = function(config) {"," config.node = config.host;"," Drop.superclass.constructor.apply(this, arguments);"," };"," "," /**"," * @property NAME"," * @description dd-drop-plugin"," * @type {String}"," */"," Drop.NAME = \"dd-drop-plugin\";"," /**"," * @property NS"," * @description The Drop instance will be placed on the Node instance under the drop namespace. It can be accessed via Node.drop;"," * @type {String}"," */"," Drop.NS = \"drop\";","",""," Y.extend(Drop, Y.DD.Drop);"," Y.namespace('Plugin');"," Y.Plugin.Drop = Drop;","","","","","}, '3.7.2', {\"requires\": [\"dd-drop\"]});"];
_yuitest_coverage["build/dd-drop-plugin/dd-drop-plugin.js"].lines = {"1":0,"18":0,"19":0,"20":0,"28":0,"34":0,"37":0,"38":0,"39":0};
_yuitest_coverage["build/dd-drop-plugin/dd-drop-plugin.js"].functions = {"Drop:18":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-drop-plugin/dd-drop-plugin.js"].coveredLines = 9;
@@ -91,4 +91,4 @@ Y.Plugin.Drop = Drop;
-}, '3.7.1', {"requires": ["dd-drop"]});
+}, '3.7.2', {"requires": ["dd-drop"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin-debug.js b/lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin-debug.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin-debug.js
rename to lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin-debug.js
index 6c3cae56090..23aa75c85b0 100644
--- a/lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -47,4 +47,4 @@ YUI.add('dd-drop-plugin', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drop"]});
+}, '3.7.2', {"requires": ["dd-drop"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin-min.js b/lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin-min.js
similarity index 79%
rename from lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin-min.js
rename to lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin-min.js
index fdc33f71e09..141d5e7cce6 100644
--- a/lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin-min.js
+++ b/lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-drop-plugin",function(e,t){var n=function(e){e.node=e.host,n.superclass.constructor.apply(this,arguments)};n.NAME="dd-drop-plugin",n.NS="drop",e.extend(n,e.DD.Drop),e.namespace("Plugin"),e.Plugin.Drop=n},"3.7.1",{requires:["dd-drop"]});
+YUI.add("dd-drop-plugin",function(e,t){var n=function(e){e.node=e.host,n.superclass.constructor.apply(this,arguments)};n.NAME="dd-drop-plugin",n.NS="drop",e.extend(n,e.DD.Drop),e.namespace("Plugin"),e.Plugin.Drop=n},"3.7.2",{requires:["dd-drop"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin.js b/lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin.js
rename to lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin.js
index 6c3cae56090..23aa75c85b0 100644
--- a/lib/yuilib/3.7.1/build/dd-drop-plugin/dd-drop-plugin.js
+++ b/lib/yuilib/3.7.2/build/dd-drop-plugin/dd-drop-plugin.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -47,4 +47,4 @@ YUI.add('dd-drop-plugin', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drop"]});
+}, '3.7.2', {"requires": ["dd-drop"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drop/dd-drop-coverage.js b/lib/yuilib/3.7.2/build/dd-drop/dd-drop-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-drop/dd-drop-coverage.js
rename to lib/yuilib/3.7.2/build/dd-drop/dd-drop-coverage.js
index 852348d9bd4..81022b0f513 100644
--- a/lib/yuilib/3.7.1/build/dd-drop/dd-drop-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-drop/dd-drop-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-drop/dd-drop.js"] = {
path: "build/dd-drop/dd-drop.js",
code: []
};
-_yuitest_coverage["build/dd-drop/dd-drop.js"].code=["YUI.add('dd-drop', function (Y, NAME) {","",""," /**"," * Provides the ability to create a Drop Target."," * @module dd"," * @submodule dd-drop"," */ "," /**"," * Provides the ability to create a Drop Target."," * @class Drop"," * @extends Base"," * @constructor"," * @namespace DD"," */",""," var NODE = 'node',"," DDM = Y.DD.DDM,"," OFFSET_HEIGHT = 'offsetHeight',"," OFFSET_WIDTH = 'offsetWidth',"," /**"," * @event drop:over"," * @description Fires when a drag element is over this target."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," * - drag
- The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_DROP_OVER = 'drop:over',"," /**"," * @event drop:enter"," * @description Fires when a drag element enters this target."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," * - drag
- The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_DROP_ENTER = 'drop:enter',"," /**"," * @event drop:exit"," * @description Fires when a drag element exits this target."," * @param {EventFacade} event An Event Facade object"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_DROP_EXIT = 'drop:exit',",""," /**"," * @event drop:hit"," * @description Fires when a draggable node is dropped on this Drop Target. (Fired from dd-ddm-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The best guess on what was dropped on.
"," * - drag
- The drag object at the time of the event.
"," * - others
- An array of all the other drop targets that was dropped on.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," ",""," Drop = function() {"," this._lazyAddAttrs = false;"," Drop.superclass.constructor.apply(this, arguments);","",""," //DD init speed up."," Y.on('domready', Y.bind(function() {"," Y.later(100, this, this._createShim);"," }, this));"," DDM._regTarget(this);",""," /* TODO"," if (Dom.getStyle(this.el, 'position') == 'fixed') {"," Event.on(window, 'scroll', function() {"," this.activateShim();"," }, this, true);"," }"," */"," };",""," Drop.NAME = 'drop';",""," Drop.ATTRS = {"," /**"," * @attribute node"," * @description Y.Node instanace to use as the element to make a Drop Target"," * @type Node"," */ "," node: {"," setter: function(node) {"," var n = Y.one(node);"," if (!n) {"," Y.error('DD.Drop: Invalid Node Given: ' + node);"," }"," return n; "," }"," },"," /**"," * @attribute groups"," * @description Array of groups to add this drop into."," * @type Array"," */ "," groups: {"," value: ['default'],"," getter: function() {"," if (!this._groups) {"," this._groups = {};"," }"," var ret = [];"," Y.each(this._groups, function(v, k) {"," ret[ret.length] = k;"," });"," return ret;"," }, "," setter: function(g) {"," this._groups = {};"," Y.each(g, function(v, k) {"," this._groups[v] = true;"," }, this);"," return g;"," }"," }, "," /**"," * @attribute padding"," * @description CSS style padding to make the Drop Target bigger than the node."," * @type String"," */"," padding: {"," value: '0',"," setter: function(p) {"," return DDM.cssSizestoObject(p);"," }"," },"," /**"," * @attribute lock"," * @description Set to lock this drop element."," * @type Boolean"," */ "," lock: {"," value: false,"," setter: function(lock) {"," if (lock) {"," this.get(NODE).addClass(DDM.CSS_PREFIX + '-drop-locked');"," } else {"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-locked');"," }"," return lock;"," }"," },"," /**"," * @deprecated"," * @attribute bubbles"," * @description Controls the default bubble parent for this Drop instance. Default: Y.DD.DDM. Set to false to disable bubbling. Use bubbleTargets in config."," * @type Object"," */"," bubbles: {"," setter: function(t) {"," this.addTarget(t);"," return t;"," }"," },"," /**"," * @deprecated"," * @attribute useShim"," * @description Use the Drop shim. Default: true"," * @type Boolean"," */"," useShim: {"," value: true,"," setter: function(v) {"," Y.DD.DDM._noShim = !v;"," return v;"," }"," }"," };",""," Y.extend(Drop, Y.Base, {"," /**"," * @private"," * @property _bubbleTargets"," * @description The default bubbleTarget for this object. Default: Y.DD.DDM"," */"," _bubbleTargets: Y.DD.DDM,"," /**"," * @method addToGroup"," * @description Add this Drop instance to a group, this should be used for on-the-fly group additions."," * @param {String} g The group to add this Drop Instance to."," * @return {Self}"," * @chainable"," */"," addToGroup: function(g) {"," this._groups[g] = true;"," return this;"," },"," /**"," * @method removeFromGroup"," * @description Remove this Drop instance from a group, this should be used for on-the-fly group removals."," * @param {String} g The group to remove this Drop Instance from."," * @return {Self}"," * @chainable"," */"," removeFromGroup: function(g) {"," delete this._groups[g];"," return this;"," },"," /**"," * @private"," * @method _createEvents"," * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling."," */"," _createEvents: function() {"," "," var ev = ["," EV_DROP_OVER,"," EV_DROP_ENTER,"," EV_DROP_EXIT,"," 'drop:hit'"," ];",""," Y.each(ev, function(v, k) {"," this.publish(v, {"," type: v,"," emitFacade: true,"," preventable: false,"," bubbles: true,"," queuable: false,"," prefix: 'drop'"," });"," }, this);"," },"," /**"," * @private"," * @property _valid"," * @description Flag for determining if the target is valid in this operation."," * @type Boolean"," */"," _valid: null,"," /**"," * @private"," * @property _groups"," * @description The groups this target belongs to."," * @type Array"," */"," _groups: null,"," /**"," * @property shim"," * @description Node reference to the targets shim"," * @type {Object}"," */"," shim: null,"," /**"," * @property region"," * @description A region object associated with this target, used for checking regions while dragging."," * @type Object"," */"," region: null,"," /**"," * @property overTarget"," * @description This flag is tripped when a drag element is over this target."," * @type Boolean"," */"," overTarget: null,"," /**"," * @method inGroup"," * @description Check if this target is in one of the supplied groups."," * @param {Array} groups The groups to check against"," * @return Boolean"," */"," inGroup: function(groups) {"," this._valid = false;"," var ret = false;"," Y.each(groups, function(v, k) {"," if (this._groups[v]) {"," ret = true;"," this._valid = true;"," }"," }, this);"," return ret;"," },"," /**"," * @private"," * @method initializer"," * @description Private lifecycle method"," */"," initializer: function(cfg) {"," Y.later(100, this, this._createEvents);",""," var node = this.get(NODE), id;"," if (!node.get('id')) {"," id = Y.stamp(node);"," node.set('id', id);"," }"," node.addClass(DDM.CSS_PREFIX + '-drop');"," //Shouldn't have to do this.."," this.set('groups', this.get('groups')); "," },"," /**"," * @private"," * @method destructor"," * @description Lifecycle destructor, unreg the drag from the DDM and remove listeners"," */"," destructor: function() {"," DDM._unregTarget(this);"," if (this.shim && (this.shim !== this.get(NODE))) {"," this.shim.detachAll();"," this.shim.remove();"," this.shim = null;"," }"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop');"," this.detachAll();"," },"," /**"," * @private"," * @method _deactivateShim"," * @description Removes classes from the target, resets some flags and sets the shims deactive position [-999, -999]"," */"," _deactivateShim: function() {"," if (!this.shim) {"," return false;"," }"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-active-valid');"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-active-invalid');"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-over');",""," if (this.get('useShim')) {"," this.shim.setStyles({"," top: '-999px',"," left: '-999px',"," zIndex: '1'"," });"," }"," this.overTarget = false;"," },"," /**"," * @private"," * @method _activateShim"," * @description Activates the shim and adds some interaction CSS classes"," */"," _activateShim: function() {"," if (!DDM.activeDrag) {"," return false; //Nothing is dragging, no reason to activate."," }"," if (this.get(NODE) === DDM.activeDrag.get(NODE)) {"," return false;"," }"," if (this.get('lock')) {"," return false;"," }"," var node = this.get(NODE);"," //TODO Visibility Check.."," //if (this.inGroup(DDM.activeDrag.get('groups')) && this.get(NODE).isVisible()) {"," if (this.inGroup(DDM.activeDrag.get('groups'))) {"," node.removeClass(DDM.CSS_PREFIX + '-drop-active-invalid');"," node.addClass(DDM.CSS_PREFIX + '-drop-active-valid');"," DDM._addValid(this);"," this.overTarget = false;"," if (!this.get('useShim')) {"," this.shim = this.get(NODE);"," }"," this.sizeShim();"," } else {"," DDM._removeValid(this);"," node.removeClass(DDM.CSS_PREFIX + '-drop-active-valid');"," node.addClass(DDM.CSS_PREFIX + '-drop-active-invalid');"," }"," },"," /**"," * @method sizeShim"," * @description Positions and sizes the shim with the raw data from the node, this can be used to programatically adjust the Targets shim for Animation.."," */"," sizeShim: function() {"," if (!DDM.activeDrag) {"," return false; //Nothing is dragging, no reason to activate."," }"," if (this.get(NODE) === DDM.activeDrag.get(NODE)) {"," return false;"," }"," //if (this.get('lock') || !this.get('useShim')) {"," if (this.get('lock')) {"," return false;"," }"," if (!this.shim) {"," Y.later(100, this, this.sizeShim);"," return false;"," }"," var node = this.get(NODE),"," nh = node.get(OFFSET_HEIGHT),"," nw = node.get(OFFSET_WIDTH),"," xy = node.getXY(),"," p = this.get('padding'),"," dd, dH, dW;","",""," //Apply padding"," nw = nw + p.left + p.right;"," nh = nh + p.top + p.bottom;"," xy[0] = xy[0] - p.left;"," xy[1] = xy[1] - p.top;"," ",""," if (DDM.activeDrag.get('dragMode') === DDM.INTERSECT) {"," //Intersect Mode, make the shim bigger"," dd = DDM.activeDrag;"," dH = dd.get(NODE).get(OFFSET_HEIGHT);"," dW = dd.get(NODE).get(OFFSET_WIDTH);"," "," nh = (nh + dH);"," nw = (nw + dW);"," xy[0] = xy[0] - (dW - dd.deltaXY[0]);"," xy[1] = xy[1] - (dH - dd.deltaXY[1]);",""," }"," "," if (this.get('useShim')) {"," //Set the style on the shim"," this.shim.setStyles({"," height: nh + 'px',"," width: nw + 'px',"," top: xy[1] + 'px',"," left: xy[0] + 'px'"," });"," }",""," //Create the region to be used by intersect when a drag node is over us."," this.region = {"," '0': xy[0], "," '1': xy[1],"," area: 0,"," top: xy[1],"," right: xy[0] + nw,"," bottom: xy[1] + nh,"," left: xy[0]"," };"," },"," /**"," * @private"," * @method _createShim"," * @description Creates the Target shim and adds it to the DDM's playground.."," */"," _createShim: function() {"," //No playground, defer"," if (!DDM._pg) {"," Y.later(10, this, this._createShim);"," return;"," }"," //Shim already here, cancel"," if (this.shim) {"," return;"," }"," var s = this.get('node');",""," if (this.get('useShim')) {"," s = Y.Node.create('');"," s.setStyles({"," height: this.get(NODE).get(OFFSET_HEIGHT) + 'px',"," width: this.get(NODE).get(OFFSET_WIDTH) + 'px',"," backgroundColor: 'yellow',"," opacity: '.5',"," zIndex: '1',"," overflow: 'hidden',"," top: '-900px',"," left: '-900px',"," position: 'absolute'"," });",""," DDM._pg.appendChild(s);",""," s.on('mouseover', Y.bind(this._handleOverEvent, this));"," s.on('mouseout', Y.bind(this._handleOutEvent, this));"," }","",""," this.shim = s;"," },"," /**"," * @private"," * @method _handleOverTarget"," * @description This handles the over target call made from this object or from the DDM"," */"," _handleTargetOver: function() {"," if (DDM.isOverTarget(this)) {"," this.get(NODE).addClass(DDM.CSS_PREFIX + '-drop-over');"," DDM.activeDrop = this;"," DDM.otherDrops[this] = this;"," if (this.overTarget) {"," DDM.activeDrag.fire('drag:over', { drop: this, drag: DDM.activeDrag });"," this.fire(EV_DROP_OVER, { drop: this, drag: DDM.activeDrag });"," } else {"," //Prevent an enter before a start.."," if (DDM.activeDrag.get('dragging')) {"," this.overTarget = true;"," this.fire(EV_DROP_ENTER, { drop: this, drag: DDM.activeDrag });"," DDM.activeDrag.fire('drag:enter', { drop: this, drag: DDM.activeDrag });"," DDM.activeDrag.get(NODE).addClass(DDM.CSS_PREFIX + '-drag-over');"," //TODO - Is this needed??"," //DDM._handleTargetOver();"," }"," }"," } else {"," this._handleOut();"," }"," },"," /**"," * @private"," * @method _handleOverEvent"," * @description Handles the mouseover DOM event on the Target Shim"," */"," _handleOverEvent: function() {"," this.shim.setStyle('zIndex', '999');"," DDM._addActiveShim(this);"," },"," /**"," * @private"," * @method _handleOutEvent"," * @description Handles the mouseout DOM event on the Target Shim"," */"," _handleOutEvent: function() {"," this.shim.setStyle('zIndex', '1');"," DDM._removeActiveShim(this);"," },"," /**"," * @private"," * @method _handleOut"," * @description Handles out of target calls/checks"," */"," _handleOut: function(force) {"," if (!DDM.isOverTarget(this) || force) {"," if (this.overTarget) {"," this.overTarget = false;"," if (!force) {"," DDM._removeActiveShim(this);"," }"," if (DDM.activeDrag) {"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-over');"," DDM.activeDrag.get(NODE).removeClass(DDM.CSS_PREFIX + '-drag-over');"," this.fire(EV_DROP_EXIT, { drop: this, drag: DDM.activeDrag });"," DDM.activeDrag.fire('drag:exit', { drop: this, drag: DDM.activeDrag });"," delete DDM.otherDrops[this];"," }"," }"," }"," }"," });",""," Y.DD.Drop = Drop;","","","","","}, '3.7.1', {\"requires\": [\"dd-drag\", \"dd-ddm-drop\"]});"];
+_yuitest_coverage["build/dd-drop/dd-drop.js"].code=["YUI.add('dd-drop', function (Y, NAME) {","",""," /**"," * Provides the ability to create a Drop Target."," * @module dd"," * @submodule dd-drop"," */ "," /**"," * Provides the ability to create a Drop Target."," * @class Drop"," * @extends Base"," * @constructor"," * @namespace DD"," */",""," var NODE = 'node',"," DDM = Y.DD.DDM,"," OFFSET_HEIGHT = 'offsetHeight',"," OFFSET_WIDTH = 'offsetWidth',"," /**"," * @event drop:over"," * @description Fires when a drag element is over this target."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," * - drag
- The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_DROP_OVER = 'drop:over',"," /**"," * @event drop:enter"," * @description Fires when a drag element enters this target."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The drop object at the time of the event.
"," * - drag
- The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_DROP_ENTER = 'drop:enter',"," /**"," * @event drop:exit"," * @description Fires when a drag element exits this target."," * @param {EventFacade} event An Event Facade object"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_DROP_EXIT = 'drop:exit',",""," /**"," * @event drop:hit"," * @description Fires when a draggable node is dropped on this Drop Target. (Fired from dd-ddm-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," * "," * - drop
- The best guess on what was dropped on.
"," * - drag
- The drag object at the time of the event.
"," * - others
- An array of all the other drop targets that was dropped on.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," ",""," Drop = function() {"," this._lazyAddAttrs = false;"," Drop.superclass.constructor.apply(this, arguments);","",""," //DD init speed up."," Y.on('domready', Y.bind(function() {"," Y.later(100, this, this._createShim);"," }, this));"," DDM._regTarget(this);",""," /* TODO"," if (Dom.getStyle(this.el, 'position') == 'fixed') {"," Event.on(window, 'scroll', function() {"," this.activateShim();"," }, this, true);"," }"," */"," };",""," Drop.NAME = 'drop';",""," Drop.ATTRS = {"," /**"," * @attribute node"," * @description Y.Node instanace to use as the element to make a Drop Target"," * @type Node"," */ "," node: {"," setter: function(node) {"," var n = Y.one(node);"," if (!n) {"," Y.error('DD.Drop: Invalid Node Given: ' + node);"," }"," return n; "," }"," },"," /**"," * @attribute groups"," * @description Array of groups to add this drop into."," * @type Array"," */ "," groups: {"," value: ['default'],"," getter: function() {"," if (!this._groups) {"," this._groups = {};"," }"," var ret = [];"," Y.each(this._groups, function(v, k) {"," ret[ret.length] = k;"," });"," return ret;"," }, "," setter: function(g) {"," this._groups = {};"," Y.each(g, function(v, k) {"," this._groups[v] = true;"," }, this);"," return g;"," }"," }, "," /**"," * @attribute padding"," * @description CSS style padding to make the Drop Target bigger than the node."," * @type String"," */"," padding: {"," value: '0',"," setter: function(p) {"," return DDM.cssSizestoObject(p);"," }"," },"," /**"," * @attribute lock"," * @description Set to lock this drop element."," * @type Boolean"," */ "," lock: {"," value: false,"," setter: function(lock) {"," if (lock) {"," this.get(NODE).addClass(DDM.CSS_PREFIX + '-drop-locked');"," } else {"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-locked');"," }"," return lock;"," }"," },"," /**"," * @deprecated"," * @attribute bubbles"," * @description Controls the default bubble parent for this Drop instance. Default: Y.DD.DDM. Set to false to disable bubbling. Use bubbleTargets in config."," * @type Object"," */"," bubbles: {"," setter: function(t) {"," this.addTarget(t);"," return t;"," }"," },"," /**"," * @deprecated"," * @attribute useShim"," * @description Use the Drop shim. Default: true"," * @type Boolean"," */"," useShim: {"," value: true,"," setter: function(v) {"," Y.DD.DDM._noShim = !v;"," return v;"," }"," }"," };",""," Y.extend(Drop, Y.Base, {"," /**"," * @private"," * @property _bubbleTargets"," * @description The default bubbleTarget for this object. Default: Y.DD.DDM"," */"," _bubbleTargets: Y.DD.DDM,"," /**"," * @method addToGroup"," * @description Add this Drop instance to a group, this should be used for on-the-fly group additions."," * @param {String} g The group to add this Drop Instance to."," * @return {Self}"," * @chainable"," */"," addToGroup: function(g) {"," this._groups[g] = true;"," return this;"," },"," /**"," * @method removeFromGroup"," * @description Remove this Drop instance from a group, this should be used for on-the-fly group removals."," * @param {String} g The group to remove this Drop Instance from."," * @return {Self}"," * @chainable"," */"," removeFromGroup: function(g) {"," delete this._groups[g];"," return this;"," },"," /**"," * @private"," * @method _createEvents"," * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling."," */"," _createEvents: function() {"," "," var ev = ["," EV_DROP_OVER,"," EV_DROP_ENTER,"," EV_DROP_EXIT,"," 'drop:hit'"," ];",""," Y.each(ev, function(v, k) {"," this.publish(v, {"," type: v,"," emitFacade: true,"," preventable: false,"," bubbles: true,"," queuable: false,"," prefix: 'drop'"," });"," }, this);"," },"," /**"," * @private"," * @property _valid"," * @description Flag for determining if the target is valid in this operation."," * @type Boolean"," */"," _valid: null,"," /**"," * @private"," * @property _groups"," * @description The groups this target belongs to."," * @type Array"," */"," _groups: null,"," /**"," * @property shim"," * @description Node reference to the targets shim"," * @type {Object}"," */"," shim: null,"," /**"," * @property region"," * @description A region object associated with this target, used for checking regions while dragging."," * @type Object"," */"," region: null,"," /**"," * @property overTarget"," * @description This flag is tripped when a drag element is over this target."," * @type Boolean"," */"," overTarget: null,"," /**"," * @method inGroup"," * @description Check if this target is in one of the supplied groups."," * @param {Array} groups The groups to check against"," * @return Boolean"," */"," inGroup: function(groups) {"," this._valid = false;"," var ret = false;"," Y.each(groups, function(v, k) {"," if (this._groups[v]) {"," ret = true;"," this._valid = true;"," }"," }, this);"," return ret;"," },"," /**"," * @private"," * @method initializer"," * @description Private lifecycle method"," */"," initializer: function(cfg) {"," Y.later(100, this, this._createEvents);",""," var node = this.get(NODE), id;"," if (!node.get('id')) {"," id = Y.stamp(node);"," node.set('id', id);"," }"," node.addClass(DDM.CSS_PREFIX + '-drop');"," //Shouldn't have to do this.."," this.set('groups', this.get('groups')); "," },"," /**"," * @private"," * @method destructor"," * @description Lifecycle destructor, unreg the drag from the DDM and remove listeners"," */"," destructor: function() {"," DDM._unregTarget(this);"," if (this.shim && (this.shim !== this.get(NODE))) {"," this.shim.detachAll();"," this.shim.remove();"," this.shim = null;"," }"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop');"," this.detachAll();"," },"," /**"," * @private"," * @method _deactivateShim"," * @description Removes classes from the target, resets some flags and sets the shims deactive position [-999, -999]"," */"," _deactivateShim: function() {"," if (!this.shim) {"," return false;"," }"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-active-valid');"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-active-invalid');"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-over');",""," if (this.get('useShim')) {"," this.shim.setStyles({"," top: '-999px',"," left: '-999px',"," zIndex: '1'"," });"," }"," this.overTarget = false;"," },"," /**"," * @private"," * @method _activateShim"," * @description Activates the shim and adds some interaction CSS classes"," */"," _activateShim: function() {"," if (!DDM.activeDrag) {"," return false; //Nothing is dragging, no reason to activate."," }"," if (this.get(NODE) === DDM.activeDrag.get(NODE)) {"," return false;"," }"," if (this.get('lock')) {"," return false;"," }"," var node = this.get(NODE);"," //TODO Visibility Check.."," //if (this.inGroup(DDM.activeDrag.get('groups')) && this.get(NODE).isVisible()) {"," if (this.inGroup(DDM.activeDrag.get('groups'))) {"," node.removeClass(DDM.CSS_PREFIX + '-drop-active-invalid');"," node.addClass(DDM.CSS_PREFIX + '-drop-active-valid');"," DDM._addValid(this);"," this.overTarget = false;"," if (!this.get('useShim')) {"," this.shim = this.get(NODE);"," }"," this.sizeShim();"," } else {"," DDM._removeValid(this);"," node.removeClass(DDM.CSS_PREFIX + '-drop-active-valid');"," node.addClass(DDM.CSS_PREFIX + '-drop-active-invalid');"," }"," },"," /**"," * @method sizeShim"," * @description Positions and sizes the shim with the raw data from the node, this can be used to programatically adjust the Targets shim for Animation.."," */"," sizeShim: function() {"," if (!DDM.activeDrag) {"," return false; //Nothing is dragging, no reason to activate."," }"," if (this.get(NODE) === DDM.activeDrag.get(NODE)) {"," return false;"," }"," //if (this.get('lock') || !this.get('useShim')) {"," if (this.get('lock')) {"," return false;"," }"," if (!this.shim) {"," Y.later(100, this, this.sizeShim);"," return false;"," }"," var node = this.get(NODE),"," nh = node.get(OFFSET_HEIGHT),"," nw = node.get(OFFSET_WIDTH),"," xy = node.getXY(),"," p = this.get('padding'),"," dd, dH, dW;","",""," //Apply padding"," nw = nw + p.left + p.right;"," nh = nh + p.top + p.bottom;"," xy[0] = xy[0] - p.left;"," xy[1] = xy[1] - p.top;"," ",""," if (DDM.activeDrag.get('dragMode') === DDM.INTERSECT) {"," //Intersect Mode, make the shim bigger"," dd = DDM.activeDrag;"," dH = dd.get(NODE).get(OFFSET_HEIGHT);"," dW = dd.get(NODE).get(OFFSET_WIDTH);"," "," nh = (nh + dH);"," nw = (nw + dW);"," xy[0] = xy[0] - (dW - dd.deltaXY[0]);"," xy[1] = xy[1] - (dH - dd.deltaXY[1]);",""," }"," "," if (this.get('useShim')) {"," //Set the style on the shim"," this.shim.setStyles({"," height: nh + 'px',"," width: nw + 'px',"," top: xy[1] + 'px',"," left: xy[0] + 'px'"," });"," }",""," //Create the region to be used by intersect when a drag node is over us."," this.region = {"," '0': xy[0], "," '1': xy[1],"," area: 0,"," top: xy[1],"," right: xy[0] + nw,"," bottom: xy[1] + nh,"," left: xy[0]"," };"," },"," /**"," * @private"," * @method _createShim"," * @description Creates the Target shim and adds it to the DDM's playground.."," */"," _createShim: function() {"," //No playground, defer"," if (!DDM._pg) {"," Y.later(10, this, this._createShim);"," return;"," }"," //Shim already here, cancel"," if (this.shim) {"," return;"," }"," var s = this.get('node');",""," if (this.get('useShim')) {"," s = Y.Node.create('');"," s.setStyles({"," height: this.get(NODE).get(OFFSET_HEIGHT) + 'px',"," width: this.get(NODE).get(OFFSET_WIDTH) + 'px',"," backgroundColor: 'yellow',"," opacity: '.5',"," zIndex: '1',"," overflow: 'hidden',"," top: '-900px',"," left: '-900px',"," position: 'absolute'"," });",""," DDM._pg.appendChild(s);",""," s.on('mouseover', Y.bind(this._handleOverEvent, this));"," s.on('mouseout', Y.bind(this._handleOutEvent, this));"," }","",""," this.shim = s;"," },"," /**"," * @private"," * @method _handleOverTarget"," * @description This handles the over target call made from this object or from the DDM"," */"," _handleTargetOver: function() {"," if (DDM.isOverTarget(this)) {"," this.get(NODE).addClass(DDM.CSS_PREFIX + '-drop-over');"," DDM.activeDrop = this;"," DDM.otherDrops[this] = this;"," if (this.overTarget) {"," DDM.activeDrag.fire('drag:over', { drop: this, drag: DDM.activeDrag });"," this.fire(EV_DROP_OVER, { drop: this, drag: DDM.activeDrag });"," } else {"," //Prevent an enter before a start.."," if (DDM.activeDrag.get('dragging')) {"," this.overTarget = true;"," this.fire(EV_DROP_ENTER, { drop: this, drag: DDM.activeDrag });"," DDM.activeDrag.fire('drag:enter', { drop: this, drag: DDM.activeDrag });"," DDM.activeDrag.get(NODE).addClass(DDM.CSS_PREFIX + '-drag-over');"," //TODO - Is this needed??"," //DDM._handleTargetOver();"," }"," }"," } else {"," this._handleOut();"," }"," },"," /**"," * @private"," * @method _handleOverEvent"," * @description Handles the mouseover DOM event on the Target Shim"," */"," _handleOverEvent: function() {"," this.shim.setStyle('zIndex', '999');"," DDM._addActiveShim(this);"," },"," /**"," * @private"," * @method _handleOutEvent"," * @description Handles the mouseout DOM event on the Target Shim"," */"," _handleOutEvent: function() {"," this.shim.setStyle('zIndex', '1');"," DDM._removeActiveShim(this);"," },"," /**"," * @private"," * @method _handleOut"," * @description Handles out of target calls/checks"," */"," _handleOut: function(force) {"," if (!DDM.isOverTarget(this) || force) {"," if (this.overTarget) {"," this.overTarget = false;"," if (!force) {"," DDM._removeActiveShim(this);"," }"," if (DDM.activeDrag) {"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-drop-over');"," DDM.activeDrag.get(NODE).removeClass(DDM.CSS_PREFIX + '-drag-over');"," this.fire(EV_DROP_EXIT, { drop: this, drag: DDM.activeDrag });"," DDM.activeDrag.fire('drag:exit', { drop: this, drag: DDM.activeDrag });"," delete DDM.otherDrops[this];"," }"," }"," }"," }"," });",""," Y.DD.Drop = Drop;","","","","","}, '3.7.2', {\"requires\": [\"dd-drag\", \"dd-ddm-drop\"]});"];
_yuitest_coverage["build/dd-drop/dd-drop.js"].lines = {"1":0,"17":0,"69":0,"70":0,"74":0,"75":0,"77":0,"88":0,"90":0,"98":0,"99":0,"100":0,"102":0,"113":0,"114":0,"116":0,"117":0,"118":0,"120":0,"123":0,"124":0,"125":0,"127":0,"138":0,"149":0,"150":0,"152":0,"154":0,"165":0,"166":0,"178":0,"179":0,"184":0,"199":0,"200":0,"210":0,"211":0,"220":0,"227":0,"228":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"285":0,"293":0,"295":0,"296":0,"297":0,"298":0,"300":0,"302":0,"310":0,"311":0,"312":0,"313":0,"314":0,"316":0,"317":0,"325":0,"326":0,"328":0,"329":0,"330":0,"332":0,"333":0,"339":0,"347":0,"348":0,"350":0,"351":0,"353":0,"354":0,"356":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"367":0,"369":0,"370":0,"371":0,"379":0,"380":0,"382":0,"383":0,"386":0,"387":0,"389":0,"390":0,"391":0,"393":0,"402":0,"403":0,"404":0,"405":0,"408":0,"410":0,"411":0,"412":0,"414":0,"415":0,"416":0,"417":0,"421":0,"423":0,"432":0,"449":0,"450":0,"451":0,"454":0,"455":0,"457":0,"459":0,"460":0,"461":0,"473":0,"475":0,"476":0,"480":0,"488":0,"489":0,"490":0,"491":0,"492":0,"493":0,"494":0,"497":0,"498":0,"499":0,"500":0,"501":0,"507":0,"516":0,"517":0,"525":0,"526":0,"534":0,"535":0,"536":0,"537":0,"538":0,"540":0,"541":0,"542":0,"543":0,"544":0,"545":0,"552":0};
_yuitest_coverage["build/dd-drop/dd-drop.js"].functions = {"(anonymous 2):74":0,"Drop:68":0,"setter:97":0,"(anonymous 3):117":0,"getter:112":0,"(anonymous 4):124":0,"setter:122":0,"setter:137":0,"setter:148":0,"setter:164":0,"setter:177":0,"addToGroup:198":0,"removeFromGroup:209":0,"(anonymous 5):227":0,"_createEvents:218":0,"(anonymous 6):279":0,"inGroup:276":0,"initializer:292":0,"destructor:309":0,"_deactivateShim:324":0,"_activateShim:346":0,"sizeShim:378":0,"_createShim:447":0,"_handleTargetOver:487":0,"_handleOverEvent:515":0,"_handleOutEvent:524":0,"_handleOut:533":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-drop/dd-drop.js"].coveredLines = 154;
@@ -775,4 +775,4 @@ Y.DD.Drop = Drop;
-}, '3.7.1', {"requires": ["dd-drag", "dd-ddm-drop"]});
+}, '3.7.2', {"requires": ["dd-drag", "dd-ddm-drop"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drop/dd-drop-debug.js b/lib/yuilib/3.7.2/build/dd-drop/dd-drop-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-drop/dd-drop-debug.js
rename to lib/yuilib/3.7.2/build/dd-drop/dd-drop-debug.js
index 18ed56414d0..3327ad4d237 100644
--- a/lib/yuilib/3.7.1/build/dd-drop/dd-drop-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-drop/dd-drop-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -561,4 +561,4 @@ YUI.add('dd-drop', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag", "dd-ddm-drop"]});
+}, '3.7.2', {"requires": ["dd-drag", "dd-ddm-drop"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drop/dd-drop-min.js b/lib/yuilib/3.7.2/build/dd-drop/dd-drop-min.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/dd-drop/dd-drop-min.js
rename to lib/yuilib/3.7.2/build/dd-drop/dd-drop-min.js
index 92c1163b198..c9d10c8756f 100644
--- a/lib/yuilib/3.7.1/build/dd-drop/dd-drop-min.js
+++ b/lib/yuilib/3.7.2/build/dd-drop/dd-drop-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-drop",function(e,t){var n="node",r=e.DD.DDM,i="offsetHeight",s="offsetWidth",o="drop:over",u="drop:enter",a="drop:exit",f=function(){this._lazyAddAttrs=!1,f.superclass.constructor.apply(this,arguments),e.on("domready",e.bind(function(){e.later(100,this,this._createShim)},this)),r._regTarget(this)};f.NAME="drop",f.ATTRS={node:{setter:function(t){var n=e.one(t);return n||e.error("DD.Drop: Invalid Node Given: "+t),n}},groups:{value:["default"],getter:function(){this._groups||(this._groups={});var t=[];return e.each(this._groups,function(e,n){t[t.length]=n}),t},setter:function(t){return this._groups={},e.each(t,function(e,t){this._groups[e]=!0},this),t}},padding:{value:"0",setter:function(e){return r.cssSizestoObject(e)}},lock:{value:!1,setter:function(e){return e?this.get(n).addClass(r.CSS_PREFIX+"-drop-locked"):this.get(n).removeClass(r.CSS_PREFIX+"-drop-locked"),e}},bubbles:{setter:function(e){return this.addTarget(e),e}},useShim:{value:!0,setter:function(t){return e.DD.DDM._noShim=!t,t}}},e.extend(f,e.Base,{_bubbleTargets:e.DD.DDM,addToGroup:function(e){return this._groups[e]=!0,this},removeFromGroup:function(e){return delete this._groups[e],this},_createEvents:function(){var t=[o,u,a,"drop:hit"];e.each(t,function(e,t){this.publish(e,{type:e,emitFacade:!0,preventable:!1,bubbles:!0,queuable:!1,prefix:"drop"})},this)},_valid:null,_groups:null,shim:null,region:null,overTarget:null,inGroup:function(t){this._valid=!1;var n=!1;return e.each(t,function(e,t){this._groups[e]&&(n=!0,this._valid=!0)},this),n},initializer:function(t){e.later(100,this,this._createEvents);var i=this.get(n),s;i.get("id")||(s=e.stamp(i),i.set("id",s)),i.addClass(r.CSS_PREFIX+"-drop"),this.set("groups",this.get("groups"))},destructor:function(){r._unregTarget(this),this.shim&&this.shim!==this.get(n)&&(this.shim.detachAll(),this.shim.remove(),this.shim=null),this.get(n).removeClass(r.CSS_PREFIX+"-drop"),this.detachAll()},_deactivateShim:function(){if(!this.shim)return!1;this.get(n).removeClass(r.CSS_PREFIX+"-drop-active-valid"),this.get(n).removeClass(r.CSS_PREFIX+"-drop-active-invalid"),this.get(n).removeClass(r.CSS_PREFIX+"-drop-over"),this.get("useShim")&&this.shim.setStyles({top:"-999px",left:"-999px",zIndex:"1"}),this.overTarget=!1},_activateShim:function(){if(!r.activeDrag)return!1;if(this.get(n)===r.activeDrag.get(n))return!1;if(this.get("lock"))return!1;var e=this.get(n);this.inGroup(r.activeDrag.get("groups"))?(e.removeClass(r.CSS_PREFIX+"-drop-active-invalid"),e.addClass(r.CSS_PREFIX+"-drop-active-valid"),r._addValid(this),this.overTarget=!1,this.get("useShim")||(this.shim=this.get(n)),this.sizeShim()):(r._removeValid(this),e.removeClass(r.CSS_PREFIX+"-drop-active-valid"),e.addClass(r.CSS_PREFIX+"-drop-active-invalid"))},sizeShim:function(){if(!r.activeDrag)return!1;if(this.get(n)===r.activeDrag.get(n))return!1;if(this.get("lock"))return!1;if(!this.shim)return e.later(100,this,this.sizeShim),!1;var t=this.get(n),o=t.get(i),u=t.get(s),a=t.getXY(),f=this.get("padding"),l,c,h;u=u+f.left+f.right,o=o+f.top+f.bottom,a[0]=a[0]-f.left,a[1]=a[1]-f.top,r.activeDrag.get("dragMode")===r.INTERSECT&&(l=r.activeDrag,c=l.get(n).get(i),h=l.get(n).get(s),o+=c,u+=h,a[0]=a[0]-(h-l.deltaXY[0]),a[1]=a[1]-(c-l.deltaXY[1])),this.get("useShim")&&this.shim.setStyles({height:o+"px",width:u+"px",top:a[1]+"px",left:a[0]+"px"}),this.region={0:a[0],1:a[1],area:0,top:a[1],right:a[0]+u,bottom:a[1]+o,left:a[0]}},_createShim:function(){if(!r._pg){e.later(10,this,this._createShim);return}if(this.shim)return;var t=this.get("node");this.get("useShim")&&(t=e.Node.create(''),t.setStyles({height:this.get(n).get(i)+"px",width:this.get(n).get(s)+"px",backgroundColor:"yellow",opacity:".5",zIndex:"1",overflow:"hidden",top:"-900px",left:"-900px",position:"absolute"}),r._pg.appendChild(t),t.on("mouseover",e.bind(this._handleOverEvent,this)),t.on("mouseout",e.bind(this._handleOutEvent,this))),this.shim=t},_handleTargetOver:function(){r.isOverTarget(this)?(this.get(n).addClass(r.CSS_PREFIX+"-drop-over"),r.activeDrop=this,r.otherDrops[this]=this,this.overTarget?(r.activeDrag.fire("drag:over",{drop:this,drag:r.activeDrag}),this.fire(o,{drop:this,drag:r.activeDrag})):r.activeDrag.get("dragging")&&(this.overTarget=!0,this.fire(u,{drop:this,drag:r.activeDrag}),r.activeDrag.fire("drag:enter",{drop:this,drag:r.activeDrag}),r.activeDrag.get(n).addClass(r.CSS_PREFIX+"-drag-over"))):this._handleOut()},_handleOverEvent:function(){this.shim.setStyle("zIndex","999"),r._addActiveShim(this)},_handleOutEvent:function(){this.shim.setStyle("zIndex","1"),r._removeActiveShim(this)},_handleOut:function(e){(!r.isOverTarget(this)||e)&&this.overTarget&&(this.overTarget=!1,e||r._removeActiveShim(this),r.activeDrag&&(this.get(n).removeClass(r.CSS_PREFIX+"-drop-over"),r.activeDrag.get(n).removeClass(r.CSS_PREFIX+"-drag-over"),this.fire(a,{drop:this,drag:r.activeDrag}),r.activeDrag.fire("drag:exit",{drop:this,drag:r.activeDrag}),delete r.otherDrops[this]))}}),e.DD.Drop=f},"3.7.1",{requires:["dd-drag","dd-ddm-drop"]});
+YUI.add("dd-drop",function(e,t){var n="node",r=e.DD.DDM,i="offsetHeight",s="offsetWidth",o="drop:over",u="drop:enter",a="drop:exit",f=function(){this._lazyAddAttrs=!1,f.superclass.constructor.apply(this,arguments),e.on("domready",e.bind(function(){e.later(100,this,this._createShim)},this)),r._regTarget(this)};f.NAME="drop",f.ATTRS={node:{setter:function(t){var n=e.one(t);return n||e.error("DD.Drop: Invalid Node Given: "+t),n}},groups:{value:["default"],getter:function(){this._groups||(this._groups={});var t=[];return e.each(this._groups,function(e,n){t[t.length]=n}),t},setter:function(t){return this._groups={},e.each(t,function(e,t){this._groups[e]=!0},this),t}},padding:{value:"0",setter:function(e){return r.cssSizestoObject(e)}},lock:{value:!1,setter:function(e){return e?this.get(n).addClass(r.CSS_PREFIX+"-drop-locked"):this.get(n).removeClass(r.CSS_PREFIX+"-drop-locked"),e}},bubbles:{setter:function(e){return this.addTarget(e),e}},useShim:{value:!0,setter:function(t){return e.DD.DDM._noShim=!t,t}}},e.extend(f,e.Base,{_bubbleTargets:e.DD.DDM,addToGroup:function(e){return this._groups[e]=!0,this},removeFromGroup:function(e){return delete this._groups[e],this},_createEvents:function(){var t=[o,u,a,"drop:hit"];e.each(t,function(e,t){this.publish(e,{type:e,emitFacade:!0,preventable:!1,bubbles:!0,queuable:!1,prefix:"drop"})},this)},_valid:null,_groups:null,shim:null,region:null,overTarget:null,inGroup:function(t){this._valid=!1;var n=!1;return e.each(t,function(e,t){this._groups[e]&&(n=!0,this._valid=!0)},this),n},initializer:function(t){e.later(100,this,this._createEvents);var i=this.get(n),s;i.get("id")||(s=e.stamp(i),i.set("id",s)),i.addClass(r.CSS_PREFIX+"-drop"),this.set("groups",this.get("groups"))},destructor:function(){r._unregTarget(this),this.shim&&this.shim!==this.get(n)&&(this.shim.detachAll(),this.shim.remove(),this.shim=null),this.get(n).removeClass(r.CSS_PREFIX+"-drop"),this.detachAll()},_deactivateShim:function(){if(!this.shim)return!1;this.get(n).removeClass(r.CSS_PREFIX+"-drop-active-valid"),this.get(n).removeClass(r.CSS_PREFIX+"-drop-active-invalid"),this.get(n).removeClass(r.CSS_PREFIX+"-drop-over"),this.get("useShim")&&this.shim.setStyles({top:"-999px",left:"-999px",zIndex:"1"}),this.overTarget=!1},_activateShim:function(){if(!r.activeDrag)return!1;if(this.get(n)===r.activeDrag.get(n))return!1;if(this.get("lock"))return!1;var e=this.get(n);this.inGroup(r.activeDrag.get("groups"))?(e.removeClass(r.CSS_PREFIX+"-drop-active-invalid"),e.addClass(r.CSS_PREFIX+"-drop-active-valid"),r._addValid(this),this.overTarget=!1,this.get("useShim")||(this.shim=this.get(n)),this.sizeShim()):(r._removeValid(this),e.removeClass(r.CSS_PREFIX+"-drop-active-valid"),e.addClass(r.CSS_PREFIX+"-drop-active-invalid"))},sizeShim:function(){if(!r.activeDrag)return!1;if(this.get(n)===r.activeDrag.get(n))return!1;if(this.get("lock"))return!1;if(!this.shim)return e.later(100,this,this.sizeShim),!1;var t=this.get(n),o=t.get(i),u=t.get(s),a=t.getXY(),f=this.get("padding"),l,c,h;u=u+f.left+f.right,o=o+f.top+f.bottom,a[0]=a[0]-f.left,a[1]=a[1]-f.top,r.activeDrag.get("dragMode")===r.INTERSECT&&(l=r.activeDrag,c=l.get(n).get(i),h=l.get(n).get(s),o+=c,u+=h,a[0]=a[0]-(h-l.deltaXY[0]),a[1]=a[1]-(c-l.deltaXY[1])),this.get("useShim")&&this.shim.setStyles({height:o+"px",width:u+"px",top:a[1]+"px",left:a[0]+"px"}),this.region={0:a[0],1:a[1],area:0,top:a[1],right:a[0]+u,bottom:a[1]+o,left:a[0]}},_createShim:function(){if(!r._pg){e.later(10,this,this._createShim);return}if(this.shim)return;var t=this.get("node");this.get("useShim")&&(t=e.Node.create(''),t.setStyles({height:this.get(n).get(i)+"px",width:this.get(n).get(s)+"px",backgroundColor:"yellow",opacity:".5",zIndex:"1",overflow:"hidden",top:"-900px",left:"-900px",position:"absolute"}),r._pg.appendChild(t),t.on("mouseover",e.bind(this._handleOverEvent,this)),t.on("mouseout",e.bind(this._handleOutEvent,this))),this.shim=t},_handleTargetOver:function(){r.isOverTarget(this)?(this.get(n).addClass(r.CSS_PREFIX+"-drop-over"),r.activeDrop=this,r.otherDrops[this]=this,this.overTarget?(r.activeDrag.fire("drag:over",{drop:this,drag:r.activeDrag}),this.fire(o,{drop:this,drag:r.activeDrag})):r.activeDrag.get("dragging")&&(this.overTarget=!0,this.fire(u,{drop:this,drag:r.activeDrag}),r.activeDrag.fire("drag:enter",{drop:this,drag:r.activeDrag}),r.activeDrag.get(n).addClass(r.CSS_PREFIX+"-drag-over"))):this._handleOut()},_handleOverEvent:function(){this.shim.setStyle("zIndex","999"),r._addActiveShim(this)},_handleOutEvent:function(){this.shim.setStyle("zIndex","1"),r._removeActiveShim(this)},_handleOut:function(e){(!r.isOverTarget(this)||e)&&this.overTarget&&(this.overTarget=!1,e||r._removeActiveShim(this),r.activeDrag&&(this.get(n).removeClass(r.CSS_PREFIX+"-drop-over"),r.activeDrag.get(n).removeClass(r.CSS_PREFIX+"-drag-over"),this.fire(a,{drop:this,drag:r.activeDrag}),r.activeDrag.fire("drag:exit",{drop:this,drag:r.activeDrag}),delete r.otherDrops[this]))}}),e.DD.Drop=f},"3.7.2",{requires:["dd-drag","dd-ddm-drop"]});
diff --git a/lib/yuilib/3.7.1/build/dd-drop/dd-drop.js b/lib/yuilib/3.7.2/build/dd-drop/dd-drop.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-drop/dd-drop.js
rename to lib/yuilib/3.7.2/build/dd-drop/dd-drop.js
index 2b901b1d400..a2f8ae54baf 100644
--- a/lib/yuilib/3.7.1/build/dd-drop/dd-drop.js
+++ b/lib/yuilib/3.7.2/build/dd-drop/dd-drop.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -560,4 +560,4 @@ YUI.add('dd-drop', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag", "dd-ddm-drop"]});
+}, '3.7.2', {"requires": ["dd-drag", "dd-ddm-drop"]});
diff --git a/lib/yuilib/3.7.1/build/dd-gestures/dd-gestures-coverage.js b/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-coverage.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dd-gestures/dd-gestures-coverage.js
rename to lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-coverage.js
index b4f29a0c23e..a2d6a9d7ec9 100644
--- a/lib/yuilib/3.7.1/build/dd-gestures/dd-gestures-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-gestures/dd-gestures.js"] = {
path: "build/dd-gestures/dd-gestures.js",
code: []
};
-_yuitest_coverage["build/dd-gestures/dd-gestures.js"].code=["YUI.add('dd-gestures', function (Y, NAME) {","",""," /**"," * This module is the conditional loaded `dd` module to support gesture events"," * in the event that `dd` is loaded onto a device that support touch based events."," *"," * This module is loaded and over rides 2 key methods on `DD.Drag` and `DD.DDM` to"," * attach the gesture events. Overrides `DD.Drag._prep` and `DD.DDM._setupListeners`"," * methods as well as set's the property `DD.Drag.START_EVENT` to `gesturemovestart`"," * to enable gesture movement instead of mouse based movement."," * @module dd"," * @submodule dd-gestures"," */"," "," Y.DD.Drag.START_EVENT = 'gesturemovestart';",""," Y.DD.Drag.prototype._prep = function() {"," this._dragThreshMet = false;"," var node = this.get('node'), DDM = Y.DD.DDM;",""," node.addClass(DDM.CSS_PREFIX + '-draggable');",""," node.on(Y.DD.Drag.START_EVENT, Y.bind(this._handleMouseDownEvent, this), {"," minDistance: 0,"," minTime: 0"," });",""," node.on('gesturemoveend', Y.bind(this._handleMouseUp, this), { standAlone: true });"," node.on('dragstart', Y.bind(this._fixDragStart, this));",""," };",""," Y.DD.DDM._setupListeners = function() {"," var DDM = Y.DD.DDM;",""," this._createPG();"," this._active = true;"," Y.one(Y.config.doc).on('gesturemove', Y.throttle(Y.bind(DDM._move, DDM), DDM.get('throttleTime')), { standAlone: true });"," };","","","","}, '3.7.1', {\"requires\": [\"dd-drag\", \"event-synthetic\", \"event-gestures\"]});"];
+_yuitest_coverage["build/dd-gestures/dd-gestures.js"].code=["YUI.add('dd-gestures', function (Y, NAME) {","",""," /**"," * This module is the conditional loaded `dd` module to support gesture events"," * in the event that `dd` is loaded onto a device that support touch based events."," *"," * This module is loaded and over rides 2 key methods on `DD.Drag` and `DD.DDM` to"," * attach the gesture events. Overrides `DD.Drag._prep` and `DD.DDM._setupListeners`"," * methods as well as set's the property `DD.Drag.START_EVENT` to `gesturemovestart`"," * to enable gesture movement instead of mouse based movement."," * @module dd"," * @submodule dd-gestures"," */"," "," Y.DD.Drag.START_EVENT = 'gesturemovestart';",""," Y.DD.Drag.prototype._prep = function() {"," this._dragThreshMet = false;"," var node = this.get('node'), DDM = Y.DD.DDM;",""," node.addClass(DDM.CSS_PREFIX + '-draggable');",""," node.on(Y.DD.Drag.START_EVENT, Y.bind(this._handleMouseDownEvent, this), {"," minDistance: 0,"," minTime: 0"," });",""," node.on('gesturemoveend', Y.bind(this._handleMouseUp, this), { standAlone: true });"," node.on('dragstart', Y.bind(this._fixDragStart, this));",""," };",""," Y.DD.DDM._setupListeners = function() {"," var DDM = Y.DD.DDM;",""," this._createPG();"," this._active = true;"," Y.one(Y.config.doc).on('gesturemove', Y.throttle(Y.bind(DDM._move, DDM), DDM.get('throttleTime')), { standAlone: true });"," };","","","","}, '3.7.2', {\"requires\": [\"dd-drag\", \"event-synthetic\", \"event-gestures\"]});"];
_yuitest_coverage["build/dd-gestures/dd-gestures.js"].lines = {"1":0,"16":0,"18":0,"19":0,"20":0,"22":0,"24":0,"29":0,"30":0,"34":0,"35":0,"37":0,"38":0,"39":0};
_yuitest_coverage["build/dd-gestures/dd-gestures.js"].functions = {"_prep:18":0,"_setupListeners:34":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-gestures/dd-gestures.js"].coveredLines = 14;
@@ -97,4 +97,4 @@ Y.one(Y.config.doc).on('gesturemove', Y.throttle(Y.bind(DDM._move, DDM), DDM.get
-}, '3.7.1', {"requires": ["dd-drag", "event-synthetic", "event-gestures"]});
+}, '3.7.2', {"requires": ["dd-drag", "event-synthetic", "event-gestures"]});
diff --git a/lib/yuilib/3.7.1/build/dd-gestures/dd-gestures-debug.js b/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-debug.js
similarity index 95%
rename from lib/yuilib/3.7.1/build/dd-gestures/dd-gestures-debug.js
rename to lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-debug.js
index deb421075e4..56938805538 100644
--- a/lib/yuilib/3.7.1/build/dd-gestures/dd-gestures-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -49,4 +49,4 @@ YUI.add('dd-gestures', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag", "event-synthetic", "event-gestures"]});
+}, '3.7.2', {"requires": ["dd-drag", "event-synthetic", "event-gestures"]});
diff --git a/lib/yuilib/3.7.1/build/dd-gestures/dd-gestures-min.js b/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-min.js
similarity index 89%
rename from lib/yuilib/3.7.1/build/dd-gestures/dd-gestures-min.js
rename to lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-min.js
index 7acd5321997..5abdb22e0d5 100644
--- a/lib/yuilib/3.7.1/build/dd-gestures/dd-gestures-min.js
+++ b/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-gestures",function(e,t){e.DD.Drag.START_EVENT="gesturemovestart",e.DD.Drag.prototype._prep=function(){this._dragThreshMet=!1;var t=this.get("node"),n=e.DD.DDM;t.addClass(n.CSS_PREFIX+"-draggable"),t.on(e.DD.Drag.START_EVENT,e.bind(this._handleMouseDownEvent,this),{minDistance:0,minTime:0}),t.on("gesturemoveend",e.bind(this._handleMouseUp,this),{standAlone:!0}),t.on("dragstart",e.bind(this._fixDragStart,this))},e.DD.DDM._setupListeners=function(){var t=e.DD.DDM;this._createPG(),this._active=!0,e.one(e.config.doc).on("gesturemove",e.throttle(e.bind(t._move,t),t.get("throttleTime")),{standAlone:!0})}},"3.7.1",{requires:["dd-drag","event-synthetic","event-gestures"]});
+YUI.add("dd-gestures",function(e,t){e.DD.Drag.START_EVENT="gesturemovestart",e.DD.Drag.prototype._prep=function(){this._dragThreshMet=!1;var t=this.get("node"),n=e.DD.DDM;t.addClass(n.CSS_PREFIX+"-draggable"),t.on(e.DD.Drag.START_EVENT,e.bind(this._handleMouseDownEvent,this),{minDistance:0,minTime:0}),t.on("gesturemoveend",e.bind(this._handleMouseUp,this),{standAlone:!0}),t.on("dragstart",e.bind(this._fixDragStart,this))},e.DD.DDM._setupListeners=function(){var t=e.DD.DDM;this._createPG(),this._active=!0,e.one(e.config.doc).on("gesturemove",e.throttle(e.bind(t._move,t),t.get("throttleTime")),{standAlone:!0})}},"3.7.2",{requires:["dd-drag","event-synthetic","event-gestures"]});
diff --git a/lib/yuilib/3.7.1/build/dd-gestures/dd-gestures.js b/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/dd-gestures/dd-gestures.js
rename to lib/yuilib/3.7.2/build/dd-gestures/dd-gestures.js
index 1825d0112c5..671cc55d9f1 100644
--- a/lib/yuilib/3.7.1/build/dd-gestures/dd-gestures.js
+++ b/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -47,4 +47,4 @@ YUI.add('dd-gestures', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag", "event-synthetic", "event-gestures"]});
+}, '3.7.2', {"requires": ["dd-drag", "event-synthetic", "event-gestures"]});
diff --git a/lib/yuilib/3.7.1/build/dd-plugin/dd-plugin-coverage.js b/lib/yuilib/3.7.2/build/dd-plugin/dd-plugin-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-plugin/dd-plugin-coverage.js
rename to lib/yuilib/3.7.2/build/dd-plugin/dd-plugin-coverage.js
index f99669e1f77..a642978e65c 100644
--- a/lib/yuilib/3.7.1/build/dd-plugin/dd-plugin-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-plugin/dd-plugin-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-plugin/dd-plugin.js"] = {
path: "build/dd-plugin/dd-plugin.js",
code: []
};
-_yuitest_coverage["build/dd-plugin/dd-plugin.js"].code=["YUI.add('dd-plugin', function (Y, NAME) {","","",""," /**"," * Simple Drag plugin that can be attached to a Node or Widget via the plug method."," * @module dd"," * @submodule dd-plugin"," */"," /**"," * Simple Drag plugin that can be attached to a Node or Widget via the plug method."," * @class Drag"," * @extends DD.Drag"," * @constructor"," * @namespace Plugin"," */"," var Drag = function(config) {"," if (Y.Widget && config.host instanceof Y.Widget) {"," config.node = config.host.get('boundingBox');"," config.widget = config.host;"," } else {"," config.node = config.host;"," config.widget = false;"," }"," Drag.superclass.constructor.call(this, config);"," },",""," EV_START = 'drag:start',"," EV_DRAG = 'drag:drag',"," EV_DRAG_END = 'drag:end';"," "," /**"," * @property NAME"," * @description dd-plugin"," * @type {String}"," */"," Drag.NAME = \"dd-plugin\";",""," /**"," * @property NS"," * @description The Drag instance will be placed on the Node instance under the dd namespace. It can be accessed via Node.dd;"," * @type {String}"," */"," Drag.NS = \"dd\";",""," Y.extend(Drag, Y.DD.Drag, {"," "," _widgetHandles: null,"," "," /**"," * refers to a Y.Widget if its the host, otherwise = false."," *"," * @attribute _widget"," * @private"," */"," _widget: undefined,",""," "," /**"," * refers to the [x,y] coordinate where the drag was stopped last"," *"," * @attribute _stoppedPosition"," * @private"," */"," _stoppedPosition: undefined,","",""," /**"," * Returns true if widget uses widgetPosition, otherwise returns false"," *"," * @method _usesWidgetPosition"," * @private"," */"," _usesWidgetPosition: function(widget) {"," var r = false;"," if (widget) {"," r = (widget.hasImpl && widget.hasImpl(Y.WidgetPosition)) ? true : false;"," }"," return r;"," },"," /**"," * Attached to the `drag:start` event, it checks if this plugin needs"," * to attach or detach listeners for widgets. If `dd-proxy` is plugged"," * the default widget positioning should be ignored."," * @method _checkEvents"," * @private"," */"," _checkEvents: function() {"," if (this._widget) {"," //It's a widget"," if (this.proxy) {"," //It's a proxy"," if (this._widgetHandles.length > 0) {"," //Remove Listeners"," this._removeWidgetListeners();"," }"," } else {"," if (this._widgetHandles.length === 0) {"," this._attachWidgetListeners();"," }"," }"," }"," },"," /**"," * Remove the attached widget listeners"," * @method _removeWidgetListeners"," * @private"," */"," _removeWidgetListeners: function() {"," Y.Array.each(this._widgetHandles, function(handle) {"," handle.detach();"," });"," this._widgetHandles = [];"," },"," /**"," * If this is a Widget, then attach the positioning listeners"," * @method _attachWidgetListeners"," * @private"," */"," _attachWidgetListeners: function() {"," //if this thing is a widget, and it uses widgetposition..."," if (this._usesWidgetPosition(this._widget)) {"," "," //set the x,y on the widget's ATTRS"," this._widgetHandles.push(this.on(EV_DRAG, this._setWidgetCoords));",""," //store the new position that the widget ends up on"," this._widgetHandles.push(this.on(EV_DRAG_END, this._updateStopPosition)); "," }"," },"," /**"," * Sets up event listeners on drag events if interacting with a widget"," *"," * @method initializer"," * @protected"," */"," initializer: function(config) {"," "," this._widgetHandles = [];",""," this._widget = config.widget;",""," this.on(EV_START, this._checkEvents); //Always run, don't check"," "," this._attachWidgetListeners();"," "," },",""," /**"," * Updates x,y or xy attributes on widget based on where the widget is dragged"," *"," * @method initializer"," * @param {EventFacade} e Event Facade"," * @private"," */"," _setWidgetCoords: function(e) {",""," //get the last position where the widget was, or get the starting point"," var nodeXY = this._stoppedPosition || e.target.nodeXY,"," realXY = e.target.realXY,",""," //amount moved = [(x2 - x1) , (y2 - y1)]"," movedXY = [realXY[0] - nodeXY[0], realXY[1] - nodeXY[1]];",""," //if both have changed.."," if (movedXY[0] !== 0 && movedXY[1] !== 0) {"," this._widget.set('xy', realXY);"," }",""," //if only x is 0, set the Y"," else if (movedXY[0] === 0) {"," this._widget.set('y',realXY[1]);"," }",""," //otherwise, y is 0, so set X"," else if (movedXY[1] === 0){"," this._widget.set('x', realXY[0]);"," }"," },",""," /**"," * Updates the last position where the widget was stopped."," *"," * @method _updateStopPosition"," * @param {EventFacade} e Event Facade"," * @private"," */"," _updateStopPosition: function(e) {"," this._stoppedPosition = e.target.realXY;"," }"," });",""," Y.namespace('Plugin');"," Y.Plugin.Drag = Drag;","","","","","","}, '3.7.1', {\"optional\": [\"dd-constrain\", \"dd-proxy\"], \"requires\": [\"dd-drag\"]});"];
+_yuitest_coverage["build/dd-plugin/dd-plugin.js"].code=["YUI.add('dd-plugin', function (Y, NAME) {","","",""," /**"," * Simple Drag plugin that can be attached to a Node or Widget via the plug method."," * @module dd"," * @submodule dd-plugin"," */"," /**"," * Simple Drag plugin that can be attached to a Node or Widget via the plug method."," * @class Drag"," * @extends DD.Drag"," * @constructor"," * @namespace Plugin"," */"," var Drag = function(config) {"," if (Y.Widget && config.host instanceof Y.Widget) {"," config.node = config.host.get('boundingBox');"," config.widget = config.host;"," } else {"," config.node = config.host;"," config.widget = false;"," }"," Drag.superclass.constructor.call(this, config);"," },",""," EV_START = 'drag:start',"," EV_DRAG = 'drag:drag',"," EV_DRAG_END = 'drag:end';"," "," /**"," * @property NAME"," * @description dd-plugin"," * @type {String}"," */"," Drag.NAME = \"dd-plugin\";",""," /**"," * @property NS"," * @description The Drag instance will be placed on the Node instance under the dd namespace. It can be accessed via Node.dd;"," * @type {String}"," */"," Drag.NS = \"dd\";",""," Y.extend(Drag, Y.DD.Drag, {"," "," _widgetHandles: null,"," "," /**"," * refers to a Y.Widget if its the host, otherwise = false."," *"," * @attribute _widget"," * @private"," */"," _widget: undefined,",""," "," /**"," * refers to the [x,y] coordinate where the drag was stopped last"," *"," * @attribute _stoppedPosition"," * @private"," */"," _stoppedPosition: undefined,","",""," /**"," * Returns true if widget uses widgetPosition, otherwise returns false"," *"," * @method _usesWidgetPosition"," * @private"," */"," _usesWidgetPosition: function(widget) {"," var r = false;"," if (widget) {"," r = (widget.hasImpl && widget.hasImpl(Y.WidgetPosition)) ? true : false;"," }"," return r;"," },"," /**"," * Attached to the `drag:start` event, it checks if this plugin needs"," * to attach or detach listeners for widgets. If `dd-proxy` is plugged"," * the default widget positioning should be ignored."," * @method _checkEvents"," * @private"," */"," _checkEvents: function() {"," if (this._widget) {"," //It's a widget"," if (this.proxy) {"," //It's a proxy"," if (this._widgetHandles.length > 0) {"," //Remove Listeners"," this._removeWidgetListeners();"," }"," } else {"," if (this._widgetHandles.length === 0) {"," this._attachWidgetListeners();"," }"," }"," }"," },"," /**"," * Remove the attached widget listeners"," * @method _removeWidgetListeners"," * @private"," */"," _removeWidgetListeners: function() {"," Y.Array.each(this._widgetHandles, function(handle) {"," handle.detach();"," });"," this._widgetHandles = [];"," },"," /**"," * If this is a Widget, then attach the positioning listeners"," * @method _attachWidgetListeners"," * @private"," */"," _attachWidgetListeners: function() {"," //if this thing is a widget, and it uses widgetposition..."," if (this._usesWidgetPosition(this._widget)) {"," "," //set the x,y on the widget's ATTRS"," this._widgetHandles.push(this.on(EV_DRAG, this._setWidgetCoords));",""," //store the new position that the widget ends up on"," this._widgetHandles.push(this.on(EV_DRAG_END, this._updateStopPosition)); "," }"," },"," /**"," * Sets up event listeners on drag events if interacting with a widget"," *"," * @method initializer"," * @protected"," */"," initializer: function(config) {"," "," this._widgetHandles = [];",""," this._widget = config.widget;",""," this.on(EV_START, this._checkEvents); //Always run, don't check"," "," this._attachWidgetListeners();"," "," },",""," /**"," * Updates x,y or xy attributes on widget based on where the widget is dragged"," *"," * @method initializer"," * @param {EventFacade} e Event Facade"," * @private"," */"," _setWidgetCoords: function(e) {",""," //get the last position where the widget was, or get the starting point"," var nodeXY = this._stoppedPosition || e.target.nodeXY,"," realXY = e.target.realXY,",""," //amount moved = [(x2 - x1) , (y2 - y1)]"," movedXY = [realXY[0] - nodeXY[0], realXY[1] - nodeXY[1]];",""," //if both have changed.."," if (movedXY[0] !== 0 && movedXY[1] !== 0) {"," this._widget.set('xy', realXY);"," }",""," //if only x is 0, set the Y"," else if (movedXY[0] === 0) {"," this._widget.set('y',realXY[1]);"," }",""," //otherwise, y is 0, so set X"," else if (movedXY[1] === 0){"," this._widget.set('x', realXY[0]);"," }"," },",""," /**"," * Updates the last position where the widget was stopped."," *"," * @method _updateStopPosition"," * @param {EventFacade} e Event Facade"," * @private"," */"," _updateStopPosition: function(e) {"," this._stoppedPosition = e.target.realXY;"," }"," });",""," Y.namespace('Plugin');"," Y.Plugin.Drag = Drag;","","","","","","}, '3.7.2', {\"optional\": [\"dd-constrain\", \"dd-proxy\"], \"requires\": [\"dd-drag\"]});"];
_yuitest_coverage["build/dd-plugin/dd-plugin.js"].lines = {"1":0,"17":0,"18":0,"19":0,"20":0,"22":0,"23":0,"25":0,"37":0,"44":0,"46":0,"75":0,"76":0,"77":0,"79":0,"89":0,"91":0,"93":0,"95":0,"98":0,"99":0,"110":0,"111":0,"113":0,"122":0,"125":0,"128":0,"139":0,"141":0,"143":0,"145":0,"159":0,"166":0,"167":0,"171":0,"172":0,"176":0,"177":0,"189":0,"193":0,"194":0};
_yuitest_coverage["build/dd-plugin/dd-plugin.js"].functions = {"Drag:17":0,"_usesWidgetPosition:74":0,"_checkEvents:88":0,"(anonymous 2):110":0,"_removeWidgetListeners:109":0,"_attachWidgetListeners:120":0,"initializer:137":0,"_setWidgetCoords:156":0,"_updateStopPosition:188":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-plugin/dd-plugin.js"].coveredLines = 41;
@@ -287,4 +287,4 @@ Y.Plugin.Drag = Drag;
-}, '3.7.1', {"optional": ["dd-constrain", "dd-proxy"], "requires": ["dd-drag"]});
+}, '3.7.2', {"optional": ["dd-constrain", "dd-proxy"], "requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-plugin/dd-plugin-debug.js b/lib/yuilib/3.7.2/build/dd-plugin/dd-plugin-debug.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/dd-plugin/dd-plugin-debug.js
rename to lib/yuilib/3.7.2/build/dd-plugin/dd-plugin-debug.js
index 2fe12ac5937..95ee0d8e4e2 100644
--- a/lib/yuilib/3.7.1/build/dd-plugin/dd-plugin-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-plugin/dd-plugin-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -208,4 +208,4 @@ YUI.add('dd-plugin', function (Y, NAME) {
-}, '3.7.1', {"optional": ["dd-constrain", "dd-proxy"], "requires": ["dd-drag"]});
+}, '3.7.2', {"optional": ["dd-constrain", "dd-proxy"], "requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-plugin/dd-plugin-min.js b/lib/yuilib/3.7.2/build/dd-plugin/dd-plugin-min.js
similarity index 94%
rename from lib/yuilib/3.7.1/build/dd-plugin/dd-plugin-min.js
rename to lib/yuilib/3.7.2/build/dd-plugin/dd-plugin-min.js
index 7c499041bde..17b6c276277 100644
--- a/lib/yuilib/3.7.1/build/dd-plugin/dd-plugin-min.js
+++ b/lib/yuilib/3.7.2/build/dd-plugin/dd-plugin-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-plugin",function(e,t){var n=function(t){e.Widget&&t.host instanceof e.Widget?(t.node=t.host.get("boundingBox"),t.widget=t.host):(t.node=t.host,t.widget=!1),n.superclass.constructor.call(this,t)},r="drag:start",i="drag:drag",s="drag:end";n.NAME="dd-plugin",n.NS="dd",e.extend(n,e.DD.Drag,{_widgetHandles:null,_widget:undefined,_stoppedPosition:undefined,_usesWidgetPosition:function(t){var n=!1;return t&&(n=t.hasImpl&&t.hasImpl(e.WidgetPosition)?!0:!1),n},_checkEvents:function(){this._widget&&(this.proxy?this._widgetHandles.length>0&&this._removeWidgetListeners():this._widgetHandles.length===0&&this._attachWidgetListeners())},_removeWidgetListeners:function(){e.Array.each(this._widgetHandles,function(e){e.detach()}),this._widgetHandles=[]},_attachWidgetListeners:function(){this._usesWidgetPosition(this._widget)&&(this._widgetHandles.push(this.on(i,this._setWidgetCoords)),this._widgetHandles.push(this.on(s,this._updateStopPosition)))},initializer:function(e){this._widgetHandles=[],this._widget=e.widget,this.on(r,this._checkEvents),this._attachWidgetListeners()},_setWidgetCoords:function(e){var t=this._stoppedPosition||e.target.nodeXY,n=e.target.realXY,r=[n[0]-t[0],n[1]-t[1]];r[0]!==0&&r[1]!==0?this._widget.set("xy",n):r[0]===0?this._widget.set("y",n[1]):r[1]===0&&this._widget.set("x",n[0])},_updateStopPosition:function(e){this._stoppedPosition=e.target.realXY}}),e.namespace("Plugin"),e.Plugin.Drag=n},"3.7.1",{optional:["dd-constrain","dd-proxy"],requires:["dd-drag"]});
+YUI.add("dd-plugin",function(e,t){var n=function(t){e.Widget&&t.host instanceof e.Widget?(t.node=t.host.get("boundingBox"),t.widget=t.host):(t.node=t.host,t.widget=!1),n.superclass.constructor.call(this,t)},r="drag:start",i="drag:drag",s="drag:end";n.NAME="dd-plugin",n.NS="dd",e.extend(n,e.DD.Drag,{_widgetHandles:null,_widget:undefined,_stoppedPosition:undefined,_usesWidgetPosition:function(t){var n=!1;return t&&(n=t.hasImpl&&t.hasImpl(e.WidgetPosition)?!0:!1),n},_checkEvents:function(){this._widget&&(this.proxy?this._widgetHandles.length>0&&this._removeWidgetListeners():this._widgetHandles.length===0&&this._attachWidgetListeners())},_removeWidgetListeners:function(){e.Array.each(this._widgetHandles,function(e){e.detach()}),this._widgetHandles=[]},_attachWidgetListeners:function(){this._usesWidgetPosition(this._widget)&&(this._widgetHandles.push(this.on(i,this._setWidgetCoords)),this._widgetHandles.push(this.on(s,this._updateStopPosition)))},initializer:function(e){this._widgetHandles=[],this._widget=e.widget,this.on(r,this._checkEvents),this._attachWidgetListeners()},_setWidgetCoords:function(e){var t=this._stoppedPosition||e.target.nodeXY,n=e.target.realXY,r=[n[0]-t[0],n[1]-t[1]];r[0]!==0&&r[1]!==0?this._widget.set("xy",n):r[0]===0?this._widget.set("y",n[1]):r[1]===0&&this._widget.set("x",n[0])},_updateStopPosition:function(e){this._stoppedPosition=e.target.realXY}}),e.namespace("Plugin"),e.Plugin.Drag=n},"3.7.2",{optional:["dd-constrain","dd-proxy"],requires:["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-plugin/dd-plugin.js b/lib/yuilib/3.7.2/build/dd-plugin/dd-plugin.js
similarity index 98%
rename from lib/yuilib/3.7.1/build/dd-plugin/dd-plugin.js
rename to lib/yuilib/3.7.2/build/dd-plugin/dd-plugin.js
index 3920361b436..ffe22abdc20 100644
--- a/lib/yuilib/3.7.1/build/dd-plugin/dd-plugin.js
+++ b/lib/yuilib/3.7.2/build/dd-plugin/dd-plugin.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -203,4 +203,4 @@ YUI.add('dd-plugin', function (Y, NAME) {
-}, '3.7.1', {"optional": ["dd-constrain", "dd-proxy"], "requires": ["dd-drag"]});
+}, '3.7.2', {"optional": ["dd-constrain", "dd-proxy"], "requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-proxy/dd-proxy-coverage.js b/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-proxy/dd-proxy-coverage.js
rename to lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-coverage.js
index 50f1253f468..24b45a53de0 100644
--- a/lib/yuilib/3.7.1/build/dd-proxy/dd-proxy-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-proxy/dd-proxy.js"] = {
path: "build/dd-proxy/dd-proxy.js",
code: []
};
-_yuitest_coverage["build/dd-proxy/dd-proxy.js"].code=["YUI.add('dd-proxy', function (Y, NAME) {","",""," /**"," * Plugin for dd-drag for creating a proxy drag node, instead of dragging the original node."," * @module dd"," * @submodule dd-proxy"," */"," /**"," * Plugin for dd-drag for creating a proxy drag node, instead of dragging the original node."," * @class DDProxy"," * @extends Base"," * @constructor"," * @namespace Plugin "," */"," var DDM = Y.DD.DDM,"," NODE = 'node',"," DRAG_NODE = 'dragNode',"," HOST = 'host',"," TRUE = true, proto,"," P = function(config) {"," P.superclass.constructor.apply(this, arguments);"," };"," "," P.NAME = 'DDProxy';"," /**"," * @property NS"," * @default con"," * @readonly"," * @protected"," * @static"," * @description The Proxy instance will be placed on the Drag instance under the proxy namespace."," * @type {String}"," */"," P.NS = 'proxy';",""," P.ATTRS = {"," host: {"," },"," /**"," * @attribute moveOnEnd"," * @description Move the original node at the end of the drag. Default: true"," * @type Boolean"," */"," moveOnEnd: {"," value: TRUE"," },"," /**"," * @attribute hideOnEnd"," * @description Hide the drag node at the end of the drag. Default: true"," * @type Boolean"," */"," hideOnEnd: {"," value: TRUE"," },"," /**"," * @attribute resizeFrame"," * @description Make the Proxy node assume the size of the original node. Default: true"," * @type Boolean"," */"," resizeFrame: {"," value: TRUE"," },"," /**"," * @attribute positionProxy"," * @description Make the Proxy node appear in the same place as the original node. Default: true"," * @type Boolean"," */"," positionProxy: {"," value: TRUE"," },"," /**"," * @attribute borderStyle"," * @description The default border style for the border of the proxy. Default: 1px solid #808080"," * @type Boolean"," */"," borderStyle: {"," value: '1px solid #808080'"," },"," /**"," * @attribute cloneNode"," * @description Should the node be cloned into the proxy for you. Default: false"," * @type Boolean"," */"," cloneNode: {"," value: false"," }"," };",""," proto = {"," /**"," * @private"," * @property _hands"," * @description Holds the event handles for setting the proxy"," */"," _hands: null,"," /**"," * @private"," * @method _init"," * @description Handler for the proxy config attribute"," */"," _init: function() {"," if (!DDM._proxy) {"," DDM._createFrame();"," Y.on('domready', Y.bind(this._init, this));"," return;"," }"," if (!this._hands) {"," this._hands = [];"," }"," var h, h1, host = this.get(HOST), dnode = host.get(DRAG_NODE);"," if (dnode.compareTo(host.get(NODE))) {"," if (DDM._proxy) {"," host.set(DRAG_NODE, DDM._proxy);"," }"," }"," Y.each(this._hands, function(v) {"," v.detach();"," });"," h = DDM.on('ddm:start', Y.bind(function() {"," if (DDM.activeDrag === host) {"," DDM._setFrame(host);"," }"," }, this));"," h1 = DDM.on('ddm:end', Y.bind(function() {"," if (host.get('dragging')) {"," if (this.get('moveOnEnd')) {"," host.get(NODE).setXY(host.lastXY);"," }"," if (this.get('hideOnEnd')) {"," host.get(DRAG_NODE).setStyle('display', 'none');"," }"," if (this.get('cloneNode')) {"," host.get(DRAG_NODE).remove();"," host.set(DRAG_NODE, DDM._proxy);"," }"," }"," }, this));"," this._hands = [h, h1];"," },"," initializer: function() {"," this._init();"," },"," destructor: function() {"," var host = this.get(HOST);"," Y.each(this._hands, function(v) {"," v.detach();"," });"," host.set(DRAG_NODE, host.get(NODE));"," },"," clone: function() {"," var host = this.get(HOST),"," n = host.get(NODE),"," c = n.cloneNode(true);",""," delete c._yuid;"," c.setAttribute('id', Y.guid());"," c.setStyle('position', 'absolute');"," n.get('parentNode').appendChild(c);"," host.set(DRAG_NODE, c);"," return c;"," }"," };"," "," Y.namespace('Plugin');"," Y.extend(P, Y.Base, proto);"," Y.Plugin.DDProxy = P;",""," //Add a couple of methods to the DDM"," Y.mix(DDM, {"," /**"," * @private"," * @for DDM"," * @namespace DD"," * @method _createFrame"," * @description Create the proxy element if it doesn't already exist and set the DD.DDM._proxy value"," */"," _createFrame: function() {"," if (!DDM._proxy) {"," DDM._proxy = TRUE;",""," var p = Y.Node.create(''),"," b = Y.one('body');",""," p.setStyles({"," position: 'absolute',"," display: 'none',"," zIndex: '999',"," top: '-999px',"," left: '-999px'"," });",""," b.prepend(p);"," p.set('id', Y.guid());"," p.addClass(DDM.CSS_PREFIX + '-proxy');"," DDM._proxy = p;"," }"," },"," /**"," * @private"," * @for DDM"," * @namespace DD"," * @method _setFrame"," * @description If resizeProxy is set to true (default) it will resize the proxy element to match the size of the Drag Element."," * If positionProxy is set to true (default) it will position the proxy element in the same location as the Drag Element."," */"," _setFrame: function(drag) {"," var n = drag.get(NODE), d = drag.get(DRAG_NODE), ah, cur = 'auto';"," "," ah = DDM.activeDrag.get('activeHandle');"," if (ah) {"," cur = ah.getStyle('cursor');"," }"," if (cur == 'auto') {"," cur = DDM.get('dragCursor');"," }",""," d.setStyles({"," visibility: 'hidden',"," display: 'block',"," cursor: cur,"," border: drag.proxy.get('borderStyle')"," });",""," if (drag.proxy.get('cloneNode')) {"," d = drag.proxy.clone();"," }",""," if (drag.proxy.get('resizeFrame')) {"," d.setStyles({"," height: n.get('offsetHeight') + 'px',"," width: n.get('offsetWidth') + 'px'"," });"," }",""," if (drag.proxy.get('positionProxy')) {"," d.setXY(drag.nodeXY);"," }"," d.setStyle('visibility', 'visible');"," }"," });",""," //Create the frame when DOM is ready"," //Y.on('domready', Y.bind(DDM._createFrame, DDM));","","","","","}, '3.7.1', {\"requires\": [\"dd-drag\"]});"];
+_yuitest_coverage["build/dd-proxy/dd-proxy.js"].code=["YUI.add('dd-proxy', function (Y, NAME) {","",""," /**"," * Plugin for dd-drag for creating a proxy drag node, instead of dragging the original node."," * @module dd"," * @submodule dd-proxy"," */"," /**"," * Plugin for dd-drag for creating a proxy drag node, instead of dragging the original node."," * @class DDProxy"," * @extends Base"," * @constructor"," * @namespace Plugin "," */"," var DDM = Y.DD.DDM,"," NODE = 'node',"," DRAG_NODE = 'dragNode',"," HOST = 'host',"," TRUE = true, proto,"," P = function(config) {"," P.superclass.constructor.apply(this, arguments);"," };"," "," P.NAME = 'DDProxy';"," /**"," * @property NS"," * @default con"," * @readonly"," * @protected"," * @static"," * @description The Proxy instance will be placed on the Drag instance under the proxy namespace."," * @type {String}"," */"," P.NS = 'proxy';",""," P.ATTRS = {"," host: {"," },"," /**"," * @attribute moveOnEnd"," * @description Move the original node at the end of the drag. Default: true"," * @type Boolean"," */"," moveOnEnd: {"," value: TRUE"," },"," /**"," * @attribute hideOnEnd"," * @description Hide the drag node at the end of the drag. Default: true"," * @type Boolean"," */"," hideOnEnd: {"," value: TRUE"," },"," /**"," * @attribute resizeFrame"," * @description Make the Proxy node assume the size of the original node. Default: true"," * @type Boolean"," */"," resizeFrame: {"," value: TRUE"," },"," /**"," * @attribute positionProxy"," * @description Make the Proxy node appear in the same place as the original node. Default: true"," * @type Boolean"," */"," positionProxy: {"," value: TRUE"," },"," /**"," * @attribute borderStyle"," * @description The default border style for the border of the proxy. Default: 1px solid #808080"," * @type Boolean"," */"," borderStyle: {"," value: '1px solid #808080'"," },"," /**"," * @attribute cloneNode"," * @description Should the node be cloned into the proxy for you. Default: false"," * @type Boolean"," */"," cloneNode: {"," value: false"," }"," };",""," proto = {"," /**"," * @private"," * @property _hands"," * @description Holds the event handles for setting the proxy"," */"," _hands: null,"," /**"," * @private"," * @method _init"," * @description Handler for the proxy config attribute"," */"," _init: function() {"," if (!DDM._proxy) {"," DDM._createFrame();"," Y.on('domready', Y.bind(this._init, this));"," return;"," }"," if (!this._hands) {"," this._hands = [];"," }"," var h, h1, host = this.get(HOST), dnode = host.get(DRAG_NODE);"," if (dnode.compareTo(host.get(NODE))) {"," if (DDM._proxy) {"," host.set(DRAG_NODE, DDM._proxy);"," }"," }"," Y.each(this._hands, function(v) {"," v.detach();"," });"," h = DDM.on('ddm:start', Y.bind(function() {"," if (DDM.activeDrag === host) {"," DDM._setFrame(host);"," }"," }, this));"," h1 = DDM.on('ddm:end', Y.bind(function() {"," if (host.get('dragging')) {"," if (this.get('moveOnEnd')) {"," host.get(NODE).setXY(host.lastXY);"," }"," if (this.get('hideOnEnd')) {"," host.get(DRAG_NODE).setStyle('display', 'none');"," }"," if (this.get('cloneNode')) {"," host.get(DRAG_NODE).remove();"," host.set(DRAG_NODE, DDM._proxy);"," }"," }"," }, this));"," this._hands = [h, h1];"," },"," initializer: function() {"," this._init();"," },"," destructor: function() {"," var host = this.get(HOST);"," Y.each(this._hands, function(v) {"," v.detach();"," });"," host.set(DRAG_NODE, host.get(NODE));"," },"," clone: function() {"," var host = this.get(HOST),"," n = host.get(NODE),"," c = n.cloneNode(true);",""," delete c._yuid;"," c.setAttribute('id', Y.guid());"," c.setStyle('position', 'absolute');"," n.get('parentNode').appendChild(c);"," host.set(DRAG_NODE, c);"," return c;"," }"," };"," "," Y.namespace('Plugin');"," Y.extend(P, Y.Base, proto);"," Y.Plugin.DDProxy = P;",""," //Add a couple of methods to the DDM"," Y.mix(DDM, {"," /**"," * @private"," * @for DDM"," * @namespace DD"," * @method _createFrame"," * @description Create the proxy element if it doesn't already exist and set the DD.DDM._proxy value"," */"," _createFrame: function() {"," if (!DDM._proxy) {"," DDM._proxy = TRUE;",""," var p = Y.Node.create(''),"," b = Y.one('body');",""," p.setStyles({"," position: 'absolute',"," display: 'none',"," zIndex: '999',"," top: '-999px',"," left: '-999px'"," });",""," b.prepend(p);"," p.set('id', Y.guid());"," p.addClass(DDM.CSS_PREFIX + '-proxy');"," DDM._proxy = p;"," }"," },"," /**"," * @private"," * @for DDM"," * @namespace DD"," * @method _setFrame"," * @description If resizeProxy is set to true (default) it will resize the proxy element to match the size of the Drag Element."," * If positionProxy is set to true (default) it will position the proxy element in the same location as the Drag Element."," */"," _setFrame: function(drag) {"," var n = drag.get(NODE), d = drag.get(DRAG_NODE), ah, cur = 'auto';"," "," ah = DDM.activeDrag.get('activeHandle');"," if (ah) {"," cur = ah.getStyle('cursor');"," }"," if (cur == 'auto') {"," cur = DDM.get('dragCursor');"," }",""," d.setStyles({"," visibility: 'hidden',"," display: 'block',"," cursor: cur,"," border: drag.proxy.get('borderStyle')"," });",""," if (drag.proxy.get('cloneNode')) {"," d = drag.proxy.clone();"," }",""," if (drag.proxy.get('resizeFrame')) {"," d.setStyles({"," height: n.get('offsetHeight') + 'px',"," width: n.get('offsetWidth') + 'px'"," });"," }",""," if (drag.proxy.get('positionProxy')) {"," d.setXY(drag.nodeXY);"," }"," d.setStyle('visibility', 'visible');"," }"," });",""," //Create the frame when DOM is ready"," //Y.on('domready', Y.bind(DDM._createFrame, DDM));","","","","","}, '3.7.2', {\"requires\": [\"dd-drag\"]});"];
_yuitest_coverage["build/dd-proxy/dd-proxy.js"].lines = {"1":0,"16":0,"22":0,"25":0,"35":0,"37":0,"90":0,"103":0,"104":0,"105":0,"106":0,"108":0,"109":0,"111":0,"112":0,"113":0,"114":0,"117":0,"118":0,"120":0,"121":0,"122":0,"125":0,"126":0,"127":0,"128":0,"130":0,"131":0,"133":0,"134":0,"135":0,"139":0,"142":0,"145":0,"146":0,"147":0,"149":0,"152":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"165":0,"166":0,"167":0,"170":0,"179":0,"180":0,"182":0,"185":0,"193":0,"194":0,"195":0,"196":0,"208":0,"210":0,"211":0,"212":0,"214":0,"215":0,"218":0,"225":0,"226":0,"229":0,"230":0,"236":0,"237":0,"239":0};
_yuitest_coverage["build/dd-proxy/dd-proxy.js"].functions = {"P:21":0,"(anonymous 2):117":0,"(anonymous 3):120":0,"(anonymous 4):125":0,"_init:102":0,"initializer:141":0,"(anonymous 5):146":0,"destructor:144":0,"clone:151":0,"_createFrame:178":0,"_setFrame:207":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-proxy/dd-proxy.js"].coveredLines = 70;
@@ -367,4 +367,4 @@ d.setStyle('visibility', 'visible');
-}, '3.7.1', {"requires": ["dd-drag"]});
+}, '3.7.2', {"requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-proxy/dd-proxy-debug.js b/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-proxy/dd-proxy-debug.js
rename to lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-debug.js
index 9eec5b6d507..abb761b35c3 100644
--- a/lib/yuilib/3.7.1/build/dd-proxy/dd-proxy-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -252,4 +252,4 @@ YUI.add('dd-proxy', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag"]});
+}, '3.7.2', {"requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-proxy/dd-proxy-min.js b/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dd-proxy/dd-proxy-min.js
rename to lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-min.js
index 99a12512f22..73825c0ebd1 100644
--- a/lib/yuilib/3.7.1/build/dd-proxy/dd-proxy-min.js
+++ b/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-proxy",function(e,t){var n=e.DD.DDM,r="node",i="dragNode",s="host",o=!0,u,a=function(e){a.superclass.constructor.apply(this,arguments)};a.NAME="DDProxy",a.NS="proxy",a.ATTRS={host:{},moveOnEnd:{value:o},hideOnEnd:{value:o},resizeFrame:{value:o},positionProxy:{value:o},borderStyle:{value:"1px solid #808080"},cloneNode:{value:!1}},u={_hands:null,_init:function(){if(!n._proxy){n._createFrame(),e.on("domready",e.bind(this._init,this));return}this._hands||(this._hands=[]);var t,o,u=this.get(s),a=u.get(i);a.compareTo(u.get(r))&&n._proxy&&u.set(i,n._proxy),e.each(this._hands,function(e){e.detach()}),t=n.on("ddm:start",e.bind(function(){n.activeDrag===u&&n._setFrame(u)},this)),o=n.on("ddm:end",e.bind(function(){u.get("dragging")&&(this.get("moveOnEnd")&&u.get(r).setXY(u.lastXY),this.get("hideOnEnd")&&u.get(i).setStyle("display","none"),this.get("cloneNode")&&(u.get(i).remove(),u.set(i,n._proxy)))},this)),this._hands=[t,o]},initializer:function(){this._init()},destructor:function(){var t=this.get(s);e.each(this._hands,function(e){e.detach()}),t.set(i,t.get(r))},clone:function(){var t=this.get(s),n=t.get(r),o=n.cloneNode(!0);return delete o._yuid,o.setAttribute("id",e.guid()),o.setStyle("position","absolute"),n.get("parentNode").appendChild(o),t.set(i,o),o}},e.namespace("Plugin"),e.extend(a,e.Base,u),e.Plugin.DDProxy=a,e.mix(n,{_createFrame:function(){if(!n._proxy){n._proxy=o;var t=e.Node.create(""),r=e.one("body");t.setStyles({position:"absolute",display:"none",zIndex:"999",top:"-999px",left:"-999px"}),r.prepend(t),t.set("id",e.guid()),t.addClass(n.CSS_PREFIX+"-proxy"),n._proxy=t}},_setFrame:function(e){var t=e.get(r),s=e.get(i),o,u="auto";o=n.activeDrag.get("activeHandle"),o&&(u=o.getStyle("cursor")),u=="auto"&&(u=n.get("dragCursor")),s.setStyles({visibility:"hidden",display:"block",cursor:u,border:e.proxy.get("borderStyle")}),e.proxy.get("cloneNode")&&(s=e.proxy.clone()),e.proxy.get("resizeFrame")&&s.setStyles({height:t.get("offsetHeight")+"px",width:t.get("offsetWidth")+"px"}),e.proxy.get("positionProxy")&&s.setXY(e.nodeXY),s.setStyle("visibility","visible")}})},"3.7.1",{requires:["dd-drag"]});
+YUI.add("dd-proxy",function(e,t){var n=e.DD.DDM,r="node",i="dragNode",s="host",o=!0,u,a=function(e){a.superclass.constructor.apply(this,arguments)};a.NAME="DDProxy",a.NS="proxy",a.ATTRS={host:{},moveOnEnd:{value:o},hideOnEnd:{value:o},resizeFrame:{value:o},positionProxy:{value:o},borderStyle:{value:"1px solid #808080"},cloneNode:{value:!1}},u={_hands:null,_init:function(){if(!n._proxy){n._createFrame(),e.on("domready",e.bind(this._init,this));return}this._hands||(this._hands=[]);var t,o,u=this.get(s),a=u.get(i);a.compareTo(u.get(r))&&n._proxy&&u.set(i,n._proxy),e.each(this._hands,function(e){e.detach()}),t=n.on("ddm:start",e.bind(function(){n.activeDrag===u&&n._setFrame(u)},this)),o=n.on("ddm:end",e.bind(function(){u.get("dragging")&&(this.get("moveOnEnd")&&u.get(r).setXY(u.lastXY),this.get("hideOnEnd")&&u.get(i).setStyle("display","none"),this.get("cloneNode")&&(u.get(i).remove(),u.set(i,n._proxy)))},this)),this._hands=[t,o]},initializer:function(){this._init()},destructor:function(){var t=this.get(s);e.each(this._hands,function(e){e.detach()}),t.set(i,t.get(r))},clone:function(){var t=this.get(s),n=t.get(r),o=n.cloneNode(!0);return delete o._yuid,o.setAttribute("id",e.guid()),o.setStyle("position","absolute"),n.get("parentNode").appendChild(o),t.set(i,o),o}},e.namespace("Plugin"),e.extend(a,e.Base,u),e.Plugin.DDProxy=a,e.mix(n,{_createFrame:function(){if(!n._proxy){n._proxy=o;var t=e.Node.create(""),r=e.one("body");t.setStyles({position:"absolute",display:"none",zIndex:"999",top:"-999px",left:"-999px"}),r.prepend(t),t.set("id",e.guid()),t.addClass(n.CSS_PREFIX+"-proxy"),n._proxy=t}},_setFrame:function(e){var t=e.get(r),s=e.get(i),o,u="auto";o=n.activeDrag.get("activeHandle"),o&&(u=o.getStyle("cursor")),u=="auto"&&(u=n.get("dragCursor")),s.setStyles({visibility:"hidden",display:"block",cursor:u,border:e.proxy.get("borderStyle")}),e.proxy.get("cloneNode")&&(s=e.proxy.clone()),e.proxy.get("resizeFrame")&&s.setStyles({height:t.get("offsetHeight")+"px",width:t.get("offsetWidth")+"px"}),e.proxy.get("positionProxy")&&s.setXY(e.nodeXY),s.setStyle("visibility","visible")}})},"3.7.2",{requires:["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-proxy/dd-proxy.js b/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-proxy/dd-proxy.js
rename to lib/yuilib/3.7.2/build/dd-proxy/dd-proxy.js
index 9eec5b6d507..abb761b35c3 100644
--- a/lib/yuilib/3.7.1/build/dd-proxy/dd-proxy.js
+++ b/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -252,4 +252,4 @@ YUI.add('dd-proxy', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag"]});
+}, '3.7.2', {"requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-scroll/dd-scroll-coverage.js b/lib/yuilib/3.7.2/build/dd-scroll/dd-scroll-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-scroll/dd-scroll-coverage.js
rename to lib/yuilib/3.7.2/build/dd-scroll/dd-scroll-coverage.js
index 073bc2046c7..5c6ec6b8514 100644
--- a/lib/yuilib/3.7.1/build/dd-scroll/dd-scroll-coverage.js
+++ b/lib/yuilib/3.7.2/build/dd-scroll/dd-scroll-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dd-scroll/dd-scroll.js"] = {
path: "build/dd-scroll/dd-scroll.js",
code: []
};
-_yuitest_coverage["build/dd-scroll/dd-scroll.js"].code=["YUI.add('dd-scroll', function (Y, NAME) {","",""," /**"," * Base scroller class used to create the Plugin.DDNodeScroll and Plugin.DDWinScroll."," * This class should not be called on it's own, it's designed to be a plugin."," * @module dd"," * @submodule dd-scroll"," */"," /**"," * Base scroller class used to create the Plugin.DDNodeScroll and Plugin.DDWinScroll."," * This class should not be called on it's own, it's designed to be a plugin."," * @class Scroll"," * @extends Base"," * @namespace DD"," * @constructor"," */",""," var S = function() {"," S.superclass.constructor.apply(this, arguments);",""," },"," WS, NS,"," HOST = 'host',"," BUFFER = 'buffer',"," PARENT_SCROLL = 'parentScroll',"," WINDOW_SCROLL = 'windowScroll',"," SCROLL_TOP = 'scrollTop',"," SCROLL_LEFT = 'scrollLeft',"," OFFSET_WIDTH = 'offsetWidth',"," OFFSET_HEIGHT = 'offsetHeight';","",""," S.ATTRS = {"," /**"," * @attribute parentScroll"," * @description Internal config option to hold the node that we are scrolling. Should not be set by the developer."," * @type Node"," */"," parentScroll: {"," value: false,"," setter: function(node) {"," if (node) {"," return node;"," }"," return false;"," }"," },"," /**"," * @attribute buffer"," * @description The number of pixels from the edge of the screen to turn on scrolling. Default: 30"," * @type Number"," */"," buffer: {"," value: 30,"," validator: Y.Lang.isNumber"," },"," /**"," * @attribute scrollDelay"," * @description The number of milliseconds delay to pass to the auto scroller. Default: 235"," * @type Number"," */"," scrollDelay: {"," value: 235,"," validator: Y.Lang.isNumber"," },"," /**"," * @attribute host"," * @description The host we are plugged into."," * @type Object"," */"," host: {"," value: null"," },"," /**"," * @attribute windowScroll"," * @description Turn on window scroll support, default: false"," * @type Boolean"," */"," windowScroll: {"," value: false,"," validator: Y.Lang.isBoolean"," },"," /**"," * @attribute vertical"," * @description Allow vertical scrolling, default: true."," * @type Boolean"," */"," vertical: {"," value: true,"," validator: Y.Lang.isBoolean"," },"," /**"," * @attribute horizontal"," * @description Allow horizontal scrolling, default: true."," * @type Boolean"," */"," horizontal: {"," value: true,"," validator: Y.Lang.isBoolean"," }"," };",""," Y.extend(S, Y.Base, {"," /**"," * @private"," * @property _scrolling"," * @description Tells if we are actively scrolling or not."," * @type Boolean"," */"," _scrolling: null,"," /**"," * @private"," * @property _vpRegionCache"," * @description Cache of the Viewport dims."," * @type Object"," */"," _vpRegionCache: null,"," /**"," * @private"," * @property _dimCache"," * @description Cache of the dragNode dims."," * @type Object"," */"," _dimCache: null,"," /**"," * @private"," * @property _scrollTimer"," * @description Holder for the Timer object returned from Y.later."," * @type {Y.later}"," */"," _scrollTimer: null,"," /**"," * @private"," * @method _getVPRegion"," * @description Sets the _vpRegionCache property with an Object containing the dims from the viewport."," */ "," _getVPRegion: function() {"," var r = {},"," n = this.get(PARENT_SCROLL),"," b = this.get(BUFFER),"," ws = this.get(WINDOW_SCROLL),"," xy = ((ws) ? [] : n.getXY()),"," w = ((ws) ? 'winWidth' : OFFSET_WIDTH),"," h = ((ws) ? 'winHeight' : OFFSET_HEIGHT),"," t = ((ws) ? n.get(SCROLL_TOP) : xy[1]),"," l = ((ws) ? n.get(SCROLL_LEFT) : xy[0]);",""," r = {"," top: t + b,"," right: (n.get(w) + l) - b,"," bottom: (n.get(h) + t) - b,"," left: l + b"," };"," this._vpRegionCache = r;"," return r;"," },"," initializer: function() {"," var h = this.get(HOST);"," h.after('drag:start', Y.bind(this.start, this));"," h.after('drag:end', Y.bind(this.end, this));"," h.on('drag:align', Y.bind(this.align, this));",""," //TODO - This doesn't work yet??"," Y.one('win').on('scroll', Y.bind(function() {"," this._vpRegionCache = null;"," }, this));"," },"," /**"," * @private"," * @method _checkWinScroll"," * @description Check to see if we need to fire the scroll timer. If scroll timer is running this will scroll the window."," * @param {Boolean} move Should we move the window. From Y.later"," */ "," _checkWinScroll: function(move) {"," var r = this._getVPRegion(),"," ho = this.get(HOST),"," ws = this.get(WINDOW_SCROLL),"," xy = ho.lastXY,"," scroll = false,"," b = this.get(BUFFER),"," win = this.get(PARENT_SCROLL),"," sTop = win.get(SCROLL_TOP),"," sLeft = win.get(SCROLL_LEFT),"," w = this._dimCache.w,"," h = this._dimCache.h,"," bottom = xy[1] + h,"," top = xy[1],"," right = xy[0] + w,"," left = xy[0],"," nt = top,"," nl = left,"," st = sTop,"," sl = sLeft;"," "," if (this.get('horizontal')) {"," if (left <= r.left) {"," scroll = true;"," nl = xy[0] - ((ws) ? b : 0);"," sl = sLeft - b;"," }"," if (right >= r.right) {"," scroll = true;"," nl = xy[0] + ((ws) ? b : 0);"," sl = sLeft + b;"," }"," }"," if (this.get('vertical')) {"," if (bottom >= r.bottom) {"," scroll = true;"," nt = xy[1] + ((ws) ? b : 0);"," st = sTop + b;",""," }"," if (top <= r.top) {"," scroll = true;"," nt = xy[1] - ((ws) ? b : 0);"," st = sTop - b;"," }"," }",""," if (st < 0) {"," st = 0;"," nt = xy[1];"," }",""," if (sl < 0) {"," sl = 0;"," nl = xy[0];"," }",""," if (nt < 0) {"," nt = xy[1];"," }"," if (nl < 0) {"," nl = xy[0];"," }"," if (ho.con) {"," if (!ho.con.inRegion([nl + sl, nt + st])) {"," move = false;"," }"," }"," if (move) {"," ho.actXY = [nl, nt];"," ho._alignNode([nl, nt], true); //We are srolling.."," xy = ho.actXY;"," ho.actXY = [nl, nt];"," ho._moveNode({ node: win, top: st, left: sl});"," if (!st && !sl) {"," this._cancelScroll();"," }"," } else {"," if (scroll) {"," this._initScroll();"," } else {"," this._cancelScroll();"," }"," }"," },"," /**"," * @private"," * @method _initScroll"," * @description Cancel a previous scroll timer and init a new one."," */ "," _initScroll: function() {"," this._cancelScroll();"," this._scrollTimer = Y.Lang.later(this.get('scrollDelay'), this, this._checkWinScroll, [true], true);",""," },"," /**"," * @private"," * @method _cancelScroll"," * @description Cancel a currently running scroll timer."," */ "," _cancelScroll: function() {"," this._scrolling = false;"," if (this._scrollTimer) {"," this._scrollTimer.cancel();"," delete this._scrollTimer;"," }"," },"," /**"," * @method align"," * @description Called from the drag:align event to determine if we need to scroll."," */ "," align: function(e) {"," if (this._scrolling) {"," this._cancelScroll();"," e.preventDefault();"," }"," if (!this._scrolling) {"," this._checkWinScroll();"," }"," },"," /**"," * @private"," * @method _setDimCache"," * @description Set the cache of the dragNode dims."," */ "," _setDimCache: function() {"," var node = this.get(HOST).get('dragNode');"," this._dimCache = {"," h: node.get(OFFSET_HEIGHT),"," w: node.get(OFFSET_WIDTH)"," };"," },"," /**"," * @method start"," * @description Called from the drag:start event"," */"," start: function() {"," this._setDimCache();"," },"," /**"," * @method end"," * @description Called from the drag:end event"," */"," end: function(xy) {"," this._dimCache = null;"," this._cancelScroll();"," }"," });",""," Y.namespace('Plugin');",""," "," /**"," * Extends the Scroll class to make the window scroll while dragging."," * @class DDWindowScroll"," * @extends Scroll"," * @namespace Plugin"," * @constructor"," */"," WS = function() {"," WS.superclass.constructor.apply(this, arguments);"," };"," WS.ATTRS = Y.merge(S.ATTRS, {"," /**"," * @attribute windowScroll"," * @description Turn on window scroll support, default: true"," * @type Boolean"," */"," windowScroll: {"," value: true,"," setter: function(scroll) {"," if (scroll) {"," this.set(PARENT_SCROLL, Y.one('win'));"," }"," return scroll;"," }"," }"," });"," Y.extend(WS, S, {"," //Shouldn't have to do this.."," initializer: function() {"," this.set('windowScroll', this.get('windowScroll'));"," }"," });"," /**"," * @property NS"," * @default winscroll"," * @readonly"," * @protected"," * @static"," * @description The Scroll instance will be placed on the Drag instance under the winscroll namespace."," * @type {String}"," */"," WS.NAME = WS.NS = 'winscroll';"," Y.Plugin.DDWinScroll = WS;"," ",""," /**"," * Extends the Scroll class to make a parent node scroll while dragging."," * @class DDNodeScroll"," * @extends Scroll"," * @namespace Plugin"," * @constructor"," */"," NS = function() {"," NS.superclass.constructor.apply(this, arguments);",""," };"," NS.ATTRS = Y.merge(S.ATTRS, {"," /**"," * @attribute node"," * @description The node we want to scroll. Used to set the internal parentScroll attribute."," * @type Node"," */"," node: {"," value: false,"," setter: function(node) {"," var n = Y.one(node);"," if (!n) {"," if (node !== false) {"," Y.error('DDNodeScroll: Invalid Node Given: ' + node);"," }"," } else {"," this.set(PARENT_SCROLL, n);"," }"," return n;"," }"," }"," });"," Y.extend(NS, S, {"," //Shouldn't have to do this.."," initializer: function() {"," this.set('node', this.get('node'));"," }"," });"," /**"," * @property NS"," * @default nodescroll"," * @readonly"," * @protected"," * @static"," * @description The NodeScroll instance will be placed on the Drag instance under the nodescroll namespace."," * @type {String}"," */"," NS.NAME = NS.NS = 'nodescroll';"," Y.Plugin.DDNodeScroll = NS;",""," Y.DD.Scroll = S; ","","","","","}, '3.7.1', {\"requires\": [\"dd-drag\"]});"];
+_yuitest_coverage["build/dd-scroll/dd-scroll.js"].code=["YUI.add('dd-scroll', function (Y, NAME) {","",""," /**"," * Base scroller class used to create the Plugin.DDNodeScroll and Plugin.DDWinScroll."," * This class should not be called on it's own, it's designed to be a plugin."," * @module dd"," * @submodule dd-scroll"," */"," /**"," * Base scroller class used to create the Plugin.DDNodeScroll and Plugin.DDWinScroll."," * This class should not be called on it's own, it's designed to be a plugin."," * @class Scroll"," * @extends Base"," * @namespace DD"," * @constructor"," */",""," var S = function() {"," S.superclass.constructor.apply(this, arguments);",""," },"," WS, NS,"," HOST = 'host',"," BUFFER = 'buffer',"," PARENT_SCROLL = 'parentScroll',"," WINDOW_SCROLL = 'windowScroll',"," SCROLL_TOP = 'scrollTop',"," SCROLL_LEFT = 'scrollLeft',"," OFFSET_WIDTH = 'offsetWidth',"," OFFSET_HEIGHT = 'offsetHeight';","",""," S.ATTRS = {"," /**"," * @attribute parentScroll"," * @description Internal config option to hold the node that we are scrolling. Should not be set by the developer."," * @type Node"," */"," parentScroll: {"," value: false,"," setter: function(node) {"," if (node) {"," return node;"," }"," return false;"," }"," },"," /**"," * @attribute buffer"," * @description The number of pixels from the edge of the screen to turn on scrolling. Default: 30"," * @type Number"," */"," buffer: {"," value: 30,"," validator: Y.Lang.isNumber"," },"," /**"," * @attribute scrollDelay"," * @description The number of milliseconds delay to pass to the auto scroller. Default: 235"," * @type Number"," */"," scrollDelay: {"," value: 235,"," validator: Y.Lang.isNumber"," },"," /**"," * @attribute host"," * @description The host we are plugged into."," * @type Object"," */"," host: {"," value: null"," },"," /**"," * @attribute windowScroll"," * @description Turn on window scroll support, default: false"," * @type Boolean"," */"," windowScroll: {"," value: false,"," validator: Y.Lang.isBoolean"," },"," /**"," * @attribute vertical"," * @description Allow vertical scrolling, default: true."," * @type Boolean"," */"," vertical: {"," value: true,"," validator: Y.Lang.isBoolean"," },"," /**"," * @attribute horizontal"," * @description Allow horizontal scrolling, default: true."," * @type Boolean"," */"," horizontal: {"," value: true,"," validator: Y.Lang.isBoolean"," }"," };",""," Y.extend(S, Y.Base, {"," /**"," * @private"," * @property _scrolling"," * @description Tells if we are actively scrolling or not."," * @type Boolean"," */"," _scrolling: null,"," /**"," * @private"," * @property _vpRegionCache"," * @description Cache of the Viewport dims."," * @type Object"," */"," _vpRegionCache: null,"," /**"," * @private"," * @property _dimCache"," * @description Cache of the dragNode dims."," * @type Object"," */"," _dimCache: null,"," /**"," * @private"," * @property _scrollTimer"," * @description Holder for the Timer object returned from Y.later."," * @type {Y.later}"," */"," _scrollTimer: null,"," /**"," * @private"," * @method _getVPRegion"," * @description Sets the _vpRegionCache property with an Object containing the dims from the viewport."," */ "," _getVPRegion: function() {"," var r = {},"," n = this.get(PARENT_SCROLL),"," b = this.get(BUFFER),"," ws = this.get(WINDOW_SCROLL),"," xy = ((ws) ? [] : n.getXY()),"," w = ((ws) ? 'winWidth' : OFFSET_WIDTH),"," h = ((ws) ? 'winHeight' : OFFSET_HEIGHT),"," t = ((ws) ? n.get(SCROLL_TOP) : xy[1]),"," l = ((ws) ? n.get(SCROLL_LEFT) : xy[0]);",""," r = {"," top: t + b,"," right: (n.get(w) + l) - b,"," bottom: (n.get(h) + t) - b,"," left: l + b"," };"," this._vpRegionCache = r;"," return r;"," },"," initializer: function() {"," var h = this.get(HOST);"," h.after('drag:start', Y.bind(this.start, this));"," h.after('drag:end', Y.bind(this.end, this));"," h.on('drag:align', Y.bind(this.align, this));",""," //TODO - This doesn't work yet??"," Y.one('win').on('scroll', Y.bind(function() {"," this._vpRegionCache = null;"," }, this));"," },"," /**"," * @private"," * @method _checkWinScroll"," * @description Check to see if we need to fire the scroll timer. If scroll timer is running this will scroll the window."," * @param {Boolean} move Should we move the window. From Y.later"," */ "," _checkWinScroll: function(move) {"," var r = this._getVPRegion(),"," ho = this.get(HOST),"," ws = this.get(WINDOW_SCROLL),"," xy = ho.lastXY,"," scroll = false,"," b = this.get(BUFFER),"," win = this.get(PARENT_SCROLL),"," sTop = win.get(SCROLL_TOP),"," sLeft = win.get(SCROLL_LEFT),"," w = this._dimCache.w,"," h = this._dimCache.h,"," bottom = xy[1] + h,"," top = xy[1],"," right = xy[0] + w,"," left = xy[0],"," nt = top,"," nl = left,"," st = sTop,"," sl = sLeft;"," "," if (this.get('horizontal')) {"," if (left <= r.left) {"," scroll = true;"," nl = xy[0] - ((ws) ? b : 0);"," sl = sLeft - b;"," }"," if (right >= r.right) {"," scroll = true;"," nl = xy[0] + ((ws) ? b : 0);"," sl = sLeft + b;"," }"," }"," if (this.get('vertical')) {"," if (bottom >= r.bottom) {"," scroll = true;"," nt = xy[1] + ((ws) ? b : 0);"," st = sTop + b;",""," }"," if (top <= r.top) {"," scroll = true;"," nt = xy[1] - ((ws) ? b : 0);"," st = sTop - b;"," }"," }",""," if (st < 0) {"," st = 0;"," nt = xy[1];"," }",""," if (sl < 0) {"," sl = 0;"," nl = xy[0];"," }",""," if (nt < 0) {"," nt = xy[1];"," }"," if (nl < 0) {"," nl = xy[0];"," }"," if (ho.con) {"," if (!ho.con.inRegion([nl + sl, nt + st])) {"," move = false;"," }"," }"," if (move) {"," ho.actXY = [nl, nt];"," ho._alignNode([nl, nt], true); //We are srolling.."," xy = ho.actXY;"," ho.actXY = [nl, nt];"," ho._moveNode({ node: win, top: st, left: sl});"," if (!st && !sl) {"," this._cancelScroll();"," }"," } else {"," if (scroll) {"," this._initScroll();"," } else {"," this._cancelScroll();"," }"," }"," },"," /**"," * @private"," * @method _initScroll"," * @description Cancel a previous scroll timer and init a new one."," */ "," _initScroll: function() {"," this._cancelScroll();"," this._scrollTimer = Y.Lang.later(this.get('scrollDelay'), this, this._checkWinScroll, [true], true);",""," },"," /**"," * @private"," * @method _cancelScroll"," * @description Cancel a currently running scroll timer."," */ "," _cancelScroll: function() {"," this._scrolling = false;"," if (this._scrollTimer) {"," this._scrollTimer.cancel();"," delete this._scrollTimer;"," }"," },"," /**"," * @method align"," * @description Called from the drag:align event to determine if we need to scroll."," */ "," align: function(e) {"," if (this._scrolling) {"," this._cancelScroll();"," e.preventDefault();"," }"," if (!this._scrolling) {"," this._checkWinScroll();"," }"," },"," /**"," * @private"," * @method _setDimCache"," * @description Set the cache of the dragNode dims."," */ "," _setDimCache: function() {"," var node = this.get(HOST).get('dragNode');"," this._dimCache = {"," h: node.get(OFFSET_HEIGHT),"," w: node.get(OFFSET_WIDTH)"," };"," },"," /**"," * @method start"," * @description Called from the drag:start event"," */"," start: function() {"," this._setDimCache();"," },"," /**"," * @method end"," * @description Called from the drag:end event"," */"," end: function(xy) {"," this._dimCache = null;"," this._cancelScroll();"," }"," });",""," Y.namespace('Plugin');",""," "," /**"," * Extends the Scroll class to make the window scroll while dragging."," * @class DDWindowScroll"," * @extends Scroll"," * @namespace Plugin"," * @constructor"," */"," WS = function() {"," WS.superclass.constructor.apply(this, arguments);"," };"," WS.ATTRS = Y.merge(S.ATTRS, {"," /**"," * @attribute windowScroll"," * @description Turn on window scroll support, default: true"," * @type Boolean"," */"," windowScroll: {"," value: true,"," setter: function(scroll) {"," if (scroll) {"," this.set(PARENT_SCROLL, Y.one('win'));"," }"," return scroll;"," }"," }"," });"," Y.extend(WS, S, {"," //Shouldn't have to do this.."," initializer: function() {"," this.set('windowScroll', this.get('windowScroll'));"," }"," });"," /**"," * @property NS"," * @default winscroll"," * @readonly"," * @protected"," * @static"," * @description The Scroll instance will be placed on the Drag instance under the winscroll namespace."," * @type {String}"," */"," WS.NAME = WS.NS = 'winscroll';"," Y.Plugin.DDWinScroll = WS;"," ",""," /**"," * Extends the Scroll class to make a parent node scroll while dragging."," * @class DDNodeScroll"," * @extends Scroll"," * @namespace Plugin"," * @constructor"," */"," NS = function() {"," NS.superclass.constructor.apply(this, arguments);",""," };"," NS.ATTRS = Y.merge(S.ATTRS, {"," /**"," * @attribute node"," * @description The node we want to scroll. Used to set the internal parentScroll attribute."," * @type Node"," */"," node: {"," value: false,"," setter: function(node) {"," var n = Y.one(node);"," if (!n) {"," if (node !== false) {"," Y.error('DDNodeScroll: Invalid Node Given: ' + node);"," }"," } else {"," this.set(PARENT_SCROLL, n);"," }"," return n;"," }"," }"," });"," Y.extend(NS, S, {"," //Shouldn't have to do this.."," initializer: function() {"," this.set('node', this.get('node'));"," }"," });"," /**"," * @property NS"," * @default nodescroll"," * @readonly"," * @protected"," * @static"," * @description The NodeScroll instance will be placed on the Drag instance under the nodescroll namespace."," * @type {String}"," */"," NS.NAME = NS.NS = 'nodescroll';"," Y.Plugin.DDNodeScroll = NS;",""," Y.DD.Scroll = S; ","","","","","}, '3.7.2', {\"requires\": [\"dd-drag\"]});"];
_yuitest_coverage["build/dd-scroll/dd-scroll.js"].lines = {"1":0,"19":0,"20":0,"34":0,"43":0,"44":0,"46":0,"104":0,"139":0,"149":0,"155":0,"156":0,"159":0,"160":0,"161":0,"162":0,"165":0,"166":0,"176":0,"196":0,"197":0,"198":0,"199":0,"200":0,"202":0,"203":0,"204":0,"205":0,"208":0,"209":0,"210":0,"211":0,"212":0,"215":0,"216":0,"217":0,"218":0,"222":0,"223":0,"224":0,"227":0,"228":0,"229":0,"232":0,"233":0,"235":0,"236":0,"238":0,"239":0,"240":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"253":0,"254":0,"256":0,"266":0,"267":0,"276":0,"277":0,"278":0,"279":0,"287":0,"288":0,"289":0,"291":0,"292":0,"301":0,"302":0,"312":0,"319":0,"320":0,"324":0,"334":0,"335":0,"337":0,"346":0,"347":0,"349":0,"353":0,"356":0,"368":0,"369":0,"379":0,"380":0,"383":0,"392":0,"393":0,"394":0,"395":0,"398":0,"400":0,"404":0,"407":0,"419":0,"420":0,"422":0};
_yuitest_coverage["build/dd-scroll/dd-scroll.js"].functions = {"S:19":0,"setter:42":0,"_getVPRegion:138":0,"(anonymous 2):165":0,"initializer:158":0,"_checkWinScroll:175":0,"_initScroll:265":0,"_cancelScroll:275":0,"align:286":0,"_setDimCache:300":0,"start:311":0,"end:318":0,"WS:334":0,"setter:345":0,"initializer:355":0,"NS:379":0,"setter:391":0,"initializer:406":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dd-scroll/dd-scroll.js"].coveredLines = 102;
@@ -584,4 +584,4 @@ Y.DD.Scroll = S;
-}, '3.7.1', {"requires": ["dd-drag"]});
+}, '3.7.2', {"requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-scroll/dd-scroll-debug.js b/lib/yuilib/3.7.2/build/dd-scroll/dd-scroll-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-scroll/dd-scroll-debug.js
rename to lib/yuilib/3.7.2/build/dd-scroll/dd-scroll-debug.js
index b2857b5c60e..70452b89c0d 100644
--- a/lib/yuilib/3.7.1/build/dd-scroll/dd-scroll-debug.js
+++ b/lib/yuilib/3.7.2/build/dd-scroll/dd-scroll-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -430,4 +430,4 @@ YUI.add('dd-scroll', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag"]});
+}, '3.7.2', {"requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-scroll/dd-scroll-min.js b/lib/yuilib/3.7.2/build/dd-scroll/dd-scroll-min.js
similarity index 97%
rename from lib/yuilib/3.7.1/build/dd-scroll/dd-scroll-min.js
rename to lib/yuilib/3.7.2/build/dd-scroll/dd-scroll-min.js
index 30df3c0ae26..db81e1d8544 100644
--- a/lib/yuilib/3.7.1/build/dd-scroll/dd-scroll-min.js
+++ b/lib/yuilib/3.7.2/build/dd-scroll/dd-scroll-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dd-scroll",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r,i,s="host",o="buffer",u="parentScroll",a="windowScroll",f="scrollTop",l="scrollLeft",c="offsetWidth",h="offsetHeight";n.ATTRS={parentScroll:{value:!1,setter:function(e){return e?e:!1}},buffer:{value:30,validator:e.Lang.isNumber},scrollDelay:{value:235,validator:e.Lang.isNumber},host:{value:null},windowScroll:{value:!1,validator:e.Lang.isBoolean},vertical:{value:!0,validator:e.Lang.isBoolean},horizontal:{value:!0,validator:e.Lang.isBoolean}},e.extend(n,e.Base,{_scrolling:null,_vpRegionCache:null,_dimCache:null,_scrollTimer:null,_getVPRegion:function(){var e={},t=this.get(u),n=this.get(o),r=this.get(a),i=r?[]:t.getXY(),s=r?"winWidth":c,p=r?"winHeight":h,d=r?t.get(f):i[1],v=r?t.get(l):i[0];return e={top:d+n,right:t.get(s)+v-n,bottom:t.get(p)+d-n,left:v+n},this._vpRegionCache=e,e},initializer:function(){var t=this.get(s);t.after("drag:start",e.bind(this.start,this)),t.after("drag:end",e.bind(this.end,this)),t.on("drag:align",e.bind(this.align,this)),e.one("win").on("scroll",e.bind(function(){this._vpRegionCache=null},this))},_checkWinScroll:function(e){var t=this._getVPRegion(),n=this.get(s),r=this.get(a),i=n.lastXY,c=!1,h=this.get(o),p=this.get(u),d=p.get(f),v=p.get(l),m=this._dimCache.w,g=this._dimCache.h,y=i[1]+g,b=i[1],w=i[0]+m,E=i[0],S=b,x=E,T=d,N=v;this.get("horizontal")&&(E<=t.left&&(c=!0,x=i[0]-(r?h:0),N=v-h),w>=t.right&&(c=!0,x=i[0]+(r?h:0),N=v+h)),this.get("vertical")&&(y>=t.bottom&&(c=!0,S=i[1]+(r?h:0),T=d+h),b<=t.top&&(c=!0,S=i[1]-(r?h:0),T=d-h)),T<0&&(T=0,S=i[1]),N<0&&(N=0,x=i[0]),S<0&&(S=i[1]),x<0&&(x=i[0]),n.con&&(n.con.inRegion([x+N,S+T])||(e=!1)),e?(n.actXY=[x,S],n._alignNode([x,S],!0),i=n.actXY,n.actXY=[x,S],n._moveNode({node:p,top:T,left:N}),!T&&!N&&this._cancelScroll()):c?this._initScroll():this._cancelScroll()},_initScroll:function(){this._cancelScroll(),this._scrollTimer=e.Lang.later(this.get("scrollDelay"),this,this._checkWinScroll,[!0],!0)},_cancelScroll:function(){this._scrolling=!1,this._scrollTimer&&(this._scrollTimer.cancel(),delete this._scrollTimer)},align:function(e){this._scrolling&&(this._cancelScroll(),e.preventDefault()),this._scrolling||this._checkWinScroll()},_setDimCache:function(){var e=this.get(s).get("dragNode");this._dimCache={h:e.get(h),w:e.get(c)}},start:function(){this._setDimCache()},end:function(e){this._dimCache=null,this._cancelScroll()}}),e.namespace("Plugin"),r=function(){r.superclass.constructor.apply(this,arguments)},r.ATTRS=e.merge(n.ATTRS,{windowScroll:{value:!0,setter:function(t){return t&&this.set(u,e.one("win")),t}}}),e.extend(r,n,{initializer:function(){this.set("windowScroll",this.get("windowScroll"))}}),r.NAME=r.NS="winscroll",e.Plugin.DDWinScroll=r,i=function(){i.superclass.constructor.apply(this,arguments)},i.ATTRS=e.merge(n.ATTRS,{node:{value:!1,setter:function(t){var n=e.one(t);return n?this.set(u,n):t!==!1&&e.error("DDNodeScroll: Invalid Node Given: "+t),n}}}),e.extend(i,n,{initializer:function(){this.set("node",this.get("node"))}}),i.NAME=i.NS="nodescroll",e.Plugin.DDNodeScroll=i,e.DD.Scroll=n},"3.7.1",{requires:["dd-drag"]});
+YUI.add("dd-scroll",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r,i,s="host",o="buffer",u="parentScroll",a="windowScroll",f="scrollTop",l="scrollLeft",c="offsetWidth",h="offsetHeight";n.ATTRS={parentScroll:{value:!1,setter:function(e){return e?e:!1}},buffer:{value:30,validator:e.Lang.isNumber},scrollDelay:{value:235,validator:e.Lang.isNumber},host:{value:null},windowScroll:{value:!1,validator:e.Lang.isBoolean},vertical:{value:!0,validator:e.Lang.isBoolean},horizontal:{value:!0,validator:e.Lang.isBoolean}},e.extend(n,e.Base,{_scrolling:null,_vpRegionCache:null,_dimCache:null,_scrollTimer:null,_getVPRegion:function(){var e={},t=this.get(u),n=this.get(o),r=this.get(a),i=r?[]:t.getXY(),s=r?"winWidth":c,p=r?"winHeight":h,d=r?t.get(f):i[1],v=r?t.get(l):i[0];return e={top:d+n,right:t.get(s)+v-n,bottom:t.get(p)+d-n,left:v+n},this._vpRegionCache=e,e},initializer:function(){var t=this.get(s);t.after("drag:start",e.bind(this.start,this)),t.after("drag:end",e.bind(this.end,this)),t.on("drag:align",e.bind(this.align,this)),e.one("win").on("scroll",e.bind(function(){this._vpRegionCache=null},this))},_checkWinScroll:function(e){var t=this._getVPRegion(),n=this.get(s),r=this.get(a),i=n.lastXY,c=!1,h=this.get(o),p=this.get(u),d=p.get(f),v=p.get(l),m=this._dimCache.w,g=this._dimCache.h,y=i[1]+g,b=i[1],w=i[0]+m,E=i[0],S=b,x=E,T=d,N=v;this.get("horizontal")&&(E<=t.left&&(c=!0,x=i[0]-(r?h:0),N=v-h),w>=t.right&&(c=!0,x=i[0]+(r?h:0),N=v+h)),this.get("vertical")&&(y>=t.bottom&&(c=!0,S=i[1]+(r?h:0),T=d+h),b<=t.top&&(c=!0,S=i[1]-(r?h:0),T=d-h)),T<0&&(T=0,S=i[1]),N<0&&(N=0,x=i[0]),S<0&&(S=i[1]),x<0&&(x=i[0]),n.con&&(n.con.inRegion([x+N,S+T])||(e=!1)),e?(n.actXY=[x,S],n._alignNode([x,S],!0),i=n.actXY,n.actXY=[x,S],n._moveNode({node:p,top:T,left:N}),!T&&!N&&this._cancelScroll()):c?this._initScroll():this._cancelScroll()},_initScroll:function(){this._cancelScroll(),this._scrollTimer=e.Lang.later(this.get("scrollDelay"),this,this._checkWinScroll,[!0],!0)},_cancelScroll:function(){this._scrolling=!1,this._scrollTimer&&(this._scrollTimer.cancel(),delete this._scrollTimer)},align:function(e){this._scrolling&&(this._cancelScroll(),e.preventDefault()),this._scrolling||this._checkWinScroll()},_setDimCache:function(){var e=this.get(s).get("dragNode");this._dimCache={h:e.get(h),w:e.get(c)}},start:function(){this._setDimCache()},end:function(e){this._dimCache=null,this._cancelScroll()}}),e.namespace("Plugin"),r=function(){r.superclass.constructor.apply(this,arguments)},r.ATTRS=e.merge(n.ATTRS,{windowScroll:{value:!0,setter:function(t){return t&&this.set(u,e.one("win")),t}}}),e.extend(r,n,{initializer:function(){this.set("windowScroll",this.get("windowScroll"))}}),r.NAME=r.NS="winscroll",e.Plugin.DDWinScroll=r,i=function(){i.superclass.constructor.apply(this,arguments)},i.ATTRS=e.merge(n.ATTRS,{node:{value:!1,setter:function(t){var n=e.one(t);return n?this.set(u,n):t!==!1&&e.error("DDNodeScroll: Invalid Node Given: "+t),n}}}),e.extend(i,n,{initializer:function(){this.set("node",this.get("node"))}}),i.NAME=i.NS="nodescroll",e.Plugin.DDNodeScroll=i,e.DD.Scroll=n},"3.7.2",{requires:["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dd-scroll/dd-scroll.js b/lib/yuilib/3.7.2/build/dd-scroll/dd-scroll.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dd-scroll/dd-scroll.js
rename to lib/yuilib/3.7.2/build/dd-scroll/dd-scroll.js
index b2857b5c60e..70452b89c0d 100644
--- a/lib/yuilib/3.7.1/build/dd-scroll/dd-scroll.js
+++ b/lib/yuilib/3.7.2/build/dd-scroll/dd-scroll.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -430,4 +430,4 @@ YUI.add('dd-scroll', function (Y, NAME) {
-}, '3.7.1', {"requires": ["dd-drag"]});
+}, '3.7.2', {"requires": ["dd-drag"]});
diff --git a/lib/yuilib/3.7.1/build/dial/assets/dial-core.css b/lib/yuilib/3.7.2/build/dial/assets/dial-core.css
similarity index 98%
rename from lib/yuilib/3.7.1/build/dial/assets/dial-core.css
rename to lib/yuilib/3.7.2/build/dial/assets/dial-core.css
index eb1af310d41..5015dc89959 100644
--- a/lib/yuilib/3.7.1/build/dial/assets/dial-core.css
+++ b/lib/yuilib/3.7.2/build/dial/assets/dial-core.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/dial/assets/skins/night/dial-skin.css b/lib/yuilib/3.7.2/build/dial/assets/skins/night/dial-skin.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/dial/assets/skins/night/dial-skin.css
rename to lib/yuilib/3.7.2/build/dial/assets/skins/night/dial-skin.css
index b310db53ad2..80739fb9b53 100644
--- a/lib/yuilib/3.7.1/build/dial/assets/skins/night/dial-skin.css
+++ b/lib/yuilib/3.7.2/build/dial/assets/skins/night/dial-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/dial/assets/skins/night/dial.css b/lib/yuilib/3.7.2/build/dial/assets/skins/night/dial.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/dial/assets/skins/night/dial.css
rename to lib/yuilib/3.7.2/build/dial/assets/skins/night/dial.css
index 9f5a0af5927..97362076d32 100644
--- a/lib/yuilib/3.7.1/build/dial/assets/skins/night/dial.css
+++ b/lib/yuilib/3.7.2/build/dial/assets/skins/night/dial.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/dial/assets/skins/sam/dial-skin.css b/lib/yuilib/3.7.2/build/dial/assets/skins/sam/dial-skin.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/dial/assets/skins/sam/dial-skin.css
rename to lib/yuilib/3.7.2/build/dial/assets/skins/sam/dial-skin.css
index ed12a7b2b68..d05e313ea02 100644
--- a/lib/yuilib/3.7.1/build/dial/assets/skins/sam/dial-skin.css
+++ b/lib/yuilib/3.7.2/build/dial/assets/skins/sam/dial-skin.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/dial/assets/skins/sam/dial.css b/lib/yuilib/3.7.2/build/dial/assets/skins/sam/dial.css
similarity index 99%
rename from lib/yuilib/3.7.1/build/dial/assets/skins/sam/dial.css
rename to lib/yuilib/3.7.2/build/dial/assets/skins/sam/dial.css
index 7e9f14b7aff..b7e8871462e 100644
--- a/lib/yuilib/3.7.1/build/dial/assets/skins/sam/dial.css
+++ b/lib/yuilib/3.7.2/build/dial/assets/skins/sam/dial.css
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
diff --git a/lib/yuilib/3.7.1/build/dial/dial-coverage.js b/lib/yuilib/3.7.2/build/dial/dial-coverage.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dial/dial-coverage.js
rename to lib/yuilib/3.7.2/build/dial/dial-coverage.js
index 72c96f2c3e0..2bedbcbcc8c 100644
--- a/lib/yuilib/3.7.1/build/dial/dial-coverage.js
+++ b/lib/yuilib/3.7.2/build/dial/dial-coverage.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -32,7 +32,7 @@ _yuitest_coverage["build/dial/dial.js"] = {
path: "build/dial/dial.js",
code: []
};
-_yuitest_coverage["build/dial/dial.js"].code=["YUI.add('dial', function (Y, NAME) {","","/**"," * Create a circular dial value range input visualized as a draggable handle on a"," * background element."," * "," * @module dial"," */"," var supportsVML = false;"," //testVMLNode;",""," if (Y.UA.ie && Y.UA.ie < 9){"," supportsVML = true;"," }",""," var Lang = Y.Lang,"," Widget = Y.Widget,"," Node = Y.Node;",""," /**"," * Create a dial to represent an input control capable of representing a"," * series of intermediate states based on the position of the Dial's handle."," * These states are typically aligned to a value algorithm whereby the angle of the handle's"," * position corresponds to a given value."," *"," * @class Dial"," * @extends Widget"," * @param config {Object} Configuration object"," * @constructor"," */"," function Dial(config) {"," Dial.superclass.constructor.apply(this, arguments);"," }",""," // Y.Dial static properties",""," /**"," * The identity of the widget."," *"," * @property NAME"," * @type String"," * @default 'dial'"," * @readOnly"," * @protected"," * @static"," */"," Dial.NAME = \"dial\";",""," /**"," * Static property used to define the default attribute configuration of"," * the Widget."," *"," * @property ATTRS"," * @type {Object}"," * @protected"," * @static"," */"," Dial.ATTRS = {",""," /**"," * minimum value allowed"," *"," * @attribute min"," * @type {Number}"," * @default -220"," */"," min : {"," value:-220"," },",""," /**"," * maximum value allowed"," *"," * @attribute max"," * @type {Number}"," * @default 220"," */"," max : {"," value:220"," },",""," /**"," * diameter of the circular background object."," * Other objects scale accordingly."," * Set this only before rendering."," *"," * @attribute diameter"," * @type {Number} the number of px in diameter"," * @default 100"," * @writeOnce"," */"," diameter : {"," value:100"," },",""," /**"," * diameter of the handle object which users drag to change the value."," * Dial sets the pixel dimension of the handle equal to handleDiameter * diameter."," * Set this only before rendering."," *"," * @attribute handleDiameter"," * @type {Number}"," * @default 0.2"," * @writeOnce"," */"," handleDiameter : {"," value:0.2"," },",""," /**"," * diameter of the marker object which follows the angle of the handle during value changes."," * Dial sets the pixel dimension of the marker equal to markerDiameter * diameter."," * Set this only before rendering."," *"," * @attribute markerDiameter"," * @type {Number}"," * @default 0.1"," * @writeOnce"," */"," markerDiameter : {"," value:0.1"," },",""," /**"," * diameter of the center button object."," * Dial sets the pixel dimension of the centerButton equal to centerButtonDiameter * diameter."," * Set this only before rendering."," *"," * @attribute centerButtonDiameter"," * @type {Number}"," * @default 0.1"," * @writeOnce"," */"," centerButtonDiameter : {"," value:0.5"," },",""," /**"," * initial value of the Dial"," *"," * @attribute value"," * @type {Number}"," * @default 0"," */"," value : {"," value:0,"," validator: function(val) {"," return this._validateValue(val);"," }"," },"," "," /**"," * amount to increment/decrement the dial value"," * when the arrow up/down/left/right keys are pressed"," *"," * @attribute minorStep"," * @type {Number}"," * @default 1"," */"," minorStep : {"," value:1"," },",""," /**"," * amount to increment/decrement the dial value"," * when the page up/down keys are pressed"," *"," * @attribute majorStep"," * @type {Number}"," * @default 10"," */"," majorStep : {"," value:10"," },",""," /**"," * number of value increments in one 360 degree revolution "," * of the handle around the dial"," *"," * @attribute stepsPerRevolution"," * @type {Number}"," * @default 100"," */"," stepsPerRevolution : {"," value:100"," },",""," /**"," * number of decimal places of accuracy in the value "," *"," * @attribute decimalPlaces"," * @type {Number}"," * @default 0"," */"," decimalPlaces : {"," value:0"," },",""," /**"," * visible strings for the dial UI. This attribute is "," * defined by the base Widget class but has an empty value. The"," * Dial is simply providing a default value for the attribute."," * Gets localized strings in the current language"," *"," * @attribute strings"," * @type {Object} the values are HTML strings"," * @default {label: 'My label', resetStr: 'Reset', tooltipHandle: 'Drag to set value'}"," */"," strings: {"," valueFn: function () {"," return Y.Intl.get('dial');"," }"," },",""," /**"," * distance from the center of the dial to the "," * center of the marker and handle, when at rest. "," * The value is a percent of the radius of the dial."," *"," * @attribute handleDistance"," * @type {number}"," * @default 0.75"," */"," handleDistance:{"," value:0.75"," }"," "," };",""," /**"," * returns a properly formed yui class name"," *"," * @method"," * @param {String} string to be appended at the end of class name"," * @return"," * @private"," */"," function makeClassName(str) {"," return Y.ClassNameManager.getClassName(Dial.NAME, str);"," }"," "," /** array of static constants used to identify the classname applied to the Dial DOM objects "," *"," * @property CSS_CLASSES"," * @type {Array}"," * @private"," * @static"," */"," Dial.CSS_CLASSES = {"," label : makeClassName(\"label\"),"," labelString : makeClassName(\"label-string\"),"," valueString : makeClassName(\"value-string\"),"," northMark : makeClassName(\"north-mark\"),"," ring : makeClassName('ring'),"," ringVml : makeClassName('ring-vml'),"," marker : makeClassName(\"marker\"),"," markerVml : makeClassName(\"marker-vml\"),"," markerMaxMin : makeClassName(\"marker-max-min\"),"," centerButton : makeClassName(\"center-button\"),"," centerButtonVml : makeClassName('center-button-vml'),"," resetString : makeClassName(\"reset-string\"),"," handle : makeClassName(\"handle\"),"," handleVml : makeClassName(\"handle-vml\"),"," hidden : makeClassName(\"hidden\"),"," dragging : Y.ClassNameManager.getClassName(\"dd-dragging\")"," };"," "," /* Static constants used to define the markup templates used to create Dial DOM elements */"," ",""," /**"," * template that will contain the Dial's label."," *"," * @property LABEL_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-label]\"><span id=\"\" class=\"[...-label-string]\">{label}</span><span class=\"[...-value-string]\"></span></div>"," * @protected"," */",""," Dial.LABEL_TEMPLATE = '{label}';",""," if(supportsVML === false){"," /**"," * template that will contain the Dial's background ring."," *"," * @property RING_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-ring]\"><div class=\"[...-northMark]\"></div></div>"," * @protected"," */"," Dial.RING_TEMPLATE = '';",""," /**"," * template that will contain the Dial's current angle marker."," *"," * @property MARKER_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-marker] [...-marker-hidden]\"><div class=\"[...-markerUser]\"></div></div>"," * @protected"," */"," Dial.MARKER_TEMPLATE = '';",""," /**"," * template that will contain the Dial's center button."," *"," * @property CENTER_BUTTON_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-centerButton]\"><div class=\"[...-resetString]\">' + Y.Lang.sub('{resetStr}', Dial.ATTRS.strings.value) + '</div></div>"," * @protected"," */"," Dial.CENTER_BUTTON_TEMPLATE = '{resetStr}';",""," /**"," * template that will contain the Dial's handle."," *"," * @property HANDLE_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-handle]\"><div class=\"[...-handleUser]\" aria-labelledby=\"\" aria-valuetext=\"\" aria-valuemax=\"\" aria-valuemin=\"\" aria-valuenow=\"\" role=\"slider\" tabindex=\"0\"></div></div>';// title=\"{tooltipHandle}\""," * @protected"," */"," Dial.HANDLE_TEMPLATE = '';"," "," }else{ // VML case"," Dial.RING_TEMPLATE = ''+"," ''+"," ' '+"," ''+"," '';"," Dial.MARKER_TEMPLATE = ''+"," ''+"," ''+"," ' '+"," ''+"," '';"," Dial.CENTER_BUTTON_TEMPLATE = ''+"," ''+"," ''+"," ' '+"," ' '+"," '{resetStr}'+"," ''+"," '';"," Dial.HANDLE_TEMPLATE = ''+"," ''+"," ''+"," ' '+"," ''+"," '';"," }",""," /* Dial extends the base Widget class */"," Y.extend(Dial, Widget, {",""," /**"," * creates the DOM structure for the Dial."," *"," * @method renderUI"," * @protected"," */"," renderUI : function() {"," this._renderLabel();"," this._renderRing();"," this._renderMarker();"," this._renderCenterButton();"," this._renderHandle();"," "," // object handles"," this.contentBox = this.get(\"contentBox\");",""," // constants"," this._originalValue = this.get('value');"," this._minValue = this.get('min'); // saves doing a .get many times, but we need to remember to update this if/when we allow changing min or max after instantiation"," this._maxValue = this.get('max');"," this._stepsPerRevolution = this.get('stepsPerRevolution');"," this._minTimesWrapped = (Math.floor(this._minValue / this._stepsPerRevolution - 1));"," this._maxTimesWrapped = (Math.floor(this._maxValue / this._stepsPerRevolution + 1));",""," // variables"," this._timesWrapped = 0;"," this._angle = this._getAngleFromValue(this.get('value'));"," this._prevAng = this._angle;"," "," // init"," this._setTimesWrappedFromValue(this._originalValue);"," this._handleNode.set('aria-valuemin', this._minValue);"," this._handleNode.set('aria-valuemax', this._maxValue);"," },",""," /**"," * Sets -webkit-border-radius to 50% of width/height of the ring, handle, marker, and center-button."," * This is needed for iOS 3.x."," * The objects render square if the radius is > 50% of the width/height"," * @method _setBorderRadius"," * @private"," */"," _setBorderRadius : function(){"," this._ringNode.setStyles({'WebkitBorderRadius':this._ringNodeRadius + 'px',"," 'MozBorderRadius':this._ringNodeRadius + 'px',"," 'borderRadius':this._ringNodeRadius + 'px'"," });"," this._handleNode.setStyles({'WebkitBorderRadius':this._handleNodeRadius + 'px',"," 'MozBorderRadius':this._handleNodeRadius + 'px',"," 'borderRadius':this._handleNodeRadius + 'px'"," });"," this._markerNode.setStyles({'WebkitBorderRadius':this._markerNodeRadius + 'px',"," 'MozBorderRadius':this._markerNodeRadius + 'px',"," 'borderRadius':this._markerNodeRadius + 'px'"," });"," this._centerButtonNode.setStyles({'WebkitBorderRadius':this._centerButtonNodeRadius + 'px',"," 'MozBorderRadius':this._centerButtonNodeRadius + 'px',"," 'borderRadius':this._centerButtonNodeRadius + 'px'"," });"," },"," "," /**"," * Handles the mouseenter on the centerButton"," * "," * @method _handleCenterButtonEnter"," * @protected"," */"," _handleCenterButtonEnter : function(){"," this._resetString.removeClass(Dial.CSS_CLASSES.hidden); "," }, "," "," /**"," * Handles the mouseleave on the centerButton"," * "," * @method _handleCenterButtonLeave"," * @protected"," */"," _handleCenterButtonLeave : function(){"," this._resetString.addClass(Dial.CSS_CLASSES.hidden); "," }, "," "," /**"," * Creates the Y.DD.Drag instance used for the handle movement and"," * binds Dial interaction to the configured value model."," *"," * @method bindUI"," * @protected"," */"," bindUI : function() {"," this.after(\"valueChange\", this._afterValueChange);",""," var boundingBox = this.get(\"boundingBox\"),"," // Looking for a key event which will fire continously across browsers while the key is held down."," keyEvent = (!Y.UA.opera) ? \"down:\" : \"press:\", "," // 38, 40 = arrow up/down, 33, 34 = page up/down, 35 , 36 = end/home"," keyEventSpec = keyEvent + \"38,40,33,34,35,36\","," // 37 , 39 = arrow left/right"," keyLeftRightSpec = keyEvent + \"37,39\","," // 37 , 39 = arrow left/right + meta (command/apple key) for mac"," keyLeftRightSpecMeta = keyEvent + \"37+meta,39+meta\";",""," Y.on(\"key\", Y.bind(this._onDirectionKey, this), boundingBox, keyEventSpec);"," Y.on(\"key\", Y.bind(this._onLeftRightKey, this), boundingBox, keyLeftRightSpec);"," boundingBox.on(\"key\", this._onLeftRightKeyMeta, keyLeftRightSpecMeta, this);",""," Y.on('mouseenter', Y.bind(this._handleCenterButtonEnter, this), this._centerButtonNode);"," Y.on('mouseleave', Y.bind(this._handleCenterButtonLeave, this), this._centerButtonNode);"," // Needed to replace mousedown/up with gesturemovestart/end to make behavior on touch devices work the same."," Y.on('gesturemovestart', Y.bind(this._resetDial, this), this._centerButtonNode); //[#2530441] "," Y.on('gesturemoveend', Y.bind(this._handleCenterButtonMouseup, this), this._centerButtonNode); "," Y.on('gesturemovestart', Y.bind(this._handleHandleMousedown, this), this._handleNode);",""," Y.on('gesturemovestart', Y.bind(this._handleMousedown, this), this._ringNode); // [#2530766] "," Y.on('gesturemoveend', Y.bind(this._handleRingMouseup, this), this._ringNode);",""," this._dd1 = new Y.DD.Drag({ //// [#2530206] changed global this._dd1 from just var dd1 = new Y.DD.drag so "," node: this._handleNode,"," on : {"," 'drag:drag' : Y.bind(this._handleDrag, this),"," 'drag:start' : Y.bind(this._handleDragStart, this),"," 'drag:end' : Y.bind(this._handleDragEnd, this) //,"," }"," });"," Y.bind(this._dd1.addHandle(this._ringNode), this); // [#2530206] added the ring as a handle to the dd1 (the dd of the handleNode)"," },",""," /**"," * Sets _timesWrapped based on Dial value"," * to net integer revolutions the user dragged the handle around the Dial"," *"," * @method _setTimesWrappedFromValue"," * @param val {Number} current value of the Dial"," * @private"," */"," _setTimesWrappedFromValue : function(val){"," if(val % this._stepsPerRevolution === 0){"," this._timesWrapped = (val / this._stepsPerRevolution);"," }else{"," this._timesWrapped = Math.floor(val / this._stepsPerRevolution);"," }"," },"," "," /**"," * gets the angle of the line from the center of the Dial to the center of the handle "," *"," * @method _getAngleFromHandleCenter"," * @param handleCenterX {number} "," * @param handleCenterY {number}"," * @return ang {number} the angle"," * @protected"," */"," _getAngleFromHandleCenter : function(handleCenterX, handleCenterY){"," var ang = Math.atan( (this._dialCenterY - handleCenterY) / (this._dialCenterX - handleCenterX) ) * (180 / Math.PI); "," ang = ((this._dialCenterX - handleCenterX) < 0) ? ang + 90 : ang + 90 + 180; // Compensate for neg angles from Math.atan"," return ang;"," },"," "," /**"," * calculates the XY of the center of the dial relative to the ring node. "," * This is needed for calculating the angle of the handle"," *"," * @method _calculateDialCenter"," * @protected"," */"," _calculateDialCenter : function(){ // #2531111 value, and marker don't track handle when dial position changes on page (resize when inline)"," this._dialCenterX = this._ringNode.get('offsetWidth') / 2; "," this._dialCenterY = this._ringNode.get('offsetHeight') / 2;"," },"," "," /**"," * Handles the mouseup on the ring"," * "," * @method _handleRingMouseup"," * @protected"," */"," _handleRingMouseup : function(){"," this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206] "," }, "," "," /**"," * Handles the mouseup on the centerButton"," * "," * @method _handleCenterButtonMouseup"," * @protected"," */"," _handleCenterButtonMouseup : function(){"," this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206] "," }, "," "," /**"," * Handles the mousedown on the handle"," * "," * @method _handleHandleMousedown"," * @protected"," */"," _handleHandleMousedown : function(){"," this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206]"," // this is better done here instead of on _handleDragEnd "," // because we should make the keyboard accessible after a click of the handle "," }, "," "," /**"," * handles the user dragging the handle around the Dial, gets the angle, "," * checks for wrapping around top center."," * Sets the new value of the Dial"," *"," * @method _handleDrag"," * @param e {DOMEvent} the drag event object"," * @protected"," */"," _handleDrag : function(e){"," var handleCenterX,"," handleCenterY,"," ang,"," newValue;",""," // The event was emitted from drag:drag of handle. "," // The center of the handle is top left position of the handle node + radius of handle."," // This is different than a mousedown on the ring."," handleCenterX = (parseInt(this._handleNode.getStyle('left'),10) + this._handleNodeRadius);"," handleCenterY = (parseInt(this._handleNode.getStyle('top'),10) + this._handleNodeRadius);"," ang = this._getAngleFromHandleCenter(handleCenterX, handleCenterY);",""," // check for need to set timesWrapped"," if((this._prevAng > 270) && (ang < 90)){ // If wrapping, clockwise"," if(this._timesWrapped < this._maxTimesWrapped){"," this._timesWrapped = (this._timesWrapped + 1);"," }"," }else if((this._prevAng < 90) && (ang > 270)){ // if un-wrapping, counter-clockwise"," if(this._timesWrapped > this._minTimesWrapped){"," this._timesWrapped = (this._timesWrapped - 1);"," }"," }"," newValue = this._getValueFromAngle(ang); // This function needs the current _timesWrapped value. That's why it comes after the _timesWrapped code above"," "," // If you've gone past max more than one full revolution, we decrement the _timesWrapped value"," // This gives the effect of a ratchet mechanism."," // It feels like you are never more than one revolution past max"," // The effect is the same for min, only in reverse."," // We can't reset the _timesWrapped to the max or min here."," // If we did, the next (continuous) drag would reset the value incorrectly."," if(newValue > (this._maxValue + this._stepsPerRevolution) ){"," this._timesWrapped --;"," }else if(newValue < (this._minValue - this._stepsPerRevolution) ){"," this._timesWrapped ++;"," }"," this._prevAng = ang; // need to keep the previous angle in order to check for wrapping on the next drag, click, or keypress ",""," this._handleValuesBeyondMinMax(e, newValue);"," },",""," /**"," * handles a mousedown or gesturemovestart event on the ring node"," *"," * @method _handleMousedown"," * @param e {DOMEvent} the event object"," * @private"," */"," _handleMousedown : function(e){ // #2530306"," var minAng = this._getAngleFromValue(this._minValue),"," maxAng = this._getAngleFromValue(this._maxValue),"," newValue, oppositeMidRangeAngle,"," handleCenterX, handleCenterY, "," ang;",""," // The event was emitted from mousedown on the ring node,"," // so the center of the handle should be the XY of mousedown. "," if(Y.UA.ios){ // ios adds the scrollLeft and top onto clientX and Y in a native click"," handleCenterX = (e.clientX - this._ringNode.getX());"," handleCenterY = (e.clientY - this._ringNode.getY());"," }else{"," handleCenterX = (e.clientX + Y.one('document').get('scrollLeft') - this._ringNode.getX());"," handleCenterY = (e.clientY + Y.one('document').get('scrollTop') - this._ringNode.getY());"," }"," ang = this._getAngleFromHandleCenter(handleCenterX, handleCenterY);"," "," /* ///////////////////////////////////////////////////////////////////////////////////////////////////////"," * The next sections of logic"," * set this._timesWrapped in the different cases of value range"," * and value range position, "," * then the Dial value is set at the end of this method"," */ ///////////////////////////////////////////////////////////////////////////////////////////////////////"," "," "," ////////////////////////////////////////////////////////////////////////////////////////////////////////////"," if(this._maxValue - this._minValue > this._stepsPerRevolution){"," // Case: range min-to-max is greater than stepsPerRevolution (one revolution) ",""," // This checks the shortest way around the dial between the prevAng and this ang."," if(Math.abs(this._prevAng - ang) > 180){ // this crossed a wrapping"," "," // Only change the _timesWrapped if it's between minTimesWrapped and maxTimesWrapped "," if((this._timesWrapped > this._minTimesWrapped) && "," (this._timesWrapped < this._maxTimesWrapped)"," ){ "," // this checks which direction, clock wise or CCW and incr or decr _timesWrapped"," this._timesWrapped = ((this._prevAng - ang) > 0) ? (this._timesWrapped + 1) : (this._timesWrapped - 1);"," }"," // special case of getting un-stuck from a min value case "," // where timesWrapped is minTimesWrapped but new ang won't trigger a cross wrap boundry"," // because prevAng is set to 0 or > 0"," }else if("," (this._timesWrapped === this._minTimesWrapped) && "," (ang - this._prevAng < 180)"," ){ "," this._timesWrapped ++;"," } //it didn't cross a wrapping boundary",""," } /////////////////////////////////////////////////////////////////////////////////////////////////////////"," else if(this._maxValue - this._minValue === this._stepsPerRevolution){ "," // Case: range min-to-max === stepsPerRevolution (one revolution)"," // This means min and max will be at same angle"," // This does not mean they are at \"north\" "," "," if(ang < minAng){ // if mousedown angle is < minAng (and maxAng, because they're the same)"," // The only way it can be, is if min and max are not at north"," this._timesWrapped = 1;"," }else{"," this._timesWrapped = 0;"," }"," "," } //////////////////////////////////////////////////////////////////////////////////////////////////////////"," else if(minAng > maxAng){ "," // Case: range includes the wrap point (north) "," // Because of \"else if\"..."," // range is < stepsPerRevolution"," "," if( "," (this._prevAng >= minAng) && // if prev angle was greater than angle of min and..."," (ang <= (minAng + maxAng) / 2) // the angle of this click is less than "," // the angle opposite the mid-range angle, then..."," ){"," this._timesWrapped ++; "," }else if( "," (this._prevAng <= maxAng) && "," // if prev angle is < max angle and..."," "," (ang > (minAng + maxAng) / 2)"," // the angle of this click is greater than,"," // the angle opposite the mid-range angle and..."," "," ){ "," this._timesWrapped --;"," }"," "," } ////////////////////////////////////////////////////////////////////////////////////////////////////"," else{ "," // \"else\" Case: min-to-max range doesn't include the wrap point"," // Because of \"else if\"..."," // range is still < stepsPerRevolution"," "," if ((ang < minAng) || (ang > maxAng)){ // angle is out of range"," oppositeMidRangeAngle = (((minAng + maxAng) / 2) + 180) % 360; "," // This is the bisection of the min-to-max range + 180. (opposite the bisection)",""," if(oppositeMidRangeAngle > 180){"," newValue = ((maxAng < ang) && (ang < oppositeMidRangeAngle)) ? this.get('max') : this.get('min');"," }else{ //oppositeMidRangeAngle <= 180"," newValue = ((minAng > ang) && (ang > oppositeMidRangeAngle)) ? this.get('min') : this.get('max');"," }"," this._prevAng = this._getAngleFromValue(newValue);"," this.set('value', newValue);"," this._setTimesWrappedFromValue(newValue);"," return;"," }"," }"," "," // Now that _timesWrapped is set value ......................................................................."," newValue = this._getValueFromAngle(ang); // This function needs the correct, current _timesWrapped value."," this._prevAng = ang; ",""," this._handleValuesBeyondMinMax(e, newValue);"," },",""," /**"," * handles the case where the value is less than min or greater than max"," *"," * @method _handleValuesBeyondMinMax"," * @param e {DOMEvent} the event object"," * @param newValue {number} current value of the dial"," * @protected"," */"," _handleValuesBeyondMinMax : function(e, newValue){ // #2530306"," // If _getValueFromAngle() is passed 0, it increments the _timesWrapped value."," // handle hitting max and min and going beyond, stops at max or min "," if((newValue >= this._minValue) && (newValue <= this._maxValue)) {"," this.set('value', newValue);"," // [#2530206] transfer the mousedown event from the _ringNode to the _handleNode drag, so we can mousedown, then continue dragging"," if(e.currentTarget === this._ringNode){"," // Delegate to DD's natural behavior"," this._dd1._handleMouseDownEvent(e);"," } "," }else if(newValue > this._maxValue){"," this.set('value', this._maxValue);"," if(e.type === 'gesturemovestart'){"," this._prevAng = this._getAngleFromValue(this._maxValue); // #2530766 need for mousedown on the ring; causes prob for drag"," } "," }else if(newValue < this._minValue){"," this.set('value', this._minValue);"," if(e.type === 'gesturemovestart'){"," this._prevAng = this._getAngleFromValue(this._minValue);"," } "," }"," },",""," /**"," * handles the user starting to drag the handle around the Dial"," *"," * @method _handleDragStart"," * @param e {DOMEvent} the drag event object"," * @protected"," */"," _handleDragStart : function(e){"," this._markerNode.removeClass(Dial.CSS_CLASSES.hidden);"," },",""," /*"," * When handle is handleDragEnd, this animates the return to the fixed dial"," */ ",""," /**"," * handles the end of a user dragging the handle, animates the handle returning to"," * resting position."," *"," * @method _handleDragEnd"," * @protected"," */"," _handleDragEnd : function(){"," var node = this._handleNode; "," node.transition({"," duration: 0.08, // seconds"," easing: 'ease-in',"," left: this._setNodeToFixedRadius(this._handleNode, true)[0] + 'px',"," top: this._setNodeToFixedRadius(this._handleNode, true)[1] + 'px'"," }, Y.bind(function(){"," var value = this.get('value');"," //[#2530206] only hide marker if not at max or min"," // more persistant user visibility of when the dial is at max or min"," if((value > this._minValue) && (value < this._maxValue)){"," this._markerNode.addClass(Dial.CSS_CLASSES.hidden);"," }else{"," this._setTimesWrappedFromValue(value); //#2530766 secondary bug when drag past max + cross wrapping boundry"," this._prevAng = this._getAngleFromValue(value); //#2530766 secondary bug when drag past max + cross wrapping boundry"," }"," }, this)"," );"," },",""," /**"," * returns the XY of the fixed position, handleDistance, from the center of the Dial (resting position)."," * The XY also represents the angle related to the current value."," * If typeArray is true, [X,Y] is returned."," * If typeArray is false, the XY of the obj node passed in is set."," *"," * @method _setNodeToFixedRadius"," * @param obj {Node}"," * @param typeArray {Boolean} true returns an array [X,Y]"," * @protected"," * @return {Array} an array of [XY] is optionally returned"," */"," _setNodeToFixedRadius : function(obj, typeArray){"," var thisAngle = (this._angle - 90),"," rad = (Math.PI / 180),"," newY = Math.round(Math.sin(thisAngle * rad) * this._handleDistance),"," newX = Math.round(Math.cos(thisAngle * rad) * this._handleDistance),"," dia = obj.get('offsetWidth'); //Ticket #2529852"," "," newY = newY - (dia * 0.5);"," newX = newX - (dia * 0.5);"," if(typeArray){ // just need the style for css transform left and top to animate the handle drag:end"," return [(this._ringNodeRadius + newX), (this._ringNodeRadius + newY)];"," }else{"," obj.setStyle('left', (this._ringNodeRadius + newX) + 'px');"," obj.setStyle('top', (this._ringNodeRadius + newY) + 'px');"," }"," },",""," /**"," * Synchronizes the DOM state with the attribute settings."," *"," * @method syncUI"," */"," syncUI : function() {"," // Make the marker and the resetString display so their placement and borderRadius can be calculated, then hide them again."," // We would have used visibility:hidden in the css of this class, "," // but IE8 VML never returns to visible after applying visibility:hidden then removing it."," this._setSizes();"," this._calculateDialCenter(); // #2531111 initialize center of dial"," this._setBorderRadius();"," this._uiSetValue(this.get(\"value\"));"," this._markerNode.addClass(Dial.CSS_CLASSES.hidden);"," this._resetString.addClass(Dial.CSS_CLASSES.hidden);"," },",""," /**"," * sets the sizes of ring, center-button, marker, handle, and VML ovals in pixels."," * Needed only because some IE versions "," * ignore CSS percent sizes/offsets."," * so these must be set in pixels."," * Normally these are set in % of the ring."," *"," * @method _setSizes"," * @protected"," */"," _setSizes : function(){"," var dia = this.get('diameter'),"," offset, offsetResetX, offsetResetY,"," setSize = function(node, dia, percent){"," var suffix = 'px';"," node.getElementsByTagName('oval').setStyle('width', (dia * percent) + suffix);"," node.getElementsByTagName('oval').setStyle('height', (dia * percent) + suffix);"," node.setStyle('width', (dia * percent) + suffix);"," node.setStyle('height', (dia * percent) + suffix);"," };"," setSize(this._ringNode, dia, 1.0);"," setSize(this._handleNode, dia, this.get('handleDiameter'));"," setSize(this._markerNode, dia, this.get('markerDiameter'));"," setSize(this._centerButtonNode, dia, this.get('centerButtonDiameter'));"," "," // Set these (used for trig) this way instead of relative to dia, "," // in case they have borders, have images etc."," this._ringNodeRadius = this._ringNode.get('offsetWidth') * 0.5;"," this._handleNodeRadius = this._handleNode.get('offsetWidth') * 0.5;"," this._markerNodeRadius = this._markerNode.get('offsetWidth') * 0.5;"," this._centerButtonNodeRadius = this._centerButtonNode.get('offsetWidth') * 0.5;"," this._handleDistance = this._ringNodeRadius * this.get('handleDistance');"," // place the centerButton"," offset = (this._ringNodeRadius - this._centerButtonNodeRadius);"," this._centerButtonNode.setStyle('left', offset + 'px');"," this._centerButtonNode.setStyle('top', offset + 'px');"," /* "," Place the resetString"," This seems like it should be able to be done with CSS,"," But since there is also a VML oval in IE that is absolute positioned,"," The resetString ends up behind the VML oval."," */"," offsetResetX = (this._centerButtonNodeRadius - (this._resetString.get('offsetWidth') * 0.5));"," offsetResetY = (this._centerButtonNodeRadius - (this._resetString.get('offsetHeight') * 0.5));"," this._resetString.setStyles({'left':offsetResetX + 'px', 'top':offsetResetY + 'px'});"," },","",""," /**"," * renders the DOM object for the Dial's label"," *"," * @method _renderLabel"," * @protected"," */"," _renderLabel : function() {"," var contentBox = this.get(\"contentBox\"),"," label = contentBox.one(\".\" + Dial.CSS_CLASSES.label);"," if (!label) {"," label = Node.create(Y.Lang.sub(Dial.LABEL_TEMPLATE, this.get('strings')));"," contentBox.append(label);"," }"," this._labelNode = label;"," this._valueStringNode = this._labelNode.one(\".\" + Dial.CSS_CLASSES.valueString);"," },",""," /**"," * renders the DOM object for the Dial's background ring"," *"," * @method _renderRing"," * @protected"," */"," _renderRing : function() {"," var contentBox = this.get(\"contentBox\"),"," ring = contentBox.one(\".\" + Dial.CSS_CLASSES.ring);"," if (!ring) {"," ring = contentBox.appendChild(Dial.RING_TEMPLATE);"," ring.setStyles({width:this.get('diameter') + 'px', height:this.get('diameter') + 'px'});"," }"," this._ringNode = ring;"," },",""," /**"," * renders the DOM object for the Dial's background marker which "," * tracks the angle of the user dragging the handle"," *"," * @method _renderMarker"," * @protected"," */"," _renderMarker : function() {"," var contentBox = this.get(\"contentBox\"),"," marker = contentBox.one(\".\" + Dial.CSS_CLASSES.marker);"," if (!marker) {"," marker = contentBox.one('.' + Dial.CSS_CLASSES.ring).appendChild(Dial.MARKER_TEMPLATE);"," }"," this._markerNode = marker;"," },"," "," /**"," * renders the DOM object for the Dial's center"," *"," * @method _renderCenterButton"," * @protected"," */"," _renderCenterButton : function() {"," var contentBox = this.get(\"contentBox\"),"," centerButton = contentBox.one(\".\" + Dial.CSS_CLASSES.centerButton);"," if (!centerButton) {"," centerButton = Node.create(Y.Lang.sub(Dial.CENTER_BUTTON_TEMPLATE, this.get('strings')));"," contentBox.one('.' + Dial.CSS_CLASSES.ring).append(centerButton);"," }"," this._centerButtonNode = centerButton;"," this._resetString = this._centerButtonNode.one('.' + Dial.CSS_CLASSES.resetString);"," },",""," /**"," * renders the DOM object for the Dial's user draggable handle"," *"," * @method _renderHandle"," * @protected"," */"," _renderHandle : function() { "," var labelId = Dial.CSS_CLASSES.label + Y.guid(), //get this unique id once then use for handle and label for ARIA"," contentBox = this.get(\"contentBox\"),"," handle = contentBox.one(\".\" + Dial.CSS_CLASSES.handle);"," if (!handle) {"," handle = Node.create(Y.Lang.sub(Dial.HANDLE_TEMPLATE, this.get('strings')));"," handle.setAttribute('aria-labelledby', labelId); // get unique id for specifying a label & handle for ARIA"," this._labelNode.one('.' + Dial.CSS_CLASSES.labelString).setAttribute('id', labelId); // When handle gets focus, screen reader will include label text when reading the value."," contentBox.one('.' + Dial.CSS_CLASSES.ring).append(handle);"," }"," this._handleNode = handle;"," },",""," /**"," * sets the visible UI label HTML string"," *"," * @method _setLabelString"," * @param str {HTML}"," * @protected"," * @deprecated Use DialObjName.set('strings',{'label':'My new label'}); before DialObjName.render();",""," */"," _setLabelString : function(str) {"," this.get(\"contentBox\").one(\".\" + Dial.CSS_CLASSES.labelString).setHTML(str);"," },",""," /**"," * sets the visible UI label HTML string"," *"," * @method _setResetString"," * @param str {HTML}"," * @protected"," * @deprecated Use DialObjName.set('strings',{'resetStr':'My new reset string'}); before DialObjName.render();"," */"," _setResetString : function(str) {"," this.get(\"contentBox\").one(\".\" + Dial.CSS_CLASSES.resetString).setHTML(str);"," // this._setXYResetString(); // This used to recenter the string in the button. Done with CSS now. Method has been removed."," // this._resetString.setHTML(''); //We no longer show/hide the reset string with setHTML but by addClass and removeClass .yui3-dial-reset-string-hidden"," },",""," /**"," * sets the tooltip HTML string in the Dial's handle"," *"," * @method _setTooltipString"," * @param str {HTML}"," * @protected"," * @deprecated Use DialObjName.set('strings',{'tooltipHandle':'My new tooltip'}); before DialObjName.render();"," */"," _setTooltipString : function(str) {"," this._handleNode.set('title', str);"," },",""," /**"," * sets the Dial's value in response to key events."," * Left and right keys are in a separate method "," * in case an implementation wants to increment values"," * but needs left and right arrow keys for other purposes."," *"," * @method _onDirectionKey"," * @param e {Event} the key event"," * @protected"," */"," _onDirectionKey : function(e) {"," e.preventDefault();"," switch (e.charCode) {"," case 38: // up"," this._incrMinor();"," break;"," case 40: // down"," this._decrMinor();"," break;"," case 36: // home"," this._setToMin();"," break;"," case 35: // end"," this._setToMax();"," break;"," case 33: // page up"," this._incrMajor();"," break;"," case 34: // page down"," this._decrMajor();"," break;"," }"," },",""," /**"," * sets the Dial's value in response to left or right key events"," *"," * @method _onLeftRightKey"," * @param e {Event} the key event"," * @protected"," */"," _onLeftRightKey : function(e) {"," e.preventDefault();"," switch (e.charCode) {"," case 37: // left"," this._decrMinor();"," break;"," case 39: // right"," this._incrMinor();"," break;"," }"," },",""," /**"," * sets the Dial's value in response to left or right key events when a meta (mac command/apple) key is also pressed"," *"," * @method _onLeftRightKeyMeta"," * @param e {Event} the key event"," * @protected"," */"," _onLeftRightKeyMeta : function(e) {"," e.preventDefault();"," switch (e.charCode) {"," case 37: // left + meta"," this._setToMin();"," break;"," case 39: // right + meta"," this._setToMax();"," break;"," }"," },"," "," /**"," * increments Dial value by a minor increment"," *"," * @method _incrMinor"," * @protected"," */"," _incrMinor : function(){"," var newVal = (this.get('value') + this.get(\"minorStep\"));"," newVal = Math.min(newVal, this.get(\"max\"));"," // [#2530045] .toFixed returns a string."," // Dial's value needs a number. -0 makes it a number, but removes trailing zeros."," // Added toFixed(...) again in _uiSetValue where content of yui3-dial-value-string is set."," // Removing the toFixed here, loses the feature of \"snap-to\" when for example, stepsPerRevolution is 10 and decimalPlaces is 0."," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },"," "," /**"," * decrements Dial value by a minor increment"," *"," * @method _decrMinor"," * @protected"," */"," _decrMinor : function(){"," var newVal = (this.get('value') - this.get(\"minorStep\"));"," newVal = Math.max(newVal, this.get(\"min\"));"," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },"," "," /**"," * increments Dial value by a major increment"," *"," * @method _incrMajor"," * @protected"," */"," _incrMajor : function(){"," var newVal = (this.get('value') + this.get(\"majorStep\"));"," newVal = Math.min(newVal, this.get(\"max\"));"," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },"," "," /**"," * decrements Dial value by a major increment"," *"," * @method _decrMajor"," * @protected"," */"," _decrMajor : function(){"," var newVal = (this.get('value') - this.get(\"majorStep\"));"," newVal = Math.max(newVal, this.get(\"min\"));"," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },",""," /**"," * sets Dial value to dial's max attr"," *"," * @method _setToMax"," * @protected"," */"," _setToMax : function(){"," this.set('value', this.get(\"max\"));"," }, "," "," /**"," * sets Dial value to dial's min attr"," *"," * @method _setToMin"," * @protected"," */"," _setToMin : function(){"," this.set('value', this.get(\"min\"));"," }, "," "," /**"," * resets Dial value to the orignal initial value. "," *"," * @method _resetDial"," * @protected"," */"," _resetDial : function(e){"," if(e){"," e.stopPropagation(); //[#2530206] need to add so mousedown doesn't propagate to ring and move the handle"," }"," this.set('value', this._originalValue);"," this._resetString.addClass(Dial.CSS_CLASSES.hidden); //[#2530441]"," this._handleNode.focus();"," },"," "," /**"," * returns the handle angle associated with the current value of the Dial. "," * Returns a number between 0 and 360."," *"," * @method _getAngleFromValue"," * @param newVal {Number} the current value of the Dial"," * @return {Number} the angle associated with the current Dial value"," * @protected"," */"," _getAngleFromValue : function(newVal){"," var nonWrappedPartOfValue = newVal % this._stepsPerRevolution,"," angleFromValue = nonWrappedPartOfValue / this._stepsPerRevolution * 360;"," return (angleFromValue < 0) ? (angleFromValue + 360) : angleFromValue;"," },",""," /**"," * returns the value of the Dial calculated from the current handle angle"," *"," * @method _getValueFromAngle"," * @param angle {Number} the current angle of the Dial's handle"," * @return {Number} the current Dial value corresponding to the handle position"," * @protected"," */"," _getValueFromAngle : function(angle){"," if(angle < 0){"," angle = (360 + angle);"," }else if(angle === 0){"," angle = 360;"," }"," var value = (angle / 360) * this._stepsPerRevolution;"," value = (value + (this._timesWrapped * this._stepsPerRevolution));"," //return Math.round(value * 100) / 100;"," return value.toFixed(this.get('decimalPlaces')) - 0;"," },",""," /**"," * calls the method to update the UI whenever the Dial value changes"," *"," * @method _afterValueChange"," * @param e {Event}"," * @protected"," */"," _afterValueChange : function(e) {"," this._uiSetValue(e.newVal);"," },",""," /**"," * Changes a value to have the correct decimal places per the attribute decimalPlaces"," *"," * @method _valueToDecimalPlaces"," * @param val {Number} a raw value to set to the Dial"," * @return {Number} the input val changed to have the correct decimal places"," * @protected"," */"," _valueToDecimalPlaces : function(val) { // [#2530206] cleaned up and better user feedback of when it's max or min."," "," },",""," /**"," * Updates the UI display value of the Dial to reflect "," * the value passed in."," * Makes all other needed UI display changes"," *"," * @method _uiSetValue"," * @param val {Number} value of the Dial"," * @protected"," */"," _uiSetValue : function(val) { // [#2530206] cleaned up and better user feedback of when it's max or min."," this._angle = this._getAngleFromValue(val);"," if(this._handleNode.hasClass(Dial.CSS_CLASSES.dragging) === false){"," this._setTimesWrappedFromValue(val);"," this._setNodeToFixedRadius(this._handleNode, false);"," this._prevAng = this._getAngleFromValue(this.get('value'));"," }"," this._valueStringNode.setHTML(val.toFixed(this.get('decimalPlaces'))); // [#2530045]"," this._handleNode.set('aria-valuenow', val);"," this._handleNode.set('aria-valuetext', val);"," this._setNodeToFixedRadius(this._markerNode, false);"," if((val === this._maxValue) || (val === this._minValue)){"," this._markerNode.addClass(Dial.CSS_CLASSES.markerMaxMin);"," if(supportsVML === true){"," this._markerNode.getElementsByTagName('fill').set('color', '#AB3232');"," }"," this._markerNode.removeClass(Dial.CSS_CLASSES.hidden);"," }else{ // not max or min"," if(supportsVML === true){"," this._markerNode.getElementsByTagName('fill').set('color', '#000');"," }"," this._markerNode.removeClass(Dial.CSS_CLASSES.markerMaxMin);"," if(this._handleNode.hasClass(Dial.CSS_CLASSES.dragging) === false){ // if not max || min, and not dragging handle, hide the marker"," this._markerNode.addClass(Dial.CSS_CLASSES.hidden);"," }"," }"," },",""," /**"," * value attribute default validator. Verifies that"," * the value being set lies between the min/max value"," *"," * @method _validateValue"," * @param val {Number} value of the Dial"," * @protected"," */"," _validateValue: function(val) {"," var min = this.get(\"min\"),"," max = this.get(\"max\");"," return (Lang.isNumber(val) && val >= min && val <= max);"," }"," });"," Y.Dial = Dial;","","","}, '3.7.1', {\"requires\": [\"widget\", \"dd-drag\", \"event-mouseenter\", \"event-move\", \"event-key\", \"transition\", \"intl\"], \"lang\": [\"en\", \"es\"], \"skinnable\": true});"];
+_yuitest_coverage["build/dial/dial.js"].code=["YUI.add('dial', function (Y, NAME) {","","/**"," * Create a circular dial value range input visualized as a draggable handle on a"," * background element."," * "," * @module dial"," */"," var supportsVML = false;"," //testVMLNode;",""," if (Y.UA.ie && Y.UA.ie < 9){"," supportsVML = true;"," }",""," var Lang = Y.Lang,"," Widget = Y.Widget,"," Node = Y.Node;",""," /**"," * Create a dial to represent an input control capable of representing a"," * series of intermediate states based on the position of the Dial's handle."," * These states are typically aligned to a value algorithm whereby the angle of the handle's"," * position corresponds to a given value."," *"," * @class Dial"," * @extends Widget"," * @param config {Object} Configuration object"," * @constructor"," */"," function Dial(config) {"," Dial.superclass.constructor.apply(this, arguments);"," }",""," // Y.Dial static properties",""," /**"," * The identity of the widget."," *"," * @property NAME"," * @type String"," * @default 'dial'"," * @readOnly"," * @protected"," * @static"," */"," Dial.NAME = \"dial\";",""," /**"," * Static property used to define the default attribute configuration of"," * the Widget."," *"," * @property ATTRS"," * @type {Object}"," * @protected"," * @static"," */"," Dial.ATTRS = {",""," /**"," * minimum value allowed"," *"," * @attribute min"," * @type {Number}"," * @default -220"," */"," min : {"," value:-220"," },",""," /**"," * maximum value allowed"," *"," * @attribute max"," * @type {Number}"," * @default 220"," */"," max : {"," value:220"," },",""," /**"," * diameter of the circular background object."," * Other objects scale accordingly."," * Set this only before rendering."," *"," * @attribute diameter"," * @type {Number} the number of px in diameter"," * @default 100"," * @writeOnce"," */"," diameter : {"," value:100"," },",""," /**"," * diameter of the handle object which users drag to change the value."," * Dial sets the pixel dimension of the handle equal to handleDiameter * diameter."," * Set this only before rendering."," *"," * @attribute handleDiameter"," * @type {Number}"," * @default 0.2"," * @writeOnce"," */"," handleDiameter : {"," value:0.2"," },",""," /**"," * diameter of the marker object which follows the angle of the handle during value changes."," * Dial sets the pixel dimension of the marker equal to markerDiameter * diameter."," * Set this only before rendering."," *"," * @attribute markerDiameter"," * @type {Number}"," * @default 0.1"," * @writeOnce"," */"," markerDiameter : {"," value:0.1"," },",""," /**"," * diameter of the center button object."," * Dial sets the pixel dimension of the centerButton equal to centerButtonDiameter * diameter."," * Set this only before rendering."," *"," * @attribute centerButtonDiameter"," * @type {Number}"," * @default 0.1"," * @writeOnce"," */"," centerButtonDiameter : {"," value:0.5"," },",""," /**"," * initial value of the Dial"," *"," * @attribute value"," * @type {Number}"," * @default 0"," */"," value : {"," value:0,"," validator: function(val) {"," return this._validateValue(val);"," }"," },"," "," /**"," * amount to increment/decrement the dial value"," * when the arrow up/down/left/right keys are pressed"," *"," * @attribute minorStep"," * @type {Number}"," * @default 1"," */"," minorStep : {"," value:1"," },",""," /**"," * amount to increment/decrement the dial value"," * when the page up/down keys are pressed"," *"," * @attribute majorStep"," * @type {Number}"," * @default 10"," */"," majorStep : {"," value:10"," },",""," /**"," * number of value increments in one 360 degree revolution "," * of the handle around the dial"," *"," * @attribute stepsPerRevolution"," * @type {Number}"," * @default 100"," */"," stepsPerRevolution : {"," value:100"," },",""," /**"," * number of decimal places of accuracy in the value "," *"," * @attribute decimalPlaces"," * @type {Number}"," * @default 0"," */"," decimalPlaces : {"," value:0"," },",""," /**"," * visible strings for the dial UI. This attribute is "," * defined by the base Widget class but has an empty value. The"," * Dial is simply providing a default value for the attribute."," * Gets localized strings in the current language"," *"," * @attribute strings"," * @type {Object} the values are HTML strings"," * @default {label: 'My label', resetStr: 'Reset', tooltipHandle: 'Drag to set value'}"," */"," strings: {"," valueFn: function () {"," return Y.Intl.get('dial');"," }"," },",""," /**"," * distance from the center of the dial to the "," * center of the marker and handle, when at rest. "," * The value is a percent of the radius of the dial."," *"," * @attribute handleDistance"," * @type {number}"," * @default 0.75"," */"," handleDistance:{"," value:0.75"," }"," "," };",""," /**"," * returns a properly formed yui class name"," *"," * @method"," * @param {String} string to be appended at the end of class name"," * @return"," * @private"," */"," function makeClassName(str) {"," return Y.ClassNameManager.getClassName(Dial.NAME, str);"," }"," "," /** array of static constants used to identify the classname applied to the Dial DOM objects "," *"," * @property CSS_CLASSES"," * @type {Array}"," * @private"," * @static"," */"," Dial.CSS_CLASSES = {"," label : makeClassName(\"label\"),"," labelString : makeClassName(\"label-string\"),"," valueString : makeClassName(\"value-string\"),"," northMark : makeClassName(\"north-mark\"),"," ring : makeClassName('ring'),"," ringVml : makeClassName('ring-vml'),"," marker : makeClassName(\"marker\"),"," markerVml : makeClassName(\"marker-vml\"),"," markerMaxMin : makeClassName(\"marker-max-min\"),"," centerButton : makeClassName(\"center-button\"),"," centerButtonVml : makeClassName('center-button-vml'),"," resetString : makeClassName(\"reset-string\"),"," handle : makeClassName(\"handle\"),"," handleVml : makeClassName(\"handle-vml\"),"," hidden : makeClassName(\"hidden\"),"," dragging : Y.ClassNameManager.getClassName(\"dd-dragging\")"," };"," "," /* Static constants used to define the markup templates used to create Dial DOM elements */"," ",""," /**"," * template that will contain the Dial's label."," *"," * @property LABEL_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-label]\"><span id=\"\" class=\"[...-label-string]\">{label}</span><span class=\"[...-value-string]\"></span></div>"," * @protected"," */",""," Dial.LABEL_TEMPLATE = '{label}';",""," if(supportsVML === false){"," /**"," * template that will contain the Dial's background ring."," *"," * @property RING_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-ring]\"><div class=\"[...-northMark]\"></div></div>"," * @protected"," */"," Dial.RING_TEMPLATE = '';",""," /**"," * template that will contain the Dial's current angle marker."," *"," * @property MARKER_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-marker] [...-marker-hidden]\"><div class=\"[...-markerUser]\"></div></div>"," * @protected"," */"," Dial.MARKER_TEMPLATE = '';",""," /**"," * template that will contain the Dial's center button."," *"," * @property CENTER_BUTTON_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-centerButton]\"><div class=\"[...-resetString]\">' + Y.Lang.sub('{resetStr}', Dial.ATTRS.strings.value) + '</div></div>"," * @protected"," */"," Dial.CENTER_BUTTON_TEMPLATE = '{resetStr}';",""," /**"," * template that will contain the Dial's handle."," *"," * @property HANDLE_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-handle]\"><div class=\"[...-handleUser]\" aria-labelledby=\"\" aria-valuetext=\"\" aria-valuemax=\"\" aria-valuemin=\"\" aria-valuenow=\"\" role=\"slider\" tabindex=\"0\"></div></div>';// title=\"{tooltipHandle}\""," * @protected"," */"," Dial.HANDLE_TEMPLATE = '';"," "," }else{ // VML case"," Dial.RING_TEMPLATE = ''+"," ''+"," ' '+"," ''+"," '';"," Dial.MARKER_TEMPLATE = ''+"," ''+"," ''+"," ' '+"," ''+"," '';"," Dial.CENTER_BUTTON_TEMPLATE = ''+"," ''+"," ''+"," ' '+"," ' '+"," '{resetStr}'+"," ''+"," '';"," Dial.HANDLE_TEMPLATE = ''+"," ''+"," ''+"," ' '+"," ''+"," '';"," }",""," /* Dial extends the base Widget class */"," Y.extend(Dial, Widget, {",""," /**"," * creates the DOM structure for the Dial."," *"," * @method renderUI"," * @protected"," */"," renderUI : function() {"," this._renderLabel();"," this._renderRing();"," this._renderMarker();"," this._renderCenterButton();"," this._renderHandle();"," "," // object handles"," this.contentBox = this.get(\"contentBox\");",""," // constants"," this._originalValue = this.get('value');"," this._minValue = this.get('min'); // saves doing a .get many times, but we need to remember to update this if/when we allow changing min or max after instantiation"," this._maxValue = this.get('max');"," this._stepsPerRevolution = this.get('stepsPerRevolution');"," this._minTimesWrapped = (Math.floor(this._minValue / this._stepsPerRevolution - 1));"," this._maxTimesWrapped = (Math.floor(this._maxValue / this._stepsPerRevolution + 1));",""," // variables"," this._timesWrapped = 0;"," this._angle = this._getAngleFromValue(this.get('value'));"," this._prevAng = this._angle;"," "," // init"," this._setTimesWrappedFromValue(this._originalValue);"," this._handleNode.set('aria-valuemin', this._minValue);"," this._handleNode.set('aria-valuemax', this._maxValue);"," },",""," /**"," * Sets -webkit-border-radius to 50% of width/height of the ring, handle, marker, and center-button."," * This is needed for iOS 3.x."," * The objects render square if the radius is > 50% of the width/height"," * @method _setBorderRadius"," * @private"," */"," _setBorderRadius : function(){"," this._ringNode.setStyles({'WebkitBorderRadius':this._ringNodeRadius + 'px',"," 'MozBorderRadius':this._ringNodeRadius + 'px',"," 'borderRadius':this._ringNodeRadius + 'px'"," });"," this._handleNode.setStyles({'WebkitBorderRadius':this._handleNodeRadius + 'px',"," 'MozBorderRadius':this._handleNodeRadius + 'px',"," 'borderRadius':this._handleNodeRadius + 'px'"," });"," this._markerNode.setStyles({'WebkitBorderRadius':this._markerNodeRadius + 'px',"," 'MozBorderRadius':this._markerNodeRadius + 'px',"," 'borderRadius':this._markerNodeRadius + 'px'"," });"," this._centerButtonNode.setStyles({'WebkitBorderRadius':this._centerButtonNodeRadius + 'px',"," 'MozBorderRadius':this._centerButtonNodeRadius + 'px',"," 'borderRadius':this._centerButtonNodeRadius + 'px'"," });"," },"," "," /**"," * Handles the mouseenter on the centerButton"," * "," * @method _handleCenterButtonEnter"," * @protected"," */"," _handleCenterButtonEnter : function(){"," this._resetString.removeClass(Dial.CSS_CLASSES.hidden); "," }, "," "," /**"," * Handles the mouseleave on the centerButton"," * "," * @method _handleCenterButtonLeave"," * @protected"," */"," _handleCenterButtonLeave : function(){"," this._resetString.addClass(Dial.CSS_CLASSES.hidden); "," }, "," "," /**"," * Creates the Y.DD.Drag instance used for the handle movement and"," * binds Dial interaction to the configured value model."," *"," * @method bindUI"," * @protected"," */"," bindUI : function() {"," this.after(\"valueChange\", this._afterValueChange);",""," var boundingBox = this.get(\"boundingBox\"),"," // Looking for a key event which will fire continously across browsers while the key is held down."," keyEvent = (!Y.UA.opera) ? \"down:\" : \"press:\", "," // 38, 40 = arrow up/down, 33, 34 = page up/down, 35 , 36 = end/home"," keyEventSpec = keyEvent + \"38,40,33,34,35,36\","," // 37 , 39 = arrow left/right"," keyLeftRightSpec = keyEvent + \"37,39\","," // 37 , 39 = arrow left/right + meta (command/apple key) for mac"," keyLeftRightSpecMeta = keyEvent + \"37+meta,39+meta\";",""," Y.on(\"key\", Y.bind(this._onDirectionKey, this), boundingBox, keyEventSpec);"," Y.on(\"key\", Y.bind(this._onLeftRightKey, this), boundingBox, keyLeftRightSpec);"," boundingBox.on(\"key\", this._onLeftRightKeyMeta, keyLeftRightSpecMeta, this);",""," Y.on('mouseenter', Y.bind(this._handleCenterButtonEnter, this), this._centerButtonNode);"," Y.on('mouseleave', Y.bind(this._handleCenterButtonLeave, this), this._centerButtonNode);"," // Needed to replace mousedown/up with gesturemovestart/end to make behavior on touch devices work the same."," Y.on('gesturemovestart', Y.bind(this._resetDial, this), this._centerButtonNode); //[#2530441] "," Y.on('gesturemoveend', Y.bind(this._handleCenterButtonMouseup, this), this._centerButtonNode); "," Y.on('gesturemovestart', Y.bind(this._handleHandleMousedown, this), this._handleNode);",""," Y.on('gesturemovestart', Y.bind(this._handleMousedown, this), this._ringNode); // [#2530766] "," Y.on('gesturemoveend', Y.bind(this._handleRingMouseup, this), this._ringNode);",""," this._dd1 = new Y.DD.Drag({ //// [#2530206] changed global this._dd1 from just var dd1 = new Y.DD.drag so "," node: this._handleNode,"," on : {"," 'drag:drag' : Y.bind(this._handleDrag, this),"," 'drag:start' : Y.bind(this._handleDragStart, this),"," 'drag:end' : Y.bind(this._handleDragEnd, this) //,"," }"," });"," Y.bind(this._dd1.addHandle(this._ringNode), this); // [#2530206] added the ring as a handle to the dd1 (the dd of the handleNode)"," },",""," /**"," * Sets _timesWrapped based on Dial value"," * to net integer revolutions the user dragged the handle around the Dial"," *"," * @method _setTimesWrappedFromValue"," * @param val {Number} current value of the Dial"," * @private"," */"," _setTimesWrappedFromValue : function(val){"," if(val % this._stepsPerRevolution === 0){"," this._timesWrapped = (val / this._stepsPerRevolution);"," }else{"," this._timesWrapped = Math.floor(val / this._stepsPerRevolution);"," }"," },"," "," /**"," * gets the angle of the line from the center of the Dial to the center of the handle "," *"," * @method _getAngleFromHandleCenter"," * @param handleCenterX {number} "," * @param handleCenterY {number}"," * @return ang {number} the angle"," * @protected"," */"," _getAngleFromHandleCenter : function(handleCenterX, handleCenterY){"," var ang = Math.atan( (this._dialCenterY - handleCenterY) / (this._dialCenterX - handleCenterX) ) * (180 / Math.PI); "," ang = ((this._dialCenterX - handleCenterX) < 0) ? ang + 90 : ang + 90 + 180; // Compensate for neg angles from Math.atan"," return ang;"," },"," "," /**"," * calculates the XY of the center of the dial relative to the ring node. "," * This is needed for calculating the angle of the handle"," *"," * @method _calculateDialCenter"," * @protected"," */"," _calculateDialCenter : function(){ // #2531111 value, and marker don't track handle when dial position changes on page (resize when inline)"," this._dialCenterX = this._ringNode.get('offsetWidth') / 2; "," this._dialCenterY = this._ringNode.get('offsetHeight') / 2;"," },"," "," /**"," * Handles the mouseup on the ring"," * "," * @method _handleRingMouseup"," * @protected"," */"," _handleRingMouseup : function(){"," this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206] "," }, "," "," /**"," * Handles the mouseup on the centerButton"," * "," * @method _handleCenterButtonMouseup"," * @protected"," */"," _handleCenterButtonMouseup : function(){"," this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206] "," }, "," "," /**"," * Handles the mousedown on the handle"," * "," * @method _handleHandleMousedown"," * @protected"," */"," _handleHandleMousedown : function(){"," this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206]"," // this is better done here instead of on _handleDragEnd "," // because we should make the keyboard accessible after a click of the handle "," }, "," "," /**"," * handles the user dragging the handle around the Dial, gets the angle, "," * checks for wrapping around top center."," * Sets the new value of the Dial"," *"," * @method _handleDrag"," * @param e {DOMEvent} the drag event object"," * @protected"," */"," _handleDrag : function(e){"," var handleCenterX,"," handleCenterY,"," ang,"," newValue;",""," // The event was emitted from drag:drag of handle. "," // The center of the handle is top left position of the handle node + radius of handle."," // This is different than a mousedown on the ring."," handleCenterX = (parseInt(this._handleNode.getStyle('left'),10) + this._handleNodeRadius);"," handleCenterY = (parseInt(this._handleNode.getStyle('top'),10) + this._handleNodeRadius);"," ang = this._getAngleFromHandleCenter(handleCenterX, handleCenterY);",""," // check for need to set timesWrapped"," if((this._prevAng > 270) && (ang < 90)){ // If wrapping, clockwise"," if(this._timesWrapped < this._maxTimesWrapped){"," this._timesWrapped = (this._timesWrapped + 1);"," }"," }else if((this._prevAng < 90) && (ang > 270)){ // if un-wrapping, counter-clockwise"," if(this._timesWrapped > this._minTimesWrapped){"," this._timesWrapped = (this._timesWrapped - 1);"," }"," }"," newValue = this._getValueFromAngle(ang); // This function needs the current _timesWrapped value. That's why it comes after the _timesWrapped code above"," "," // If you've gone past max more than one full revolution, we decrement the _timesWrapped value"," // This gives the effect of a ratchet mechanism."," // It feels like you are never more than one revolution past max"," // The effect is the same for min, only in reverse."," // We can't reset the _timesWrapped to the max or min here."," // If we did, the next (continuous) drag would reset the value incorrectly."," if(newValue > (this._maxValue + this._stepsPerRevolution) ){"," this._timesWrapped --;"," }else if(newValue < (this._minValue - this._stepsPerRevolution) ){"," this._timesWrapped ++;"," }"," this._prevAng = ang; // need to keep the previous angle in order to check for wrapping on the next drag, click, or keypress ",""," this._handleValuesBeyondMinMax(e, newValue);"," },",""," /**"," * handles a mousedown or gesturemovestart event on the ring node"," *"," * @method _handleMousedown"," * @param e {DOMEvent} the event object"," * @private"," */"," _handleMousedown : function(e){ // #2530306"," var minAng = this._getAngleFromValue(this._minValue),"," maxAng = this._getAngleFromValue(this._maxValue),"," newValue, oppositeMidRangeAngle,"," handleCenterX, handleCenterY, "," ang;",""," // The event was emitted from mousedown on the ring node,"," // so the center of the handle should be the XY of mousedown. "," if(Y.UA.ios){ // ios adds the scrollLeft and top onto clientX and Y in a native click"," handleCenterX = (e.clientX - this._ringNode.getX());"," handleCenterY = (e.clientY - this._ringNode.getY());"," }else{"," handleCenterX = (e.clientX + Y.one('document').get('scrollLeft') - this._ringNode.getX());"," handleCenterY = (e.clientY + Y.one('document').get('scrollTop') - this._ringNode.getY());"," }"," ang = this._getAngleFromHandleCenter(handleCenterX, handleCenterY);"," "," /* ///////////////////////////////////////////////////////////////////////////////////////////////////////"," * The next sections of logic"," * set this._timesWrapped in the different cases of value range"," * and value range position, "," * then the Dial value is set at the end of this method"," */ ///////////////////////////////////////////////////////////////////////////////////////////////////////"," "," "," ////////////////////////////////////////////////////////////////////////////////////////////////////////////"," if(this._maxValue - this._minValue > this._stepsPerRevolution){"," // Case: range min-to-max is greater than stepsPerRevolution (one revolution) ",""," // This checks the shortest way around the dial between the prevAng and this ang."," if(Math.abs(this._prevAng - ang) > 180){ // this crossed a wrapping"," "," // Only change the _timesWrapped if it's between minTimesWrapped and maxTimesWrapped "," if((this._timesWrapped > this._minTimesWrapped) && "," (this._timesWrapped < this._maxTimesWrapped)"," ){ "," // this checks which direction, clock wise or CCW and incr or decr _timesWrapped"," this._timesWrapped = ((this._prevAng - ang) > 0) ? (this._timesWrapped + 1) : (this._timesWrapped - 1);"," }"," // special case of getting un-stuck from a min value case "," // where timesWrapped is minTimesWrapped but new ang won't trigger a cross wrap boundry"," // because prevAng is set to 0 or > 0"," }else if("," (this._timesWrapped === this._minTimesWrapped) && "," (ang - this._prevAng < 180)"," ){ "," this._timesWrapped ++;"," } //it didn't cross a wrapping boundary",""," } /////////////////////////////////////////////////////////////////////////////////////////////////////////"," else if(this._maxValue - this._minValue === this._stepsPerRevolution){ "," // Case: range min-to-max === stepsPerRevolution (one revolution)"," // This means min and max will be at same angle"," // This does not mean they are at \"north\" "," "," if(ang < minAng){ // if mousedown angle is < minAng (and maxAng, because they're the same)"," // The only way it can be, is if min and max are not at north"," this._timesWrapped = 1;"," }else{"," this._timesWrapped = 0;"," }"," "," } //////////////////////////////////////////////////////////////////////////////////////////////////////////"," else if(minAng > maxAng){ "," // Case: range includes the wrap point (north) "," // Because of \"else if\"..."," // range is < stepsPerRevolution"," "," if( "," (this._prevAng >= minAng) && // if prev angle was greater than angle of min and..."," (ang <= (minAng + maxAng) / 2) // the angle of this click is less than "," // the angle opposite the mid-range angle, then..."," ){"," this._timesWrapped ++; "," }else if( "," (this._prevAng <= maxAng) && "," // if prev angle is < max angle and..."," "," (ang > (minAng + maxAng) / 2)"," // the angle of this click is greater than,"," // the angle opposite the mid-range angle and..."," "," ){ "," this._timesWrapped --;"," }"," "," } ////////////////////////////////////////////////////////////////////////////////////////////////////"," else{ "," // \"else\" Case: min-to-max range doesn't include the wrap point"," // Because of \"else if\"..."," // range is still < stepsPerRevolution"," "," if ((ang < minAng) || (ang > maxAng)){ // angle is out of range"," oppositeMidRangeAngle = (((minAng + maxAng) / 2) + 180) % 360; "," // This is the bisection of the min-to-max range + 180. (opposite the bisection)",""," if(oppositeMidRangeAngle > 180){"," newValue = ((maxAng < ang) && (ang < oppositeMidRangeAngle)) ? this.get('max') : this.get('min');"," }else{ //oppositeMidRangeAngle <= 180"," newValue = ((minAng > ang) && (ang > oppositeMidRangeAngle)) ? this.get('min') : this.get('max');"," }"," this._prevAng = this._getAngleFromValue(newValue);"," this.set('value', newValue);"," this._setTimesWrappedFromValue(newValue);"," return;"," }"," }"," "," // Now that _timesWrapped is set value ......................................................................."," newValue = this._getValueFromAngle(ang); // This function needs the correct, current _timesWrapped value."," this._prevAng = ang; ",""," this._handleValuesBeyondMinMax(e, newValue);"," },",""," /**"," * handles the case where the value is less than min or greater than max"," *"," * @method _handleValuesBeyondMinMax"," * @param e {DOMEvent} the event object"," * @param newValue {number} current value of the dial"," * @protected"," */"," _handleValuesBeyondMinMax : function(e, newValue){ // #2530306"," // If _getValueFromAngle() is passed 0, it increments the _timesWrapped value."," // handle hitting max and min and going beyond, stops at max or min "," if((newValue >= this._minValue) && (newValue <= this._maxValue)) {"," this.set('value', newValue);"," // [#2530206] transfer the mousedown event from the _ringNode to the _handleNode drag, so we can mousedown, then continue dragging"," if(e.currentTarget === this._ringNode){"," // Delegate to DD's natural behavior"," this._dd1._handleMouseDownEvent(e);"," } "," }else if(newValue > this._maxValue){"," this.set('value', this._maxValue);"," if(e.type === 'gesturemovestart'){"," this._prevAng = this._getAngleFromValue(this._maxValue); // #2530766 need for mousedown on the ring; causes prob for drag"," } "," }else if(newValue < this._minValue){"," this.set('value', this._minValue);"," if(e.type === 'gesturemovestart'){"," this._prevAng = this._getAngleFromValue(this._minValue);"," } "," }"," },",""," /**"," * handles the user starting to drag the handle around the Dial"," *"," * @method _handleDragStart"," * @param e {DOMEvent} the drag event object"," * @protected"," */"," _handleDragStart : function(e){"," this._markerNode.removeClass(Dial.CSS_CLASSES.hidden);"," },",""," /*"," * When handle is handleDragEnd, this animates the return to the fixed dial"," */ ",""," /**"," * handles the end of a user dragging the handle, animates the handle returning to"," * resting position."," *"," * @method _handleDragEnd"," * @protected"," */"," _handleDragEnd : function(){"," var node = this._handleNode; "," node.transition({"," duration: 0.08, // seconds"," easing: 'ease-in',"," left: this._setNodeToFixedRadius(this._handleNode, true)[0] + 'px',"," top: this._setNodeToFixedRadius(this._handleNode, true)[1] + 'px'"," }, Y.bind(function(){"," var value = this.get('value');"," //[#2530206] only hide marker if not at max or min"," // more persistant user visibility of when the dial is at max or min"," if((value > this._minValue) && (value < this._maxValue)){"," this._markerNode.addClass(Dial.CSS_CLASSES.hidden);"," }else{"," this._setTimesWrappedFromValue(value); //#2530766 secondary bug when drag past max + cross wrapping boundry"," this._prevAng = this._getAngleFromValue(value); //#2530766 secondary bug when drag past max + cross wrapping boundry"," }"," }, this)"," );"," },",""," /**"," * returns the XY of the fixed position, handleDistance, from the center of the Dial (resting position)."," * The XY also represents the angle related to the current value."," * If typeArray is true, [X,Y] is returned."," * If typeArray is false, the XY of the obj node passed in is set."," *"," * @method _setNodeToFixedRadius"," * @param obj {Node}"," * @param typeArray {Boolean} true returns an array [X,Y]"," * @protected"," * @return {Array} an array of [XY] is optionally returned"," */"," _setNodeToFixedRadius : function(obj, typeArray){"," var thisAngle = (this._angle - 90),"," rad = (Math.PI / 180),"," newY = Math.round(Math.sin(thisAngle * rad) * this._handleDistance),"," newX = Math.round(Math.cos(thisAngle * rad) * this._handleDistance),"," dia = obj.get('offsetWidth'); //Ticket #2529852"," "," newY = newY - (dia * 0.5);"," newX = newX - (dia * 0.5);"," if(typeArray){ // just need the style for css transform left and top to animate the handle drag:end"," return [(this._ringNodeRadius + newX), (this._ringNodeRadius + newY)];"," }else{"," obj.setStyle('left', (this._ringNodeRadius + newX) + 'px');"," obj.setStyle('top', (this._ringNodeRadius + newY) + 'px');"," }"," },",""," /**"," * Synchronizes the DOM state with the attribute settings."," *"," * @method syncUI"," */"," syncUI : function() {"," // Make the marker and the resetString display so their placement and borderRadius can be calculated, then hide them again."," // We would have used visibility:hidden in the css of this class, "," // but IE8 VML never returns to visible after applying visibility:hidden then removing it."," this._setSizes();"," this._calculateDialCenter(); // #2531111 initialize center of dial"," this._setBorderRadius();"," this._uiSetValue(this.get(\"value\"));"," this._markerNode.addClass(Dial.CSS_CLASSES.hidden);"," this._resetString.addClass(Dial.CSS_CLASSES.hidden);"," },",""," /**"," * sets the sizes of ring, center-button, marker, handle, and VML ovals in pixels."," * Needed only because some IE versions "," * ignore CSS percent sizes/offsets."," * so these must be set in pixels."," * Normally these are set in % of the ring."," *"," * @method _setSizes"," * @protected"," */"," _setSizes : function(){"," var dia = this.get('diameter'),"," offset, offsetResetX, offsetResetY,"," setSize = function(node, dia, percent){"," var suffix = 'px';"," node.getElementsByTagName('oval').setStyle('width', (dia * percent) + suffix);"," node.getElementsByTagName('oval').setStyle('height', (dia * percent) + suffix);"," node.setStyle('width', (dia * percent) + suffix);"," node.setStyle('height', (dia * percent) + suffix);"," };"," setSize(this._ringNode, dia, 1.0);"," setSize(this._handleNode, dia, this.get('handleDiameter'));"," setSize(this._markerNode, dia, this.get('markerDiameter'));"," setSize(this._centerButtonNode, dia, this.get('centerButtonDiameter'));"," "," // Set these (used for trig) this way instead of relative to dia, "," // in case they have borders, have images etc."," this._ringNodeRadius = this._ringNode.get('offsetWidth') * 0.5;"," this._handleNodeRadius = this._handleNode.get('offsetWidth') * 0.5;"," this._markerNodeRadius = this._markerNode.get('offsetWidth') * 0.5;"," this._centerButtonNodeRadius = this._centerButtonNode.get('offsetWidth') * 0.5;"," this._handleDistance = this._ringNodeRadius * this.get('handleDistance');"," // place the centerButton"," offset = (this._ringNodeRadius - this._centerButtonNodeRadius);"," this._centerButtonNode.setStyle('left', offset + 'px');"," this._centerButtonNode.setStyle('top', offset + 'px');"," /* "," Place the resetString"," This seems like it should be able to be done with CSS,"," But since there is also a VML oval in IE that is absolute positioned,"," The resetString ends up behind the VML oval."," */"," offsetResetX = (this._centerButtonNodeRadius - (this._resetString.get('offsetWidth') * 0.5));"," offsetResetY = (this._centerButtonNodeRadius - (this._resetString.get('offsetHeight') * 0.5));"," this._resetString.setStyles({'left':offsetResetX + 'px', 'top':offsetResetY + 'px'});"," },","",""," /**"," * renders the DOM object for the Dial's label"," *"," * @method _renderLabel"," * @protected"," */"," _renderLabel : function() {"," var contentBox = this.get(\"contentBox\"),"," label = contentBox.one(\".\" + Dial.CSS_CLASSES.label);"," if (!label) {"," label = Node.create(Y.Lang.sub(Dial.LABEL_TEMPLATE, this.get('strings')));"," contentBox.append(label);"," }"," this._labelNode = label;"," this._valueStringNode = this._labelNode.one(\".\" + Dial.CSS_CLASSES.valueString);"," },",""," /**"," * renders the DOM object for the Dial's background ring"," *"," * @method _renderRing"," * @protected"," */"," _renderRing : function() {"," var contentBox = this.get(\"contentBox\"),"," ring = contentBox.one(\".\" + Dial.CSS_CLASSES.ring);"," if (!ring) {"," ring = contentBox.appendChild(Dial.RING_TEMPLATE);"," ring.setStyles({width:this.get('diameter') + 'px', height:this.get('diameter') + 'px'});"," }"," this._ringNode = ring;"," },",""," /**"," * renders the DOM object for the Dial's background marker which "," * tracks the angle of the user dragging the handle"," *"," * @method _renderMarker"," * @protected"," */"," _renderMarker : function() {"," var contentBox = this.get(\"contentBox\"),"," marker = contentBox.one(\".\" + Dial.CSS_CLASSES.marker);"," if (!marker) {"," marker = contentBox.one('.' + Dial.CSS_CLASSES.ring).appendChild(Dial.MARKER_TEMPLATE);"," }"," this._markerNode = marker;"," },"," "," /**"," * renders the DOM object for the Dial's center"," *"," * @method _renderCenterButton"," * @protected"," */"," _renderCenterButton : function() {"," var contentBox = this.get(\"contentBox\"),"," centerButton = contentBox.one(\".\" + Dial.CSS_CLASSES.centerButton);"," if (!centerButton) {"," centerButton = Node.create(Y.Lang.sub(Dial.CENTER_BUTTON_TEMPLATE, this.get('strings')));"," contentBox.one('.' + Dial.CSS_CLASSES.ring).append(centerButton);"," }"," this._centerButtonNode = centerButton;"," this._resetString = this._centerButtonNode.one('.' + Dial.CSS_CLASSES.resetString);"," },",""," /**"," * renders the DOM object for the Dial's user draggable handle"," *"," * @method _renderHandle"," * @protected"," */"," _renderHandle : function() { "," var labelId = Dial.CSS_CLASSES.label + Y.guid(), //get this unique id once then use for handle and label for ARIA"," contentBox = this.get(\"contentBox\"),"," handle = contentBox.one(\".\" + Dial.CSS_CLASSES.handle);"," if (!handle) {"," handle = Node.create(Y.Lang.sub(Dial.HANDLE_TEMPLATE, this.get('strings')));"," handle.setAttribute('aria-labelledby', labelId); // get unique id for specifying a label & handle for ARIA"," this._labelNode.one('.' + Dial.CSS_CLASSES.labelString).setAttribute('id', labelId); // When handle gets focus, screen reader will include label text when reading the value."," contentBox.one('.' + Dial.CSS_CLASSES.ring).append(handle);"," }"," this._handleNode = handle;"," },",""," /**"," * sets the visible UI label HTML string"," *"," * @method _setLabelString"," * @param str {HTML}"," * @protected"," * @deprecated Use DialObjName.set('strings',{'label':'My new label'}); before DialObjName.render();",""," */"," _setLabelString : function(str) {"," this.get(\"contentBox\").one(\".\" + Dial.CSS_CLASSES.labelString).setHTML(str);"," },",""," /**"," * sets the visible UI label HTML string"," *"," * @method _setResetString"," * @param str {HTML}"," * @protected"," * @deprecated Use DialObjName.set('strings',{'resetStr':'My new reset string'}); before DialObjName.render();"," */"," _setResetString : function(str) {"," this.get(\"contentBox\").one(\".\" + Dial.CSS_CLASSES.resetString).setHTML(str);"," // this._setXYResetString(); // This used to recenter the string in the button. Done with CSS now. Method has been removed."," // this._resetString.setHTML(''); //We no longer show/hide the reset string with setHTML but by addClass and removeClass .yui3-dial-reset-string-hidden"," },",""," /**"," * sets the tooltip HTML string in the Dial's handle"," *"," * @method _setTooltipString"," * @param str {HTML}"," * @protected"," * @deprecated Use DialObjName.set('strings',{'tooltipHandle':'My new tooltip'}); before DialObjName.render();"," */"," _setTooltipString : function(str) {"," this._handleNode.set('title', str);"," },",""," /**"," * sets the Dial's value in response to key events."," * Left and right keys are in a separate method "," * in case an implementation wants to increment values"," * but needs left and right arrow keys for other purposes."," *"," * @method _onDirectionKey"," * @param e {Event} the key event"," * @protected"," */"," _onDirectionKey : function(e) {"," e.preventDefault();"," switch (e.charCode) {"," case 38: // up"," this._incrMinor();"," break;"," case 40: // down"," this._decrMinor();"," break;"," case 36: // home"," this._setToMin();"," break;"," case 35: // end"," this._setToMax();"," break;"," case 33: // page up"," this._incrMajor();"," break;"," case 34: // page down"," this._decrMajor();"," break;"," }"," },",""," /**"," * sets the Dial's value in response to left or right key events"," *"," * @method _onLeftRightKey"," * @param e {Event} the key event"," * @protected"," */"," _onLeftRightKey : function(e) {"," e.preventDefault();"," switch (e.charCode) {"," case 37: // left"," this._decrMinor();"," break;"," case 39: // right"," this._incrMinor();"," break;"," }"," },",""," /**"," * sets the Dial's value in response to left or right key events when a meta (mac command/apple) key is also pressed"," *"," * @method _onLeftRightKeyMeta"," * @param e {Event} the key event"," * @protected"," */"," _onLeftRightKeyMeta : function(e) {"," e.preventDefault();"," switch (e.charCode) {"," case 37: // left + meta"," this._setToMin();"," break;"," case 39: // right + meta"," this._setToMax();"," break;"," }"," },"," "," /**"," * increments Dial value by a minor increment"," *"," * @method _incrMinor"," * @protected"," */"," _incrMinor : function(){"," var newVal = (this.get('value') + this.get(\"minorStep\"));"," newVal = Math.min(newVal, this.get(\"max\"));"," // [#2530045] .toFixed returns a string."," // Dial's value needs a number. -0 makes it a number, but removes trailing zeros."," // Added toFixed(...) again in _uiSetValue where content of yui3-dial-value-string is set."," // Removing the toFixed here, loses the feature of \"snap-to\" when for example, stepsPerRevolution is 10 and decimalPlaces is 0."," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },"," "," /**"," * decrements Dial value by a minor increment"," *"," * @method _decrMinor"," * @protected"," */"," _decrMinor : function(){"," var newVal = (this.get('value') - this.get(\"minorStep\"));"," newVal = Math.max(newVal, this.get(\"min\"));"," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },"," "," /**"," * increments Dial value by a major increment"," *"," * @method _incrMajor"," * @protected"," */"," _incrMajor : function(){"," var newVal = (this.get('value') + this.get(\"majorStep\"));"," newVal = Math.min(newVal, this.get(\"max\"));"," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },"," "," /**"," * decrements Dial value by a major increment"," *"," * @method _decrMajor"," * @protected"," */"," _decrMajor : function(){"," var newVal = (this.get('value') - this.get(\"majorStep\"));"," newVal = Math.max(newVal, this.get(\"min\"));"," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },",""," /**"," * sets Dial value to dial's max attr"," *"," * @method _setToMax"," * @protected"," */"," _setToMax : function(){"," this.set('value', this.get(\"max\"));"," }, "," "," /**"," * sets Dial value to dial's min attr"," *"," * @method _setToMin"," * @protected"," */"," _setToMin : function(){"," this.set('value', this.get(\"min\"));"," }, "," "," /**"," * resets Dial value to the orignal initial value. "," *"," * @method _resetDial"," * @protected"," */"," _resetDial : function(e){"," if(e){"," e.stopPropagation(); //[#2530206] need to add so mousedown doesn't propagate to ring and move the handle"," }"," this.set('value', this._originalValue);"," this._resetString.addClass(Dial.CSS_CLASSES.hidden); //[#2530441]"," this._handleNode.focus();"," },"," "," /**"," * returns the handle angle associated with the current value of the Dial. "," * Returns a number between 0 and 360."," *"," * @method _getAngleFromValue"," * @param newVal {Number} the current value of the Dial"," * @return {Number} the angle associated with the current Dial value"," * @protected"," */"," _getAngleFromValue : function(newVal){"," var nonWrappedPartOfValue = newVal % this._stepsPerRevolution,"," angleFromValue = nonWrappedPartOfValue / this._stepsPerRevolution * 360;"," return (angleFromValue < 0) ? (angleFromValue + 360) : angleFromValue;"," },",""," /**"," * returns the value of the Dial calculated from the current handle angle"," *"," * @method _getValueFromAngle"," * @param angle {Number} the current angle of the Dial's handle"," * @return {Number} the current Dial value corresponding to the handle position"," * @protected"," */"," _getValueFromAngle : function(angle){"," if(angle < 0){"," angle = (360 + angle);"," }else if(angle === 0){"," angle = 360;"," }"," var value = (angle / 360) * this._stepsPerRevolution;"," value = (value + (this._timesWrapped * this._stepsPerRevolution));"," //return Math.round(value * 100) / 100;"," return value.toFixed(this.get('decimalPlaces')) - 0;"," },",""," /**"," * calls the method to update the UI whenever the Dial value changes"," *"," * @method _afterValueChange"," * @param e {Event}"," * @protected"," */"," _afterValueChange : function(e) {"," this._uiSetValue(e.newVal);"," },",""," /**"," * Changes a value to have the correct decimal places per the attribute decimalPlaces"," *"," * @method _valueToDecimalPlaces"," * @param val {Number} a raw value to set to the Dial"," * @return {Number} the input val changed to have the correct decimal places"," * @protected"," */"," _valueToDecimalPlaces : function(val) { // [#2530206] cleaned up and better user feedback of when it's max or min."," "," },",""," /**"," * Updates the UI display value of the Dial to reflect "," * the value passed in."," * Makes all other needed UI display changes"," *"," * @method _uiSetValue"," * @param val {Number} value of the Dial"," * @protected"," */"," _uiSetValue : function(val) { // [#2530206] cleaned up and better user feedback of when it's max or min."," this._angle = this._getAngleFromValue(val);"," if(this._handleNode.hasClass(Dial.CSS_CLASSES.dragging) === false){"," this._setTimesWrappedFromValue(val);"," this._setNodeToFixedRadius(this._handleNode, false);"," this._prevAng = this._getAngleFromValue(this.get('value'));"," }"," this._valueStringNode.setHTML(val.toFixed(this.get('decimalPlaces'))); // [#2530045]"," this._handleNode.set('aria-valuenow', val);"," this._handleNode.set('aria-valuetext', val);"," this._setNodeToFixedRadius(this._markerNode, false);"," if((val === this._maxValue) || (val === this._minValue)){"," this._markerNode.addClass(Dial.CSS_CLASSES.markerMaxMin);"," if(supportsVML === true){"," this._markerNode.getElementsByTagName('fill').set('color', '#AB3232');"," }"," this._markerNode.removeClass(Dial.CSS_CLASSES.hidden);"," }else{ // not max or min"," if(supportsVML === true){"," this._markerNode.getElementsByTagName('fill').set('color', '#000');"," }"," this._markerNode.removeClass(Dial.CSS_CLASSES.markerMaxMin);"," if(this._handleNode.hasClass(Dial.CSS_CLASSES.dragging) === false){ // if not max || min, and not dragging handle, hide the marker"," this._markerNode.addClass(Dial.CSS_CLASSES.hidden);"," }"," }"," },",""," /**"," * value attribute default validator. Verifies that"," * the value being set lies between the min/max value"," *"," * @method _validateValue"," * @param val {Number} value of the Dial"," * @protected"," */"," _validateValue: function(val) {"," var min = this.get(\"min\"),"," max = this.get(\"max\");"," return (Lang.isNumber(val) && val >= min && val <= max);"," }"," });"," Y.Dial = Dial;","","","}, '3.7.2', {\"requires\": [\"widget\", \"dd-drag\", \"event-mouseenter\", \"event-move\", \"event-key\", \"transition\", \"intl\"], \"lang\": [\"en\", \"es\"], \"skinnable\": true});"];
_yuitest_coverage["build/dial/dial.js"].lines = {"1":0,"9":0,"12":0,"13":0,"16":0,"31":0,"32":0,"47":0,"58":0,"148":0,"211":0,"238":0,"239":0,"249":0,"280":0,"282":0,"291":0,"301":0,"311":0,"321":0,"324":0,"329":0,"335":0,"343":0,"352":0,"361":0,"362":0,"363":0,"364":0,"365":0,"368":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"379":0,"380":0,"381":0,"384":0,"385":0,"386":0,"397":0,"401":0,"405":0,"409":0,"422":0,"432":0,"443":0,"445":0,"455":0,"456":0,"457":0,"459":0,"460":0,"462":0,"463":0,"464":0,"466":0,"467":0,"469":0,"477":0,"489":0,"490":0,"492":0,"506":0,"507":0,"508":0,"519":0,"520":0,"530":0,"540":0,"550":0,"565":0,"573":0,"574":0,"575":0,"578":0,"579":0,"580":0,"582":0,"583":0,"584":0,"587":0,"595":0,"596":0,"597":0,"598":0,"600":0,"602":0,"613":0,"621":0,"622":0,"623":0,"625":0,"626":0,"628":0,"639":0,"643":0,"646":0,"650":0,"655":0,"659":0,"663":0,"668":0,"670":0,"672":0,"676":0,"681":0,"686":0,"687":0,"696":0,"705":0,"706":0,"709":0,"710":0,"712":0,"714":0,"715":0,"716":0,"717":0,"722":0,"723":0,"725":0,"739":0,"740":0,"742":0,"744":0,"746":0,"747":0,"748":0,"749":0,"751":0,"752":0,"753":0,"754":0,"767":0,"782":0,"783":0,"789":0,"792":0,"793":0,"795":0,"796":0,"815":0,"821":0,"822":0,"823":0,"824":0,"826":0,"827":0,"840":0,"841":0,"842":0,"843":0,"844":0,"845":0,"859":0,"862":0,"863":0,"864":0,"865":0,"866":0,"868":0,"869":0,"870":0,"871":0,"875":0,"876":0,"877":0,"878":0,"879":0,"881":0,"882":0,"883":0,"890":0,"891":0,"892":0,"903":0,"905":0,"906":0,"907":0,"909":0,"910":0,"920":0,"922":0,"923":0,"924":0,"926":0,"937":0,"939":0,"940":0,"942":0,"952":0,"954":0,"955":0,"956":0,"958":0,"959":0,"969":0,"972":0,"973":0,"974":0,"975":0,"976":0,"978":0,"991":0,"1003":0,"1017":0,"1031":0,"1032":0,"1034":0,"1035":0,"1037":0,"1038":0,"1040":0,"1041":0,"1043":0,"1044":0,"1046":0,"1047":0,"1049":0,"1050":0,"1062":0,"1063":0,"1065":0,"1066":0,"1068":0,"1069":0,"1081":0,"1082":0,"1084":0,"1085":0,"1087":0,"1088":0,"1099":0,"1100":0,"1105":0,"1115":0,"1116":0,"1117":0,"1127":0,"1128":0,"1129":0,"1139":0,"1140":0,"1141":0,"1151":0,"1161":0,"1171":0,"1172":0,"1174":0,"1175":0,"1176":0,"1189":0,"1191":0,"1203":0,"1204":0,"1205":0,"1206":0,"1208":0,"1209":0,"1211":0,"1222":0,"1247":0,"1248":0,"1249":0,"1250":0,"1251":0,"1253":0,"1254":0,"1255":0,"1256":0,"1257":0,"1258":0,"1259":0,"1260":0,"1262":0,"1264":0,"1265":0,"1267":0,"1268":0,"1269":0,"1283":0,"1285":0,"1288":0};
_yuitest_coverage["build/dial/dial.js"].functions = {"Dial:31":0,"validator:147":0,"valueFn:210":0,"makeClassName:238":0,"renderUI:360":0,"_setBorderRadius:396":0,"_handleCenterButtonEnter:421":0,"_handleCenterButtonLeave:431":0,"bindUI:442":0,"_setTimesWrappedFromValue:488":0,"_getAngleFromHandleCenter:505":0,"_calculateDialCenter:518":0,"_handleRingMouseup:529":0,"_handleCenterButtonMouseup:539":0,"_handleHandleMousedown:549":0,"_handleDrag:564":0,"_handleMousedown:612":0,"_handleValuesBeyondMinMax:736":0,"_handleDragStart:766":0,"(anonymous 2):788":0,"_handleDragEnd:781":0,"_setNodeToFixedRadius:814":0,"syncUI:836":0,"setSize:861":0,"_setSizes:858":0,"_renderLabel:902":0,"_renderRing:919":0,"_renderMarker:936":0,"_renderCenterButton:951":0,"_renderHandle:968":0,"_setLabelString:990":0,"_setResetString:1002":0,"_setTooltipString:1016":0,"_onDirectionKey:1030":0,"_onLeftRightKey:1061":0,"_onLeftRightKeyMeta:1080":0,"_incrMinor:1098":0,"_decrMinor:1114":0,"_incrMajor:1126":0,"_decrMajor:1138":0,"_setToMax:1150":0,"_setToMin:1160":0,"_resetDial:1170":0,"_getAngleFromValue:1188":0,"_getValueFromAngle:1202":0,"_afterValueChange:1221":0,"_uiSetValue:1246":0,"_validateValue:1282":0,"(anonymous 1):1":0};
_yuitest_coverage["build/dial/dial.js"].coveredLines = 287;
@@ -1663,4 +1663,4 @@ return (Lang.isNumber(val) && val >= min && val <= max);
Y.Dial = Dial;
-}, '3.7.1', {"requires": ["widget", "dd-drag", "event-mouseenter", "event-move", "event-key", "transition", "intl"], "lang": ["en", "es"], "skinnable": true});
+}, '3.7.2', {"requires": ["widget", "dd-drag", "event-mouseenter", "event-move", "event-key", "transition", "intl"], "lang": ["en", "es"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/dial/dial-debug.js b/lib/yuilib/3.7.2/build/dial/dial-debug.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dial/dial-debug.js
rename to lib/yuilib/3.7.2/build/dial/dial-debug.js
index 6684c7f51d0..f7c0a13aa25 100644
--- a/lib/yuilib/3.7.1/build/dial/dial-debug.js
+++ b/lib/yuilib/3.7.2/build/dial/dial-debug.js
@@ -1,5 +1,5 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
@@ -1294,4 +1294,4 @@ YUI.add('dial', function (Y, NAME) {
Y.Dial = Dial;
-}, '3.7.1', {"requires": ["widget", "dd-drag", "event-mouseenter", "event-move", "event-key", "transition", "intl"], "lang": ["en", "es"], "skinnable": true});
+}, '3.7.2', {"requires": ["widget", "dd-drag", "event-mouseenter", "event-move", "event-key", "transition", "intl"], "lang": ["en", "es"], "skinnable": true});
diff --git a/lib/yuilib/3.7.1/build/dial/dial-min.js b/lib/yuilib/3.7.2/build/dial/dial-min.js
similarity index 99%
rename from lib/yuilib/3.7.1/build/dial/dial-min.js
rename to lib/yuilib/3.7.2/build/dial/dial-min.js
index 8a5d4165c68..be43f4e31ff 100644
--- a/lib/yuilib/3.7.1/build/dial/dial-min.js
+++ b/lib/yuilib/3.7.2/build/dial/dial-min.js
@@ -1,7 +1,7 @@
/*
-YUI 3.7.1 (build 5627)
+YUI 3.7.2 (build 5639)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
-YUI.add("dial",function(e,t){function o(e){o.superclass.constructor.apply(this,arguments)}function u(t){return e.ClassNameManager.getClassName(o.NAME,t)}var n=!1;e.UA.ie&&e.UA.ie<9&&(n=!0);var r=e.Lang,i=e.Widget,s=e.Node;o.NAME="dial",o.ATTRS={min:{value:-220},max:{value:220},diameter:{value:100},handleDiameter:{value:.2},markerDiameter:{value:.1},centerButtonDiameter:{value:.5},value:{value:0,validator:function(e){return this._validateValue(e)}},minorStep:{value:1},majorStep:{value:10},stepsPerRevolution:{value:100},decimalPlaces:{value:0},strings:{valueFn:function(){return e.Intl.get("dial")}},handleDistance:{value:.75}},o.CSS_CLASSES={label:u("label"),labelString:u("label-string"),valueString:u("value-string"),northMark:u("north-mark"),ring:u("ring"),ringVml:u("ring-vml"),marker:u("marker"),markerVml:u("marker-vml"),markerMaxMin:u("marker-max-min"),centerButton:u("center-button"),centerButtonVml:u("center-button-vml"),resetString:u("reset-string"),handle:u("handle"),handleVml:u("handle-vml"),hidden:u("hidden"),dragging:e.ClassNameManager.getClassName("dd-dragging")},o.LABEL_TEMPLATE='{label}',n===!1?(o.RING_TEMPLATE='',o.MARKER_TEMPLATE='',o.CENTER_BUTTON_TEMPLATE='{resetStr}',o.HANDLE_TEMPLATE=''):(o.RING_TEMPLATE=''+''+' '+""+"",o.MARKER_TEMPLATE=''+''+' '+" "+""+"",o.CENTER_BUTTON_TEMPLATE=''+''+' '+' '+" "+'{resetStr}'+""+"",o.HANDLE_TEMPLATE=''+''+' '+" "+""+""),e.extend(o,i,{renderUI:function(){this._renderLabel(),this._renderRing(),this._renderMarker(),this._renderCenterButton(),this._renderHandle(),this.contentBox=this.get("contentBox"),this._originalValue=this.get("value"),this._minValue=this.get("min"),this._maxValue=this.get("max"),this._stepsPerRevolution=this.get("stepsPerRevolution"),this._minTimesWrapped=Math.floor(this._minValue/this._stepsPerRevolution-1),this._maxTimesWrapped=Math.floor(this._maxValue/this._stepsPerRevolution+1),this._timesWrapped=0,this._angle=this._getAngleFromValue(this.get("value")),this._prevAng=this._angle,this._setTimesWrappedFromValue(this._originalValue),this._handleNode.set("aria-valuemin",this._minValue),this._handleNode.set("aria-valuemax",this._maxValue)},_setBorderRadius:function(){this._ringNode.setStyles({WebkitBorderRadius:this._ringNodeRadius+"px",MozBorderRadius:this._ringNodeRadius+"px",borderRadius:this._ringNodeRadius+"px"}),this._handleNode.setStyles({WebkitBorderRadius:this._handleNodeRadius+"px",MozBorderRadius:this._handleNodeRadius+"px",borderRadius:this._handleNodeRadius+"px"}),this._markerNode.setStyles({WebkitBorderRadius:this._markerNodeRadius+"px",MozBorderRadius:this._markerNodeRadius+"px",borderRadius:this._markerNodeRadius+"px"}),this._centerButtonNode.setStyles({WebkitBorderRadius:this._centerButtonNodeRadius+"px",MozBorderRadius:this._centerButtonNodeRadius+"px",borderRadius:this._centerButtonNodeRadius+"px"})},_handleCenterButtonEnter:function(){this._resetString.removeClass(o.CSS_CLASSES.hidden)},_handleCenterButtonLeave:function(){this._resetString.addClass(o.CSS_CLASSES.hidden)},bindUI:function(){this.after("valueChange",this._afterValueChange);var t=this.get("boundingBox"),n=e.UA.opera?"press:":"down:",r=n+"38,40,33,34,35,36",i=n+"37,39",s=n+"37+meta,39+meta";e.on("key",e.bind(this._onDirectionKey,this),t,r),e.on("key",e.bind(this._onLeftRightKey,this),t,i),t.on("key",this._onLeftRightKeyMeta,s,this),e.on("mouseenter",e.bind(this._handleCenterButtonEnter,this),this._centerButtonNode),e.on("mouseleave",e.bind(this._handleCenterButtonLeave,this),this._centerButtonNode),e.on("gesturemovestart",e.bind(this._resetDial,this),this._centerButtonNode),e.on("gesturemoveend",e.bind(this._handleCenterButtonMouseup,this),this._centerButtonNode),e.on("gesturemovestart",e.bind(this._handleHandleMousedown,this),this._handleNode),e.on("gesturemovestart",e.bind(this._handleMousedown,this),this._ringNode),e.on("gesturemoveend",e.bind(this._handleRingMouseup,this),this._ringNode),this._dd1=new e.DD.Drag({node:this._handleNode,on:{"drag:drag":e.bind(this._handleDrag,this),"drag:start":e.bind(this._handleDragStart,this),"drag:end":e.bind(this._handleDragEnd,this)}}),e.bind(this._dd1.addHandle(this._ringNode),this)},_setTimesWrappedFromValue:function(e){e%this._stepsPerRevolution===0?this._timesWrapped=e/this._stepsPerRevolution:this._timesWrapped=Math.floor(e/this._stepsPerRevolution)},_getAngleFromHandleCenter:function(e,t){var n=Math.atan((this._dialCenterY-t)/(this._dialCenterX-e))*(180/Math.PI);return n=this._dialCenterX-e<0?n+90:n+90+180,n},_calculateDialCenter:function(){this._dialCenterX=this._ringNode.get("offsetWidth")/2,this._dialCenterY=this._ringNode.get("offsetHeight")/2},_handleRingMouseup:function(){this._handleNode.focus()},_handleCenterButtonMouseup:function(){this._handleNode.focus()},_handleHandleMousedown:function(){this._handleNode.focus()},_handleDrag:function(e){var t,n,r,i;t=parseInt(this._handleNode.getStyle("left"),10)+this._handleNodeRadius,n=parseInt(this._handleNode.getStyle("top"),10)+this._handleNodeRadius,r=this._getAngleFromHandleCenter(t,n),this._prevAng>270&&r<90?this._timesWrapped270&&this._timesWrapped>this._minTimesWrapped&&(this._timesWrapped=this._timesWrapped-1),i=this._getValueFromAngle(r),i>this._maxValue+this._stepsPerRevolution?this._timesWrapped--:ithis._stepsPerRevolution)Math.abs(this._prevAng-a)>180?this._timesWrapped>this._minTimesWrapped&&this._timesWrapped0?this._timesWrapped+1:this._timesWrapped-1):this._timesWrapped===this._minTimesWrapped&&a-this._prevAng<180&&this._timesWrapped++;else if(this._maxValue-this._minValue===this._stepsPerRevolution)ar)this._prevAng>=n&&a<=(n+r)/2?this._timesWrapped++:this._prevAng<=r&&a>(n+r)/2&&this._timesWrapped--;else if(ar){s=((n+r)/2+180)%360,s>180?i=ra&&a>s?this.get("min"):this.get("max"),this._prevAng=this._getAngleFromValue(i),this.set("value",i),this._setTimesWrappedFromValue(i);return}i=this._getValueFromAngle(a),this._prevAng=a,this._handleValuesBeyondMinMax(t,i)},_handleValuesBeyondMinMax:function(e,t){t>=this._minValue&&t<=this._maxValue?(this.set("value",t),e.currentTarget===this._ringNode&&this._dd1._handleMouseDownEvent(e)):t>this._maxValue?(this.set("value",this._maxValue),e.type==="gesturemovestart"&&(this._prevAng=this._getAngleFromValue(this._maxValue))):tthis._minValue&&e=t&&e<=n}}),e.Dial=o},"3.7.1",{requires:["widget","dd-drag","event-mouseenter","event-move","event-key","transition","intl"],lang:["en","es"],skinnable:!0});
+YUI.add("dial",function(e,t){function o(e){o.superclass.constructor.apply(this,arguments)}function u(t){return e.ClassNameManager.getClassName(o.NAME,t)}var n=!1;e.UA.ie&&e.UA.ie<9&&(n=!0);var r=e.Lang,i=e.Widget,s=e.Node;o.NAME="dial",o.ATTRS={min:{value:-220},max:{value:220},diameter:{value:100},handleDiameter:{value:.2},markerDiameter:{value:.1},centerButtonDiameter:{value:.5},value:{value:0,validator:function(e){return this._validateValue(e)}},minorStep:{value:1},majorStep:{value:10},stepsPerRevolution:{value:100},decimalPlaces:{value:0},strings:{valueFn:function(){return e.Intl.get("dial")}},handleDistance:{value:.75}},o.CSS_CLASSES={label:u("label"),labelString:u("label-string"),valueString:u("value-string"),northMark:u("north-mark"),ring:u("ring"),ringVml:u("ring-vml"),marker:u("marker"),markerVml:u("marker-vml"),markerMaxMin:u("marker-max-min"),centerButton:u("center-button"),centerButtonVml:u("center-button-vml"),resetString:u("reset-string"),handle:u("handle"),handleVml:u("handle-vml"),hidden:u("hidden"),dragging:e.ClassNameManager.getClassName("dd-dragging")},o.LABEL_TEMPLATE='{label}',n===!1?(o.RING_TEMPLATE='',o.MARKER_TEMPLATE='',o.CENTER_BUTTON_TEMPLATE='{resetStr}',o.HANDLE_TEMPLATE=''):(o.RING_TEMPLATE=''+'