-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 0)if(o.isString&&i[t])a=!0;else if(o.isObject(t))for(s in i)if(i.hasOwnProperty(s)&&t[s]){a=!0;break}a&&r._redraw()},_x:0,_y:0,getXY:function(){var t=e.one(this._node),n;return t&&(n=t.getXY()),n},initializer:function(){var e=this.get("render"),t=this.get("visible")?"visible":"hidden";this._shapes={},this._contentBounds={left:0,top:0,right:0,bottom:0},this._gradients={},this._node=v.createElement("div"),this._node.style.position="absolute",this._node.style.left=this.get("x")+"px",this._node.style.top=this.get("y")+"px",this._node.style.visibility=t,this._contentNode=this._createGraphics(),this._contentNode.style.visibility=t,this._contentNode.setAttribute("id",this.get("id")),this._node.appendChild(this._contentNode),e&&this.render(e)},render:function(t){var n=e.one(t),r=this.get("width")||parseInt(n.getComputedStyle("width"),10),i=this.get("height")||parseInt(n.getComputedStyle("height"),10);return n=n||e.one(v.body),n.append(this._node),this.parentNode=n,this.set("width",r),this.set("height",i),this},destroy:function(){this.removeAllShapes(),this._contentNode&&(this._removeChildren(this._contentNode),this._contentNode.parentNode&&this._contentNode.parentNode.removeChild(this._contentNode),this._contentNode=null),this._node&&(this._removeChildren(this._node),e.one(this._node).remove(!0),this._node=null)},addShape:function(e){e.graphic=this,this.get("visible")||(e.visible=!1);var t=this._getShapeClass(e.type),n=new t(e);return this._appendShape(n),n},_appendShape:function(e){var t=e.node,n=this._frag||this._contentNode;this.get("autoDraw")?n.appendChild(t):this._getDocFrag().appendChild(t)},removeShape:function(e){return e instanceof f||o.isString(e)&&(e=this._shapes[e]),e&&e instanceof f&&(e._destroy(),delete this._shapes[e.get("id")]),this.get("autoDraw")&&this._redraw(),e},removeAllShapes:function(){var e=this._shapes,t;for(t in e)e.hasOwnProperty(t)&&e[t]._destroy();this._shapes={}},_removeChildren:function(e){if(e.hasChildNodes()){var t;while(e.firstChild)t=e.firstChild,this._removeChildren(t),e.removeChild(t)}},clear:function(){this.removeAllShapes()},_toggleVisible:function(e){var t,n=this._shapes,r=e?"visible":"hidden";if(n)for(t in n)n.hasOwnProperty(t)&&n[t].set("visible",e);this._contentNode&&(this._contentNode.style.visibility=r),this._node&&(this._node.style.visibility=r)},_getShapeClass:function(e){var t=this._shapeClass[e];return t?t:e},_shapeClass:{circle:e.SVGCircle,rect:e.SVGRect,path:e.SVGPath,ellipse:e.SVGEllipse,pieslice:e.SVGPieSlice},getShapeById:function(e){var t=this._shapes[e];return t},batch:function(e){var t=this.get("autoDraw");this.set("autoDraw",!1),e(),this.set("autoDraw",t)},_getDocFrag:function(){return this._frag||(this._frag=v.createDocumentFragment()),this._frag},_redraw:function(){var t=this.get("autoSize"),n=this.get("preserveAspectRatio"),r=this.get("resizeDown")?this._getUpdatedContentBounds():this._contentBounds,i=r.left,s=r.right,o=r.top,u=r.bottom,a=s-i,f=u-o,l,c,h,p,d;t?t=="sizeContentToGraphic"?(d=e.one(this._node),l=parseFloat(d.getComputedStyle("width")),c=parseFloat(d.getComputedStyle("height")),h=p=0,this._contentNode.setAttribute("preserveAspectRatio",n)):(l=a,c=f,h=i,p=o,this._state.width=a,this._state.height=f,this._node&&(this._node.style.width=a+"px",this._node.style.height=f+"px")):(l=a,c=f
-,h=i,p=o),this._contentNode&&(this._contentNode.style.left=h+"px",this._contentNode.style.top=p+"px",this._contentNode.setAttribute("width",l),this._contentNode.setAttribute("height",c),this._contentNode.style.width=l+"px",this._contentNode.style.height=c+"px",this._contentNode.setAttribute("viewBox",""+i+" "+o+" "+a+" "+f+"")),this._frag&&(this._contentNode&&this._contentNode.appendChild(this._frag),this._frag=null)},addToRedrawQueue:function(e){var t,n;this._shapes[e.get("id")]=e,this.get("resizeDown")||(t=e.getBounds(),n=this._contentBounds,n.left=n.left A string containing, in order, transform operations applied to the shape instance. The `transform` string can contain the following values:"," *"," * Applying transforms through the transform attribute will reset the transform matrix and apply a new transform. The shape class also contains"," * corresponding methods for each transform that will apply the transform to the current matrix. The below code illustrates how you might use the"," * `transform` attribute to instantiate a recangle with a rotation of 45 degrees. The code below would apply `translate` and `rotate` to an existing shape. If a `linear` or `radial` is specified as the fill type. The following additional property is used:"," * Linear gradients also have the following property: Radial gradients have the following additional properties: The corresponding `SVGShape` class implements the following additional properties. The x-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5. Note: Currently, this property is not implemented for corresponding `CanvasShape` and"," * `VMLShape` classes which are used on Android or IE 6 - 8. The y-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5. Note: Currently, this property is not implemented for corresponding `CanvasShape` and `VMLShape`"," * classes which are used on Android or IE 6 - 8. These properties are not currently implemented in `CanvasShape` or `VMLShape`. A string containing, in order, transform operations applied to the shape instance. The `transform` string can contain the following values:
- *
- * "," *
"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," *"," * @config stroke"," * @type Object"," */"," stroke: {"," valueFn: \"_getDefaultStroke\",",""," setter: function(val)"," {"," var i,"," stroke,"," wt,"," tmpl = this.get(\"stroke\") || this._getDefaultStroke();"," if(val)"," {"," if(val.hasOwnProperty(\"weight\"))"," {"," wt = parseInt(val.weight, 10);"," if(!isNaN(wt))"," {"," val.weight = wt;"," }"," }"," for(i in val)"," {"," if(val.hasOwnProperty(i))"," {"," tmpl[i] = val[i];"," }"," }"," }"," stroke = tmpl;"," this._strokeFlag = true;"," return stroke;"," }"," },",""," //Not used. Remove in future."," autoSize: {"," value: false"," },",""," // Only implemented in SVG"," // Determines whether the instance will receive mouse events."," //"," // @config pointerEvents"," // @type string"," //"," pointerEvents: {"," value: \"visiblePainted\""," },",""," /**"," * Dom node for the shape."," *"," * @config node"," * @type HTMLElement"," * @readOnly"," */"," node: {"," readOnly: true,",""," getter: function()"," {"," return this.node;"," }"," },",""," /**"," * Represents an SVG Path string. This will be parsed and added to shape's API to represent the SVG data across all"," * implementations. Note that when using VML or SVG implementations, part of this content will be added to the DOM using"," * respective VML/SVG attributes. If your content comes from an untrusted source, you will need to ensure that no"," * malicious code is included in that content."," *"," * @config data"," * @type String"," */"," data: {"," setter: function(val)"," {"," if(this.get(\"node\"))"," {"," this._parsePathData(val);"," }"," return val;"," }"," },",""," /**"," * Reference to the container Graphic."," *"," * @config graphic"," * @type Graphic"," */"," graphic: {"," readOnly: true,",""," getter: function()"," {"," return this._graphic;"," }"," }","};","Y.VMLShape = VMLShape;","/**"," * VML implementation of the `Path` class."," * `VMLPath` is not intended to be used directly. Instead, use the `Path` class."," * If the browser lacks SVG and Canvas"," * capabilities, the `Path` class will point to the `VMLPath` class."," *"," * @module graphics"," * @class VMLPath"," * @extends VMLShape"," */","VMLPath = function()","{"," VMLPath.superclass.constructor.apply(this, arguments);","};","","VMLPath.NAME = \"path\";","Y.extend(VMLPath, Y.VMLShape);","VMLPath.ATTRS = Y.merge(Y.VMLShape.ATTRS, {"," /**"," * Indicates the width of the shape"," *"," * @config width"," * @type Number"," */"," width: {"," getter: function()"," {"," var val = Math.max(this._right - this._left, 0);"," return val;"," }"," },",""," /**"," * Indicates the height of the shape"," *"," * @config height"," * @type Number"," */"," height: {"," getter: function()"," {"," return Math.max(this._bottom - this._top, 0);"," }"," },",""," /**"," * Indicates the path used for the node."," *"," * @config path"," * @type String"," * @readOnly"," */"," path: {"," readOnly: true,",""," getter: function()"," {"," return this._path;"," }"," }","});","Y.VMLPath = VMLPath;","/**"," * VML implementation of the `Rect` class."," * `VMLRect` is not intended to be used directly. Instead, use the `Rect` class."," * If the browser lacks SVG and Canvas"," * capabilities, the `Rect` class will point to the `VMLRect` class."," *"," * @module graphics"," * @class VMLRect"," * @constructor"," */","VMLRect = function()","{"," VMLRect.superclass.constructor.apply(this, arguments);","};","VMLRect.NAME = \"rect\";","Y.extend(VMLRect, Y.VMLShape, {"," /**"," * Indicates the type of shape"," *"," * @property _type"," * @type String"," * @private"," */"," _type: \"rect\"","});","VMLRect.ATTRS = Y.VMLShape.ATTRS;","Y.VMLRect = VMLRect;","/**"," * VML implementation of the `Ellipse` class."," * `VMLEllipse` is not intended to be used directly. Instead, use the `Ellipse` class."," * If the browser lacks SVG and Canvas"," * capabilities, the `Ellipse` class will point to the `VMLEllipse` class."," *"," * @module graphics"," * @class VMLEllipse"," * @constructor"," */","VMLEllipse = function()","{"," VMLEllipse.superclass.constructor.apply(this, arguments);","};","","VMLEllipse.NAME = \"ellipse\";","","Y.extend(VMLEllipse, Y.VMLShape, {"," /**"," * Indicates the type of shape"," *"," * @property _type"," * @type String"," * @private"," */"," _type: \"oval\"","});","VMLEllipse.ATTRS = Y.merge(Y.VMLShape.ATTRS, {"," /**"," * Horizontal radius for the ellipse."," *"," * @config xRadius"," * @type Number"," */"," xRadius: {"," lazyAdd: false,",""," getter: function()"," {"," var val = this.get(\"width\");"," val = Math.round((val/2) * 100)/100;"," return val;"," },",""," setter: function(val)"," {"," var w = val * 2;"," this.set(\"width\", w);"," return val;"," }"," },",""," /**"," * Vertical radius for the ellipse."," *"," * @config yRadius"," * @type Number"," * @readOnly"," */"," yRadius: {"," lazyAdd: false,",""," getter: function()"," {"," var val = this.get(\"height\");"," val = Math.round((val/2) * 100)/100;"," return val;"," },",""," setter: function(val)"," {"," var h = val * 2;"," this.set(\"height\", h);"," return val;"," }"," }","});","Y.VMLEllipse = VMLEllipse;","/**"," * VML implementation of the `Circle` class."," * `VMLCircle` is not intended to be used directly. Instead, use the `Circle` class."," * If the browser lacks SVG and Canvas"," * capabilities, the `Circle` class will point to the `VMLCircle` class."," *"," * @module graphics"," * @class VMLCircle"," * @constructor"," */","VMLCircle = function(cfg)","{"," VMLCircle.superclass.constructor.apply(this, arguments);","};","","VMLCircle.NAME = \"circle\";","","Y.extend(VMLCircle, VMLShape, {"," /**"," * Indicates the type of shape"," *"," * @property _type"," * @type String"," * @private"," */"," _type: \"oval\"","});","","VMLCircle.ATTRS = Y.merge(VMLShape.ATTRS, {"," /**"," * Radius for the circle."," *"," * @config radius"," * @type Number"," */"," radius: {"," lazyAdd: false,",""," value: 0"," },",""," /**"," * Indicates the width of the shape"," *"," * @config width"," * @type Number"," */"," width: {"," setter: function(val)"," {"," this.set(\"radius\", val/2);"," return val;"," },",""," getter: function()"," {"," var radius = this.get(\"radius\"),"," val = radius && radius > 0 ? radius * 2 : 0;"," return val;"," }"," },",""," /**"," * Indicates the height of the shape"," *"," * @config height"," * @type Number"," */"," height: {"," setter: function(val)"," {"," this.set(\"radius\", val/2);"," return val;"," },",""," getter: function()"," {"," var radius = this.get(\"radius\"),"," val = radius && radius > 0 ? radius * 2 : 0;"," return val;"," }"," }","});","Y.VMLCircle = VMLCircle;","/**"," * Draws pie slices"," *"," * @module graphics"," * @class VMLPieSlice"," * @constructor"," */","VMLPieSlice = function()","{"," VMLPieSlice.superclass.constructor.apply(this, arguments);","};","VMLPieSlice.NAME = \"vmlPieSlice\";","Y.extend(VMLPieSlice, Y.VMLShape, Y.mix({"," /**"," * Indicates the type of shape"," *"," * @property _type"," * @type String"," * @private"," */"," _type: \"shape\",",""," /**"," * Change event listener"," *"," * @private"," * @method _updateHandler"," */"," _draw: function(e)"," {"," var x = this.get(\"cx\"),"," y = this.get(\"cy\"),"," startAngle = this.get(\"startAngle\"),"," arc = this.get(\"arc\"),"," radius = this.get(\"radius\");"," this.clear();"," this.drawWedge(x, y, startAngle, arc, radius);"," this.end();"," }"," }, Y.VMLDrawing.prototype));","VMLPieSlice.ATTRS = Y.mix({"," cx: {"," value: 0"," },",""," cy: {"," value: 0"," },"," /**"," * Starting angle in relation to a circle in which to begin the pie slice drawing."," *"," * @config startAngle"," * @type Number"," */"," startAngle: {"," value: 0"," },",""," /**"," * Arc of the slice."," *"," * @config arc"," * @type Number"," */"," arc: {"," value: 0"," },",""," /**"," * Radius of the circle in which the pie slice is drawn"," *"," * @config radius"," * @type Number"," */"," radius: {"," value: 0"," }","}, Y.VMLShape.ATTRS);","Y.VMLPieSlice = VMLPieSlice;","/**"," * VML implementation of the `Graphic` class."," * `VMLGraphic` is not intended to be used directly. Instead, use the `Graphic` class."," * If the browser lacks SVG and Canvas"," * capabilities, the `Graphic` class will point to the `VMLGraphic` class."," *"," * @module graphics"," * @class VMLGraphic"," * @constructor"," */","VMLGraphic = function() {"," VMLGraphic.superclass.constructor.apply(this, arguments);","};","","VMLGraphic.NAME = \"vmlGraphic\";","","VMLGraphic.ATTRS = {"," /**"," * Whether or not to render the `Graphic` automatically after to a specified parent node after init. This can be a Node"," * instance or a CSS selector string."," *"," * @config render"," * @type Node | String"," */"," render: {},",""," /**"," * Unique id for class instance."," *"," * @config id"," * @type String"," */"," id: {"," valueFn: function()"," {"," return Y.guid();"," },",""," setter: function(val)"," {"," var node = this._node;"," if(node)"," {"," node.setAttribute(\"id\", val);"," }"," return val;"," }"," },",""," /**"," * Key value pairs in which a shape instance is associated with its id."," *"," * @config shapes"," * @type Object"," * @readOnly"," */"," shapes: {"," readOnly: true,",""," getter: function()"," {"," return this._shapes;"," }"," },",""," /**"," * Object containing size and coordinate data for the content of a Graphic in relation to the coordSpace node."," *"," * @config contentBounds"," * @type Object"," */"," contentBounds: {"," readOnly: true,",""," getter: function()"," {"," return this._contentBounds;"," }"," },",""," /**"," * The html element that represents to coordinate system of the Graphic instance."," *"," * @config node"," * @type HTMLElement"," */"," node: {"," readOnly: true,",""," getter: function()"," {"," return this._node;"," }"," },",""," /**"," * Indicates the width of the `Graphic`."," *"," * @config width"," * @type Number"," */"," width: {"," setter: function(val)"," {"," if(this._node)"," {"," this._node.style.width = val + \"px\";"," }"," return val;"," }"," },",""," /**"," * Indicates the height of the `Graphic`."," *"," * @config height"," * @type Number"," */"," height: {"," setter: function(val)"," {"," if(this._node)"," {"," this._node.style.height = val + \"px\";"," }"," return val;"," }"," },",""," /**"," * Determines the sizing of the Graphic."," *"," * "," *
"," * "," *
"," * "," *
"," *"," *"," * @config autoSize"," * @type Boolean | String"," * @default false"," */"," autoSize: {"," value: false"," },",""," /**"," * Determines how content is sized when width and height attributes or are determined by the dimensions of the parent element. The"," * content contained in the Graphic will be sized to fit with in the Graphic instance's dimensions. When using this"," * setting, the preserveAspectRatio attribute will determine how the contents are sized.width"," * and height attributes or are determined by the dimensions of the parent element. The contents of the"," * Graphic instance are not affected by this setting.autoSize is set to sizeContentToGraphic."," *"," * "," *
"," *"," * @config preserveAspectRatio"," * @type String"," * @default xMidYMid"," */"," preserveAspectRatio: {"," value: \"xMidYMid\""," },",""," /**"," * The contentBounds will resize to greater values but not values. (for performance)"," * When resizing the contentBounds down is desirable, set the resizeDown value to true."," *"," * @config resizeDown"," * @type Boolean"," */"," resizeDown: {"," resizeDown: false"," },",""," /**"," * Indicates the x-coordinate for the instance."," *"," * @config x"," * @type Number"," */"," x: {"," getter: function()"," {"," return this._x;"," },",""," setter: function(val)"," {"," this._x = val;"," if(this._node)"," {"," this._node.style.left = val + \"px\";"," }"," return val;"," }"," },",""," /**"," * Indicates the y-coordinate for the instance."," *"," * @config y"," * @type Number"," */"," y: {"," getter: function()"," {"," return this._y;"," },",""," setter: function(val)"," {"," this._y = val;"," if(this._node)"," {"," this._node.style.top = val + \"px\";"," }"," return val;"," }"," },",""," /**"," * Indicates whether or not the instance will automatically redraw after a change is made to a shape."," * This property will get set to false when batching operations."," *"," * @config autoDraw"," * @type Boolean"," * @default true"," * @private"," */"," autoDraw: {"," value: true"," },",""," visible: {"," value: true,",""," setter: function(val)"," {"," this._toggleVisible(val);"," return val;"," }"," }","};","","Y.extend(VMLGraphic, Y.GraphicBase, {"," /**"," * Sets the value of an attribute."," *"," * @method set"," * @param {String|Object} name The name of the attribute. Alternatively, an object of key value pairs can"," * be passed in to set multiple attributes at once."," * @param {Any} value The value to set the attribute to. This value is ignored if an object is received as"," * the name param."," */"," set: function(attr, value)"," {"," var host = this,"," redrawAttrs = {"," autoDraw: true,"," autoSize: true,"," preserveAspectRatio: true,"," resizeDown: true"," },"," key,"," forceRedraw = false;"," AttributeLite.prototype.set.apply(host, arguments);"," if(host._state.autoDraw === true && Y.Object.size(this._shapes) > 0)"," {"," if(Y_LANG.isString && redrawAttrs[attr])"," {"," forceRedraw = true;"," }"," else if(Y_LANG.isObject(attr))"," {"," for(key in redrawAttrs)"," {"," if(redrawAttrs.hasOwnProperty(key) && attr[key])"," {"," forceRedraw = true;"," break;"," }"," }"," }"," }"," if(forceRedraw)"," {"," host._redraw();"," }"," },",""," /**"," * Storage for `x` attribute."," *"," * @property _x"," * @type Number"," * @private"," */"," _x: 0,",""," /**"," * Storage for `y` attribute."," *"," * @property _y"," * @type Number"," * @private"," */"," _y: 0,",""," /**"," * Gets the current position of the graphic instance in page coordinates."," *"," * @method getXY"," * @return Array The XY position of the shape."," */"," getXY: function()"," {"," var node = this.parentNode,"," x = this.get(\"x\"),"," y = this.get(\"y\"),"," xy;"," if(node)"," {"," xy = Y.one(node).getXY();"," xy[0] += x;"," xy[1] += y;"," }"," else"," {"," xy = Y.DOM._getOffset(this._node);"," }"," return xy;"," },",""," /**"," * Initializes the class."," *"," * @method initializer"," * @private"," */"," initializer: function(config) {"," var render = this.get(\"render\"),"," visibility = this.get(\"visible\") ? \"visible\" : \"hidden\";"," this._shapes = {};"," this._contentBounds = {"," left: 0,"," top: 0,"," right: 0,"," bottom: 0"," };"," this._node = this._createGraphic();"," this._node.style.left = this.get(\"x\") + \"px\";"," this._node.style.top = this.get(\"y\") + \"px\";"," this._node.style.visibility = visibility;"," this._node.setAttribute(\"id\", this.get(\"id\"));"," if(render)"," {"," this.render(render);"," }"," },",""," /**"," * Adds the graphics node to the dom."," *"," * @method render"," * @param {HTMLElement} parentNode node in which to render the graphics node into."," */"," render: function(render) {"," var parentNode = Y.one(render),"," w = this.get(\"width\") || parseInt(parentNode.getComputedStyle(\"width\"), 10),"," h = this.get(\"height\") || parseInt(parentNode.getComputedStyle(\"height\"), 10);"," parentNode = parentNode || DOCUMENT.body;"," parentNode.appendChild(this._node);"," this.parentNode = parentNode;"," this.set(\"width\", w);"," this.set(\"height\", h);"," return this;"," },",""," /**"," * Removes all nodes."," *"," * @method destroy"," */"," destroy: function()"," {"," this.clear();"," Y.one(this._node).remove(true);"," },",""," /**"," * Generates a shape instance by type."," *"," * @method addShape"," * @param {Object} cfg attributes for the shape"," * @return Shape"," */"," addShape: function(cfg)"," {"," cfg.graphic = this;"," if(!this.get(\"visible\"))"," {"," cfg.visible = false;"," }"," var shapeClass = this._getShapeClass(cfg.type),"," shape = new shapeClass(cfg);"," this._appendShape(shape);"," shape._appendStrokeAndFill();"," return shape;"," },",""," /**"," * Adds a shape instance to the graphic instance."," *"," * @method _appendShape"," * @param {Shape} shape The shape instance to be added to the graphic."," * @private"," */"," _appendShape: function(shape)"," {"," var node = shape.node,"," parentNode = this._frag || this._node;"," if(this.get(\"autoDraw\") || this.get(\"autoSize\") == \"sizeContentToGraphic\")"," {"," parentNode.appendChild(node);"," }"," else"," {"," this._getDocFrag().appendChild(node);"," }"," },",""," /**"," * Removes a shape instance from from the graphic instance."," *"," * @method removeShape"," * @param {Shape|String} shape The instance or id of the shape to be removed."," */"," removeShape: function(shape)"," {"," if(!(shape instanceof VMLShape))"," {"," if(Y_LANG.isString(shape))"," {"," shape = this._shapes[shape];"," }"," }"," if(shape && (shape instanceof VMLShape))"," {"," shape._destroy();"," this._shapes[shape.get(\"id\")] = null;"," delete this._shapes[shape.get(\"id\")];"," }"," if(this.get(\"autoDraw\"))"," {"," this._redraw();"," }"," },",""," /**"," * Removes all shape instances from the dom."," *"," * @method removeAllShapes"," */"," removeAllShapes: function()"," {"," var shapes = this._shapes,"," i;"," for(i in shapes)"," {"," if(shapes.hasOwnProperty(i))"," {"," shapes[i].destroy();"," }"," }"," this._shapes = {};"," },",""," /**"," * Removes all child nodes."," *"," * @method _removeChildren"," * @param node"," * @private"," */"," _removeChildren: function(node)"," {"," if(node.hasChildNodes())"," {"," var child;"," while(node.firstChild)"," {"," child = node.firstChild;"," this._removeChildren(child);"," node.removeChild(child);"," }"," }"," },",""," /**"," * Clears the graphics object."," *"," * @method clear"," */"," clear: function() {"," this.removeAllShapes();"," this._removeChildren(this._node);"," },",""," /**"," * Toggles visibility"," *"," * @method _toggleVisible"," * @param {Boolean} val indicates visibilitye"," * @private"," */"," _toggleVisible: function(val)"," {"," var i,"," shapes = this._shapes,"," visibility = val ? \"visible\" : \"hidden\";"," if(shapes)"," {"," for(i in shapes)"," {"," if(shapes.hasOwnProperty(i))"," {"," shapes[i].set(\"visible\", val);"," }"," }"," }"," if(this._node)"," {"," this._node.style.visibility = visibility;"," }"," if(this._node)"," {"," this._node.style.visibility = visibility;"," }"," },",""," /**"," * Sets the size of the graphics object."," *"," * @method setSize"," * @param w {Number} width to set for the instance."," * @param h {Number} height to set for the instance."," */"," setSize: function(w, h) {"," w = Math.round(w);"," h = Math.round(h);"," this._node.style.width = w + 'px';"," this._node.style.height = h + 'px';"," },",""," /**"," * Sets the positon of the graphics object."," *"," * @method setPosition"," * @param {Number} x x-coordinate for the object."," * @param {Number} y y-coordinate for the object."," */"," setPosition: function(x, y)"," {"," x = Math.round(x);"," y = Math.round(y);"," this._node.style.left = x + \"px\";"," this._node.style.top = y + \"px\";"," },",""," /**"," * Creates a group element"," *"," * @method _createGraphic"," * @private"," */"," _createGraphic: function() {"," var group = DOCUMENT.createElement('coordOrigin of the Graphic."," *"," * @method _calculateCoordOrigin"," * @param {String} position The position for placement. Possible values are min, mid and max."," * @param {Number} size The total scaled size of the content."," * @param {Number} coordsSize The coordsSize for the Graphic."," * @return Number"," * @private"," */"," _calculateCoordOrigin: function(position, size, coordsSize)"," {"," var coord;"," switch(position)"," {"," case \"min\" :"," coord = 0;"," break;"," case \"mid\" :"," coord = (size - coordsSize)/2;"," break;"," case \"max\" :"," coord = (size - coordsSize);"," break;"," }"," return coord;"," },",""," /**"," * Recalculates and returns the `contentBounds` for the `Graphic` instance."," *"," * @method _getUpdatedContentBounds"," * @return {Object}"," * @private"," */"," _getUpdatedContentBounds: function()"," {"," var bounds,"," i,"," shape,"," queue = this._shapes,"," box = {};"," for(i in queue)"," {"," if(queue.hasOwnProperty(i))"," {"," shape = queue[i];"," bounds = shape.getBounds();"," box.left = Y_LANG.isNumber(box.left) ? Math.min(box.left, bounds.left) : bounds.left;"," box.top = Y_LANG.isNumber(box.top) ? Math.min(box.top, bounds.top) : bounds.top;"," box.right = Y_LANG.isNumber(box.right) ? Math.max(box.right, bounds.right) : bounds.right;"," box.bottom = Y_LANG.isNumber(box.bottom) ? Math.max(box.bottom, bounds.bottom) : bounds.bottom;"," }"," }"," box.left = Y_LANG.isNumber(box.left) ? box.left : 0;"," box.top = Y_LANG.isNumber(box.top) ? box.top : 0;"," box.right = Y_LANG.isNumber(box.right) ? box.right : 0;"," box.bottom = Y_LANG.isNumber(box.bottom) ? box.bottom : 0;"," this._contentBounds = box;"," return box;"," },",""," /**"," * Inserts shape on the top of the tree."," *"," * @method _toFront"," * @param {VMLShape} Shape to add."," * @private"," */"," _toFront: function(shape)"," {"," var contentNode = this._node;"," if(shape instanceof Y.VMLShape)"," {"," shape = shape.get(\"node\");"," }"," if(contentNode && shape)"," {"," contentNode.appendChild(shape);"," }"," },",""," /**"," * Inserts shape as the first child of the content node."," *"," * @method _toBack"," * @param {VMLShape} Shape to add."," * @private"," */"," _toBack: function(shape)"," {"," var contentNode = this._node,"," targetNode;"," if(shape instanceof Y.VMLShape)"," {"," shape = shape.get(\"node\");"," }"," if(contentNode && shape)"," {"," targetNode = contentNode.firstChild;"," if(targetNode)"," {"," contentNode.insertBefore(shape, targetNode);"," }"," else"," {"," contentNode.appendChild(shape);"," }"," }"," }","});","Y.VMLGraphic = VMLGraphic;","","","","}, '3.9.0', {\"requires\": [\"graphics\"]});"];
-_yuitest_coverage["build/graphics-vml/graphics-vml.js"].lines = {"1":0,"3":0,"24":0,"36":0,"76":0,"88":0,"89":0,"91":0,"92":0,"94":0,"128":0,"129":0,"145":0,"146":0,"158":0,"177":0,"178":0,"179":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"189":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"209":0,"223":0,"224":0,"238":0,"239":0,"251":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,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"343":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"367":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"392":0,"394":0,"395":0,"396":0,"397":0,"398":0,"399":0,"417":0,"418":0,"420":0,"422":0,"423":0,"424":0,"425":0,"426":0,"427":0,"428":0,"429":0,"430":0,"431":0,"444":0,"445":0,"458":0,"459":0,"471":0,"479":0,"480":0,"481":0,"482":0,"483":0,"484":0,"485":0,"486":0,"487":0,"488":0,"489":0,"494":0,"495":0,"496":0,"497":0,"498":0,"499":0,"500":0,"501":0,"502":0,"503":0,"506":0,"507":0,"520":0,"521":0,"534":0,"535":0,"547":0,"552":0,"553":0,"554":0,"555":0,"556":0,"557":0,"568":0,"576":0,"577":0,"578":0,"580":0,"582":0,"584":0,"586":0,"589":0,"591":0,"593":0,"595":0,"596":0,"597":0,"598":0,"599":0,"601":0,"602":0,"603":0,"614":0,"615":0,"626":0,"627":0,"638":0,"639":0,"640":0,"641":0,"642":0,"643":0,"644":0,"645":0,"646":0,"659":0,"664":0,"665":0,"668":0,"669":0,"670":0,"671":0,"674":0,"688":0,"696":0,"698":0,"699":0,"700":0,"701":0,"702":0,"704":0,"705":0,"706":0,"707":0,"708":0,"709":0,"721":0,"722":0,"724":0,"726":0,"728":0,"730":0,"732":0,"734":0,"736":0,"737":0,"752":0,"764":0,"766":0,"767":0,"768":0,"769":0,"772":0,"774":0,"793":0,"804":0,"807":0,"808":0,"810":0,"812":0,"814":0,"816":0,"830":0,"831":0,"833":0,"837":0,"838":0,"841":0,"842":0,"843":0,"855":0,"857":0,"859":0,"861":0,"874":0,"895":0,"896":0,"897":0,"898":0,"899":0,"901":0,"903":0,"905":0,"906":0,"907":0,"908":0,"909":0,"910":0,"912":0,"913":0,"914":0,"916":0,"918":0,"920":0,"922":0,"924":0,"926":0,"928":0,"930":0,"931":0,"932":0,"936":0,"938":0,"940":0,"942":0,"943":0,"945":0,"947":0,"949":0,"953":0,"954":0,"956":0,"958":0,"959":0,"960":0,"971":0,"972":0,"983":0,"984":0,"995":0,"999":0,"1011":0,"1013":0,"1014":0,"1026":0,"1037":0,"1039":0,"1051":0,"1064":0,"1074":0,"1076":0,"1077":0,"1078":0,"1079":0,"1081":0,"1083":0,"1084":0,"1085":0,"1086":0,"1087":0,"1088":0,"1089":0,"1090":0,"1091":0,"1092":0,"1093":0,"1095":0,"1096":0,"1097":0,"1099":0,"1100":0,"1103":0,"1105":0,"1109":0,"1110":0,"1112":0,"1113":0,"1116":0,"1118":0,"1129":0,"1131":0,"1133":0,"1143":0,"1145":0,"1146":0,"1147":0,"1149":0,"1151":0,"1152":0,"1153":0,"1154":0,"1155":0,"1156":0,"1157":0,"1158":0,"1159":0,"1161":0,"1162":0,"1164":0,"1165":0,"1166":0,"1168":0,"1169":0,"1170":0,"1172":0,"1173":0,"1176":0,"1178":0,"1182":0,"1183":0,"1185":0,"1186":0,"1189":0,"1190":0,"1194":0,"1196":0,"1198":0,"1200":0,"1213":0,"1220":0,"1222":0,"1224":0,"1226":0,"1227":0,"1228":0,"1229":0,"1230":0,"1231":0,"1233":0,"1235":0,"1238":0,"1239":0,"1241":0,"1243":0,"1244":0,"1245":0,"1246":0,"1248":0,"1249":0,"1250":0,"1252":0,"1256":0,"1258":0,"1269":0,"1271":0,"1273":0,"1280":0,"1282":0,"1284":0,"1285":0,"1286":0,"1288":0,"1290":0,"1292":0,"1294":0,"1298":0,"1305":0,"1306":0,"1308":0,"1310":0,"1313":0,"1314":0,"1315":0,"1318":0,"1320":0,"1321":0,"1322":0,"1323":0,"1325":0,"1326":0,"1328":0,"1330":0,"1332":0,"1336":0,"1337":0,"1338":0,"1341":0,"1343":0,"1344":0,"1348":0,"1349":0,"1355":0,"1357":0,"1358":0,"1372":0,"1394":0,"1396":0,"1398":0,"1400":0,"1402":0,"1406":0,"1408":0,"1409":0,"1411":0,"1413":0,"1414":0,"1415":0,"1416":0,"1417":0,"1418":0,"1419":0,"1420":0,"1421":0,"1422":0,"1423":0,"1425":0,"1426":0,"1427":0,"1428":0,"1429":0,"1430":0,"1431":0,"1432":0,"1433":0,"1434":0,"1435":0,"1437":0,"1439":0,"1441":0,"1442":0,"1455":0,"1456":0,"1457":0,"1458":0,"1459":0,"1461":0,"1473":0,"1486":0,"1488":0,"1490":0,"1492":0,"1496":0,"1497":0,"1500":0,"1501":0,"1502":0,"1504":0,"1505":0,"1507":0,"1508":0,"1511":0,"1513":0,"1515":0,"1522":0,"1523":0,"1525":0,"1527":0,"1528":0,"1530":0,"1531":0,"1533":0,"1535":0,"1537":0,"1540":0,"1541":0,"1554":0,"1556":0,"1557":0,"1596":0,"1597":0,"1598":0,"1610":0,"1611":0,"1623":0,"1624":0,"1636":0,"1647":0,"1658":0,"1669":0,"1680":0,"1694":0,"1696":0,"1698":0,"1719":0,"1721":0,"1722":0,"1723":0,"1724":0,"1725":0,"1726":0,"1739":0,"1740":0,"1751":0,"1771":0,"1790":0,"1791":0,"1792":0,"1794":0,"1809":0,"1814":0,"1816":0,"1817":0,"1818":0,"1819":0,"1821":0,"1836":0,"1847":0,"1849":0,"1851":0,"1852":0,"1853":0,"1854":0,"1856":0,"1857":0,"1858":0,"1860":0,"1863":0,"1864":0,"1866":0,"1868":0,"1869":0,"1879":0,"1880":0,"1882":0,"1893":0,"1894":0,"1896":0,"1909":0,"1917":0,"1919":0,"1920":0,"1921":0,"1923":0,"1924":0,"1925":0,"1926":0,"1927":0,"1929":0,"1931":0,"1935":0,"1939":0,"1950":0,"1951":0,"1953":0,"1957":0,"1969":0,"1971":0,"1973":0,"1974":0,"1976":0,"1978":0,"1979":0,"1981":0,"1986":0,"1997":0,"2034":0,"2037":0,"2038":0,"2039":0,"2040":0,"2041":0,"2043":0,"2045":0,"2046":0,"2051":0,"2084":0,"2089":0,"2090":0,"2092":0,"2094":0,"2124":0,"2126":0,"2128":0,"2130":0,"2188":0,"2192":0,"2195":0,"2197":0,"2199":0,"2201":0,"2203":0,"2207":0,"2208":0,"2210":0,"2212":0,"2215":0,"2216":0,"2253":0,"2257":0,"2259":0,"2261":0,"2262":0,"2264":0,"2267":0,"2269":0,"2271":0,"2275":0,"2276":0,"2277":0,"2308":0,"2324":0,"2326":0,"2328":0,"2343":0,"2347":0,"2358":0,"2360":0,"2363":0,"2364":0,"2365":0,"2375":0,"2376":0,"2389":0,"2405":0,"2409":0,"2420":0,"2422":0,"2424":0,"2425":0,"2435":0,"2436":0,"2447":0,"2449":0,"2452":0,"2454":0,"2464":0,"2476":0,"2477":0,"2478":0,"2483":0,"2484":0,"2485":0,"2501":0,"2502":0,"2503":0,"2508":0,"2509":0,"2510":0,"2514":0,"2525":0,"2527":0,"2530":0,"2532":0,"2543":0,"2565":0,"2566":0,"2571":0,"2573":0,"2586":0,"2587":0,"2592":0,"2594":0,"2598":0,"2606":0,"2608":0,"2610":0,"2611":0,"2629":0,"2634":0,"2635":0,"2636":0,"2639":0,"2677":0,"2688":0,"2689":0,"2692":0,"2694":0,"2713":0,"2718":0,"2719":0,"2721":0,"2723":0,"2739":0,"2754":0,"2769":0,"2782":0,"2784":0,"2786":0,"2799":0,"2801":0,"2803":0,"2876":0,"2881":0,"2882":0,"2884":0,"2886":0,"2899":0,"2904":0,"2905":0,"2907":0,"2909":0,"2931":0,"2932":0,"2937":0,"2949":0,"2958":0,"2959":0,"2961":0,"2963":0,"2965":0,"2967":0,"2969":0,"2971":0,"2972":0,"2977":0,"2979":0,"3009":0,"3013":0,"3015":0,"3016":0,"3017":0,"3021":0,"3023":0,"3033":0,"3035":0,"3036":0,"3042":0,"3043":0,"3044":0,"3045":0,"3046":0,"3047":0,"3049":0,"3060":0,"3063":0,"3064":0,"3065":0,"3066":0,"3067":0,"3068":0,"3078":0,"3079":0,"3091":0,"3092":0,"3094":0,"3096":0,"3098":0,"3099":0,"3100":0,"3112":0,"3114":0,"3116":0,"3120":0,"3132":0,"3134":0,"3136":0,"3139":0,"3141":0,"3142":0,"3143":0,"3145":0,"3147":0,"3158":0,"3160":0,"3162":0,"3164":0,"3167":0,"3179":0,"3181":0,"3182":0,"3184":0,"3185":0,"3186":0,"3197":0,"3198":0,"3210":0,"3213":0,"3215":0,"3217":0,"3219":0,"3223":0,"3225":0,"3227":0,"3229":0,"3241":0,"3242":0,"3243":0,"3244":0,"3256":0,"3257":0,"3258":0,"3259":0,"3269":0,"3270":0,"3284":0,"3297":0,"3310":0,"3311":0,"3313":0,"3315":0,"3341":0,"3342":0,"3343":0,"3344":0,"3356":0,"3358":0,"3360":0,"3372":0,"3374":0,"3375":0,"3377":0,"3378":0,"3379":0,"3380":0,"3381":0,"3382":0,"3383":0,"3384":0,"3385":0,"3387":0,"3389":0,"3401":0,"3421":0,"3422":0,"3424":0,"3426":0,"3427":0,"3429":0,"3430":0,"3431":0,"3432":0,"3436":0,"3438":0,"3439":0,"3440":0,"3441":0,"3442":0,"3443":0,"3444":0,"3448":0,"3449":0,"3450":0,"3451":0,"3452":0,"3453":0,"3454":0,"3457":0,"3458":0,"3459":0,"3463":0,"3464":0,"3465":0,"3466":0,"3467":0,"3468":0,"3471":0,"3475":0,"3476":0,"3477":0,"3479":0,"3481":0,"3482":0,"3484":0,"3486":0,"3502":0,"3503":0,"3506":0,"3507":0,"3509":0,"3510":0,"3512":0,"3513":0,"3515":0,"3527":0,"3532":0,"3534":0,"3536":0,"3537":0,"3538":0,"3539":0,"3540":0,"3541":0,"3544":0,"3545":0,"3546":0,"3547":0,"3548":0,"3549":0,"3561":0,"3562":0,"3564":0,"3566":0,"3568":0,"3581":0,"3583":0,"3585":0,"3587":0,"3589":0,"3590":0,"3592":0,"3596":0,"3601":0};
-_yuitest_coverage["build/graphics-vml/graphics-vml.js"].functions = {"VMLDrawing:24":0,"_round:74":0,"_addToPath:86":0,"curveTo:127":0,"relativeCurveTo:144":0,"_curveTo:157":0,"quadraticCurveTo:222":0,"relativeQuadraticCurveTo:237":0,"_quadraticCurveTo:250":0,"drawRect:296":0,"drawRoundRect:319":0,"drawCircle:342":0,"drawEllipse:366":0,"drawDiamond:390":0,"drawWedge:415":0,"lineTo:442":0,"relativeLineTo:456":0,"_lineTo:470":0,"moveTo:518":0,"relativeMoveTo:532":0,"_moveTo:546":0,"_closePath:566":0,"end:612":0,"closePath:624":0,"clear:636":0,"getBezierData:658":0,"_setCurveBoundingBox:686":0,"_trackSize:720":0,"VMLShape:764":0,"init:791":0,"initializer:802":0,"_setGraphic:828":0,"_appendStrokeAndFill:853":0,"createNode:872":0,"addClass:969":0,"removeClass:981":0,"getXY:993":0,"setXY:1009":0,"contains:1024":0,"compareTo:1036":0,"test:1049":0,"_getStrokeProps:1062":0,"_strokeChangeHandler:1127":0,"_getFillProps:1211":0,"_fillChangeHandler:1267":0,"_updateFillNode:1353":0,"_getGradientFill:1370":0,"_addTransform:1453":0,"_updateTransform:1471":0,"_getSkewOffsetValue:1552":0,"translate:1594":0,"translateX:1608":0,"translateY:1621":0,"skew:1634":0,"skewX:1645":0,"skewY:1656":0,"rotate:1667":0,"scale:1678":0,"on:1692":0,"_updateHandler:1717":0,"_createGraphicNode:1737":0,"_getDefaultFill:1750":0,"_getDefaultStroke:1769":0,"set:1788":0,"getBounds:1807":0,"_getContentRect:1834":0,"toFront:1877":0,"toBack:1891":0,"_parsePathData:1907":0,"destroy:1948":0,"_destroy:1967":0,"valueFn:1995":0,"setter:2032":0,"getter:2049":0,"valueFn:2082":0,"setter:2087":0,"setter:2123":0,"setter:2186":0,"setter:2251":0,"getter:2306":0,"setter:2322":0,"getter:2341":0,"VMLPath:2358":0,"getter:2373":0,"getter:2387":0,"getter:2403":0,"VMLRect:2420":0,"VMLEllipse:2447":0,"getter:2474":0,"setter:2481":0,"getter:2499":0,"setter:2506":0,"VMLCircle:2525":0,"setter:2563":0,"getter:2569":0,"setter:2584":0,"getter:2590":0,"VMLPieSlice:2606":0,"_draw:2627":0,"VMLGraphic:2688":0,"valueFn:2711":0,"setter:2716":0,"getter:2737":0,"getter:2752":0,"getter:2767":0,"setter:2780":0,"setter:2797":0,"getter:2874":0,"setter:2879":0,"getter:2897":0,"setter:2902":0,"setter:2929":0,"set:2947":0,"getXY:3007":0,"initializer:3032":0,"render:3059":0,"destroy:3076":0,"addShape:3089":0,"_appendShape:3110":0,"removeShape:3130":0,"removeAllShapes:3156":0,"_removeChildren:3177":0,"clear:3196":0,"_toggleVisible:3208":0,"setSize:3240":0,"setPosition:3254":0,"_createGraphic:3268":0,"_createGraphicNode:3282":0,"getShapeById:3295":0,"_getShapeClass:3308":0,"batch:3339":0,"_getDocFrag:3354":0,"addToRedrawQueue:3370":0,"_redraw:3399":0,"_calculateCoordOrigin:3500":0,"_getUpdatedContentBounds:3525":0,"_toFront:3559":0,"_toBack:3579":0,"(anonymous 1):1":0};
-_yuitest_coverage["build/graphics-vml/graphics-vml.js"].coveredLines = 935;
-_yuitest_coverage["build/graphics-vml/graphics-vml.js"].coveredFunctions = 139;
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 1);
-YUI.add('graphics-vml', function (Y, NAME) {
-
-_yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "(anonymous 1)", 1);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 3);
-var IMPLEMENTATION = "vml",
- SHAPE = "shape",
- SPLITPATHPATTERN = /[a-z][^a-z]*/ig,
- SPLITARGSPATTERN = /[-]?[0-9]*[0-9|\.][0-9]*/g,
- Y_LANG = Y.Lang,
- IS_NUM = Y_LANG.isNumber,
- IS_ARRAY = Y_LANG.isArray,
- IS_STRING = Y_LANG.isString,
- Y_DOM = Y.DOM,
- Y_SELECTOR = Y.Selector,
- DOCUMENT = Y.config.doc,
- AttributeLite = Y.AttributeLite,
- VMLShape,
- VMLCircle,
- VMLPath,
- VMLRect,
- VMLEllipse,
- VMLGraphic,
- VMLPieSlice,
- _getClassName = Y.ClassNameManager.getClassName;
-
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 24);
-function VMLDrawing() {}
-
-/**
- * VML implementation of the `Drawing` class.
- * `VMLDrawing` is not intended to be used directly. Instead, use the `Drawing` class.
- * If the browser lacks SVG and Canvas
- * capabilities, the `Drawing` class will point to the `VMLDrawing` class.
- *
- * @module graphics
- * @class VMLDrawing
- * @constructor
- */
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 36);
-VMLDrawing.prototype = {
- /**
- * Maps path to methods
- *
- * @property _pathSymbolToMethod
- * @type Object
- * @private
- */
- _pathSymbolToMethod: {
- M: "moveTo",
- m: "relativeMoveTo",
- L: "lineTo",
- l: "relativeLineTo",
- C: "curveTo",
- c: "relativeCurveTo",
- Q: "quadraticCurveTo",
- q: "relativeQuadraticCurveTo",
- z: "closePath",
- Z: "closePath"
- },
-
- /**
- * Value for rounding up to coordsize
- *
- * @property _coordSpaceMultiplier
- * @type Number
- * @private
- */
- _coordSpaceMultiplier: 100,
-
- /**
- * Rounds dimensions and position values based on the coordinate space.
- *
- * @method _round
- * @param {Number} The value for rounding
- * @return Number
- * @private
- */
- _round:function(val)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_round", 74);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 76);
-return Math.round(val * this._coordSpaceMultiplier);
- },
-
- /**
- * Concatanates the path.
- *
- * @method _addToPath
- * @param {String} val The value to add to the path string.
- * @private
- */
- _addToPath: function(val)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_addToPath", 86);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 88);
-this._path = this._path || "";
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 89);
-if(this._movePath)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 91);
-this._path += this._movePath;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 92);
-this._movePath = null;
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 94);
-this._path += val;
- },
-
- /**
- * Current x position of the drawing.
- *
- * @property _currentX
- * @type Number
- * @private
- */
- _currentX: 0,
-
- /**
- * Current y position of the drqwing.
- *
- * @property _currentY
- * @type Number
- * @private
- */
- _currentY: 0,
-
- /**
- * Draws a bezier curve.
- *
- * @method curveTo
- * @param {Number} cp1x x-coordinate for the first control point.
- * @param {Number} cp1y y-coordinate for the first control point.
- * @param {Number} cp2x x-coordinate for the second control point.
- * @param {Number} cp2y y-coordinate for the second control point.
- * @param {Number} x x-coordinate for the end point.
- * @param {Number} y y-coordinate for the end point.
- * @chainable
- */
- curveTo: function() {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "curveTo", 127);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 128);
-this._curveTo.apply(this, [Y.Array(arguments), false]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 129);
-return this;
- },
-
- /**
- * Draws a bezier curve.
- *
- * @method relativeCurveTo
- * @param {Number} cp1x x-coordinate for the first control point.
- * @param {Number} cp1y y-coordinate for the first control point.
- * @param {Number} cp2x x-coordinate for the second control point.
- * @param {Number} cp2y y-coordinate for the second control point.
- * @param {Number} x x-coordinate for the end point.
- * @param {Number} y y-coordinate for the end point.
- * @chainable
- */
- relativeCurveTo: function() {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "relativeCurveTo", 144);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 145);
-this._curveTo.apply(this, [Y.Array(arguments), true]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 146);
-return this;
- },
-
- /**
- * Implements curveTo methods.
- *
- * @method _curveTo
- * @param {Array} args The arguments to be used.
- * @param {Boolean} relative Indicates whether or not to use relative coordinates.
- * @private
- */
- _curveTo: function(args, relative) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_curveTo", 157);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 158);
-var w,
- h,
- x,
- y,
- cp1x,
- cp1y,
- cp2x,
- cp2y,
- pts,
- right,
- left,
- bottom,
- top,
- i,
- len,
- path,
- command = relative ? " v " : " c ",
- relativeX = relative ? parseFloat(this._currentX) : 0,
- relativeY = relative ? parseFloat(this._currentY) : 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 177);
-len = args.length - 5;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 178);
-path = command;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 179);
-for(i = 0; i < len; i = i + 6)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 181);
-cp1x = parseFloat(args[i]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 182);
-cp1y = parseFloat(args[i + 1]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 183);
-cp2x = parseFloat(args[i + 2]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 184);
-cp2y = parseFloat(args[i + 3]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 185);
-x = parseFloat(args[i + 4]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 186);
-y = parseFloat(args[i + 5]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 187);
-if(i > 0)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 189);
-path = path + ", ";
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 191);
-path = path + this._round(cp1x) + ", " + this._round(cp1y) + ", " + this._round(cp2x) + ", " + this._round(cp2y) + ", " + this._round(x) + ", " + this._round(y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 192);
-cp1x = cp1x + relativeX;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 193);
-cp1y = cp1y + relativeY;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 194);
-cp2x = cp2x + relativeX;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 195);
-cp2y = cp2y + relativeY;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 196);
-x = x + relativeX;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 197);
-y = y + relativeY;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 198);
-right = Math.max(x, Math.max(cp1x, cp2x));
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 199);
-bottom = Math.max(y, Math.max(cp1y, cp2y));
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 200);
-left = Math.min(x, Math.min(cp1x, cp2x));
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 201);
-top = Math.min(y, Math.min(cp1y, cp2y));
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 202);
-w = Math.abs(right - left);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 203);
-h = Math.abs(bottom - top);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 204);
-pts = [[this._currentX, this._currentY] , [cp1x, cp1y], [cp2x, cp2y], [x, y]];
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 205);
-this._setCurveBoundingBox(pts, w, h);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 206);
-this._currentX = x;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 207);
-this._currentY = y;
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 209);
-this._addToPath(path);
- },
-
- /**
- * Draws a quadratic bezier curve.
- *
- * @method quadraticCurveTo
- * @param {Number} cpx x-coordinate for the control point.
- * @param {Number} cpy y-coordinate for the control point.
- * @param {Number} x x-coordinate for the end point.
- * @param {Number} y y-coordinate for the end point.
- * @chainable
- */
- quadraticCurveTo: function() {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "quadraticCurveTo", 222);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 223);
-this._quadraticCurveTo.apply(this, [Y.Array(arguments), false]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 224);
-return this;
- },
-
- /**
- * Draws a quadratic bezier curve relative to the current position.
- *
- * @method relativeQuadraticCurveTo
- * @param {Number} cpx x-coordinate for the control point.
- * @param {Number} cpy y-coordinate for the control point.
- * @param {Number} x x-coordinate for the end point.
- * @param {Number} y y-coordinate for the end point.
- * @chainable
- */
- relativeQuadraticCurveTo: function() {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "relativeQuadraticCurveTo", 237);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 238);
-this._quadraticCurveTo.apply(this, [Y.Array(arguments), true]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 239);
-return this;
- },
-
- /**
- * Implements quadraticCurveTo methods.
- *
- * @method _quadraticCurveTo
- * @param {Array} args The arguments to be used.
- * @param {Boolean} relative Indicates whether or not to use relative coordinates.
- * @private
- */
- _quadraticCurveTo: function(args, relative) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_quadraticCurveTo", 250);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 251);
-var cpx,
- cpy,
- cp1x,
- cp1y,
- cp2x,
- cp2y,
- x,
- y,
- currentX = this._currentX,
- currentY = this._currentY,
- i,
- len = args.length - 3,
- bezierArgs = [],
- relativeX = relative ? parseFloat(this._currentX) : 0,
- relativeY = relative ? parseFloat(this._currentY) : 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 266);
-for(i = 0; i < len; i = i + 4)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 268);
-cpx = parseFloat(args[i]) + relativeX;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 269);
-cpy = parseFloat(args[i + 1]) + relativeY;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 270);
-x = parseFloat(args[i + 2]) + relativeX;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 271);
-y = parseFloat(args[i + 3]) + relativeY;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 272);
-cp1x = currentX + 0.67*(cpx - currentX);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 273);
-cp1y = currentY + 0.67*(cpy - currentY);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 274);
-cp2x = cp1x + (x - currentX) * 0.34;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 275);
-cp2y = cp1y + (y - currentY) * 0.34;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 276);
-bezierArgs.push(cp1x);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 277);
-bezierArgs.push(cp1y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 278);
-bezierArgs.push(cp2x);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 279);
-bezierArgs.push(cp2y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 280);
-bezierArgs.push(x);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 281);
-bezierArgs.push(y);
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 283);
-this._curveTo.apply(this, [bezierArgs, false]);
- },
-
- /**
- * Draws a rectangle.
- *
- * @method drawRect
- * @param {Number} x x-coordinate
- * @param {Number} y y-coordinate
- * @param {Number} w width
- * @param {Number} h height
- * @chainable
- */
- drawRect: function(x, y, w, h) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "drawRect", 296);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 297);
-this.moveTo(x, y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 298);
-this.lineTo(x + w, y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 299);
-this.lineTo(x + w, y + h);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 300);
-this.lineTo(x, y + h);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 301);
-this.lineTo(x, y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 302);
-this._currentX = x;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 303);
-this._currentY = y;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 304);
-return this;
- },
-
- /**
- * Draws a rectangle with rounded corners.
- *
- * @method drawRect
- * @param {Number} x x-coordinate
- * @param {Number} y y-coordinate
- * @param {Number} w width
- * @param {Number} h height
- * @param {Number} ew width of the ellipse used to draw the rounded corners
- * @param {Number} eh height of the ellipse used to draw the rounded corners
- * @chainable
- */
- drawRoundRect: function(x, y, w, h, ew, eh) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "drawRoundRect", 319);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 320);
-this.moveTo(x, y + eh);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 321);
-this.lineTo(x, y + h - eh);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 322);
-this.quadraticCurveTo(x, y + h, x + ew, y + h);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 323);
-this.lineTo(x + w - ew, y + h);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 324);
-this.quadraticCurveTo(x + w, y + h, x + w, y + h - eh);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 325);
-this.lineTo(x + w, y + eh);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 326);
-this.quadraticCurveTo(x + w, y, x + w - ew, y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 327);
-this.lineTo(x + ew, y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 328);
-this.quadraticCurveTo(x, y, x, y + eh);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 329);
-return this;
- },
-
- /**
- * Draws a circle. Used internally by `CanvasCircle` class.
- *
- * @method drawCircle
- * @param {Number} x y-coordinate
- * @param {Number} y x-coordinate
- * @param {Number} r radius
- * @chainable
- * @protected
- */
- drawCircle: function(x, y, radius) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "drawCircle", 342);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 343);
-var startAngle = 0,
- endAngle = 360,
- circum = radius * 2;
-
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 347);
-endAngle *= 65535;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 348);
-this._drawingComplete = false;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 349);
-this._trackSize(x + circum, y + circum);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 350);
-this.moveTo((x + circum), (y + radius));
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 351);
-this._addToPath(" ae " + this._round(x + radius) + ", " + this._round(y + radius) + ", " + this._round(radius) + ", " + this._round(radius) + ", " + startAngle + ", " + endAngle);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 352);
-return this;
- },
-
- /**
- * Draws an ellipse.
- *
- * @method drawEllipse
- * @param {Number} x x-coordinate
- * @param {Number} y y-coordinate
- * @param {Number} w width
- * @param {Number} h height
- * @chainable
- * @protected
- */
- drawEllipse: function(x, y, w, h) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "drawEllipse", 366);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 367);
-var startAngle = 0,
- endAngle = 360,
- radius = w * 0.5,
- yRadius = h * 0.5;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 371);
-endAngle *= 65535;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 372);
-this._drawingComplete = false;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 373);
-this._trackSize(x + w, y + h);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 374);
-this.moveTo((x + w), (y + yRadius));
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 375);
-this._addToPath(" ae " + this._round(x + radius) + ", " + this._round(x + radius) + ", " + this._round(y + yRadius) + ", " + this._round(radius) + ", " + this._round(yRadius) + ", " + startAngle + ", " + endAngle);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 376);
-return this;
- },
-
- /**
- * Draws a diamond.
- *
- * @method drawDiamond
- * @param {Number} x y-coordinate
- * @param {Number} y x-coordinate
- * @param {Number} width width
- * @param {Number} height height
- * @chainable
- * @protected
- */
- drawDiamond: function(x, y, width, height)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "drawDiamond", 390);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 392);
-var midWidth = width * 0.5,
- midHeight = height * 0.5;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 394);
-this.moveTo(x + midWidth, y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 395);
-this.lineTo(x + width, y + midHeight);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 396);
-this.lineTo(x + midWidth, y + height);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 397);
-this.lineTo(x, y + midHeight);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 398);
-this.lineTo(x + midWidth, y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 399);
-return this;
- },
-
- /**
- * Draws a wedge.
- *
- * @method drawWedge
- * @param {Number} x x-coordinate of the wedge's center point
- * @param {Number} y y-coordinate of the wedge's center point
- * @param {Number} startAngle starting angle in degrees
- * @param {Number} arc sweep of the wedge. Negative values draw clockwise.
- * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius.
- * @param {Number} yRadius [optional] y radius for wedge.
- * @chainable
- * @private
- */
- drawWedge: function(x, y, startAngle, arc, radius)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "drawWedge", 415);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 417);
-var diameter = radius * 2;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 418);
-if(Math.abs(arc) > 360)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 420);
-arc = 360;
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 422);
-this._currentX = x;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 423);
-this._currentY = y;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 424);
-startAngle *= -65535;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 425);
-arc *= 65536;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 426);
-startAngle = Math.round(startAngle);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 427);
-arc = Math.round(arc);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 428);
-this.moveTo(x, y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 429);
-this._addToPath(" ae " + this._round(x) + ", " + this._round(y) + ", " + this._round(radius) + " " + this._round(radius) + ", " + startAngle + ", " + arc);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 430);
-this._trackSize(diameter, diameter);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 431);
-return this;
- },
-
- /**
- * Draws a line segment from the current drawing position to the specified x and y coordinates.
- *
- * @method lineTo
- * @param {Number} point1 x-coordinate for the end point.
- * @param {Number} point2 y-coordinate for the end point.
- * @chainable
- */
- lineTo: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "lineTo", 442);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 444);
-this._lineTo.apply(this, [Y.Array(arguments), false]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 445);
-return this;
- },
-
- /**
- * Draws a line segment using the current line style from the current drawing position to the relative x and y coordinates.
- *
- * @method relativeLineTo
- * @param {Number} point1 x-coordinate for the end point.
- * @param {Number} point2 y-coordinate for the end point.
- * @chainable
- */
- relativeLineTo: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "relativeLineTo", 456);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 458);
-this._lineTo.apply(this, [Y.Array(arguments), true]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 459);
-return this;
- },
-
- /**
- * Implements lineTo methods.
- *
- * @method _lineTo
- * @param {Array} args The arguments to be used.
- * @param {Boolean} relative Indicates whether or not to use relative coordinates.
- * @private
- */
- _lineTo: function(args, relative) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_lineTo", 470);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 471);
-var point1 = args[0],
- i,
- len,
- x,
- y,
- path = relative ? " r " : " l ",
- relativeX = relative ? parseFloat(this._currentX) : 0,
- relativeY = relative ? parseFloat(this._currentY) : 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 479);
-if (typeof point1 == "string" || typeof point1 == "number") {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 480);
-len = args.length - 1;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 481);
-for (i = 0; i < len; i = i + 2) {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 482);
-x = parseFloat(args[i]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 483);
-y = parseFloat(args[i + 1]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 484);
-path += ' ' + this._round(x) + ', ' + this._round(y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 485);
-x = x + relativeX;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 486);
-y = y + relativeY;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 487);
-this._currentX = x;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 488);
-this._currentY = y;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 489);
-this._trackSize.apply(this, [x, y]);
- }
- }
- else
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 494);
-len = args.length;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 495);
-for (i = 0; i < len; i = i + 1) {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 496);
-x = parseFloat(args[i][0]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 497);
-y = parseFloat(args[i][1]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 498);
-path += ' ' + this._round(x) + ', ' + this._round(y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 499);
-x = x + relativeX;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 500);
-y = y + relativeY;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 501);
-this._currentX = x;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 502);
-this._currentY = y;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 503);
-this._trackSize.apply(this, [x, y]);
- }
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 506);
-this._addToPath(path);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 507);
-return this;
- },
-
- /**
- * Moves the current drawing position to specified x and y coordinates.
- *
- * @method moveTo
- * @param {Number} x x-coordinate for the end point.
- * @param {Number} y y-coordinate for the end point.
- * @chainable
- */
- moveTo: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "moveTo", 518);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 520);
-this._moveTo.apply(this, [Y.Array(arguments), false]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 521);
-return this;
- },
-
- /**
- * Moves the current drawing position relative to specified x and y coordinates.
- *
- * @method relativeMoveTo
- * @param {Number} x x-coordinate for the end point.
- * @param {Number} y y-coordinate for the end point.
- * @chainable
- */
- relativeMoveTo: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "relativeMoveTo", 532);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 534);
-this._moveTo.apply(this, [Y.Array(arguments), true]);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 535);
-return this;
- },
-
- /**
- * Implements moveTo methods.
- *
- * @method _moveTo
- * @param {Array} args The arguments to be used.
- * @param {Boolean} relative Indicates whether or not to use relative coordinates.
- * @private
- */
- _moveTo: function(args, relative) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_moveTo", 546);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 547);
-var x = parseFloat(args[0]),
- y = parseFloat(args[1]),
- command = relative ? " t " : " m ",
- relativeX = relative ? parseFloat(this._currentX) : 0,
- relativeY = relative ? parseFloat(this._currentY) : 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 552);
-this._movePath = command + this._round(x) + ", " + this._round(y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 553);
-x = x + relativeX;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 554);
-y = y + relativeY;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 555);
-this._trackSize(x, y);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 556);
-this._currentX = x;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 557);
-this._currentY = y;
- },
-
- /**
- * Draws the graphic.
- *
- * @method _draw
- * @private
- */
- _closePath: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_closePath", 566);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 568);
-var fill = this.get("fill"),
- stroke = this.get("stroke"),
- node = this.node,
- w = this.get("width"),
- h = this.get("height"),
- path = this._path,
- pathEnd = "",
- multiplier = this._coordSpaceMultiplier;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 576);
-this._fillChangeHandler();
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 577);
-this._strokeChangeHandler();
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 578);
-if(path)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 580);
-if(fill && fill.color)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 582);
-pathEnd += ' x';
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 584);
-if(stroke)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 586);
-pathEnd += ' e';
- }
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 589);
-if(path)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 591);
-node.path = path + pathEnd;
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 593);
-if(!isNaN(w) && !isNaN(h))
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 595);
-node.coordOrigin = this._left + ", " + this._top;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 596);
-node.coordSize = (w * multiplier) + ", " + (h * multiplier);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 597);
-node.style.position = "absolute";
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 598);
-node.style.width = w + "px";
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 599);
-node.style.height = h + "px";
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 601);
-this._path = path;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 602);
-this._movePath = null;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 603);
-this._updateTransform();
- },
-
- /**
- * Completes a drawing operation.
- *
- * @method end
- * @chainable
- */
- end: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "end", 612);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 614);
-this._closePath();
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 615);
-return this;
- },
-
- /**
- * Ends a fill and stroke
- *
- * @method closePath
- * @chainable
- */
- closePath: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "closePath", 624);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 626);
-this._addToPath(" x e");
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 627);
-return this;
- },
-
- /**
- * Clears the path.
- *
- * @method clear
- * @chainable
- */
- clear: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "clear", 636);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 638);
-this._right = 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 639);
-this._bottom = 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 640);
-this._width = 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 641);
-this._height = 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 642);
-this._left = 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 643);
-this._top = 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 644);
-this._path = "";
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 645);
-this._movePath = null;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 646);
-return this;
- },
-
- /**
- * Returns the points on a curve
- *
- * @method getBezierData
- * @param Array points Array containing the begin, end and control points of a curve.
- * @param Number t The value for incrementing the next set of points.
- * @return Array
- * @private
- */
- getBezierData: function(points, t) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "getBezierData", 658);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 659);
-var n = points.length,
- tmp = [],
- i,
- j;
-
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 664);
-for (i = 0; i < n; ++i){
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 665);
-tmp[i] = [points[i][0], points[i][1]]; // save input
- }
-
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 668);
-for (j = 1; j < n; ++j) {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 669);
-for (i = 0; i < n - j; ++i) {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 670);
-tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 671);
-tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1];
- }
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 674);
-return [ tmp[0][0], tmp[0][1] ];
- },
-
- /**
- * Calculates the bounding box for a curve
- *
- * @method _setCurveBoundingBox
- * @param Array pts Array containing points for start, end and control points of a curve.
- * @param Number w Width used to calculate the number of points to describe the curve.
- * @param Number h Height used to calculate the number of points to describe the curve.
- * @private
- */
- _setCurveBoundingBox: function(pts, w, h)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_setCurveBoundingBox", 686);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 688);
-var i,
- left = this._currentX,
- right = left,
- top = this._currentY,
- bottom = top,
- len = Math.round(Math.sqrt((w * w) + (h * h))),
- t = 1/len,
- xy;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 696);
-for(i = 0; i < len; ++i)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 698);
-xy = this.getBezierData(pts, t * i);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 699);
-left = isNaN(left) ? xy[0] : Math.min(xy[0], left);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 700);
-right = isNaN(right) ? xy[0] : Math.max(xy[0], right);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 701);
-top = isNaN(top) ? xy[1] : Math.min(xy[1], top);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 702);
-bottom = isNaN(bottom) ? xy[1] : Math.max(xy[1], bottom);
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 704);
-left = Math.round(left * 10)/10;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 705);
-right = Math.round(right * 10)/10;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 706);
-top = Math.round(top * 10)/10;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 707);
-bottom = Math.round(bottom * 10)/10;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 708);
-this._trackSize(right, bottom);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 709);
-this._trackSize(left, top);
- },
-
- /**
- * Updates the size of the graphics object
- *
- * @method _trackSize
- * @param {Number} w width
- * @param {Number} h height
- * @private
- */
- _trackSize: function(w, h) {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_trackSize", 720);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 721);
-if (w > this._right) {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 722);
-this._right = w;
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 724);
-if(w < this._left)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 726);
-this._left = w;
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 728);
-if (h < this._top)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 730);
-this._top = h;
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 732);
-if (h > this._bottom)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 734);
-this._bottom = h;
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 736);
-this._width = this._right - this._left;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 737);
-this._height = this._bottom - this._top;
- },
-
- _left: 0,
-
- _right: 0,
-
- _top: 0,
-
- _bottom: 0,
-
- _width: 0,
-
- _height: 0
-};
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 752);
-Y.VMLDrawing = VMLDrawing;
-/**
- * VML implementation of the `Shape` class.
- * `VMLShape` is not intended to be used directly. Instead, use the `Shape` class.
- * If the browser lacks SVG and Canvas
- * capabilities, the `Shape` class will point to the `VMLShape` class.
- *
- * @module graphics
- * @class VMLShape
- * @constructor
- * @param {Object} cfg (optional) Attribute configs
- */
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 764);
-VMLShape = function()
-{
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "VMLShape", 764);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 766);
-this._transforms = [];
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 767);
-this.matrix = new Y.Matrix();
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 768);
-this._normalizedMatrix = new Y.Matrix();
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 769);
-VMLShape.superclass.constructor.apply(this, arguments);
-};
-
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 772);
-VMLShape.NAME = "shape";
-
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 774);
-Y.extend(VMLShape, Y.GraphicBase, Y.mix({
- /**
- * Indicates the type of shape
- *
- * @property _type
- * @type String
- * @private
- */
- _type: "shape",
-
- /**
- * Init method, invoked during construction.
- * Calls `initializer` method.
- *
- * @method init
- * @protected
- */
- init: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "init", 791);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 793);
-this.initializer.apply(this, arguments);
- },
-
- /**
- * Initializes the shape
- *
- * @private
- * @method _initialize
- */
- initializer: function(cfg)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "initializer", 802);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 804);
-var host = this,
- graphic = cfg.graphic,
- data = this.get("data");
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 807);
-host.createNode();
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 808);
-if(graphic)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 810);
-this._setGraphic(graphic);
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 812);
-if(data)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 814);
-host._parsePathData(data);
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 816);
-this._updateHandler();
- },
-
- /**
- * Set the Graphic instance for the shape.
- *
- * @method _setGraphic
- * @param {Graphic | Node | HTMLElement | String} render This param is used to determine the graphic instance. If it is a
- * `Graphic` instance, it will be assigned to the `graphic` attribute. Otherwise, a new Graphic instance will be created
- * and rendered into the dom element that the render represents.
- * @private
- */
- _setGraphic: function(render)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_setGraphic", 828);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 830);
-var graphic;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 831);
-if(render instanceof Y.VMLGraphic)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 833);
-this._graphic = render;
- }
- else
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 837);
-render = Y.one(render);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 838);
-graphic = new Y.VMLGraphic({
- render: render
- });
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 841);
-graphic._appendShape(this);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 842);
-this._graphic = graphic;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 843);
-this._appendStrokeAndFill();
- }
- },
-
- /**
- * Appends fill and stroke nodes to the shape.
- *
- * @method _appendStrokeAndFill
- * @private
- */
- _appendStrokeAndFill: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_appendStrokeAndFill", 853);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 855);
-if(this._strokeNode)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 857);
-this.node.appendChild(this._strokeNode);
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 859);
-if(this._fillNode)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 861);
-this.node.appendChild(this._fillNode);
- }
- },
-
- /**
- * Creates the dom node for the shape.
- *
- * @method createNode
- * @return HTMLElement
- * @private
- */
- createNode: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "createNode", 872);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 874);
-var node,
- concat = this._camelCaseConcat,
- x = this.get("x"),
- y = this.get("y"),
- w = this.get("width"),
- h = this.get("height"),
- id,
- type,
- name = this.name,
- nodestring,
- visibility = this.get("visible") ? "visible" : "hidden",
- strokestring,
- classString,
- stroke,
- endcap,
- opacity,
- joinstyle,
- miterlimit,
- dashstyle,
- fill,
- fillstring;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 895);
-id = this.get("id");
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 896);
-type = this._type == "path" ? "shape" : this._type;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 897);
-classString = _getClassName(SHAPE) + " " + _getClassName(concat(IMPLEMENTATION, SHAPE)) + " " + _getClassName(name) + " " + _getClassName(concat(IMPLEMENTATION, name)) + " " + IMPLEMENTATION + type;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 898);
-stroke = this._getStrokeProps();
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 899);
-fill = this._getFillProps();
-
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 901);
-nodestring = '<' + type + ' xmlns="urn:schemas-microsft.com:vml" id="' + id + '" class="' + classString + '" style="behavior:url(#default#VML);display:inline-block;position:absolute;left:' + x + 'px;top:' + y + 'px;width:' + w + 'px;height:' + h + 'px;visibility:' + visibility + '"';
-
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 903);
-if(stroke && stroke.weight && stroke.weight > 0)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 905);
-endcap = stroke.endcap;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 906);
-opacity = parseFloat(stroke.opacity);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 907);
-joinstyle = stroke.joinstyle;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 908);
-miterlimit = stroke.miterlimit;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 909);
-dashstyle = stroke.dashstyle;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 910);
-nodestring += ' stroked="t" strokecolor="' + stroke.color + '" strokeWeight="' + stroke.weight + 'px"';
-
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 912);
-strokestring = '
- *
- *
Applying transforms through the transform attribute will reset the transform matrix and apply a new transform. The shape class also contains - * corresponding methods for each transform that will apply the transform to the current matrix. The below code illustrates how you might use the - * `transform` attribute to instantiate a recangle with a rotation of 45 degrees.
- var myRect = new Y.Rect({ - type:"rect", - width: 50, - height: 40, - transform: "rotate(45)" - }; - *The code below would apply `translate` and `rotate` to an existing shape.
- - myRect.set("transform", "translate(40, 50) rotate(45)"); - * @config transform - * @type String - */ - transform: { - setter: function(val) - { - _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "setter", 2032); -_yuitest_coverline("build/graphics-vml/graphics-vml.js", 2034); -var i, - len, - transform; - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2037); -this.matrix.init(); - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2038); -this._normalizedMatrix.init(); - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2039); -this._transforms = this.matrix.getTransformArray(val); - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2040); -len = this._transforms.length; - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2041); -for(i = 0;i < len; ++i) - { - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2043); -transform = this._transforms[i]; - } - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2045); -this._transform = val; - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2046); -return val; - }, - - getter: function() - { - _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "getter", 2049); -_yuitest_coverline("build/graphics-vml/graphics-vml.js", 2051); -return this._transform; - } - }, - - /** - * Indicates the x position of shape. - * - * @config x - * @type Number - */ - x: { - value: 0 - }, - - /** - * Indicates the y position of shape. - * - * @config y - * @type Number - */ - y: { - value: 0 - }, - - /** - * Unique id for class instance. - * - * @config id - * @type String - */ - id: { - valueFn: function() - { - _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "valueFn", 2082); -_yuitest_coverline("build/graphics-vml/graphics-vml.js", 2084); -return Y.guid(); - }, - - setter: function(val) - { - _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "setter", 2087); -_yuitest_coverline("build/graphics-vml/graphics-vml.js", 2089); -var node = this.node; - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2090); -if(node) - { - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2092); -node.setAttribute("id", val); - } - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2094); -return val; - } - }, - - /** - * - * @config width - */ - width: { - value: 0 - }, - - /** - * - * @config height - */ - height: { - value: 0 - }, - - /** - * Indicates whether the shape is visible. - * - * @config visible - * @type Boolean - */ - visible: { - value: true, - - setter: function(val){ - _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "setter", 2123); -_yuitest_coverline("build/graphics-vml/graphics-vml.js", 2124); -var node = this.node, - visibility = val ? "visible" : "hidden"; - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2126); -if(node) - { - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2128); -node.style.visibility = visibility; - } - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2130); -return val; - } - }, - - /** - * Contains information about the fill of the shape. - *If a `linear` or `radial` is specified as the fill type. The following additional property is used: - *
Linear gradients also have the following property:
- *Radial gradients have the following additional properties:
- *The corresponding `SVGShape` class implements the following additional properties.
- *The x-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5.
- *Note: Currently, this property is not implemented for corresponding `CanvasShape` and - * `VMLShape` classes which are used on Android or IE 6 - 8.
- *The y-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5.
- *Note: Currently, this property is not implemented for corresponding `CanvasShape` and `VMLShape` - * classes which are used on Android or IE 6 - 8.
- *These properties are not currently implemented in `CanvasShape` or `VMLShape`.
- * - * @config fill - * @type Object - */ - fill: { - valueFn: "_getDefaultFill", - - setter: function(val) - { - _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "setter", 2186); -_yuitest_coverline("build/graphics-vml/graphics-vml.js", 2188); -var i, - fill, - tmpl = this.get("fill") || this._getDefaultFill(); - - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2192); -if(val) - { - //ensure, fill type is solid if color is explicitly passed. - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2195); -if(val.hasOwnProperty("color")) - { - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2197); -val.type = "solid"; - } - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2199); -for(i in val) - { - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2201); -if(val.hasOwnProperty(i)) - { - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2203); -tmpl[i] = val[i]; - } - } - } - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2207); -fill = tmpl; - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2208); -if(fill && fill.color) - { - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2210); -if(fill.color === undefined || fill.color == "none") - { - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2212); -fill.color = null; - } - } - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2215); -this._fillFlag = true; - _yuitest_coverline("build/graphics-vml/graphics-vml.js", 2216); -return fill; - } - }, - - /** - * Contains information about the stroke of the shape. - *width and height attributes or are determined by the dimensions of the parent element. The
- * content contained in the Graphic will be sized to fit with in the Graphic instance's dimensions. When using this
- * setting, the preserveAspectRatio attribute will determine how the contents are sized.width
- * and height attributes or are determined by the dimensions of the parent element. The contents of the
- * Graphic instance are not affected by this setting.autoSize is set to sizeContentToGraphic.
- *
- * coordOrigin of the Graphic.
- *
- * @method _calculateCoordOrigin
- * @param {String} position The position for placement. Possible values are min, mid and max.
- * @param {Number} size The total scaled size of the content.
- * @param {Number} coordsSize The coordsSize for the Graphic.
- * @return Number
- * @private
- */
- _calculateCoordOrigin: function(position, size, coordsSize)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_calculateCoordOrigin", 3500);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 3502);
-var coord;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3503);
-switch(position)
- {
- case "min" :
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3506);
-coord = 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3507);
-break;
- case "mid" :
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3509);
-coord = (size - coordsSize)/2;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3510);
-break;
- case "max" :
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3512);
-coord = (size - coordsSize);
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3513);
-break;
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3515);
-return coord;
- },
-
- /**
- * Recalculates and returns the `contentBounds` for the `Graphic` instance.
- *
- * @method _getUpdatedContentBounds
- * @return {Object}
- * @private
- */
- _getUpdatedContentBounds: function()
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_getUpdatedContentBounds", 3525);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 3527);
-var bounds,
- i,
- shape,
- queue = this._shapes,
- box = {};
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3532);
-for(i in queue)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3534);
-if(queue.hasOwnProperty(i))
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3536);
-shape = queue[i];
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3537);
-bounds = shape.getBounds();
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3538);
-box.left = Y_LANG.isNumber(box.left) ? Math.min(box.left, bounds.left) : bounds.left;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3539);
-box.top = Y_LANG.isNumber(box.top) ? Math.min(box.top, bounds.top) : bounds.top;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3540);
-box.right = Y_LANG.isNumber(box.right) ? Math.max(box.right, bounds.right) : bounds.right;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3541);
-box.bottom = Y_LANG.isNumber(box.bottom) ? Math.max(box.bottom, bounds.bottom) : bounds.bottom;
- }
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3544);
-box.left = Y_LANG.isNumber(box.left) ? box.left : 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3545);
-box.top = Y_LANG.isNumber(box.top) ? box.top : 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3546);
-box.right = Y_LANG.isNumber(box.right) ? box.right : 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3547);
-box.bottom = Y_LANG.isNumber(box.bottom) ? box.bottom : 0;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3548);
-this._contentBounds = box;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3549);
-return box;
- },
-
- /**
- * Inserts shape on the top of the tree.
- *
- * @method _toFront
- * @param {VMLShape} Shape to add.
- * @private
- */
- _toFront: function(shape)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_toFront", 3559);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 3561);
-var contentNode = this._node;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3562);
-if(shape instanceof Y.VMLShape)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3564);
-shape = shape.get("node");
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3566);
-if(contentNode && shape)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3568);
-contentNode.appendChild(shape);
- }
- },
-
- /**
- * Inserts shape as the first child of the content node.
- *
- * @method _toBack
- * @param {VMLShape} Shape to add.
- * @private
- */
- _toBack: function(shape)
- {
- _yuitest_coverfunc("build/graphics-vml/graphics-vml.js", "_toBack", 3579);
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 3581);
-var contentNode = this._node,
- targetNode;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3583);
-if(shape instanceof Y.VMLShape)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3585);
-shape = shape.get("node");
- }
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3587);
-if(contentNode && shape)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3589);
-targetNode = contentNode.firstChild;
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3590);
-if(targetNode)
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3592);
-contentNode.insertBefore(shape, targetNode);
- }
- else
- {
- _yuitest_coverline("build/graphics-vml/graphics-vml.js", 3596);
-contentNode.appendChild(shape);
- }
- }
- }
-});
-_yuitest_coverline("build/graphics-vml/graphics-vml.js", 3601);
-Y.VMLGraphic = VMLGraphic;
-
-
-
-}, '3.9.0', {"requires": ["graphics"]});
diff --git a/lib/yuilib/3.9.0/build/graphics-vml/graphics-vml-min.js b/lib/yuilib/3.9.0/build/graphics-vml/graphics-vml-min.js
deleted file mode 100644
index ae974defabd..00000000000
--- a/lib/yuilib/3.9.0/build/graphics-vml/graphics-vml-min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("graphics-vml",function(e,t){function S(){}var n="vml",r="shape",i=/[a-z][^a-z]*/ig,s=/[-]?[0-9]*[0-9|\.][0-9]*/g,o=e.Lang,u=o.isNumber,a=o.isArray,f=o.isString,l=e.DOM,c=e.Selector,h=e.config.doc,p=e.AttributeLite,d,v,m,g,y,b,w,E=e.ClassNameManager.getClassName;S.prototype={_pathSymbolToMethod:{M:"moveTo",m:"relativeMoveTo",L:"lineTo",l:"relativeLineTo",C:"curveTo",c:"relativeCurveTo",Q:"quadraticCurveTo",q:"relativeQuadraticCurveTo",z:"closePath",Z:"closePath"},_coordSpaceMultiplier:100,_round:function(e){return Math.round(e*this._coordSpaceMultiplier)},_addToPath:function(e){this._path=this._path||"",this._movePath&&(this._path+=this._movePath,this._movePath=null),this._path+=e},_currentX:0,_currentY:0,curveTo:function(){return this._curveTo.apply(this,[e.Array(arguments),!1]),this},relativeCurveTo:function(){return this._curveTo.apply(this,[e.Array(arguments),!0]),this},_curveTo:function(e,t){var n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y=t?" v ":" c ",b=t?parseFloat(this._currentX):0,w=t?parseFloat(this._currentY):0;m=e.length-5,g=y;for(v=0;v360&&(r=360),this._currentX=e,this._currentY=t,n*=-65535,r*=65536,n=Math.round(n),r=Math.round(r),this.moveTo(e,t),this._addToPath(" ae "+this._round(e)+", "+this._round(t)+", "+this._round(i)+" "+this._round(i)+", "+n+", "+r),this._trackSize(s,s),this},lineTo:function(){return this._lineTo.apply(this,[e.Array(arguments),!1]),this},relativeLineTo:function(){return this._lineTo.apply(this,[e.Array(arguments),!0]),this},_lineTo:function(e,t){var n=e[0],r,i,s,o,u=t?" r ":" l ",a=t?parseFloat(this._currentX):0,f=t?parseFloat(this._currentY):0;if(typeof n=="string"||typeof n=="number"){i=e.length-1;for(r=0;rthis._right&&(this._right=e),e 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 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 Execute a function on each item of the list, optionally providing a"," * custom execution context. Default context is the item. The callback signature is Execute a function on each item of the list, optionally providing a"," * custom execution context. Default context is the item. The callback signature is Unlike 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. Additionally, the pass through methods use the item retrieved by the"," * 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.9.0', {\"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 Execute a function on each item of the list, optionally providing a"," * custom execution context. Default context is the item. The callback signature is Unlike 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. Additionally, the pass through methods use the item retrieved by the"," * 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.9.1', {\"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;
@@ -293,4 +293,4 @@ _yuitest_coverline("build/arraylist/arraylist.js", 211);
Y.ArrayList = ArrayList;
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/arraylist/arraylist-debug.js b/lib/yuilib/3.9.1/build/arraylist/arraylist-debug.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/arraylist/arraylist-debug.js
rename to lib/yuilib/3.9.1/build/arraylist/arraylist-debug.js
index e2afef965cd..cb809a7a926 100644
--- a/lib/yuilib/3.9.0/build/arraylist/arraylist-debug.js
+++ b/lib/yuilib/3.9.1/build/arraylist/arraylist-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('arraylist', function (Y, NAME) {
/**
@@ -212,4 +212,4 @@ Y.mix( ArrayList, {
Y.ArrayList = ArrayList;
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/arraylist/arraylist-min.js b/lib/yuilib/3.9.1/build/arraylist/arraylist-min.js
similarity index 87%
rename from lib/yuilib/3.9.0/build/arraylist/arraylist-min.js
rename to lib/yuilib/3.9.1/build/arraylist/arraylist-min.js
index 8b786ab0fd7..f2c702848da 100644
--- a/lib/yuilib/3.9.0/build/arraylist/arraylist-min.js
+++ b/lib/yuilib/3.9.1/build/arraylist/arraylist-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["yui-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/arraylist/arraylist.js b/lib/yuilib/3.9.1/build/arraylist/arraylist.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/arraylist/arraylist.js
rename to lib/yuilib/3.9.1/build/arraylist/arraylist.js
index e2afef965cd..cb809a7a926 100644
--- a/lib/yuilib/3.9.0/build/arraylist/arraylist.js
+++ b/lib/yuilib/3.9.1/build/arraylist/arraylist.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('arraylist', function (Y, NAME) {
/**
@@ -212,4 +212,4 @@ Y.mix( ArrayList, {
Y.ArrayList = ArrayList;
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/arraysort/arraysort-coverage.js b/lib/yuilib/3.9.1/build/arraysort/arraysort-coverage.js
similarity index 96%
rename from lib/yuilib/3.9.0/build/arraysort/arraysort-coverage.js
rename to lib/yuilib/3.9.1/build/arraysort/arraysort-coverage.js
index 61ae002fa55..6fcf5b2f12c 100644
--- a/lib/yuilib/3.9.0/build/arraysort/arraysort-coverage.js
+++ b/lib/yuilib/3.9.1/build/arraysort/arraysort-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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.9.0', {\"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.9.1', {\"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;
@@ -116,4 +116,4 @@ return 0;
};
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/arraysort/arraysort-debug.js b/lib/yuilib/3.9.1/build/arraysort/arraysort-debug.js
similarity index 92%
rename from lib/yuilib/3.9.0/build/arraysort/arraysort-debug.js
rename to lib/yuilib/3.9.1/build/arraysort/arraysort-debug.js
index 83c77a106ef..a47ec2379f8 100644
--- a/lib/yuilib/3.9.0/build/arraysort/arraysort-debug.js
+++ b/lib/yuilib/3.9.1/build/arraysort/arraysort-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('arraysort', function (Y, NAME) {
/**
@@ -63,4 +63,4 @@ Y.ArraySort = {
};
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/arraysort/arraysort-min.js b/lib/yuilib/3.9.1/build/arraysort/arraysort-min.js
similarity index 63%
rename from lib/yuilib/3.9.0/build/arraysort/arraysort-min.js
rename to lib/yuilib/3.9.1/build/arraysort/arraysort-min.js
index 6239a378d62..6e31be8b5ec 100644
--- a/lib/yuilib/3.9.0/build/arraysort/arraysort-min.js
+++ b/lib/yuilib/3.9.1/build/arraysort/arraysort-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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()),e 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. 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 Static default values used to populate callback configuration properties."," * Preconfigured defaults include: 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. 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. 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. 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 Static default values used to populate callback configuration properties."," * Preconfigured defaults include: 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. 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. "," * 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: 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. 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. "," * 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: 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. 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. "," * 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: See the addAttr method, for the complete set of configuration"," * options available for attributes. Object/Classes based on AttributeCore can augment AttributeObservable"," * (with true for overwrite) and AttributeExtras to add attribute event and"," * additional, less commonly used attribute methods, such as `modifyAttr`, `removeAttr` and `reset`. 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. "," * Adds an attribute with the provided configuration to the host object."," * "," * The config argument object supports the following properties:"," * 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. 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) 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. "," * 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. "," * 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. 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. "," * 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."," * "," * NOTE: This method does not isolate the configuration object by merging/cloning."," * The caller is responsible for merging/cloning the configuration object if required."," * "," * 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: See the addAttr method, for the complete set of configuration"," * options available for attributes. Object/Classes based on AttributeCore can augment AttributeObservable"," * (with true for overwrite) and AttributeExtras to add attribute event and"," * additional, less commonly used attribute methods, such as `modifyAttr`, `removeAttr` and `reset`. 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. "," * Adds an attribute with the provided configuration to the host object."," * "," * The config argument object supports the following properties:"," * 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. 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) 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. "," * 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. "," * 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. 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. "," * 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."," * "," * NOTE: This method does not isolate the configuration object by merging/cloning."," * The caller is responsible for merging/cloning the configuration object if required."," * "," * 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."," * -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(){if(this._axesCollection){var e=this._axesCollection,t=0,n=e.length;for(;t 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. 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. 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. 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. 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. 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. By default, the keys contained in the object are: By default, the keys contained in the object are: By default, the keys contained in the object are: By default, the keys contained in the object are:0)throw new n.Exception("Invalid path: "+this.original);o===".."?r++:this.isScoped=!0}else t.push(o)}this.parts=t,this.string=t.join("."),this.depth=r,this.isSimple=e.length===1&&!this.isScoped&&r===0,this.stringModeValue=this.string},n.AST.PartialNameNode=function(e){this.type="PARTIAL_NAME",this.name=e},n.AST.DataNode=function(e){this.type="DATA",this.id=e},n.AST.StringNode=function(e){this.type="STRING",this.string=e,this.stringModeValue=e},n.AST.IntegerNode=function(e){this.type="INTEGER",this.integer=e,this.stringModeValue=Number(e)},n.AST.BooleanNode=function(e){this.type="BOOLEAN",this.bool=e,this.stringModeValue=e==="true"},n.AST.CommentNode=function(e){this.type="comment",this.comment=e}}(),n.Compiler=function(){},n.JavaScriptCompiler=function(){},function(e,t){e.prototype={compiler:e,disassemble:function(){var e=this.opcodes,t,n=[],r,i;for(var s=0,o=e.length;sb?(d=this._getCoordsByOrderAndIndex(r,g,b,n),v.push(d[0]),m.push(d[1])):ya&&(m=d);v=f*d,this._maxSize=r.get(x),v>this._maxSize&&(g=r.get(x)/v,d*=g,m*=g,i*=g,i=Math.max(i,1),this._maxSize=i),m-=d/2;for(a=0;as?e.lineTo(p+Math.cos(h)*s,d+Math.sin(h)*s):l>0&&e.lineTo(p+Math.cos(h)*l,d+Math.sin(h)*l),e.moveTo(r,i)},_getLineDefaults:function(){return{alpha:1,weight:6,lineType:"solid",dashLength:10,gapSpace:10,connectDiscontinuousPoints:!0,discontinuousType:"solid",discontinuousDashLength:10,discontinuousGapSpace:10}}},e.augment(r,e.Attribute),e.Lines=r},"3.9.0");
diff --git a/lib/yuilib/3.9.0/build/series-pie/series-pie-min.js b/lib/yuilib/3.9.0/build/series-pie/series-pie-min.js
deleted file mode 100644
index 5061e8085cf..00000000000
--- a/lib/yuilib/3.9.0/build/series-pie/series-pie-min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("series-pie",function(e,t){var n=e.config,r=n.doc,i=e.ClassNameManager.getClassName,s=i("seriesmarker");e.PieSeries=e.Base.create("pieSeries",e.SeriesBase,[e.Plots],{_map:null,_image:null,_setMap:function(){var e="pieHotSpotMapi_"+Math.round(1e5*Math.random()),t=this.get("graph"),n,i,s;t?i=t.get("contentBox"):(n=this.get("graphic"),i=n.get("node"));if(this._image){i.removeChild(this._image);while(this._areaNodes&&this._areaNodes.length>0)s=this._areaNodes.shift(),this._map.removeChild(s);i.removeChild(this._map)}this._image=r.createElement("img"),this._image.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAABCAYAAAD9yd/wAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABJJREFUeNpiZGBgSGPAAgACDAAIkABoFyloZQAAAABJRU5ErkJggg==",i.appendChild(this._image),this._image.style.position="absolute",this._image.style.left="0px",this._image.style.top="0px",this._image.setAttribute("usemap","#"+e),this._image.style.zIndex=3,this._image.style.opacity=0,this._image.setAttribute("alt","imagemap"),this._map=r.createElement("map"),i.appendChild(this._map),this._map.setAttribute("name",e),this._map.setAttribute("id",e),this._areaNodes=[]},_categoryDisplayName:null,_valueDisplayName:null,addListeners:function(){var t=this.get("categoryAxis"),n=this.get("valueAxis");t&&(t.after("dataReady",e.bind(this._categoryDataChangeHandler,this)),t.after("dataUpdate",e.bind(this._categoryDataChangeHandler,this))),n&&(n.after("dataReady",e.bind(this._valueDataChangeHandler,this)),n.after("dataUpdate",e.bind(this._valueDataChangeHandler,this))),this.after("categoryAxisChange",this.categoryAxisChangeHandler),this.after("valueAxisChange",this.valueAxisChangeHandler),this.after("stylesChange",this._updateHandler),this._visibleChangeHandle=this.after("visibleChange",this._handleVisibleChange)},validate:function(){this.draw(),this._renderered=!0},_categoryAxisChangeHandler:function(t){var n=this.get("categoryAxis");n.after("dataReady",e.bind(this._categoryDataChangeHandler,this)),n.after("dataUpdate",e.bind(this._categoryDataChangeHandler,this))},_valueAxisChangeHandler:function(t){var n=this.get("valueAxis");n.after("dataReady",e.bind(this._valueDataChangeHandler,this)),n.after("dataUpdate",e.bind(this._valueDataChangeHandler,this))},GUID:"pieseries",_categoryDataChangeHandler:function(e){this._rendered&&this.get("categoryKey")&&this.get("valueKey")&&this.draw()},_valueDataChangeHandler:function(e){this._rendered&&this.get("categoryKey")&&this.get("valueKey")&&this.draw()},getTotalValues:function(){var e=this.get("valueAxis").getTotalByKey(this.get("valueKey"));return e},draw:function(){var e=this.get("width"),t=this.get("height");if(isFinite(e)&&isFinite(t)&&e>0&&t>0){this._rendered=!0;if(this._drawing){this._callLater=!0;return}this._drawing=!0,this._callLater=!1,this.drawSeries(),this._drawing=!1,this._callLater?this.draw():this.fire("drawingComplete")}},drawPlots:function(){var t=this.get("valueAxis").getDataByKey(this.get("valueKey")).concat(),n=this.get("categoryAxis").getDataByKey(this.get("categoryKey")).concat(),r=0,i=t.length,s=this.get("styles").marker,o=s.fill.colors,u=s.fill.alphas||["1"],a=s.border.colors,f=[s.border.weight],l=[s.border.alpha],c=f.concat(),h=a.concat(),p=l.concat(),d,v,m=s.padding,g=this.get("graphic"),y=Math.min(g.get("width"),g.get("height")),b=y-(m.left+m.right),w=y-(m.top+m.bottom),E=-90,S=b/2,x=w/2,T=Math.min(S,x),N=0,C,k=0,L,A,O,M,_,D=this.get("graphOrder")||0,P=e.Graphic.NAME=="canvasGraphic";for(;N0){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 s=this.get("graphic"),o,u=e.clone(t);return u.type=u.shape,o=s.addShape(u),o.addClass(i),o},_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._getChart().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 n.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,drawSeries:function(){this.drawPlots()},_getDefaultStyles:function(){var e=this._mergeStyles({marker:this._getPlotDefaults()},this.constructor.superclass._getDefaultStyles());return e}},e.augment(s,e.Attribute),e.Plots=s},"3.9.0");
diff --git a/lib/yuilib/3.9.0/build/series-range/series-range-min.js b/lib/yuilib/3.9.0/build/series-range/series-range-min.js
deleted file mode 100644
index 6dc6a4c400c..00000000000
--- a/lib/yuilib/3.9.0/build/series-range/series-range-min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("series-range",function(e,t){function n(){n.superclass.constructor.apply(this,arguments)}n.NAME="rangeSeries",n.ATTRS={type:{value:"range"},ohlckeys:{valueFn:function(){return{open:"open",high:"high",low:"low",close:"close"}}}},e.extend(n,e.CartesianSeries,{drawSeries:function(){var e=this.get("xcoords"),t=this.get("ycoords"),n=this.get("styles"),r=n.padding,i,s=e.length,o=this.get("width")-(r.left+r.right),u=this.get("ohlckeys"),a=t[u.open],f=t[u.high],l=t[u.low],c=t[u.close],h=o/s,p=h/2;this._drawMarkers(e,a,f,l,c,s,h,p,n)}}),e.RangeSeries=n},"3.9.0",{requires:["series-cartesian"]});
diff --git a/lib/yuilib/3.9.0/build/series-stacked/series-stacked-min.js b/lib/yuilib/3.9.0/build/series-stacked/series-stacked-min.js
deleted file mode 100644
index 9c426933e86..00000000000
--- a/lib/yuilib/3.9.0/build/series-stacked/series-stacked-min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("series-stacked",function(e,t){function r(){}var n=e.Lang;r.prototype={_stacked:!0,_stackCoordinates:function(){this.get("direction")=="vertical"?this._stackXCoords():this._stackYCoords()},_stackXCoords:function(){var e=this.get("order"),t=this.get("type"),r=this.get("seriesTypeCollection"),i=0,s=this.get("xcoords"),o=this.get("ycoords"),u,a,f,l,c=s.concat(),h,p,d=[],v;e>0?(h=r[e-1].get("stackedXCoords"),p=r[e-1].get("stackedYCoords"),u=h.length):u=s.length;for(;i0){f=h[i];if(!n.isNumber(f)){l=e;while(l>-1&&!n.isNumber(f))l-=1,l>-1?f=r[l].get("stackedXCoords")[i]:f=this._leftOrigin}s[i]=s[i]+f}c[i]=s[i]}else d.push(i);this._cleanXNaN(c,o),u=d.length;if(u>0)for(i=0;i0?h[v]:this._leftOrigin,c[v]=Math.max(c[v],a);this.set("stackedXCoords",c),this.set("stackedYCoords",o)},_stackYCoords:function(){var e=this.get("order"),t=this.get("type"),r=this.get("graphic"),i=r.get("height"),s=this.get("seriesTypeCollection"),o=0,u=this.get("xcoords"),a=this.get("ycoords"),f,l,c,h,p=a.concat(),d,v,m=[],g;e>0?(d=s[e-1].get("stackedXCoords"),v=s[e-1].get("stackedYCoords"),f=v.length):f=a.length;for(;o0&&p"," *
"," * @method to "," * @param region {String || Node || HTMLElement || Object} The node or"," * region to align with. Defaults to the viewport region."," * @param regionPoint {String} The point of the region to align with."," * @param point {String} The point of the node aligned to the region. "," * @param resize {Boolean} Whether or not the node should re-align when"," * the window is resized. Defaults to false."," */"," to: function(region, regionPoint, point, syncOnResize) {"," // cache original args for syncing"," this._syncArgs = Y.Array(arguments);",""," if (region.top === undefined) {"," region = Y.one(region).get('region');"," }",""," if (region) {"," var xy = [region.left, region.top],"," offxy = [region.width, region.height],"," points = Align.points,"," node = this._host,"," NULL = null,"," size = node.getAttrs([OFFSET_HEIGHT, OFFSET_WIDTH]),"," nodeoff = [0 - size[OFFSET_WIDTH], 0 - size[OFFSET_HEIGHT]], // reverse offsets"," regionFn0 = regionPoint ? points[regionPoint.charAt(0)]: NULL,"," regionFn1 = (regionPoint && regionPoint !== 'cc') ? points[regionPoint.charAt(1)] : NULL,"," nodeFn0 = point ? points[point.charAt(0)] : NULL,"," nodeFn1 = (point && point !== 'cc') ? points[point.charAt(1)] : NULL;",""," if (regionFn0) {"," xy = regionFn0(xy, offxy, regionPoint);"," }"," if (regionFn1) {"," xy = regionFn1(xy, offxy, regionPoint);"," }",""," if (nodeFn0) {"," xy = nodeFn0(xy, nodeoff, point);"," }"," if (nodeFn1) {"," xy = nodeFn1(xy, nodeoff, point);"," }",""," if (xy && node) {"," node.setXY(xy);"," }"," "," this._resize(syncOnResize);",""," }"," return this;"," },",""," sync: function() {"," this.to.apply(this, this._syncArgs);"," return this;"," },",""," _resize: function(add) {"," var handle = this._handle;"," if (add && !handle) {"," this._handle = Y.on('resize', this._onresize, window, this);"," } else if (!add && handle) {"," handle.detach();"," }",""," },",""," _onresize: function() {"," var self = this;"," setTimeout(function() { // for performance"," self.sync();"," });"," },"," "," /**"," * Aligns the center of a node to the center of another node or region."," * @method center "," * @param region {Node || HTMLElement || Object} optional The node or"," * region to align with. Defaults to the viewport region."," * the window is resized. If centering to viewport, this defaults"," * to true, otherwise default is false."," */"," center: function(region, resize) {"," this.to(region, 'cc', 'cc', resize); "," return this;"," },",""," /**"," * Removes the resize handler, if any. This is called automatically"," * when unplugged from the host node."," * @method destroy "," */"," destroy: function() {"," var handle = this._handle;"," if (handle) {"," handle.detach();"," }"," }"," };",""," Align.points = {"," 't': function(xy, off) {"," return xy;"," },",""," 'r': function(xy, off) {"," return [xy[0] + off[0], xy[1]];"," },",""," 'b': function(xy, off) {"," return [xy[0], xy[1] + off[1]];"," },",""," 'l': function(xy, off) {"," return xy;"," },",""," 'c': function(xy, off, point) {"," var axis = (point[0] === 't' || point[0] === 'b') ? 0 : 1,"," ret, val;",""," if (point === 'cc') {"," ret = [xy[0] + off[0] / 2, xy[1] + off[1] / 2];"," } else {"," val = xy[axis] + off[axis] / 2;"," ret = (axis) ? [xy[0], val] : [val, xy[1]];"," }",""," return ret;"," }"," };",""," Align.NAME = 'Align';"," Align.NS = 'align';",""," Align.prototype.constructor = Align;",""," Y.namespace('Plugin');"," Y.Plugin.Align = Align;","","","","}, '3.9.0', {\"requires\": [\"node-screen\", \"node-pluginhost\"]});"];
+_yuitest_coverage["build/align-plugin/align-plugin.js"].code=["YUI.add('align-plugin', function (Y, NAME) {",""," /**"," * Provides advanced positioning support for Node via a Plugin"," * for centering and alignment. "," * @module align-plugin"," */",""," var OFFSET_WIDTH = 'offsetWidth',"," OFFSET_HEIGHT = 'offsetHeight',"," undefined = undefined;",""," /**"," * Node plugin which can be used to align a node with another node,"," * region, or the viewport."," *"," * @class Plugin.Align"," * @param {Object} User configuration object"," */"," function Align(config) {"," if (config.host) {"," this._host = config.host;"," }"," }"," "," Align.prototype = {"," /**"," * Aligns node with a point on another node or region."," * Possible alignment points are:"," * "," *
"," * @method to "," * @param region {String || Node || HTMLElement || Object} The node or"," * region to align with. Defaults to the viewport region."," * @param regionPoint {String} The point of the region to align with."," * @param point {String} The point of the node aligned to the region. "," * @param resize {Boolean} Whether or not the node should re-align when"," * the window is resized. Defaults to false."," */"," to: function(region, regionPoint, point, syncOnResize) {"," // cache original args for syncing"," this._syncArgs = Y.Array(arguments);",""," if (region.top === undefined) {"," region = Y.one(region).get('region');"," }",""," if (region) {"," var xy = [region.left, region.top],"," offxy = [region.width, region.height],"," points = Align.points,"," node = this._host,"," NULL = null,"," size = node.getAttrs([OFFSET_HEIGHT, OFFSET_WIDTH]),"," nodeoff = [0 - size[OFFSET_WIDTH], 0 - size[OFFSET_HEIGHT]], // reverse offsets"," regionFn0 = regionPoint ? points[regionPoint.charAt(0)]: NULL,"," regionFn1 = (regionPoint && regionPoint !== 'cc') ? points[regionPoint.charAt(1)] : NULL,"," nodeFn0 = point ? points[point.charAt(0)] : NULL,"," nodeFn1 = (point && point !== 'cc') ? points[point.charAt(1)] : NULL;",""," if (regionFn0) {"," xy = regionFn0(xy, offxy, regionPoint);"," }"," if (regionFn1) {"," xy = regionFn1(xy, offxy, regionPoint);"," }",""," if (nodeFn0) {"," xy = nodeFn0(xy, nodeoff, point);"," }"," if (nodeFn1) {"," xy = nodeFn1(xy, nodeoff, point);"," }",""," if (xy && node) {"," node.setXY(xy);"," }"," "," this._resize(syncOnResize);",""," }"," return this;"," },",""," sync: function() {"," this.to.apply(this, this._syncArgs);"," return this;"," },",""," _resize: function(add) {"," var handle = this._handle;"," if (add && !handle) {"," this._handle = Y.on('resize', this._onresize, window, this);"," } else if (!add && handle) {"," handle.detach();"," }",""," },",""," _onresize: function() {"," var self = this;"," setTimeout(function() { // for performance"," self.sync();"," });"," },"," "," /**"," * Aligns the center of a node to the center of another node or region."," * @method center "," * @param region {Node || HTMLElement || Object} optional The node or"," * region to align with. Defaults to the viewport region."," * the window is resized. If centering to viewport, this defaults"," * to true, otherwise default is false."," */"," center: function(region, resize) {"," this.to(region, 'cc', 'cc', resize); "," return this;"," },",""," /**"," * Removes the resize handler, if any. This is called automatically"," * when unplugged from the host node."," * @method destroy "," */"," destroy: function() {"," var handle = this._handle;"," if (handle) {"," handle.detach();"," }"," }"," };",""," Align.points = {"," 't': function(xy, off) {"," return xy;"," },",""," 'r': function(xy, off) {"," return [xy[0] + off[0], xy[1]];"," },",""," 'b': function(xy, off) {"," return [xy[0], xy[1] + off[1]];"," },",""," 'l': function(xy, off) {"," return xy;"," },",""," 'c': function(xy, off, point) {"," var axis = (point[0] === 't' || point[0] === 'b') ? 0 : 1,"," ret, val;",""," if (point === 'cc') {"," ret = [xy[0] + off[0] / 2, xy[1] + off[1] / 2];"," } else {"," val = xy[axis] + off[axis] / 2;"," ret = (axis) ? [xy[0], val] : [val, xy[1]];"," }",""," return ret;"," }"," };",""," Align.NAME = 'Align';"," Align.NS = 'align';",""," Align.prototype.constructor = Align;",""," Y.namespace('Plugin');"," Y.Plugin.Align = Align;","","","","}, '3.9.1', {\"requires\": [\"node-screen\", \"node-pluginhost\"]});"];
_yuitest_coverage["build/align-plugin/align-plugin.js"].lines = {"1":0,"9":0,"20":0,"21":0,"22":0,"26":0,"60":0,"62":0,"63":0,"66":0,"67":0,"79":0,"80":0,"82":0,"83":0,"86":0,"87":0,"89":0,"90":0,"93":0,"94":0,"97":0,"100":0,"104":0,"105":0,"109":0,"110":0,"111":0,"112":0,"113":0,"119":0,"120":0,"121":0,"134":0,"135":0,"144":0,"145":0,"146":0,"151":0,"153":0,"157":0,"161":0,"165":0,"169":0,"172":0,"173":0,"175":0,"176":0,"179":0,"183":0,"184":0,"186":0,"188":0,"189":0};
_yuitest_coverage["build/align-plugin/align-plugin.js"].functions = {"Align:20":0,"to:58":0,"sync:103":0,"_resize:108":0,"(anonymous 2):120":0,"_onresize:118":0,"center:133":0,"destroy:143":0,"\'t\':152":0,"\'r\':156":0,"\'b\':160":0,"\'l\':164":0,"\'c\':168":0,"(anonymous 1):1":0};
_yuitest_coverage["build/align-plugin/align-plugin.js"].coveredLines = 54;
@@ -292,4 +292,4 @@ Y.Plugin.Align = Align;
-}, '3.9.0', {"requires": ["node-screen", "node-pluginhost"]});
+}, '3.9.1', {"requires": ["node-screen", "node-pluginhost"]});
diff --git a/lib/yuilib/3.9.0/build/align-plugin/align-plugin-debug.js b/lib/yuilib/3.9.1/build/align-plugin/align-plugin-debug.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/align-plugin/align-plugin-debug.js
rename to lib/yuilib/3.9.1/build/align-plugin/align-plugin-debug.js
index c07c94152ff..8bedec8c776 100644
--- a/lib/yuilib/3.9.0/build/align-plugin/align-plugin-debug.js
+++ b/lib/yuilib/3.9.1/build/align-plugin/align-plugin-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('align-plugin', function (Y, NAME) {
/**
@@ -191,4 +191,4 @@ YUI.add('align-plugin', function (Y, NAME) {
-}, '3.9.0', {"requires": ["node-screen", "node-pluginhost"]});
+}, '3.9.1', {"requires": ["node-screen", "node-pluginhost"]});
diff --git a/lib/yuilib/3.9.0/build/align-plugin/align-plugin-min.js b/lib/yuilib/3.9.1/build/align-plugin/align-plugin-min.js
similarity index 91%
rename from lib/yuilib/3.9.0/build/align-plugin/align-plugin-min.js
rename to lib/yuilib/3.9.1/build/align-plugin/align-plugin-min.js
index e8501263a0c..b64b19a0ecb 100644
--- a/lib/yuilib/3.9.0/build/align-plugin/align-plugin-min.js
+++ b/lib/yuilib/3.9.1/build/align-plugin/align-plugin-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("align-plugin",function(e,t){function s(e){e.host&&(this._host=e.host)}var n="offsetWidth",r="offsetHeight",i=i;s.prototype={to:function(t,o,u,a){this._syncArgs=e.Array(arguments),t.top===i&&(t=e.one(t).get("region"));if(t){var f=[t.left,t.top],l=[t.width,t.height],c=s.points,h=this._host,p=null,d=h.getAttrs([r,n]),v=[0-d[n],0-d[r]],m=o?c[o.charAt(0)]:p,g=o&&o!=="cc"?c[o.charAt(1)]:p,y=u?c[u.charAt(0)]:p,b=u&&u!=="cc"?c[u.charAt(1)]:p;m&&(f=m(f,l,o)),g&&(f=g(f,l,o)),y&&(f=y(f,v,u)),b&&(f=b(f,v,u)),f&&h&&h.setXY(f),this._resize(a)}return this},sync:function(){return this.to.apply(this,this._syncArgs),this},_resize:function(t){var n=this._handle;t&&!n?this._handle=e.on("resize",this._onresize,window,this):!t&&n&&n.detach()},_onresize:function(){var e=this;setTimeout(function(){e.sync()})},center:function(e,t){return this.to(e,"cc","cc",t),this},destroy:function(){var e=this._handle;e&&e.detach()}},s.points={t:function(e,t){return e},r:function(e,t){return[e[0]+t[0],e[1]]},b:function(e,t){return[e[0],e[1]+t[1]]},l:function(e,t){return e},c:function(e,t,n){var r=n[0]==="t"||n[0]==="b"?0:1,i,s;return n==="cc"?i=[e[0]+t[0]/2,e[1]+t[1]/2]:(s=e[r]+t[r]/2,i=r?[e[0],s]:[s,e[1]]),i}},s.NAME="Align",s.NS="align",s.prototype.constructor=s,e.namespace("Plugin"),e.Plugin.Align=s},"3.9.0",{requires:["node-screen","node-pluginhost"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+YUI.add("align-plugin",function(e,t){function s(e){e.host&&(this._host=e.host)}var n="offsetWidth",r="offsetHeight",i=i;s.prototype={to:function(t,o,u,a){this._syncArgs=e.Array(arguments),t.top===i&&(t=e.one(t).get("region"));if(t){var f=[t.left,t.top],l=[t.width,t.height],c=s.points,h=this._host,p=null,d=h.getAttrs([r,n]),v=[0-d[n],0-d[r]],m=o?c[o.charAt(0)]:p,g=o&&o!=="cc"?c[o.charAt(1)]:p,y=u?c[u.charAt(0)]:p,b=u&&u!=="cc"?c[u.charAt(1)]:p;m&&(f=m(f,l,o)),g&&(f=g(f,l,o)),y&&(f=y(f,v,u)),b&&(f=b(f,v,u)),f&&h&&h.setXY(f),this._resize(a)}return this},sync:function(){return this.to.apply(this,this._syncArgs),this},_resize:function(t){var n=this._handle;t&&!n?this._handle=e.on("resize",this._onresize,window,this):!t&&n&&n.detach()},_onresize:function(){var e=this;setTimeout(function(){e.sync()})},center:function(e,t){return this.to(e,"cc","cc",t),this},destroy:function(){var e=this._handle;e&&e.detach()}},s.points={t:function(e,t){return e},r:function(e,t){return[e[0]+t[0],e[1]]},b:function(e,t){return[e[0],e[1]+t[1]]},l:function(e,t){return e},c:function(e,t,n){var r=n[0]==="t"||n[0]==="b"?0:1,i,s;return n==="cc"?i=[e[0]+t[0]/2,e[1]+t[1]/2]:(s=e[r]+t[r]/2,i=r?[e[0],s]:[s,e[1]]),i}},s.NAME="Align",s.NS="align",s.prototype.constructor=s,e.namespace("Plugin"),e.Plugin.Align=s},"3.9.1",{requires:["node-screen","node-pluginhost"]});
diff --git a/lib/yuilib/3.9.0/build/align-plugin/align-plugin.js b/lib/yuilib/3.9.1/build/align-plugin/align-plugin.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/align-plugin/align-plugin.js
rename to lib/yuilib/3.9.1/build/align-plugin/align-plugin.js
index c07c94152ff..8bedec8c776 100644
--- a/lib/yuilib/3.9.0/build/align-plugin/align-plugin.js
+++ b/lib/yuilib/3.9.1/build/align-plugin/align-plugin.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('align-plugin', function (Y, NAME) {
/**
@@ -191,4 +191,4 @@ YUI.add('align-plugin', function (Y, NAME) {
-}, '3.9.0', {"requires": ["node-screen", "node-pluginhost"]});
+}, '3.9.1', {"requires": ["node-screen", "node-pluginhost"]});
diff --git a/lib/yuilib/3.9.0/build/anim-base/anim-base-coverage.js b/lib/yuilib/3.9.1/build/anim-base/anim-base-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/anim-base/anim-base-coverage.js
rename to lib/yuilib/3.9.1/build/anim-base/anim-base-coverage.js
index 91fe007b87e..de68382da26 100644
--- a/lib/yuilib/3.9.0/build/anim-base/anim-base-coverage.js
+++ b/lib/yuilib/3.9.1/build/anim-base/anim-base-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,7 @@ _yuitest_coverage["build/anim-base/anim-base.js"] = {
path: "build/anim-base/anim-base.js",
code: []
};
-_yuitest_coverage["build/anim-base/anim-base.js"].code=["YUI.add('anim-base', function (Y, NAME) {","","/**","* The Animation Utility provides an API for creating advanced transitions.","* @module anim","*/","","/**","* Provides the base Anim class, for animating numeric properties.","*","* @module anim","* @submodule anim-base","*/",""," /**"," * A class for constructing animation instances."," * @class Anim"," * @for Anim"," * @constructor"," * @extends Base"," */",""," var RUNNING = 'running',"," START_TIME = 'startTime',"," ELAPSED_TIME = 'elapsedTime',"," /**"," * @for Anim"," * @event start"," * @description fires when an animation begins."," * @param {Event} ev The start event."," * @type Event.Custom"," */"," START = 'start',",""," /**"," * @event tween"," * @description fires every frame of the animation."," * @param {Event} ev The tween event."," * @type Event.Custom"," */"," TWEEN = 'tween',",""," /**"," * @event end"," * @description fires after the animation completes."," * @param {Event} ev The end event."," * @type Event.Custom"," */"," END = 'end',"," NODE = 'node',"," PAUSED = 'paused',"," REVERSE = 'reverse', // TODO: cleanup"," ITERATION_COUNT = 'iterationCount',",""," NUM = Number;",""," var _running = {},"," _timer;",""," Y.Anim = function() {"," Y.Anim.superclass.constructor.apply(this, arguments);"," Y.Anim._instances[Y.stamp(this)] = this;"," };",""," Y.Anim.NAME = 'anim';",""," Y.Anim._instances = {};",""," /**"," * Regex of properties that should use the default unit."," *"," * @property RE_DEFAULT_UNIT"," * @static"," */"," Y.Anim.RE_DEFAULT_UNIT = /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i;",""," /**"," * The default unit to use with properties that pass the RE_DEFAULT_UNIT test."," *"," * @property DEFAULT_UNIT"," * @static"," */"," Y.Anim.DEFAULT_UNIT = 'px';",""," Y.Anim.DEFAULT_EASING = function (t, b, c, d) {"," return c * t / d + b; // linear easing"," };",""," /**"," * Time in milliseconds passed to setInterval for frame processing"," *"," * @property intervalTime"," * @default 20"," * @static"," */"," Y.Anim._intervalTime = 20;",""," /**"," * Bucket for custom getters and setters"," *"," * @property behaviors"," * @static"," */"," Y.Anim.behaviors = {"," left: {"," get: function(anim, attr) {"," return anim._getOffset(attr);"," }"," }"," };",""," Y.Anim.behaviors.top = Y.Anim.behaviors.left;",""," /**"," * The default setter to use when setting object properties."," *"," * @property DEFAULT_SETTER"," * @static"," */"," Y.Anim.DEFAULT_SETTER = function(anim, att, from, to, elapsed, duration, fn, unit) {"," var node = anim._node,"," domNode = node._node,"," val = fn(elapsed, NUM(from), NUM(to) - NUM(from), duration);",""," if (domNode) {"," if ('style' in domNode && (att in domNode.style || att in Y.DOM.CUSTOM_STYLES)) {"," unit = unit || '';"," node.setStyle(att, val + unit);"," } else if ('attributes' in domNode && att in domNode.attributes) {"," node.setAttribute(att, val);"," } else if (att in domNode) {"," domNode[att] = val;"," }"," } else if (node.set) {"," node.set(att, val);"," } else if (att in node) {"," node[att] = val;"," }"," };",""," /**"," * The default getter to use when getting object properties."," *"," * @property DEFAULT_GETTER"," * @static"," */"," Y.Anim.DEFAULT_GETTER = function(anim, att) {"," var node = anim._node,"," domNode = node._node,"," val = '';",""," if (domNode) {"," if ('style' in domNode && (att in domNode.style || att in Y.DOM.CUSTOM_STYLES)) {"," val = node.getComputedStyle(att);"," } else if ('attributes' in domNode && att in domNode.attributes) {"," val = node.getAttribute(att);"," } else if (att in domNode) {"," val = domNode[att];"," }"," } else if (node.get) {"," val = node.get(att);"," } else if (att in node) {"," val = node[att];"," }",""," return val;"," };",""," Y.Anim.ATTRS = {"," /**"," * The object to be animated."," * @attribute node"," * @type Node"," */"," node: {"," setter: function(node) {"," if (node) {"," if (typeof node === 'string' || node.nodeType) {"," node = Y.one(node);"," }"," }",""," this._node = node;"," if (!node) {"," }"," return node;"," }"," },",""," /**"," * The length of the animation. Defaults to \"1\" (second)."," * @attribute duration"," * @type NUM"," */"," duration: {"," value: 1"," },",""," /**"," * The method that will provide values to the attribute(s) during the animation."," * Defaults to \"Easing.easeNone\"."," * @attribute easing"," * @type Function"," */"," easing: {"," value: Y.Anim.DEFAULT_EASING,",""," setter: function(val) {"," if (typeof val === 'string' && Y.Easing) {"," return Y.Easing[val];"," }"," }"," },",""," /**"," * The starting values for the animated properties."," *"," * Fields may be strings, numbers, or functions."," * If a function is used, the return value becomes the from value."," * If no from value is specified, the DEFAULT_GETTER will be used."," * Supports any unit, provided it matches the \"to\" (or default)"," * unit (e.g. `{width: '10em', color: 'rgb(0, 0, 0)', borderColor: '#ccc'}`)."," *"," * If using the default ('px' for length-based units), the unit may be omitted"," * (e.g. `{width: 100}, borderColor: 'ccc'}`, which defaults to pixels"," * and hex, respectively)."," *"," * @attribute from"," * @type Object"," */"," from: {},",""," /**"," * The ending values for the animated properties."," *"," * Fields may be strings, numbers, or functions."," * Supports any unit, provided it matches the \"from\" (or default)"," * unit (e.g. `{width: '50%', color: 'red', borderColor: '#ccc'}`)."," *"," * If using the default ('px' for length-based units), the unit may be omitted"," * (e.g. `{width: 100, borderColor: 'ccc'}`, which defaults to pixels"," * and hex, respectively)."," *"," * @attribute to"," * @type Object"," */"," to: {},",""," /**"," * Date stamp for the first frame of the animation."," * @attribute startTime"," * @type Int"," * @default 0"," * @readOnly"," */"," startTime: {"," value: 0,"," readOnly: true"," },",""," /**"," * Current time the animation has been running."," * @attribute elapsedTime"," * @type Int"," * @default 0"," * @readOnly"," */"," elapsedTime: {"," value: 0,"," readOnly: true"," },",""," /**"," * Whether or not the animation is currently running."," * @attribute running"," * @type Boolean"," * @default false"," * @readOnly"," */"," running: {"," getter: function() {"," return !!_running[Y.stamp(this)];"," },"," value: false,"," readOnly: true"," },",""," /**"," * The number of times the animation should run"," * @attribute iterations"," * @type Int"," * @default 1"," */"," iterations: {"," value: 1"," },",""," /**"," * The number of iterations that have occurred."," * Resets when an animation ends (reaches iteration count or stop() called)."," * @attribute iterationCount"," * @type Int"," * @default 0"," * @readOnly"," */"," iterationCount: {"," value: 0,"," readOnly: true"," },",""," /**"," * How iterations of the animation should behave."," * Possible values are \"normal\" and \"alternate\"."," * Normal will repeat the animation, alternate will reverse on every other pass."," *"," * @attribute direction"," * @type String"," * @default \"normal\""," */"," direction: {"," value: 'normal' // | alternate (fwd on odd, rev on even per spec)"," },",""," /**"," * Whether or not the animation is currently paused."," * @attribute paused"," * @type Boolean"," * @default false"," * @readOnly"," */"," paused: {"," readOnly: true,"," value: false"," },",""," /**"," * If true, animation begins from last frame"," * @attribute reverse"," * @type Boolean"," * @default false"," */"," reverse: {"," value: false"," }","",""," };",""," /**"," * Runs all animation instances."," * @method run"," * @static"," */"," Y.Anim.run = function() {"," var instances = Y.Anim._instances,"," i;"," for (i in instances) {"," if (instances[i].run) {"," instances[i].run();"," }"," }"," };",""," /**"," * Pauses all animation instances."," * @method pause"," * @static"," */"," Y.Anim.pause = function() {"," for (var i in _running) { // stop timer if nothing running"," if (_running[i].pause) {"," _running[i].pause();"," }"," }",""," Y.Anim._stopTimer();"," };",""," /**"," * Stops all animation instances."," * @method stop"," * @static"," */"," Y.Anim.stop = function() {"," for (var i in _running) { // stop timer if nothing running"," if (_running[i].stop) {"," _running[i].stop();"," }"," }"," Y.Anim._stopTimer();"," };",""," Y.Anim._startTimer = function() {"," if (!_timer) {"," _timer = setInterval(Y.Anim._runFrame, Y.Anim._intervalTime);"," }"," };",""," Y.Anim._stopTimer = function() {"," clearInterval(_timer);"," _timer = 0;"," };",""," /**"," * Called per Interval to handle each animation frame."," * @method _runFrame"," * @private"," * @static"," */"," Y.Anim._runFrame = function() {"," var done = true,"," anim;"," for (anim in _running) {"," if (_running[anim]._runFrame) {"," done = false;"," _running[anim]._runFrame();"," }"," }",""," if (done) {"," Y.Anim._stopTimer();"," }"," };",""," Y.Anim.RE_UNITS = /^(-?\\d*\\.?\\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/;",""," var proto = {"," /**"," * Starts or resumes an animation."," * @method run"," * @chainable"," */"," run: function() {"," if (this.get(PAUSED)) {"," this._resume();"," } else if (!this.get(RUNNING)) {"," this._start();"," }"," return this;"," },",""," /**"," * Pauses the animation and"," * freezes it in its current state and time."," * Calling run() will continue where it left off."," * @method pause"," * @chainable"," */"," pause: function() {"," if (this.get(RUNNING)) {"," this._pause();"," }"," return this;"," },",""," /**"," * Stops the animation and resets its time."," * @method stop"," * @param {Boolean} finish If true, the animation will move to the last frame"," * @chainable"," */"," stop: function(finish) {"," if (this.get(RUNNING) || this.get(PAUSED)) {"," this._end(finish);"," }"," return this;"," },",""," _added: false,",""," _start: function() {"," this._set(START_TIME, new Date() - this.get(ELAPSED_TIME));"," this._actualFrames = 0;"," if (!this.get(PAUSED)) {"," this._initAnimAttr();"," }"," _running[Y.stamp(this)] = this;"," Y.Anim._startTimer();",""," this.fire(START);"," },",""," _pause: function() {"," this._set(START_TIME, null);"," this._set(PAUSED, true);"," delete _running[Y.stamp(this)];",""," /**"," * @event pause"," * @description fires when an animation is paused."," * @param {Event} ev The pause event."," * @type Event.Custom"," */"," this.fire('pause');"," },",""," _resume: function() {"," this._set(PAUSED, false);"," _running[Y.stamp(this)] = this;"," this._set(START_TIME, new Date() - this.get(ELAPSED_TIME));"," Y.Anim._startTimer();",""," /**"," * @event resume"," * @description fires when an animation is resumed (run from pause)."," * @param {Event} ev The pause event."," * @type Event.Custom"," */"," this.fire('resume');"," },",""," _end: function(finish) {"," var duration = this.get('duration') * 1000;"," if (finish) { // jump to last frame"," this._runAttrs(duration, duration, this.get(REVERSE));"," }",""," this._set(START_TIME, null);"," this._set(ELAPSED_TIME, 0);"," this._set(PAUSED, false);",""," delete _running[Y.stamp(this)];"," this.fire(END, {elapsed: this.get(ELAPSED_TIME)});"," },",""," _runFrame: function() {"," var d = this._runtimeAttr.duration,"," t = new Date() - this.get(START_TIME),"," reverse = this.get(REVERSE),"," done = (t >= d);",""," this._runAttrs(t, d, reverse);"," this._actualFrames += 1;"," this._set(ELAPSED_TIME, t);",""," this.fire(TWEEN);"," if (done) {"," this._lastFrame();"," }"," },",""," _runAttrs: function(t, d, reverse) {"," var attr = this._runtimeAttr,"," customAttr = Y.Anim.behaviors,"," easing = attr.easing,"," lastFrame = d,"," done = false,"," attribute,"," setter,"," i;",""," if (t >= d) {"," done = true;"," }",""," if (reverse) {"," t = d - t;"," lastFrame = 0;"," }",""," for (i in attr) {"," if (attr[i].to) {"," attribute = attr[i];"," setter = (i in customAttr && 'set' in customAttr[i]) ?"," customAttr[i].set : Y.Anim.DEFAULT_SETTER;",""," if (!done) {"," setter(this, i, attribute.from, attribute.to, t, d, easing, attribute.unit);"," } else {"," setter(this, i, attribute.from, attribute.to, lastFrame, d, easing, attribute.unit);"," }"," }"," }","",""," },",""," _lastFrame: function() {"," var iter = this.get('iterations'),"," iterCount = this.get(ITERATION_COUNT);",""," iterCount += 1;"," if (iter === 'infinite' || iterCount < iter) {"," if (this.get('direction') === 'alternate') {"," this.set(REVERSE, !this.get(REVERSE)); // flip it"," }"," /**"," * @event iteration"," * @description fires when an animation begins an iteration."," * @param {Event} ev The iteration event."," * @type Event.Custom"," */"," this.fire('iteration');"," } else {"," iterCount = 0;"," this._end();"," }",""," this._set(START_TIME, new Date());"," this._set(ITERATION_COUNT, iterCount);"," },",""," _initAnimAttr: function() {"," var from = this.get('from') || {},"," to = this.get('to') || {},"," attr = {"," duration: this.get('duration') * 1000,"," easing: this.get('easing')"," },"," customAttr = Y.Anim.behaviors,"," node = this.get(NODE), // implicit attr init"," unit, begin, end;",""," Y.each(to, function(val, name) {"," if (typeof val === 'function') {"," val = val.call(this, node);"," }",""," begin = from[name];"," if (begin === undefined) {"," begin = (name in customAttr && 'get' in customAttr[name]) ?"," customAttr[name].get(this, name) : Y.Anim.DEFAULT_GETTER(this, name);"," } else if (typeof begin === 'function') {"," begin = begin.call(this, node);"," }",""," var mFrom = Y.Anim.RE_UNITS.exec(begin),"," mTo = Y.Anim.RE_UNITS.exec(val);",""," begin = mFrom ? mFrom[1] : begin;"," end = mTo ? mTo[1] : val;"," unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units",""," if (!unit && Y.Anim.RE_DEFAULT_UNIT.test(name)) {"," unit = Y.Anim.DEFAULT_UNIT;"," }",""," if (!begin || !end) {"," Y.error('invalid \"from\" or \"to\" for \"' + name + '\"', 'Anim');"," return;"," }",""," attr[name] = {"," from: Y.Lang.isObject(begin) ? Y.clone(begin) : begin,"," to: end,"," unit: unit"," };",""," }, this);",""," this._runtimeAttr = attr;"," },","",""," // TODO: move to computedStyle? (browsers dont agree on default computed offsets)"," _getOffset: function(attr) {"," var node = this._node,"," val = node.getComputedStyle(attr),"," get = (attr === 'left') ? 'getX': 'getY',"," set = (attr === 'left') ? 'setX': 'setY',"," position;",""," if (val === 'auto') {"," position = node.getStyle('position');"," if (position === 'absolute' || position === 'fixed') {"," val = node[get]();"," node[set](val);"," } else {"," val = 0;"," }"," }",""," return val;"," },",""," destructor: function() {"," delete Y.Anim._instances[Y.stamp(this)];"," }"," };",""," Y.extend(Y.Anim, Y.Base, proto);","","","}, '3.9.0', {\"requires\": [\"base-base\", \"node-style\"]});"];
+_yuitest_coverage["build/anim-base/anim-base.js"].code=["YUI.add('anim-base', function (Y, NAME) {","","/**","* The Animation Utility provides an API for creating advanced transitions.","* @module anim","*/","","/**","* Provides the base Anim class, for animating numeric properties.","*","* @module anim","* @submodule anim-base","*/",""," /**"," * A class for constructing animation instances."," * @class Anim"," * @for Anim"," * @constructor"," * @extends Base"," */",""," var RUNNING = 'running',"," START_TIME = 'startTime',"," ELAPSED_TIME = 'elapsedTime',"," /**"," * @for Anim"," * @event start"," * @description fires when an animation begins."," * @param {Event} ev The start event."," * @type Event.Custom"," */"," START = 'start',",""," /**"," * @event tween"," * @description fires every frame of the animation."," * @param {Event} ev The tween event."," * @type Event.Custom"," */"," TWEEN = 'tween',",""," /**"," * @event end"," * @description fires after the animation completes."," * @param {Event} ev The end event."," * @type Event.Custom"," */"," END = 'end',"," NODE = 'node',"," PAUSED = 'paused',"," REVERSE = 'reverse', // TODO: cleanup"," ITERATION_COUNT = 'iterationCount',",""," NUM = Number;",""," var _running = {},"," _timer;",""," Y.Anim = function() {"," Y.Anim.superclass.constructor.apply(this, arguments);"," Y.Anim._instances[Y.stamp(this)] = this;"," };",""," Y.Anim.NAME = 'anim';",""," Y.Anim._instances = {};",""," /**"," * Regex of properties that should use the default unit."," *"," * @property RE_DEFAULT_UNIT"," * @static"," */"," Y.Anim.RE_DEFAULT_UNIT = /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i;",""," /**"," * The default unit to use with properties that pass the RE_DEFAULT_UNIT test."," *"," * @property DEFAULT_UNIT"," * @static"," */"," Y.Anim.DEFAULT_UNIT = 'px';",""," Y.Anim.DEFAULT_EASING = function (t, b, c, d) {"," return c * t / d + b; // linear easing"," };",""," /**"," * Time in milliseconds passed to setInterval for frame processing"," *"," * @property intervalTime"," * @default 20"," * @static"," */"," Y.Anim._intervalTime = 20;",""," /**"," * Bucket for custom getters and setters"," *"," * @property behaviors"," * @static"," */"," Y.Anim.behaviors = {"," left: {"," get: function(anim, attr) {"," return anim._getOffset(attr);"," }"," }"," };",""," Y.Anim.behaviors.top = Y.Anim.behaviors.left;",""," /**"," * The default setter to use when setting object properties."," *"," * @property DEFAULT_SETTER"," * @static"," */"," Y.Anim.DEFAULT_SETTER = function(anim, att, from, to, elapsed, duration, fn, unit) {"," var node = anim._node,"," domNode = node._node,"," val = fn(elapsed, NUM(from), NUM(to) - NUM(from), duration);",""," if (domNode) {"," if ('style' in domNode && (att in domNode.style || att in Y.DOM.CUSTOM_STYLES)) {"," unit = unit || '';"," node.setStyle(att, val + unit);"," } else if ('attributes' in domNode && att in domNode.attributes) {"," node.setAttribute(att, val);"," } else if (att in domNode) {"," domNode[att] = val;"," }"," } else if (node.set) {"," node.set(att, val);"," } else if (att in node) {"," node[att] = val;"," }"," };",""," /**"," * The default getter to use when getting object properties."," *"," * @property DEFAULT_GETTER"," * @static"," */"," Y.Anim.DEFAULT_GETTER = function(anim, att) {"," var node = anim._node,"," domNode = node._node,"," val = '';",""," if (domNode) {"," if ('style' in domNode && (att in domNode.style || att in Y.DOM.CUSTOM_STYLES)) {"," val = node.getComputedStyle(att);"," } else if ('attributes' in domNode && att in domNode.attributes) {"," val = node.getAttribute(att);"," } else if (att in domNode) {"," val = domNode[att];"," }"," } else if (node.get) {"," val = node.get(att);"," } else if (att in node) {"," val = node[att];"," }",""," return val;"," };",""," Y.Anim.ATTRS = {"," /**"," * The object to be animated."," * @attribute node"," * @type Node"," */"," node: {"," setter: function(node) {"," if (node) {"," if (typeof node === 'string' || node.nodeType) {"," node = Y.one(node);"," }"," }",""," this._node = node;"," if (!node) {"," }"," return node;"," }"," },",""," /**"," * The length of the animation. Defaults to \"1\" (second)."," * @attribute duration"," * @type NUM"," */"," duration: {"," value: 1"," },",""," /**"," * The method that will provide values to the attribute(s) during the animation."," * Defaults to \"Easing.easeNone\"."," * @attribute easing"," * @type Function"," */"," easing: {"," value: Y.Anim.DEFAULT_EASING,",""," setter: function(val) {"," if (typeof val === 'string' && Y.Easing) {"," return Y.Easing[val];"," }"," }"," },",""," /**"," * The starting values for the animated properties."," *"," * Fields may be strings, numbers, or functions."," * If a function is used, the return value becomes the from value."," * If no from value is specified, the DEFAULT_GETTER will be used."," * Supports any unit, provided it matches the \"to\" (or default)"," * unit (e.g. `{width: '10em', color: 'rgb(0, 0, 0)', borderColor: '#ccc'}`)."," *"," * If using the default ('px' for length-based units), the unit may be omitted"," * (e.g. `{width: 100}, borderColor: 'ccc'}`, which defaults to pixels"," * and hex, respectively)."," *"," * @attribute from"," * @type Object"," */"," from: {},",""," /**"," * The ending values for the animated properties."," *"," * Fields may be strings, numbers, or functions."," * Supports any unit, provided it matches the \"from\" (or default)"," * unit (e.g. `{width: '50%', color: 'red', borderColor: '#ccc'}`)."," *"," * If using the default ('px' for length-based units), the unit may be omitted"," * (e.g. `{width: 100, borderColor: 'ccc'}`, which defaults to pixels"," * and hex, respectively)."," *"," * @attribute to"," * @type Object"," */"," to: {},",""," /**"," * Date stamp for the first frame of the animation."," * @attribute startTime"," * @type Int"," * @default 0"," * @readOnly"," */"," startTime: {"," value: 0,"," readOnly: true"," },",""," /**"," * Current time the animation has been running."," * @attribute elapsedTime"," * @type Int"," * @default 0"," * @readOnly"," */"," elapsedTime: {"," value: 0,"," readOnly: true"," },",""," /**"," * Whether or not the animation is currently running."," * @attribute running"," * @type Boolean"," * @default false"," * @readOnly"," */"," running: {"," getter: function() {"," return !!_running[Y.stamp(this)];"," },"," value: false,"," readOnly: true"," },",""," /**"," * The number of times the animation should run"," * @attribute iterations"," * @type Int"," * @default 1"," */"," iterations: {"," value: 1"," },",""," /**"," * The number of iterations that have occurred."," * Resets when an animation ends (reaches iteration count or stop() called)."," * @attribute iterationCount"," * @type Int"," * @default 0"," * @readOnly"," */"," iterationCount: {"," value: 0,"," readOnly: true"," },",""," /**"," * How iterations of the animation should behave."," * Possible values are \"normal\" and \"alternate\"."," * Normal will repeat the animation, alternate will reverse on every other pass."," *"," * @attribute direction"," * @type String"," * @default \"normal\""," */"," direction: {"," value: 'normal' // | alternate (fwd on odd, rev on even per spec)"," },",""," /**"," * Whether or not the animation is currently paused."," * @attribute paused"," * @type Boolean"," * @default false"," * @readOnly"," */"," paused: {"," readOnly: true,"," value: false"," },",""," /**"," * If true, animation begins from last frame"," * @attribute reverse"," * @type Boolean"," * @default false"," */"," reverse: {"," value: false"," }","",""," };",""," /**"," * Runs all animation instances."," * @method run"," * @static"," */"," Y.Anim.run = function() {"," var instances = Y.Anim._instances,"," i;"," for (i in instances) {"," if (instances[i].run) {"," instances[i].run();"," }"," }"," };",""," /**"," * Pauses all animation instances."," * @method pause"," * @static"," */"," Y.Anim.pause = function() {"," for (var i in _running) { // stop timer if nothing running"," if (_running[i].pause) {"," _running[i].pause();"," }"," }",""," Y.Anim._stopTimer();"," };",""," /**"," * Stops all animation instances."," * @method stop"," * @static"," */"," Y.Anim.stop = function() {"," for (var i in _running) { // stop timer if nothing running"," if (_running[i].stop) {"," _running[i].stop();"," }"," }"," Y.Anim._stopTimer();"," };",""," Y.Anim._startTimer = function() {"," if (!_timer) {"," _timer = setInterval(Y.Anim._runFrame, Y.Anim._intervalTime);"," }"," };",""," Y.Anim._stopTimer = function() {"," clearInterval(_timer);"," _timer = 0;"," };",""," /**"," * Called per Interval to handle each animation frame."," * @method _runFrame"," * @private"," * @static"," */"," Y.Anim._runFrame = function() {"," var done = true,"," anim;"," for (anim in _running) {"," if (_running[anim]._runFrame) {"," done = false;"," _running[anim]._runFrame();"," }"," }",""," if (done) {"," Y.Anim._stopTimer();"," }"," };",""," Y.Anim.RE_UNITS = /^(-?\\d*\\.?\\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/;",""," var proto = {"," /**"," * Starts or resumes an animation."," * @method run"," * @chainable"," */"," run: function() {"," if (this.get(PAUSED)) {"," this._resume();"," } else if (!this.get(RUNNING)) {"," this._start();"," }"," return this;"," },",""," /**"," * Pauses the animation and"," * freezes it in its current state and time."," * Calling run() will continue where it left off."," * @method pause"," * @chainable"," */"," pause: function() {"," if (this.get(RUNNING)) {"," this._pause();"," }"," return this;"," },",""," /**"," * Stops the animation and resets its time."," * @method stop"," * @param {Boolean} finish If true, the animation will move to the last frame"," * @chainable"," */"," stop: function(finish) {"," if (this.get(RUNNING) || this.get(PAUSED)) {"," this._end(finish);"," }"," return this;"," },",""," _added: false,",""," _start: function() {"," this._set(START_TIME, new Date() - this.get(ELAPSED_TIME));"," this._actualFrames = 0;"," if (!this.get(PAUSED)) {"," this._initAnimAttr();"," }"," _running[Y.stamp(this)] = this;"," Y.Anim._startTimer();",""," this.fire(START);"," },",""," _pause: function() {"," this._set(START_TIME, null);"," this._set(PAUSED, true);"," delete _running[Y.stamp(this)];",""," /**"," * @event pause"," * @description fires when an animation is paused."," * @param {Event} ev The pause event."," * @type Event.Custom"," */"," this.fire('pause');"," },",""," _resume: function() {"," this._set(PAUSED, false);"," _running[Y.stamp(this)] = this;"," this._set(START_TIME, new Date() - this.get(ELAPSED_TIME));"," Y.Anim._startTimer();",""," /**"," * @event resume"," * @description fires when an animation is resumed (run from pause)."," * @param {Event} ev The pause event."," * @type Event.Custom"," */"," this.fire('resume');"," },",""," _end: function(finish) {"," var duration = this.get('duration') * 1000;"," if (finish) { // jump to last frame"," this._runAttrs(duration, duration, this.get(REVERSE));"," }",""," this._set(START_TIME, null);"," this._set(ELAPSED_TIME, 0);"," this._set(PAUSED, false);",""," delete _running[Y.stamp(this)];"," this.fire(END, {elapsed: this.get(ELAPSED_TIME)});"," },",""," _runFrame: function() {"," var d = this._runtimeAttr.duration,"," t = new Date() - this.get(START_TIME),"," reverse = this.get(REVERSE),"," done = (t >= d);",""," this._runAttrs(t, d, reverse);"," this._actualFrames += 1;"," this._set(ELAPSED_TIME, t);",""," this.fire(TWEEN);"," if (done) {"," this._lastFrame();"," }"," },",""," _runAttrs: function(t, d, reverse) {"," var attr = this._runtimeAttr,"," customAttr = Y.Anim.behaviors,"," easing = attr.easing,"," lastFrame = d,"," done = false,"," attribute,"," setter,"," i;",""," if (t >= d) {"," done = true;"," }",""," if (reverse) {"," t = d - t;"," lastFrame = 0;"," }",""," for (i in attr) {"," if (attr[i].to) {"," attribute = attr[i];"," setter = (i in customAttr && 'set' in customAttr[i]) ?"," customAttr[i].set : Y.Anim.DEFAULT_SETTER;",""," if (!done) {"," setter(this, i, attribute.from, attribute.to, t, d, easing, attribute.unit);"," } else {"," setter(this, i, attribute.from, attribute.to, lastFrame, d, easing, attribute.unit);"," }"," }"," }","",""," },",""," _lastFrame: function() {"," var iter = this.get('iterations'),"," iterCount = this.get(ITERATION_COUNT);",""," iterCount += 1;"," if (iter === 'infinite' || iterCount < iter) {"," if (this.get('direction') === 'alternate') {"," this.set(REVERSE, !this.get(REVERSE)); // flip it"," }"," /**"," * @event iteration"," * @description fires when an animation begins an iteration."," * @param {Event} ev The iteration event."," * @type Event.Custom"," */"," this.fire('iteration');"," } else {"," iterCount = 0;"," this._end();"," }",""," this._set(START_TIME, new Date());"," this._set(ITERATION_COUNT, iterCount);"," },",""," _initAnimAttr: function() {"," var from = this.get('from') || {},"," to = this.get('to') || {},"," attr = {"," duration: this.get('duration') * 1000,"," easing: this.get('easing')"," },"," customAttr = Y.Anim.behaviors,"," node = this.get(NODE), // implicit attr init"," unit, begin, end;",""," Y.each(to, function(val, name) {"," if (typeof val === 'function') {"," val = val.call(this, node);"," }",""," begin = from[name];"," if (begin === undefined) {"," begin = (name in customAttr && 'get' in customAttr[name]) ?"," customAttr[name].get(this, name) : Y.Anim.DEFAULT_GETTER(this, name);"," } else if (typeof begin === 'function') {"," begin = begin.call(this, node);"," }",""," var mFrom = Y.Anim.RE_UNITS.exec(begin),"," mTo = Y.Anim.RE_UNITS.exec(val);",""," begin = mFrom ? mFrom[1] : begin;"," end = mTo ? mTo[1] : val;"," unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units",""," if (!unit && Y.Anim.RE_DEFAULT_UNIT.test(name)) {"," unit = Y.Anim.DEFAULT_UNIT;"," }",""," if (!begin || !end) {"," Y.error('invalid \"from\" or \"to\" for \"' + name + '\"', 'Anim');"," return;"," }",""," attr[name] = {"," from: Y.Lang.isObject(begin) ? Y.clone(begin) : begin,"," to: end,"," unit: unit"," };",""," }, this);",""," this._runtimeAttr = attr;"," },","",""," // TODO: move to computedStyle? (browsers dont agree on default computed offsets)"," _getOffset: function(attr) {"," var node = this._node,"," val = node.getComputedStyle(attr),"," get = (attr === 'left') ? 'getX': 'getY',"," set = (attr === 'left') ? 'setX': 'setY',"," position;",""," if (val === 'auto') {"," position = node.getStyle('position');"," if (position === 'absolute' || position === 'fixed') {"," val = node[get]();"," node[set](val);"," } else {"," val = 0;"," }"," }",""," return val;"," },",""," destructor: function() {"," delete Y.Anim._instances[Y.stamp(this)];"," }"," };",""," Y.extend(Y.Anim, Y.Base, proto);","","","}, '3.9.1', {\"requires\": [\"base-base\", \"node-style\"]});"];
_yuitest_coverage["build/anim-base/anim-base.js"].lines = {"1":0,"23":0,"57":0,"60":0,"61":0,"62":0,"65":0,"67":0,"75":0,"83":0,"85":0,"86":0,"96":0,"104":0,"107":0,"112":0,"120":0,"121":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"134":0,"135":0,"136":0,"137":0,"147":0,"148":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"160":0,"161":0,"162":0,"163":0,"166":0,"169":0,"177":0,"178":0,"179":0,"183":0,"184":0,"186":0,"209":0,"210":0,"282":0,"354":0,"355":0,"357":0,"358":0,"359":0,"369":0,"370":0,"371":0,"372":0,"376":0,"384":0,"385":0,"386":0,"387":0,"390":0,"393":0,"394":0,"395":0,"399":0,"400":0,"401":0,"410":0,"411":0,"413":0,"414":0,"415":0,"416":0,"420":0,"421":0,"425":0,"427":0,"434":0,"435":0,"436":0,"437":0,"439":0,"450":0,"451":0,"453":0,"463":0,"464":0,"466":0,"472":0,"473":0,"474":0,"475":0,"477":0,"478":0,"480":0,"484":0,"485":0,"486":0,"494":0,"498":0,"499":0,"500":0,"501":0,"509":0,"513":0,"514":0,"515":0,"518":0,"519":0,"520":0,"522":0,"523":0,"527":0,"532":0,"533":0,"534":0,"536":0,"537":0,"538":0,"543":0,"552":0,"553":0,"556":0,"557":0,"558":0,"561":0,"562":0,"563":0,"564":0,"567":0,"568":0,"570":0,"579":0,"582":0,"583":0,"584":0,"585":0,"593":0,"595":0,"596":0,"599":0,"600":0,"604":0,"614":0,"615":0,"616":0,"619":0,"620":0,"621":0,"623":0,"624":0,"627":0,"630":0,"631":0,"632":0,"634":0,"635":0,"638":0,"639":0,"640":0,"643":0,"651":0,"657":0,"663":0,"664":0,"665":0,"666":0,"667":0,"669":0,"673":0,"677":0,"681":0};
_yuitest_coverage["build/anim-base/anim-base.js"].functions = {"Anim:60":0,"DEFAULT_EASING:85":0,"get:106":0,"DEFAULT_SETTER:120":0,"DEFAULT_GETTER:147":0,"setter:176":0,"setter:208":0,"getter:281":0,"run:354":0,"pause:369":0,"stop:384":0,"_startTimer:393":0,"_stopTimer:399":0,"_runFrame:410":0,"run:433":0,"pause:449":0,"stop:462":0,"_start:471":0,"_pause:483":0,"_resume:497":0,"_end:512":0,"_runFrame:526":0,"_runAttrs:542":0,"_lastFrame:578":0,"(anonymous 2):614":0,"_initAnimAttr:603":0,"_getOffset:656":0,"destructor:676":0,"(anonymous 1):1":0};
_yuitest_coverage["build/anim-base/anim-base.js"].coveredLines = 180;
@@ -924,4 +924,4 @@ delete Y.Anim._instances[Y.stamp(this)];
Y.extend(Y.Anim, Y.Base, proto);
-}, '3.9.0', {"requires": ["base-base", "node-style"]});
+}, '3.9.1', {"requires": ["base-base", "node-style"]});
diff --git a/lib/yuilib/3.9.0/build/anim-base/anim-base-debug.js b/lib/yuilib/3.9.1/build/anim-base/anim-base-debug.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/anim-base/anim-base-debug.js
rename to lib/yuilib/3.9.1/build/anim-base/anim-base-debug.js
index cc58fb82786..f7d6a0b6da9 100644
--- a/lib/yuilib/3.9.0/build/anim-base/anim-base-debug.js
+++ b/lib/yuilib/3.9.1/build/anim-base/anim-base-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('anim-base', function (Y, NAME) {
/**
@@ -683,4 +683,4 @@ YUI.add('anim-base', function (Y, NAME) {
Y.extend(Y.Anim, Y.Base, proto);
-}, '3.9.0', {"requires": ["base-base", "node-style"]});
+}, '3.9.1', {"requires": ["base-base", "node-style"]});
diff --git a/lib/yuilib/3.9.0/build/anim-base/anim-base-min.js b/lib/yuilib/3.9.1/build/anim-base/anim-base-min.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/anim-base/anim-base-min.js
rename to lib/yuilib/3.9.1/build/anim-base/anim-base-min.js
index 67365a21316..1a818567aed 100644
--- a/lib/yuilib/3.9.0/build/anim-base/anim-base-min.js
+++ b/lib/yuilib/3.9.1/build/anim-base/anim-base-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("anim-base",function(e,t){var n="running",r="startTime",i="elapsedTime",s="start",o="tween",u="end",a="node",f="paused",l="reverse",c="iterationCount",h=Number,p={},d;e.Anim=function(){e.Anim.superclass.constructor.apply(this,arguments),e.Anim._instances[e.stamp(this)]=this},e.Anim.NAME="anim",e.Anim._instances={},e.Anim.RE_DEFAULT_UNIT=/^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i,e.Anim.DEFAULT_UNIT="px",e.Anim.DEFAULT_EASING=function(e,t,n,r){return n*e/r+t},e.Anim._intervalTime=20,e.Anim.behaviors={left:{get:function(e,t){return e._getOffset(t)}}},e.Anim.behaviors.top=e.Anim.behaviors.left,e.Anim.DEFAULT_SETTER=function(t,n,r,i,s,o,u,a){var f=t._node,l=f._node,c=u(s,h(r),h(i)-h(r),o);l?"style"in l&&(n in l.style||n in e.DOM.CUSTOM_STYLES)?(a=a||"",f.setStyle(n,c+a)):"attributes"in l&&n in l.attributes?f.setAttribute(n,c):n in l&&(l[n]=c):f.set?f.set(n,c):n in f&&(f[n]=c)},e.Anim.DEFAULT_GETTER=function(t,n){var r=t._node,i=r._node,s="";return i?"style"in i&&(n in i.style||n in e.DOM.CUSTOM_STYLES)?s=r.getComputedStyle(n):"attributes"in i&&n in i.attributes?s=r.getAttribute(n):n in i&&(s=i[n]):r.get?s=r.get(n):n in r&&(s=r[n]),s},e.Anim.ATTRS={node:{setter:function(t){return t&&(typeof t=="string"||t.nodeType)&&(t=e.one(t)),this._node=t,!t,t}},duration:{value:1},easing:{value:e.Anim.DEFAULT_EASING,setter:function(t){if(typeof t=="string"&&e.Easing)return e.Easing[t]}},from:{},to:{},startTime:{value:0,readOnly:!0},elapsedTime:{value:0,readOnly:!0},running:{getter:function(){return!!p[e.stamp(this)]},value:!1,readOnly:!0},iterations:{value:1},iterationCount:{value:0,readOnly:!0},direction:{value:"normal"},paused:{readOnly:!0,value:!1},reverse:{value:!1}},e.Anim.run=function(){var t=e.Anim._instances,n;for(n in t)t[n].run&&t[n].run()},e.Anim.pause=function(){for(var t in p)p[t].pause&&p[t].pause();e.Anim._stopTimer()},e.Anim.stop=function(){for(var t in p)p[t].stop&&p[t].stop();e.Anim._stopTimer()},e.Anim._startTimer=function(){d||(d=setInterval(e.Anim._runFrame,e.Anim._intervalTime))},e.Anim._stopTimer=function(){clearInterval(d),d=0},e.Anim._runFrame=function(){var t=!0,n;for(n in p)p[n]._runFrame&&(t=!1,p[n]._runFrame());t&&e.Anim._stopTimer()},e.Anim.RE_UNITS=/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/;var v={run:function(){return this.get(f)?this._resume():this.get(n)||this._start(),this},pause:function(){return this.get(n)&&this._pause(),this},stop:function(e){return(this.get(n)||this.get(f))&&this._end(e),this},_added:!1,_start:function(){this._set(r,new Date-this.get(i)),this._actualFrames=0,this.get(f)||this._initAnimAttr(),p[e.stamp(this)]=this,e.Anim._startTimer(),this.fire(s)},_pause:function(){this._set(r,null),this._set(f,!0),delete p[e.stamp(this)],this.fire("pause")},_resume:function(){this._set(f,!1),p[e.stamp(this)]=this,this._set(r,new Date-this.get(i)),e.Anim._startTimer(),this.fire("resume")},_end:function(t){var n=this.get("duration")*1e3;t&&this._runAttrs(n,n,this.get(l)),this._set(r,null),this._set(i,0),this._set(f,!1),delete p[e.stamp(this)],this.fire(u,{elapsed:this.get(i)})},_runFrame:function(){var e=this._runtimeAttr.duration,t=new Date-this.get(r),n=this.get(l),s=t>=e;this._runAttrs(t,e,n),this._actualFrames+=1,this._set(i,t),this.fire(o),s&&this._lastFrame()},_runAttrs:function(t,n,r){var i=this._runtimeAttr,s=e.Anim.behaviors,o=i.easing,u=n,a=!1,f,l,c;t>=n&&(a=!0),r&&(t=n-t,u=0);for(c in i)i[c].to&&(f=i[c],l=c in s&&"set"in s[c]?s[c].set:e.Anim.DEFAULT_SETTER,a?l(this,c,f.from,f.to,u,n,o,f.unit):l(this,c,f.from,f.to,t,n,o,f.unit))},_lastFrame:function(){var e=this.get("iterations"),t=this.get(c);t+=1,e==="infinite"||tfrom 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) {"," Y.Anim.behaviors[v] = Y.Anim.behaviors.color;"," }",");","","","}, '3.9.0', {\"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) {"," Y.Anim.behaviors[v] = Y.Anim.behaviors.color;"," }",");","","","}, '3.9.1', {\"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;
@@ -104,4 +104,4 @@ Y.Anim.behaviors[v] = Y.Anim.behaviors.color;
);
-}, '3.9.0', {"requires": ["anim-base"]});
+}, '3.9.1', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.9.0/build/anim-color/anim-color-debug.js b/lib/yuilib/3.9.1/build/anim-color/anim-color-debug.js
similarity index 93%
rename from lib/yuilib/3.9.0/build/anim-color/anim-color-debug.js
rename to lib/yuilib/3.9.1/build/anim-color/anim-color-debug.js
index d244c7d381e..1bc7eeec989 100644
--- a/lib/yuilib/3.9.0/build/anim-color/anim-color-debug.js
+++ b/lib/yuilib/3.9.1/build/anim-color/anim-color-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('anim-color', function (Y, NAME) {
/**
@@ -51,4 +51,4 @@ Y.each(['backgroundColor',
);
-}, '3.9.0', {"requires": ["anim-base"]});
+}, '3.9.1', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.9.0/build/anim-color/anim-color-min.js b/lib/yuilib/3.9.1/build/anim-color/anim-color-min.js
similarity index 86%
rename from lib/yuilib/3.9.0/build/anim-color/anim-color-min.js
rename to lib/yuilib/3.9.1/build/anim-color/anim-color-min.js
index a7be3d1b42c..c995dc1e1f1 100644
--- a/lib/yuilib/3.9.0/build/anim-color/anim-color-min.js
+++ b/lib/yuilib/3.9.1/build/anim-color/anim-color-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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){e.Anim.behaviors[t]=e.Anim.behaviors.color})},"3.9.0",{requires:["anim-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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){e.Anim.behaviors[t]=e.Anim.behaviors.color})},"3.9.1",{requires:["anim-base"]});
diff --git a/lib/yuilib/3.9.0/build/anim-color/anim-color.js b/lib/yuilib/3.9.1/build/anim-color/anim-color.js
similarity index 93%
rename from lib/yuilib/3.9.0/build/anim-color/anim-color.js
rename to lib/yuilib/3.9.1/build/anim-color/anim-color.js
index d244c7d381e..1bc7eeec989 100644
--- a/lib/yuilib/3.9.0/build/anim-color/anim-color.js
+++ b/lib/yuilib/3.9.1/build/anim-color/anim-color.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('anim-color', function (Y, NAME) {
/**
@@ -51,4 +51,4 @@ Y.each(['backgroundColor',
);
-}, '3.9.0', {"requires": ["anim-base"]});
+}, '3.9.1', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.9.0/build/anim-curve/anim-curve-coverage.js b/lib/yuilib/3.9.1/build/anim-curve/anim-curve-coverage.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/anim-curve/anim-curve-coverage.js
rename to lib/yuilib/3.9.1/build/anim-curve/anim-curve-coverage.js
index a5b95b422fe..8627c2659e1 100644
--- a/lib/yuilib/3.9.0/build/anim-curve/anim-curve-coverage.js
+++ b/lib/yuilib/3.9.1/build/anim-curve/anim-curve-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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) {"," 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,"," tmp = [],"," i,"," j;",""," for (i = 0; i < n; ++i){"," tmp[i] = [points[i][0], points[i][1]]; // save input"," }",""," for (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.9.0', {\"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) {"," 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,"," tmp = [],"," i,"," j;",""," for (i = 0; i < n; ++i){"," tmp[i] = [points[i][0], points[i][1]]; // save input"," }",""," for (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.9.1', {\"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,"43":0,"44":0,"47":0,"48":0,"49":0,"50":0,"54":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 = 17;
@@ -111,4 +111,4 @@ return [ tmp[0][0], tmp[0][1] ];
};
-}, '3.9.0', {"requires": ["anim-xy"]});
+}, '3.9.1', {"requires": ["anim-xy"]});
diff --git a/lib/yuilib/3.9.0/build/anim-curve/anim-curve-debug.js b/lib/yuilib/3.9.1/build/anim-curve/anim-curve-debug.js
similarity index 94%
rename from lib/yuilib/3.9.0/build/anim-curve/anim-curve-debug.js
rename to lib/yuilib/3.9.1/build/anim-curve/anim-curve-debug.js
index 0b75ee8274b..0908e39480b 100644
--- a/lib/yuilib/3.9.0/build/anim-curve/anim-curve-debug.js
+++ b/lib/yuilib/3.9.1/build/anim-curve/anim-curve-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('anim-curve', function (Y, NAME) {
/**
@@ -57,4 +57,4 @@ Y.Anim.getBezier = function(points, t) {
};
-}, '3.9.0', {"requires": ["anim-xy"]});
+}, '3.9.1', {"requires": ["anim-xy"]});
diff --git a/lib/yuilib/3.9.0/build/anim-curve/anim-curve-min.js b/lib/yuilib/3.9.1/build/anim-curve/anim-curve-min.js
similarity index 78%
rename from lib/yuilib/3.9.0/build/anim-curve/anim-curve-min.js
rename to lib/yuilib/3.9.1/build/anim-curve/anim-curve-min.js
index a0112ad9cfd..fcd396f2612 100644
--- a/lib/yuilib/3.9.0/build/anim-curve/anim-curve-min.js
+++ b/lib/yuilib/3.9.1/build/anim-curve/anim-curve-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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){return e._node.getXY()}},e.Anim.getBezier=function(e,t){var n=e.length,r=[],i,s;for(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.9.0', {\"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.9.1', {\"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;
@@ -82,4 +82,4 @@ return [node.get('scrollLeft'), node.get('scrollTop')];
-}, '3.9.0', {"requires": ["anim-base"]});
+}, '3.9.1', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.9.0/build/anim-scroll/anim-scroll-debug.js b/lib/yuilib/3.9.1/build/anim-scroll/anim-scroll-debug.js
similarity index 89%
rename from lib/yuilib/3.9.0/build/anim-scroll/anim-scroll-debug.js
rename to lib/yuilib/3.9.1/build/anim-scroll/anim-scroll-debug.js
index 48b2ce3cd5f..2866958a36b 100644
--- a/lib/yuilib/3.9.0/build/anim-scroll/anim-scroll-debug.js
+++ b/lib/yuilib/3.9.1/build/anim-scroll/anim-scroll-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('anim-scroll', function (Y, NAME) {
/**
@@ -36,4 +36,4 @@ Y.Anim.behaviors.scroll = {
-}, '3.9.0', {"requires": ["anim-base"]});
+}, '3.9.1', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.9.0/build/anim-scroll/anim-scroll-min.js b/lib/yuilib/3.9.1/build/anim-scroll/anim-scroll-min.js
similarity index 76%
rename from lib/yuilib/3.9.0/build/anim-scroll/anim-scroll-min.js
rename to lib/yuilib/3.9.1/build/anim-scroll/anim-scroll-min.js
index 90487602e05..4ca1248127f 100644
--- a/lib/yuilib/3.9.0/build/anim-scroll/anim-scroll-min.js
+++ b/lib/yuilib/3.9.1/build/anim-scroll/anim-scroll-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["anim-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["anim-base"]});
diff --git a/lib/yuilib/3.9.0/build/anim-scroll/anim-scroll.js b/lib/yuilib/3.9.1/build/anim-scroll/anim-scroll.js
similarity index 89%
rename from lib/yuilib/3.9.0/build/anim-scroll/anim-scroll.js
rename to lib/yuilib/3.9.1/build/anim-scroll/anim-scroll.js
index 48b2ce3cd5f..2866958a36b 100644
--- a/lib/yuilib/3.9.0/build/anim-scroll/anim-scroll.js
+++ b/lib/yuilib/3.9.1/build/anim-scroll/anim-scroll.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('anim-scroll', function (Y, NAME) {
/**
@@ -36,4 +36,4 @@ Y.Anim.behaviors.scroll = {
-}, '3.9.0', {"requires": ["anim-base"]});
+}, '3.9.1', {"requires": ["anim-base"]});
diff --git a/lib/yuilib/3.9.0/build/anim-shape-transform/anim-shape-transform-coverage.js b/lib/yuilib/3.9.1/build/anim-shape-transform/anim-shape-transform-coverage.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/anim-shape-transform/anim-shape-transform-coverage.js
rename to lib/yuilib/3.9.1/build/anim-shape-transform/anim-shape-transform-coverage.js
index 7b8123793ad..0ddfe5878c2 100644
--- a/lib/yuilib/3.9.0/build/anim-shape-transform/anim-shape-transform-coverage.js
+++ b/lib/yuilib/3.9.1/build/anim-shape-transform/anim-shape-transform-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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.9.0', {\"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.9.1', {\"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;
@@ -184,4 +184,4 @@ return from;
-}, '3.9.0', {"requires": ["anim-base", "anim-easing", "matrix"]});
+}, '3.9.1', {"requires": ["anim-base", "anim-easing", "matrix"]});
diff --git a/lib/yuilib/3.9.0/build/anim-shape/anim-shape-coverage.js b/lib/yuilib/3.9.1/build/anim-shape/anim-shape-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/anim-shape/anim-shape-coverage.js
rename to lib/yuilib/3.9.1/build/anim-shape/anim-shape-coverage.js
index fbbf28b60eb..5c6eb6ca87f 100644
--- a/lib/yuilib/3.9.0/build/anim-shape/anim-shape-coverage.js
+++ b/lib/yuilib/3.9.1/build/anim-shape/anim-shape-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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,"," 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,"," 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.9.0', {\"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 property in 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,"," 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,"," 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.9.1', {\"requires\": [\"anim-base\", \"anim-easing\", \"anim-color\", \"matrix\"]});"];
_yuitest_coverage["build/anim-shape/anim-shape.js"].lines = {"1":0,"18":0,"26":0,"34":0,"36":0,"37":0,"38":0,"39":0,"41":0,"43":0,"45":0,"55":0,"59":0,"61":0,"65":0,"69":0,"71":0,"73":0,"76":0,"77":0,"79":0,"80":0,"82":0,"83":0,"87":0,"90":0,"91":0,"93":0,"95":0,"105":0,"106":0,"107":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"117":0,"118":0,"120":0,"123":0,"125":0,"127":0,"129":0,"133":0,"144":0,"146":0,"148":0,"149":0,"150":0,"152":0,"153":0,"155":0,"156":0,"158":0,"160":0,"161":0,"165":0,"166":0,"167":0,"169":0,"170":0,"171":0,"174":0,"175":0,"178":0,"179":0};
_yuitest_coverage["build/anim-shape/anim-shape.js"].functions = {"GETUPDATEDSTOPS:24":0,"set:64":0,"set:94":0,"get:132":0,"(anonymous 1):1":0};
_yuitest_coverage["build/anim-shape/anim-shape.js"].coveredLines = 69;
@@ -290,4 +290,4 @@ return from;
-}, '3.9.0', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
+}, '3.9.1', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
diff --git a/lib/yuilib/3.9.0/build/anim-shape/anim-shape-debug.js b/lib/yuilib/3.9.1/build/anim-shape/anim-shape-debug.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/anim-shape/anim-shape-debug.js
rename to lib/yuilib/3.9.1/build/anim-shape/anim-shape-debug.js
index 5ab069afaaf..61342167830 100644
--- a/lib/yuilib/3.9.0/build/anim-shape/anim-shape-debug.js
+++ b/lib/yuilib/3.9.1/build/anim-shape/anim-shape-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('anim-shape', function (Y, NAME) {
/**
@@ -183,4 +183,4 @@ YUI.add('anim-shape', function (Y, NAME) {
-}, '3.9.0', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
+}, '3.9.1', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});
diff --git a/lib/yuilib/3.9.0/build/anim-shape/anim-shape-min.js b/lib/yuilib/3.9.1/build/anim-shape/anim-shape-min.js
similarity index 92%
rename from lib/yuilib/3.9.0/build/anim-shape/anim-shape-min.js
rename to lib/yuilib/3.9.1/build/anim-shape/anim-shape-min.js
index 99af0a47487..b2575e612fe 100644
--- a/lib/yuilib/3.9.0/build/anim-shape/anim-shape-min.js
+++ b/lib/yuilib/3.9.1/build/anim-shape/anim-shape-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("anim-shape",function(e,t){var n=Number,r,i,s="color",o="stops",u="type",a=function(t,r,i,o,u,a){var f=0,l=e.Anim.getUpdatedColorValue,c,h,p,d=i.length,v=[],m;for(;ffrom 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.9.0', {\"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.9.1', {\"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;
@@ -65,4 +65,4 @@ return anim._node.getXY();
-}, '3.9.0', {"requires": ["anim-base", "node-screen"]});
+}, '3.9.1', {"requires": ["anim-base", "node-screen"]});
diff --git a/lib/yuilib/3.9.0/build/anim-xy/anim-xy-debug.js b/lib/yuilib/3.9.1/build/anim-xy/anim-xy-debug.js
similarity index 83%
rename from lib/yuilib/3.9.0/build/anim-xy/anim-xy-debug.js
rename to lib/yuilib/3.9.1/build/anim-xy/anim-xy-debug.js
index 4143e7fddca..283f1d227d5 100644
--- a/lib/yuilib/3.9.0/build/anim-xy/anim-xy-debug.js
+++ b/lib/yuilib/3.9.1/build/anim-xy/anim-xy-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('anim-xy', function (Y, NAME) {
/**
@@ -24,4 +24,4 @@ Y.Anim.behaviors.xy = {
-}, '3.9.0', {"requires": ["anim-base", "node-screen"]});
+}, '3.9.1', {"requires": ["anim-base", "node-screen"]});
diff --git a/lib/yuilib/3.9.0/build/anim-xy/anim-xy-min.js b/lib/yuilib/3.9.1/build/anim-xy/anim-xy-min.js
similarity index 63%
rename from lib/yuilib/3.9.0/build/anim-xy/anim-xy-min.js
rename to lib/yuilib/3.9.1/build/anim-xy/anim-xy-min.js
index 8b265151f3a..7b1e6d93390 100644
--- a/lib/yuilib/3.9.0/build/anim-xy/anim-xy-min.js
+++ b/lib/yuilib/3.9.1/build/anim-xy/anim-xy-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["anim-base","node-screen"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["anim-base","node-screen"]});
diff --git a/lib/yuilib/3.9.0/build/anim-xy/anim-xy.js b/lib/yuilib/3.9.1/build/anim-xy/anim-xy.js
similarity index 83%
rename from lib/yuilib/3.9.0/build/anim-xy/anim-xy.js
rename to lib/yuilib/3.9.1/build/anim-xy/anim-xy.js
index 4143e7fddca..283f1d227d5 100644
--- a/lib/yuilib/3.9.0/build/anim-xy/anim-xy.js
+++ b/lib/yuilib/3.9.1/build/anim-xy/anim-xy.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('anim-xy', function (Y, NAME) {
/**
@@ -24,4 +24,4 @@ Y.Anim.behaviors.xy = {
-}, '3.9.0', {"requires": ["anim-base", "node-screen"]});
+}, '3.9.1', {"requires": ["anim-base", "node-screen"]});
diff --git a/lib/yuilib/3.9.0/build/app-base/app-base-coverage.js b/lib/yuilib/3.9.1/build/app-base/app-base-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/app-base/app-base-coverage.js
rename to lib/yuilib/3.9.1/build/app-base/app-base-coverage.js
index 38b4058f612..d6caa2d30ff 100644
--- a/lib/yuilib/3.9.0/build/app-base/app-base-coverage.js
+++ b/lib/yuilib/3.9.1/build/app-base/app-base-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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 `validator( item ).validator( item ).callback( item, index ).callback( item, index ).each, if the callback returns true, the"," * iteratation will stop.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, {",""," /**"," *
"," *"," * list.each( function ( item ) {"," * item.methodName( 1, 2, 3 );"," * } );"," * // becomes"," * list.methodName( 1, 2, 3 );_item method in case there is any special behavior that is"," * appropriate for API mirroring.callback( item, index ).callback( item, index ).each, if the callback returns true, the"," * iteratation will stop.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, {",""," /**"," *
"," *"," * list.each( function ( item ) {"," * item.methodName( 1, 2, 3 );"," * } );"," * // becomes"," * list.methodName( 1, 2, 3 );_item method in case there is any special behavior that is"," * appropriate for API mirroring.fn key is required."," *
"," *"," * @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;","","/**"," * fn -- The callback functioncontext -- 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."," *
"," *"," * @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 autoContinue: trueiterations: 1timeout: 10 (10ms between callbacks)until: (function to run until iterations <= 0)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;"," },",""," /**"," * fn key is required."," *
"," *"," * @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;","","/**"," * fn -- The callback functioncontext -- 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."," *
"," *"," * @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 autoContinue: trueiterations: 1timeout: 10 (10ms between callbacks)until: (function to run until iterations <= 0)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;"," },",""," /**"," * "," *
"," *"," * "," *
"," *"," * "," *
"," *"," * "," *
"," *"," * 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) {"," 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."," * @param {Object} [opts] Optional data providing the circumstances for the change."," * @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 data providing the circumstances for the change."," * @return {Object} A reference to the host object."," */"," _set : function(name, val, opts) {"," return this._setAttr(name, val, opts, 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 data providing the circumstances for the change."," * @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) {"," 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) {"," opts = opts || {};"," if (!this._fireAttrChange || initializing) {"," this._setAttrVal(name, strPath, currVal, val, opts);"," } 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."," * @param {Object} [opts] Optional data providing the circumstances for the change."," *"," * @return {booolean} true if the new attribute value was stored, false if not."," */"," _setAttrVal : function(attrName, subAttrName, prevVal, newVal, opts) {",""," 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, opts);",""," 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, opts);",""," if (retVal === INVALID_VALUE) {"," if (initializing) {"," newVal = cfg.defaultValue;"," } else {"," 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."," * @param {Object} [opts] Optional data providing the circumstances for the change."," * @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] Optional data providing the circumstances for the change"," * @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;"," },",""," /**"," * 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."," *"," * "," *
"," *"," * "," *
"," *"," * 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) {"," 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."," * @param {Object} [opts] Optional data providing the circumstances for the change."," * @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 data providing the circumstances for the change."," * @return {Object} A reference to the host object."," */"," _set : function(name, val, opts) {"," return this._setAttr(name, val, opts, 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 data providing the circumstances for the change."," * @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) {"," 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) {"," opts = opts || {};"," if (!this._fireAttrChange || initializing) {"," this._setAttrVal(name, strPath, currVal, val, opts);"," } 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."," * @param {Object} [opts] Optional data providing the circumstances for the change."," *"," * @return {booolean} true if the new attribute value was stored, false if not."," */"," _setAttrVal : function(attrName, subAttrName, prevVal, newVal, opts) {",""," 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, opts);",""," 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, opts);",""," if (retVal === INVALID_VALUE) {"," if (initializing) {"," newVal = cfg.defaultValue;"," } else {"," 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."," * @param {Object} [opts] Optional data providing the circumstances for the change."," * @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] Optional data providing the circumstances for the change"," * @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;"," },",""," /**"," * 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."," *"," * "," * 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."," * 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, e.opts)) {"," /*jshint maxlen:200*/"," /*jshint maxlen:150*/"," // 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(AttributeObservable, EventTarget, false, null, 1);",""," Y.AttributeObservable = AttributeObservable;",""," /**"," The `AttributeEvents` class extension was deprecated in YUI 3.8.0 and is now"," an alias for the `AttributeObservable` class extension. Use that class"," extnesion instead. This alias will be removed in a future version of YUI.",""," @class AttributeEvents"," @uses EventTarget"," @deprecated Use `AttributeObservable` instead."," @see AttributeObservable"," **/"," Y.AttributeEvents = AttributeObservable;","","","}, '3.9.0', {\"requires\": [\"event-custom\"]});"];
+_yuitest_coverage["build/attribute-observable/attribute-observable.js"].code=["YUI.add('attribute-observable', 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-observable` submodule provides augmentable attribute change event support"," * for AttributeCore based implementations."," *"," * @module attribute"," * @submodule attribute-observable"," */"," var EventTarget = Y.EventTarget,",""," CHANGE = \"Change\","," BROADCAST = \"broadcast\","," PUBLISHED = \"published\";",""," /**"," * Provides an augmentable implementation of attribute change events for"," * AttributeCore."," *"," * @class AttributeObservable"," * @extensionfor AttributeCore"," * @uses EventTarget"," */"," function AttributeObservable() {"," // Perf tweak - avoid creating event literals if not required."," this._ATTR_E_FACADE = {};",""," EventTarget.call(this, {emitFacade:true});"," }",""," AttributeObservable._ATTR_CFG = [BROADCAST];",""," AttributeObservable.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, e.opts)) {"," /*jshint maxlen:200*/"," /*jshint maxlen:150*/"," // 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(AttributeObservable, EventTarget, false, null, 1);",""," Y.AttributeObservable = AttributeObservable;",""," /**"," The `AttributeEvents` class extension was deprecated in YUI 3.8.0 and is now"," an alias for the `AttributeObservable` class extension. Use that class"," extnesion instead. This alias will be removed in a future version of YUI.",""," @class AttributeEvents"," @uses EventTarget"," @deprecated Use `AttributeObservable` instead."," @see AttributeObservable"," **/"," Y.AttributeEvents = AttributeObservable;","","","}, '3.9.1', {\"requires\": [\"event-custom\"]});"];
_yuitest_coverage["build/attribute-observable/attribute-observable.js"].lines = {"1":0,"20":0,"34":0,"36":0,"38":0,"41":0,"43":0,"66":0,"83":0,"96":0,"110":0,"111":0,"112":0,"113":0,"116":0,"132":0,"139":0,"141":0,"148":0,"149":0,"150":0,"153":0,"155":0,"158":0,"164":0,"165":0,"166":0,"167":0,"170":0,"181":0,"185":0,"187":0,"193":0,"195":0,"207":0};
_yuitest_coverage["build/attribute-observable/attribute-observable.js"].functions = {"AttributeObservable:34":0,"set:65":0,"_set:82":0,"setAttrs:95":0,"_setAttrs:109":0,"_fireAttrChange:131":0,"_defAttrChangeFn:180":0,"(anonymous 1):1":0};
_yuitest_coverage["build/attribute-observable/attribute-observable.js"].coveredLines = 35;
@@ -284,4 +284,4 @@ Y.AttributeObservable = AttributeObservable;
Y.AttributeEvents = AttributeObservable;
-}, '3.9.0', {"requires": ["event-custom"]});
+}, '3.9.1', {"requires": ["event-custom"]});
diff --git a/lib/yuilib/3.9.0/build/attribute-observable/attribute-observable-debug.js b/lib/yuilib/3.9.1/build/attribute-observable/attribute-observable-debug.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/attribute-observable/attribute-observable-debug.js
rename to lib/yuilib/3.9.1/build/attribute-observable/attribute-observable-debug.js
index 3d4d9e77cbb..bda323aa0ae 100644
--- a/lib/yuilib/3.9.0/build/attribute-observable/attribute-observable-debug.js
+++ b/lib/yuilib/3.9.1/build/attribute-observable/attribute-observable-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('attribute-observable', function (Y, NAME) {
/**
@@ -209,4 +209,4 @@ YUI.add('attribute-observable', function (Y, NAME) {
Y.AttributeEvents = AttributeObservable;
-}, '3.9.0', {"requires": ["event-custom"]});
+}, '3.9.1', {"requires": ["event-custom"]});
diff --git a/lib/yuilib/3.9.0/build/attribute-observable/attribute-observable-min.js b/lib/yuilib/3.9.1/build/attribute-observable/attribute-observable-min.js
similarity index 88%
rename from lib/yuilib/3.9.0/build/attribute-observable/attribute-observable-min.js
rename to lib/yuilib/3.9.1/build/attribute-observable/attribute-observable-min.js
index b989d6ddad4..719d7eaa8e9 100644
--- a/lib/yuilib/3.9.0/build/attribute-observable/attribute-observable-min.js
+++ b/lib/yuilib/3.9.1/build/attribute-observable/attribute-observable-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("attribute-observable",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.opts)?e.newVal=this.get(e.attrName):e.stopImmediatePropagation()}},e.mix(o,n,!1,null,1),e.AttributeObservable=o,e.AttributeEvents=o},"3.9.0",{requires:["event-custom"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+YUI.add("attribute-observable",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.opts)?e.newVal=this.get(e.attrName):e.stopImmediatePropagation()}},e.mix(o,n,!1,null,1),e.AttributeObservable=o,e.AttributeEvents=o},"3.9.1",{requires:["event-custom"]});
diff --git a/lib/yuilib/3.9.0/build/attribute-observable/attribute-observable.js b/lib/yuilib/3.9.1/build/attribute-observable/attribute-observable.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/attribute-observable/attribute-observable.js
rename to lib/yuilib/3.9.1/build/attribute-observable/attribute-observable.js
index 63e5d740fe4..d73e04d155d 100644
--- a/lib/yuilib/3.9.0/build/attribute-observable/attribute-observable.js
+++ b/lib/yuilib/3.9.1/build/attribute-observable/attribute-observable.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('attribute-observable', function (Y, NAME) {
/**
@@ -208,4 +208,4 @@ YUI.add('attribute-observable', function (Y, NAME) {
Y.AttributeEvents = AttributeObservable;
-}, '3.9.0', {"requires": ["event-custom"]});
+}, '3.9.1', {"requires": ["event-custom"]});
diff --git a/lib/yuilib/3.9.0/build/autocomplete-base/autocomplete-base-coverage.js b/lib/yuilib/3.9.1/build/autocomplete-base/autocomplete-base-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/autocomplete-base/autocomplete-base-coverage.js
rename to lib/yuilib/3.9.1/build/autocomplete-base/autocomplete-base-coverage.js
index e4118485a75..18e76bdf757 100644
--- a/lib/yuilib/3.9.0/build/autocomplete-base/autocomplete-base-coverage.js
+++ b/lib/yuilib/3.9.1/build/autocomplete-base/autocomplete-base-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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 `"," *
"," *"," * @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:"," *"," * "," *
"," *"," * @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:"," *"," * "," *
"," *"," * @attribute styles"," * @type Object"," */"," }","});","","","}, '3.9.0', {\"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,"1489":0,"1491":0,"1493":0,"1495":0,"1497":0,"1499":0,"1503":0,"1506":0,"1511":0,"1512":0,"1533":0,"1535":0,"1537":0,"1539":0,"1541":0,"1543":0,"1547":0,"1550":0,"1555":0,"1556":0,"1574":0,"1575":0,"1577":0,"1579":0,"1597":0,"1598":0,"1600":0,"1602":0,"1621":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:1487":0,"setter:1509":0,"getter:1531":0,"setter:1553":0,"setter:1572":0,"setter:1595":0,"getter:1619":0,"(anonymous 1):1":0};
+_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\",","PieChartLegend,","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."," * @protected"," */"," _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, hAlign)"," {"," 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} vAlign The vertical alignment of the legend."," * @protected"," */"," _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, 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;","","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()"," {"," if(this.get(\"rendered\"))"," {"," this._drawLegend();"," }"," },",""," /**"," * Handles position changes."," *"," * @method _positionChangeHandler"," * @param {Object} e Event object"," * @private"," */"," _positionChangeHandler: function()"," {"," 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,"," direction = this.get(\"direction\"),"," align = direction === \"vertical\" ? styles.vAlign : styles.hAlign,"," marker = styles.marker,"," labelStyles = itemStyles.label,"," displayName,"," layout = this._layout[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, align]"," );"," 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:"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," *"," * @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,"," ShapeClass = shapeClass;"," 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:"," *"," * "," *
"," *"," * @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:"," *"," * "," *
"," *"," * @attribute styles"," * @type Object"," */"," }","});","","","}, '3.9.1', {\"requires\": [\"charts-base\"]});"];
+_yuitest_coverage["build/charts-legend/charts-legend.js"].lines = {"1":0,"9":0,"27":0,"28":0,"30":0,"32":0,"34":0,"35":0,"39":0,"40":0,"42":0,"43":0,"45":0,"47":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,"234":0,"254":0,"255":0,"256":0,"257":0,"258":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"267":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,"282":0,"284":0,"290":0,"292":0,"308":0,"316":0,"318":0,"319":0,"320":0,"322":0,"323":0,"327":0,"328":0,"330":0,"332":0,"334":0,"336":0,"337":0,"353":0,"354":0,"357":0,"358":0,"360":0,"361":0,"363":0,"364":0,"366":0,"379":0,"381":0,"382":0,"384":0,"385":0,"386":0,"419":0,"421":0,"422":0,"423":0,"425":0,"426":0,"429":0,"431":0,"432":0,"433":0,"434":0,"436":0,"437":0,"440":0,"442":0,"443":0,"444":0,"446":0,"447":0,"450":0,"452":0,"453":0,"454":0,"456":0,"457":0,"461":0,"462":0,"463":0,"464":0,"465":0,"466":0,"467":0,"469":0,"470":0,"471":0,"472":0,"474":0,"475":0,"477":0,"478":0,"480":0,"481":0,"482":0,"484":0,"489":0,"490":0,"492":0,"493":0,"495":0,"496":0,"497":0,"499":0,"504":0,"505":0,"507":0,"508":0,"510":0,"511":0,"512":0,"514":0,"519":0,"520":0,"522":0,"523":0,"525":0,"526":0,"527":0,"529":0,"534":0,"535":0,"536":0,"537":0,"538":0,"540":0,"542":0,"545":0,"546":0,"547":0,"549":0,"550":0,"551":0,"553":0,"554":0,"555":0,"557":0,"558":0,"559":0,"563":0,"565":0,"566":0,"567":0,"569":0,"570":0,"572":0,"574":0,"575":0,"577":0,"579":0,"582":0,"584":0,"585":0,"586":0,"588":0,"589":0,"591":0,"593":0,"594":0,"596":0,"598":0,"601":0,"603":0,"604":0,"605":0,"607":0,"608":0,"609":0,"610":0,"612":0,"615":0,"617":0,"620":0,"622":0,"623":0,"624":0,"626":0,"627":0,"628":0,"629":0,"631":0,"634":0,"636":0,"639":0,"640":0,"642":0,"643":0,"645":0,"647":0,"648":0,"649":0,"650":0,"651":0,"654":0,"656":0,"657":0,"658":0,"659":0,"673":0,"687":0,"689":0,"690":0,"691":0,"693":0,"694":0,"695":0,"696":0,"697":0,"700":0,"701":0,"703":0,"704":0,"706":0,"707":0,"709":0,"710":0,"714":0,"726":0,"727":0,"729":0,"738":0,"740":0,"749":0,"751":0,"752":0,"754":0,"755":0,"756":0,"772":0,"774":0,"776":0,"777":0,"778":0,"779":0,"780":0,"781":0,"782":0,"784":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,"1114":0,"1115":0,"1116":0,"1117":0,"1118":0,"1119":0,"1120":0,"1123":0,"1124":0,"1126":0,"1130":0,"1134":0,"1135":0,"1148":0,"1155":0,"1175":0,"1177":0,"1179":0,"1180":0,"1181":0,"1191":0,"1193":0,"1194":0,"1195":0,"1207":0,"1208":0,"1246":0,"1254":0,"1255":0,"1256":0,"1257":0,"1258":0,"1259":0,"1260":0,"1261":0,"1262":0,"1263":0,"1264":0,"1265":0,"1266":0,"1277":0,"1278":0,"1286":0,"1287":0,"1299":0,"1300":0,"1312":0,"1343":0,"1356":0,"1360":0,"1371":0,"1372":0,"1374":0,"1376":0,"1377":0,"1378":0,"1379":0,"1380":0,"1381":0,"1384":0,"1406":0,"1408":0,"1409":0,"1411":0,"1412":0,"1414":0,"1418":0,"1445":0,"1446":0,"1476":0,"1478":0,"1480":0,"1482":0,"1484":0,"1503":0,"1505":0,"1507":0,"1509":0,"1511":0,"1513":0,"1517":0,"1520":0,"1525":0,"1526":0,"1547":0,"1549":0,"1551":0,"1553":0,"1555":0,"1557":0,"1561":0,"1564":0,"1569":0,"1570":0,"1588":0,"1589":0,"1591":0,"1593":0,"1611":0,"1612":0,"1614":0,"1616":0,"1635":0};
+_yuitest_coverage["build/charts-legend/charts-legend.js"].functions = {"setter:25":0,"_positionLegendItems:74":0,"_setRowArrays:145":0,"getStartPoint:190":0,"_positionLegendItems:232":0,"_setColumnArrays:306":0,"getStartPoint:351":0,"_redraw:377":0,"_getLayoutBoxDimensions:671":0,"destructor:724":0,"_redraw:747":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:1146":0,"_getStylesBySeriesType:1173":0,"_getLegendItem:1244":0,"_getShapeClass:1297":0,"_getDefaultStyles:1310":0,"_getPlotDefaults:1354":0,"_destroyLegendItems:1369":0,"destructor:1404":0,"setter:1443":0,"setter:1474":0,"getter:1501":0,"setter:1523":0,"getter:1545":0,"setter:1567":0,"setter:1586":0,"setter:1609":0,"getter:1633":0,"(anonymous 1):1":0};
_yuitest_coverage["build/charts-legend/charts-legend.js"].coveredLines = 530;
_yuitest_coverage["build/charts-legend/charts-legend.js"].coveredFunctions = 37;
_yuitest_coverline("build/charts-legend/charts-legend.js", 1);
@@ -57,42 +57,43 @@ POSITION = "position",
_X = "x",
_Y = "y",
PX = "px",
+PieChartLegend,
LEGEND = {
setter: function(val)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 24);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 26);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 25);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 27);
var legend = this.get("legend");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 27);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 28);
if(legend)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 29);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 30);
legend.destroy(true);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 31);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 32);
if(val instanceof Y.ChartLegend)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 33);
-legend = val;
_yuitest_coverline("build/charts-legend/charts-legend.js", 34);
+legend = val;
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 35);
legend.set("chart", this);
}
else
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 38);
-val.chart = this;
_yuitest_coverline("build/charts-legend/charts-legend.js", 39);
+val.chart = this;
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 40);
if(!val.hasOwnProperty("render"))
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 41);
-val.render = this.get("contentBox");
_yuitest_coverline("build/charts-legend/charts-legend.js", 42);
+val.render = this.get("contentBox");
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 43);
val.includeInChartLayout = true;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 44);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 45);
legend = new Y.ChartLegend(val);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 46);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 47);
return legend;
}
},
@@ -118,10 +119,9 @@ HorizontalLegendLayout = {
* @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)
+ _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, hAlign)
{
_yuitest_coverfunc("build/charts-legend/charts-legend.js", "_positionLegendItems", 74);
_yuitest_coverline("build/charts-legend/charts-legend.js", 76);
@@ -330,14 +330,13 @@ VerticalLegendLayout = {
* @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)
+ _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, vAlign)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_positionLegendItems", 233);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 235);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_positionLegendItems", 232);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 234);
var i = 0,
columnIterator = 0,
item,
@@ -358,73 +357,73 @@ var i = 0,
top,
right,
bottom;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 255);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 254);
VerticalLegendLayout._setColumnArrays(items, limit, verticalGap);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 256);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 255);
columns = VerticalLegendLayout.columnArray;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 257);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 256);
totalHeightArray = VerticalLegendLayout.totalHeightArray;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 258);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 257);
columnsLen = columns.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 259);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 258);
for(; columnIterator < columnsLen; ++ columnIterator)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 261);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 260);
leftWidth += horizontalGap;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 262);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 261);
column = columns[columnIterator];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 263);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 262);
len = column.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 264);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 263);
legendHeight = VerticalLegendLayout.getStartPoint(height, totalHeightArray[columnIterator], vAlign, padding);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 265);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 264);
legendWidth = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 266);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 265);
for(i = 0; i < len; ++i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 268);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 267);
item = column[i];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 269);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 268);
node = item.node;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 270);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 269);
itemHeight = item.height;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 271);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 270);
itemWidth = item.width;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 272);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 271);
item.y = legendHeight;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 273);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 272);
item.x = leftWidth;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 274);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 273);
left = !isNaN(left) ? Math.min(left, leftWidth) : leftWidth;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 275);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 274);
top = !isNaN(top) ? Math.min(top, legendHeight) : legendHeight;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 276);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 275);
right = !isNaN(right) ? Math.max(leftWidth + itemWidth, right) : leftWidth + itemWidth;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 277);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 276);
bottom = !isNaN(bottom) ? Math.max(legendHeight + itemHeight, bottom) : legendHeight + itemHeight;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 278);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 277);
node.setStyle("left", leftWidth + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 279);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 278);
node.setStyle("top", legendHeight + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 280);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 279);
legendHeight += itemHeight + verticalGap;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 281);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 280);
legendWidth = Math.max(legendWidth, item.width);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 283);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 282);
leftWidth += legendWidth;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 285);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 284);
this._contentRect = {
left: left,
top: top,
right: right,
bottom: bottom
};
- _yuitest_coverline("build/charts-legend/charts-legend.js", 291);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 290);
if(this.get("includeInChartLayout"))
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 293);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 292);
this.set("width", leftWidth + padding.right);
}
},
@@ -441,8 +440,8 @@ this.set("width", leftWidth + padding.right);
*/
_setColumnArrays: function(items, limit, verticalGap)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_setColumnArrays", 307);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 309);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_setColumnArrays", 306);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 308);
var item = items[0],
columnArray = [[item]],
i = 1,
@@ -451,40 +450,40 @@ var item = items[0],
totalHeight = item.height,
itemHeight,
totalHeightArray = [[totalHeight]];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 317);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 316);
for(; i < len; ++i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 319);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 318);
item = items[i];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 320);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 319);
itemHeight = item.height;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 321);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 320);
if((totalHeight + verticalGap + itemHeight) <= limit)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 323);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 322);
totalHeight += verticalGap + itemHeight;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 324);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 323);
columnArray[columnIterator].push(item);
}
else
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 328);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 327);
totalHeight = verticalGap + itemHeight;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 329);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 328);
if(columnArray[columnIterator])
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 331);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 330);
columnIterator += 1;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 333);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 332);
columnArray[columnIterator] = [item];
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 335);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 334);
totalHeightArray[columnIterator] = totalHeight;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 337);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 336);
VerticalLegendLayout.columnArray = columnArray;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 338);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 337);
VerticalLegendLayout.totalHeightArray = totalHeightArray;
},
@@ -501,29 +500,29 @@ VerticalLegendLayout.totalHeightArray = totalHeightArray;
*/
getStartPoint: function(h, totalHeight, align, padding)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "getStartPoint", 352);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 354);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "getStartPoint", 351);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 353);
var startPoint;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 355);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 354);
switch(align)
{
case TOP :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 358);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 357);
startPoint = padding.top;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 359);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 358);
break;
case "middle" :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 361);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 360);
startPoint = (h - totalHeight) * 0.5;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 362);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 361);
break;
case BOTTOM :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 364);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 363);
startPoint = h - totalHeight - padding.bottom;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 365);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 364);
break;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 367);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 366);
return startPoint;
}
},
@@ -537,20 +536,20 @@ CartesianChartLegend = Y.Base.create("cartesianChartLegend", Y.CartesianChart, [
*/
_redraw: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_redraw", 378);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 380);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_redraw", 377);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 379);
if(this._drawing)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 382);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 381);
this._callLater = true;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 383);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 382);
return;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 385);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 384);
this._drawing = true;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 386);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 385);
this._callLater = false;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 387);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 386);
var w = this.get("width"),
h = this.get("height"),
layoutBoxDimensions = this._getLayoutBoxDimensions(),
@@ -584,392 +583,392 @@ var w = this.get("width"),
legend = this.get("legend"),
graphRect = {};
- _yuitest_coverline("build/charts-legend/charts-legend.js", 420);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 419);
if(leftAxesCollection)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 422);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 421);
leftAxesXCoords = [];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 423);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 422);
l = leftAxesCollection.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 424);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 423);
for(i = l - 1; i > -1; --i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 426);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 425);
leftAxesXCoords.unshift(leftPaneWidth);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 427);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 426);
leftPaneWidth += leftAxesCollection[i].get("width");
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 430);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 429);
if(rightAxesCollection)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 432);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 431);
rightAxesXCoords = [];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 433);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 432);
l = rightAxesCollection.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 434);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 433);
i = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 435);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 434);
for(i = l - 1; i > -1; --i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 437);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 436);
rightPaneWidth += rightAxesCollection[i].get("width");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 438);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 437);
rightAxesXCoords.unshift(w - rightPaneWidth);
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 441);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 440);
if(topAxesCollection)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 443);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 442);
topAxesYCoords = [];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 444);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 443);
l = topAxesCollection.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 445);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 444);
for(i = l - 1; i > -1; --i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 447);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 446);
topAxesYCoords.unshift(topPaneHeight);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 448);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 447);
topPaneHeight += topAxesCollection[i].get("height");
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 451);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 450);
if(bottomAxesCollection)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 453);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 452);
bottomAxesYCoords = [];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 454);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 453);
l = bottomAxesCollection.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 455);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 454);
for(i = l - 1; i > -1; --i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 457);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 456);
bottomPaneHeight += bottomAxesCollection[i].get("height");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 458);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 457);
bottomAxesYCoords.unshift(h - bottomPaneHeight);
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 462);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 461);
graphWidth = w - (leftPaneWidth + rightPaneWidth);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 463);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 462);
graphHeight = h - (bottomPaneHeight + topPaneHeight);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 464);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 463);
graphRect.left = leftPaneWidth;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 465);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 464);
graphRect.top = topPaneHeight;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 466);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 465);
graphRect.bottom = h - bottomPaneHeight;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 467);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 466);
graphRect.right = w - rightPaneWidth;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 468);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 467);
if(!allowContentOverflow)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 470);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 469);
topOverflow = this._getTopOverflow(leftAxesCollection, rightAxesCollection);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 471);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 470);
bottomOverflow = this._getBottomOverflow(leftAxesCollection, rightAxesCollection);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 472);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 471);
leftOverflow = this._getLeftOverflow(bottomAxesCollection, topAxesCollection);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 473);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 472);
rightOverflow = this._getRightOverflow(bottomAxesCollection, topAxesCollection);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 475);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 474);
diff = topOverflow - topPaneHeight;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 476);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 475);
if(diff > 0)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 478);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 477);
graphRect.top = topOverflow;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 479);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 478);
if(topAxesYCoords)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 481);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 480);
i = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 482);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 481);
l = topAxesYCoords.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 483);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 482);
for(; i < l; ++i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 485);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 484);
topAxesYCoords[i] += diff;
}
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 490);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 489);
diff = bottomOverflow - bottomPaneHeight;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 491);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 490);
if(diff > 0)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 493);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 492);
graphRect.bottom = h - bottomOverflow;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 494);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 493);
if(bottomAxesYCoords)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 496);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 495);
i = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 497);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 496);
l = bottomAxesYCoords.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 498);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 497);
for(; i < l; ++i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 500);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 499);
bottomAxesYCoords[i] -= diff;
}
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 505);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 504);
diff = leftOverflow - leftPaneWidth;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 506);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 505);
if(diff > 0)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 508);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 507);
graphRect.left = leftOverflow;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 509);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 508);
if(leftAxesXCoords)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 511);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 510);
i = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 512);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 511);
l = leftAxesXCoords.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 513);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 512);
for(; i < l; ++i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 515);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 514);
leftAxesXCoords[i] += diff;
}
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 520);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 519);
diff = rightOverflow - rightPaneWidth;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 521);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 520);
if(diff > 0)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 523);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 522);
graphRect.right = w - rightOverflow;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 524);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 523);
if(rightAxesXCoords)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 526);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 525);
i = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 527);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 526);
l = rightAxesXCoords.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 528);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 527);
for(; i < l; ++i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 530);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 529);
rightAxesXCoords[i] -= diff;
}
}
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 535);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 534);
graphWidth = graphRect.right - graphRect.left;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 536);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 535);
graphHeight = graphRect.bottom - graphRect.top;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 537);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 536);
graphX = graphRect.left;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 538);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 537);
graphY = graphRect.top;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 539);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 538);
if(legend)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 541);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 540);
if(legend.get("includeInChartLayout"))
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 543);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 542);
switch(legend.get("position"))
{
case "left" :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 546);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 545);
legend.set("y", graphY);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 547);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 546);
legend.set("height", graphHeight);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 548);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 547);
break;
case "top" :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 550);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 549);
legend.set("x", graphX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 551);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 550);
legend.set("width", graphWidth);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 552);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 551);
break;
case "bottom" :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 554);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 553);
legend.set("x", graphX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 555);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 554);
legend.set("width", graphWidth);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 556);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 555);
break;
case "right" :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 558);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 557);
legend.set("y", graphY);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 559);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 558);
legend.set("height", graphHeight);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 560);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 559);
break;
}
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 564);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 563);
if(topAxesCollection)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 566);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 565);
l = topAxesCollection.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 567);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 566);
i = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 568);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 567);
for(; i < l; i++)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 570);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 569);
axis = topAxesCollection[i];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 571);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 570);
if(axis.get("width") !== graphWidth)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 573);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 572);
axis.set("width", graphWidth);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 575);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 574);
axis.get("boundingBox").setStyle("left", graphX + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 576);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 575);
axis.get("boundingBox").setStyle("top", topAxesYCoords[i] + PX);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 578);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 577);
if(axis._hasDataOverflow())
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 580);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 579);
graphOverflow = "hidden";
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 583);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 582);
if(bottomAxesCollection)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 585);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 584);
l = bottomAxesCollection.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 586);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 585);
i = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 587);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 586);
for(; i < l; i++)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 589);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 588);
axis = bottomAxesCollection[i];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 590);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 589);
if(axis.get("width") !== graphWidth)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 592);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 591);
axis.set("width", graphWidth);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 594);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 593);
axis.get("boundingBox").setStyle("left", graphX + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 595);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 594);
axis.get("boundingBox").setStyle("top", bottomAxesYCoords[i] + PX);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 597);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 596);
if(axis._hasDataOverflow())
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 599);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 598);
graphOverflow = "hidden";
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 602);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 601);
if(leftAxesCollection)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 604);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 603);
l = leftAxesCollection.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 605);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 604);
i = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 606);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 605);
for(; i < l; ++i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 608);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 607);
axis = leftAxesCollection[i];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 609);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 608);
axis.get("boundingBox").setStyle("top", graphY + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 610);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 609);
axis.get("boundingBox").setStyle("left", leftAxesXCoords[i] + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 611);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 610);
if(axis.get("height") !== graphHeight)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 613);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 612);
axis.set("height", graphHeight);
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 616);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 615);
if(axis._hasDataOverflow())
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 618);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 617);
graphOverflow = "hidden";
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 621);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 620);
if(rightAxesCollection)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 623);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 622);
l = rightAxesCollection.length;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 624);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 623);
i = 0;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 625);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 624);
for(; i < l; ++i)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 627);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 626);
axis = rightAxesCollection[i];
- _yuitest_coverline("build/charts-legend/charts-legend.js", 628);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 627);
axis.get("boundingBox").setStyle("top", graphY + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 629);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 628);
axis.get("boundingBox").setStyle("left", rightAxesXCoords[i] + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 630);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 629);
if(axis.get("height") !== graphHeight)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 632);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 631);
axis.set("height", graphHeight);
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 635);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 634);
if(axis._hasDataOverflow())
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 637);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 636);
graphOverflow = "hidden";
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 640);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 639);
this._drawing = false;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 641);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 640);
if(this._callLater)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 643);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 642);
this._redraw();
- _yuitest_coverline("build/charts-legend/charts-legend.js", 644);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 643);
return;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 646);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 645);
if(graph)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 648);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 647);
graph.get("boundingBox").setStyle("left", graphX + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 649);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 648);
graph.get("boundingBox").setStyle("top", graphY + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 650);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 649);
graph.set("width", graphWidth);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 651);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 650);
graph.set("height", graphHeight);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 652);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 651);
graph.get("boundingBox").setStyle("overflow", graphOverflow);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 655);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 654);
if(this._overlay)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 657);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 656);
this._overlay.setStyle("left", graphX + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 658);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 657);
this._overlay.setStyle("top", graphY + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 659);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 658);
this._overlay.setStyle("width", graphWidth + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 660);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 659);
this._overlay.setStyle("height", graphHeight + PX);
}
},
@@ -984,8 +983,8 @@ this._overlay.setStyle("height", graphHeight + PX);
*/
_getLayoutBoxDimensions: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getLayoutBoxDimensions", 672);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 674);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getLayoutBoxDimensions", 671);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 673);
var box = {
top: 0,
right: 0,
@@ -1000,51 +999,51 @@ var box = {
w = this.get(WIDTH),
h = this.get(HEIGHT),
gap;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 688);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 687);
if(legend && legend.get("includeInChartLayout"))
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 690);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 689);
gap = legend.get("styles").gap;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 691);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 690);
position = legend.get(POSITION);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 692);
-if(position != EXTERNAL)
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 691);
+if(position !== EXTERNAL)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 694);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 693);
direction = legend.get("direction");
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 694);
+dimension = direction === HORIZONTAL ? HEIGHT : WIDTH;
_yuitest_coverline("build/charts-legend/charts-legend.js", 695);
-dimension = direction == HORIZONTAL ? HEIGHT : WIDTH;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 696);
size = legend.get(dimension);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 697);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 696);
box[position] = size + gap;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 698);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 697);
switch(position)
{
case TOP :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 701);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 700);
legend.set(_Y, 0);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 702);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 701);
break;
case BOTTOM :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 704);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 703);
legend.set(_Y, h - size);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 705);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 704);
break;
case RIGHT :
- _yuitest_coverline("build/charts-legend/charts-legend.js", 707);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 706);
legend.set(_X, w - size);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 708);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 707);
break;
case LEFT:
- _yuitest_coverline("build/charts-legend/charts-legend.js", 710);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 709);
legend.set(_X, 0);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 711);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 710);
break;
}
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 715);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 714);
return box;
},
@@ -1057,13 +1056,13 @@ return box;
*/
destructor: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "destructor", 725);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 727);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "destructor", 724);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 726);
var legend = this.get("legend");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 728);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 727);
if(legend)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 730);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 729);
legend.destroy(true);
}
}
@@ -1073,11 +1072,11 @@ legend.destroy(true);
}
});
-_yuitest_coverline("build/charts-legend/charts-legend.js", 739);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 738);
Y.CartesianChart = CartesianChartLegend;
-_yuitest_coverline("build/charts-legend/charts-legend.js", 741);
-var PieChartLegend = Y.Base.create("pieChartLegend", Y.PieChart, [], {
+_yuitest_coverline("build/charts-legend/charts-legend.js", 740);
+PieChartLegend = Y.Base.create("pieChartLegend", Y.PieChart, [], {
/**
* Redraws the chart instance.
*
@@ -1086,20 +1085,20 @@ var PieChartLegend = Y.Base.create("pieChartLegend", Y.PieChart, [], {
*/
_redraw: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_redraw", 748);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 750);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_redraw", 747);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 749);
if(this._drawing)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 752);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 751);
this._callLater = true;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 753);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 752);
return;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 755);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 754);
this._drawing = true;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 756);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 755);
this._callLater = false;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 757);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 756);
var graph = this.get("graph"),
w = this.get("width"),
h = this.get("height"),
@@ -1116,29 +1115,30 @@ var graph = this.get("graph"),
gap,
position,
direction;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 773);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 772);
if(graph)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 775);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 774);
if(legend)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 777);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 776);
position = legend.get("position");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 778);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 777);
direction = legend.get("direction");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 779);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 778);
graphWidth = graph.get("width");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 780);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 779);
graphHeight = graph.get("height");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 781);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 780);
legendWidth = legend.get("width");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 782);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 781);
legendHeight = legend.get("height");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 783);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 782);
gap = legend.get("styles").gap;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 785);
-if((direction == "vertical" && (graphWidth + legendWidth + gap !== w)) || (direction == "horizontal" && (graphHeight + legendHeight + gap !== h)))
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 784);
+if((direction === "vertical" && (graphWidth + legendWidth + gap !== w)) ||
+ (direction === "horizontal" && (graphHeight + legendHeight + gap !== h)))
{
_yuitest_coverline("build/charts-legend/charts-legend.js", 787);
switch(legend.get("position"))
@@ -1364,7 +1364,7 @@ this._drawLegend();
* @param {Object} e Event object
* @private
*/
- _updateHandler: function(e)
+ _updateHandler: function()
{
_yuitest_coverfunc("build/charts-legend/charts-legend.js", "_updateHandler", 946);
_yuitest_coverline("build/charts-legend/charts-legend.js", 948);
@@ -1382,7 +1382,7 @@ this._drawLegend();
* @param {Object} e Event object
* @private
*/
- _positionChangeHandler: function(e)
+ _positionChangeHandler: function()
{
_yuitest_coverfunc("build/charts-legend/charts-legend.js", "_positionChangeHandler", 961);
_yuitest_coverline("build/charts-legend/charts-legend.js", 963);
@@ -1415,10 +1415,10 @@ this._drawLegend();
_yuitest_coverline("build/charts-legend/charts-legend.js", 984);
var attrName = e.attrName,
pos = this.get(POSITION),
- vert = pos == LEFT || pos == RIGHT,
- hor = pos == BOTTOM || pos == TOP;
+ vert = pos === LEFT || pos === RIGHT,
+ hor = pos === BOTTOM || pos === TOP;
_yuitest_coverline("build/charts-legend/charts-legend.js", 988);
-if((hor && attrName == WIDTH) || (vert && attrName == HEIGHT))
+if((hor && attrName === WIDTH) || (vert && attrName === HEIGHT))
{
_yuitest_coverline("build/charts-legend/charts-legend.js", 990);
this._drawLegend();
@@ -1463,12 +1463,12 @@ var chart = this.get("chart"),
seriesStyles,
hSpacing = itemStyles.hSpacing,
vSpacing = itemStyles.vSpacing,
- hAlign = styles.hAlign,
- vAlign = styles.vAlign,
+ direction = this.get("direction"),
+ align = direction === "vertical" ? styles.vAlign : styles.hAlign,
marker = styles.marker,
labelStyles = itemStyles.label,
displayName,
- layout = this._layout[this.get("direction")],
+ layout = this._layout[direction],
i,
len,
isArray,
@@ -1582,38 +1582,50 @@ shape = Y.Circle;
_yuitest_coverline("build/charts-legend/charts-legend.js", 1103);
shapeClass = Y.Lang.isArray(shape) ? shape[i] : shape;
_yuitest_coverline("build/charts-legend/charts-legend.js", 1104);
-item = this._getLegendItem(node, this._getShapeClass(shape), seriesStyles.fill, seriesStyles.border, labelStyles, markerWidth, markerHeight, series.get("valueDisplayName"));
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1105);
+item = this._getLegendItem(
+ node,
+ this._getShapeClass(shape),
+ seriesStyles.fill,
+ seriesStyles.border,
+ labelStyles,
+ markerWidth,
+ markerHeight,
+ series.get("valueDisplayName")
+ );
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1114);
itemWidth = item.width;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1106);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1115);
itemHeight = item.height;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1107);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1116);
maxWidth = Math.max(maxWidth, itemWidth);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1108);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1117);
maxHeight = Math.max(maxHeight, itemHeight);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1109);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1118);
totalWidth += itemWidth + hSpacing;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1110);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1119);
totalHeight += itemHeight + vSpacing;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1111);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1120);
items.push(item);
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1114);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1123);
this._drawing = false;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1115);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1124);
if(this._callLater)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1117);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1126);
this._drawLegend();
}
else
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1121);
-layout._positionLegendItems.apply(this, [items, maxWidth, maxHeight, totalWidth, totalHeight, padding, hSpacing, vSpacing, hAlign, vAlign]);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1122);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1130);
+layout._positionLegendItems.apply(
+ this,
+ [items, maxWidth, maxHeight, totalWidth, totalHeight, padding, hSpacing, vSpacing, align]
+ );
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1134);
this._updateBackground(styles);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1123);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1135);
this.fire("legendRendered");
}
},
@@ -1627,8 +1639,8 @@ this.fire("legendRendered");
*/
_updateBackground: function(styles)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_updateBackground", 1134);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1136);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_updateBackground", 1146);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1148);
var backgroundStyles = styles.background,
contentRect = this._contentRect,
padding = styles.padding,
@@ -1636,7 +1648,7 @@ var backgroundStyles = styles.background,
y = contentRect.top - padding.top,
w = contentRect.right - x + padding.right,
h = contentRect.bottom - y + padding.bottom;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1143);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1155);
this.get("background").set({
fill: backgroundStyles.fill,
stroke: backgroundStyles.border,
@@ -1657,18 +1669,18 @@ this.get("background").set({
*/
_getStylesBySeriesType: function(series)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getStylesBySeriesType", 1161);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1163);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getStylesBySeriesType", 1173);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1175);
var styles = series.get("styles"),
color;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1165);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1177);
if(series instanceof Y.LineSeries || series instanceof Y.StackedLineSeries)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1167);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1179);
styles = series.get("styles").line;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1168);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1180);
color = styles.color || series._getDefaultColor(series.get("graphOrder"), "line");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1169);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1181);
return {
border: {
weight: 1,
@@ -1679,14 +1691,14 @@ return {
}
};
}
- else {_yuitest_coverline("build/charts-legend/charts-legend.js", 1179);
+ else {_yuitest_coverline("build/charts-legend/charts-legend.js", 1191);
if(series instanceof Y.AreaSeries || series instanceof Y.StackedAreaSeries)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1181);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1193);
styles = series.get("styles").area;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1182);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1194);
color = styles.color || series._getDefaultColor(series.get("graphOrder"), "slice");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1183);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1195);
return {
border: {
weight: 1,
@@ -1699,9 +1711,9 @@ return {
}
else
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1195);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1207);
styles = series.get("styles").marker;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1196);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1208);
return {
fill: styles.fill,
@@ -1740,41 +1752,42 @@ return {
*/
_getLegendItem: function(node, shapeClass, fill, border, labelStyles, w, h, text)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getLegendItem", 1232);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1234);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getLegendItem", 1244);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1246);
var containerNode = Y.one(DOCUMENT.createElement("div")),
textField = Y.one(DOCUMENT.createElement("span")),
shape,
dimension,
padding,
left,
- item;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1241);
+ item,
+ ShapeClass = shapeClass;
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1254);
containerNode.setStyle(POSITION, "absolute");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1242);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1255);
textField.setStyle(POSITION, "absolute");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1243);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1256);
textField.setStyles(labelStyles);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1244);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1257);
textField.appendChild(DOCUMENT.createTextNode(text));
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1245);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1258);
containerNode.appendChild(textField);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1246);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1259);
node.appendChild(containerNode);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1247);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1260);
dimension = textField.get("offsetHeight");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1248);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1261);
padding = dimension - h;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1249);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1262);
left = w + padding + 2;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1250);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1263);
textField.setStyle("left", left + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1251);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1264);
containerNode.setStyle("height", dimension + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1252);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1265);
containerNode.setStyle("width", (left + textField.get("offsetWidth")) + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1253);
-shape = new shapeClass({
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1266);
+shape = new ShapeClass({
fill: fill,
stroke: border,
width: w,
@@ -1785,9 +1798,9 @@ shape = new shapeClass({
h: h,
graphic: containerNode
});
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1264);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1277);
textField.setStyle("left", dimension + PX);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1265);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1278);
item = {
node: containerNode,
width: containerNode.get("offsetWidth"),
@@ -1796,9 +1809,9 @@ item = {
textNode: textField,
text: text
};
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1273);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1286);
this._items.push(item);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1274);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1287);
return item;
},
@@ -1811,10 +1824,10 @@ return item;
*/
_getShapeClass: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getShapeClass", 1284);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1286);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getShapeClass", 1297);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1299);
var graphic = this.get("background").get("graphic");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1287);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1300);
return graphic._getShapeClass.apply(graphic, arguments);
},
@@ -1827,8 +1840,8 @@ return graphic._getShapeClass.apply(graphic, arguments);
*/
_getDefaultStyles: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getDefaultStyles", 1297);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1299);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getDefaultStyles", 1310);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1312);
var styles = {
padding: {
top: 8,
@@ -1860,7 +1873,7 @@ var styles = {
}
}
};
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1330);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1343);
return styles;
},
@@ -1874,13 +1887,13 @@ return styles;
*/
_getPlotDefaults: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getPlotDefaults", 1341);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1343);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_getPlotDefaults", 1354);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1356);
var defs = {
width: 10,
height: 10
};
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1347);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1360);
return defs;
},
@@ -1892,30 +1905,30 @@ return defs;
*/
_destroyLegendItems: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_destroyLegendItems", 1356);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1358);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "_destroyLegendItems", 1369);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1371);
var item;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1359);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1372);
if(this._items)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1361);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1374);
while(this._items.length > 0)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1363);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1376);
item = this._items.shift();
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1364);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1377);
item.shape.get("graphic").destroy();
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1365);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1378);
item.node.empty();
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1366);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1379);
item.node.destroy(true);
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1367);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1380);
item.node = null;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1368);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1381);
item = null;
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1371);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1384);
this._items = [];
},
@@ -1938,26 +1951,26 @@ this._items = [];
*/
destructor: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "destructor", 1391);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1393);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "destructor", 1404);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1406);
var background = this.get("background"),
backgroundGraphic;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1395);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1408);
this._destroyLegendItems();
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1396);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1409);
if(background)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1398);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1411);
backgroundGraphic = background.get("graphic");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1399);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1412);
if(backgroundGraphic)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1401);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1414);
backgroundGraphic.destroy();
}
else
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1405);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1418);
background.destroy();
}
}
@@ -1985,10 +1998,10 @@ background.destroy();
chart: {
setter: function(val)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1430);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1432);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1443);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1445);
this.after("legendRendered", Y.bind(val._itemRendered, val));
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1433);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1446);
return val;
}
},
@@ -2005,8 +2018,9 @@ return val;
},
/**
- * 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`.
+ * 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
@@ -2018,20 +2032,20 @@ return val;
setter: function(val)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1460);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1462);
-if(val == TOP || val == BOTTOM)
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1474);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1476);
+if(val === TOP || val === BOTTOM)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1464);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1478);
this.set("direction", HORIZONTAL);
}
- else {_yuitest_coverline("build/charts-legend/charts-legend.js", 1466);
-if(val == LEFT || val == RIGHT)
+ else {_yuitest_coverline("build/charts-legend/charts-legend.js", 1480);
+if(val === LEFT || val === RIGHT)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1468);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1482);
this.set("direction", VERTICAL);
}}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1470);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1484);
return val;
}
},
@@ -2051,41 +2065,41 @@ return val;
width: {
getter: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "getter", 1487);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1489);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "getter", 1501);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1503);
var chart = this.get("chart"),
parentNode = this._parentNode;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1491);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1505);
if(parentNode)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1493);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1507);
if((chart && this.get("includeInChartLayout")) || this._width)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1495);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1509);
if(!this._width)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1497);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1511);
this._width = 0;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1499);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1513);
return this._width;
}
else
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1503);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1517);
return parentNode.get("offsetWidth");
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1506);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1520);
return "";
},
setter: function(val)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1509);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1511);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1523);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1525);
this._width = val;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1512);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1526);
return val;
}
},
@@ -2107,41 +2121,41 @@ return val;
getter: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "getter", 1531);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1533);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "getter", 1545);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1547);
var chart = this.get("chart"),
parentNode = this._parentNode;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1535);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1549);
if(parentNode)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1537);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1551);
if((chart && this.get("includeInChartLayout")) || this._height)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1539);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1553);
if(!this._height)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1541);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1555);
this._height = 0;
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1543);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1557);
return this._height;
}
else
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1547);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1561);
return parentNode.get("offsetHeight");
}
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1550);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1564);
return "";
},
setter: function(val)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1553);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1555);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1567);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1569);
this._height = val;
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1556);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1570);
return val;
}
},
@@ -2160,16 +2174,16 @@ return val;
setter: function(val)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1572);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1574);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1586);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1588);
var node = this.get("boundingBox");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1575);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1589);
if(node)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1577);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1591);
node.setStyle(LEFT, val + PX);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1579);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1593);
return val;
}
},
@@ -2188,16 +2202,16 @@ return val;
setter: function(val)
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1595);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1597);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "setter", 1609);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1611);
var node = this.get("boundingBox");
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1598);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1612);
if(node)
{
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1600);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1614);
node.setStyle(TOP, val + PX);
}
- _yuitest_coverline("build/charts-legend/charts-legend.js", 1602);
+ _yuitest_coverline("build/charts-legend/charts-legend.js", 1616);
return val;
}
},
@@ -2217,8 +2231,8 @@ return val;
items: {
getter: function()
{
- _yuitest_coverfunc("build/charts-legend/charts-legend.js", "getter", 1619);
-_yuitest_coverline("build/charts-legend/charts-legend.js", 1621);
+ _yuitest_coverfunc("build/charts-legend/charts-legend.js", "getter", 1633);
+_yuitest_coverline("build/charts-legend/charts-legend.js", 1635);
return this._items;
}
},
@@ -2286,4 +2300,4 @@ return this._items;
});
-}, '3.9.0', {"requires": ["charts-base"]});
+}, '3.9.1', {"requires": ["charts-base"]});
diff --git a/lib/yuilib/3.9.0/build/charts-legend/charts-legend-debug.js b/lib/yuilib/3.9.1/build/charts-legend/charts-legend-debug.js
similarity index 96%
rename from lib/yuilib/3.9.0/build/charts-legend/charts-legend-debug.js
rename to lib/yuilib/3.9.1/build/charts-legend/charts-legend-debug.js
index 73badc7d180..540f28cdd18 100644
--- a/lib/yuilib/3.9.0/build/charts-legend/charts-legend-debug.js
+++ b/lib/yuilib/3.9.1/build/charts-legend/charts-legend-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('charts-legend', function (Y, NAME) {
/**
@@ -21,6 +21,7 @@ POSITION = "position",
_X = "x",
_Y = "y",
PX = "px",
+PieChartLegend,
LEGEND = {
setter: function(val)
{
@@ -69,10 +70,9 @@ HorizontalLegendLayout = {
* @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)
+ _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, hAlign)
{
var i = 0,
rowIterator = 0,
@@ -227,11 +227,10 @@ VerticalLegendLayout = {
* @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)
+ _positionLegendItems: function(items, maxWidth, maxHeight, totalWidth, totalHeight, padding, horizontalGap, verticalGap, vAlign)
{
var i = 0,
columnIterator = 0,
@@ -690,10 +689,10 @@ CartesianChartLegend = Y.Base.create("cartesianChartLegend", Y.CartesianChart, [
{
gap = legend.get("styles").gap;
position = legend.get(POSITION);
- if(position != EXTERNAL)
+ if(position !== EXTERNAL)
{
direction = legend.get("direction");
- dimension = direction == HORIZONTAL ? HEIGHT : WIDTH;
+ dimension = direction === HORIZONTAL ? HEIGHT : WIDTH;
size = legend.get(dimension);
box[position] = size + gap;
switch(position)
@@ -739,7 +738,7 @@ CartesianChartLegend = Y.Base.create("cartesianChartLegend", Y.CartesianChart, [
Y.CartesianChart = CartesianChartLegend;
-var PieChartLegend = Y.Base.create("pieChartLegend", Y.PieChart, [], {
+PieChartLegend = Y.Base.create("pieChartLegend", Y.PieChart, [], {
/**
* Redraws the chart instance.
*
@@ -783,7 +782,8 @@ var PieChartLegend = Y.Base.create("pieChartLegend", Y.PieChart, [], {
legendHeight = legend.get("height");
gap = legend.get("styles").gap;
- if((direction == "vertical" && (graphWidth + legendWidth + gap !== w)) || (direction == "horizontal" && (graphHeight + legendHeight + gap !== h)))
+ if((direction === "vertical" && (graphWidth + legendWidth + gap !== w)) ||
+ (direction === "horizontal" && (graphHeight + legendHeight + gap !== h)))
{
switch(legend.get("position"))
{
@@ -944,7 +944,7 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
* @param {Object} e Event object
* @private
*/
- _updateHandler: function(e)
+ _updateHandler: function()
{
if(this.get("rendered"))
{
@@ -959,7 +959,7 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
* @param {Object} e Event object
* @private
*/
- _positionChangeHandler: function(e)
+ _positionChangeHandler: function()
{
var chart = this.get("chart"),
parentNode = this._parentNode;
@@ -984,9 +984,9 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
{
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))
+ vert = pos === LEFT || pos === RIGHT,
+ hor = pos === BOTTOM || pos === TOP;
+ if((hor && attrName === WIDTH) || (vert && attrName === HEIGHT))
{
this._drawLegend();
}
@@ -1021,12 +1021,12 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
seriesStyles,
hSpacing = itemStyles.hSpacing,
vSpacing = itemStyles.vSpacing,
- hAlign = styles.hAlign,
- vAlign = styles.vAlign,
+ direction = this.get("direction"),
+ align = direction === "vertical" ? styles.vAlign : styles.hAlign,
marker = styles.marker,
labelStyles = itemStyles.label,
displayName,
- layout = this._layout[this.get("direction")],
+ layout = this._layout[direction],
i,
len,
isArray,
@@ -1102,7 +1102,16 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
}
}
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"));
+ 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);
@@ -1119,7 +1128,10 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
}
else
{
- layout._positionLegendItems.apply(this, [items, maxWidth, maxHeight, totalWidth, totalHeight, padding, hSpacing, vSpacing, hAlign, vAlign]);
+ layout._positionLegendItems.apply(
+ this,
+ [items, maxWidth, maxHeight, totalWidth, totalHeight, padding, hSpacing, vSpacing, align]
+ );
this._updateBackground(styles);
this.fire("legendRendered");
}
@@ -1238,7 +1250,8 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
dimension,
padding,
left,
- item;
+ item,
+ ShapeClass = shapeClass;
containerNode.setStyle(POSITION, "absolute");
textField.setStyle(POSITION, "absolute");
textField.setStyles(labelStyles);
@@ -1251,7 +1264,7 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
textField.setStyle("left", left + PX);
containerNode.setStyle("height", dimension + PX);
containerNode.setStyle("width", (left + textField.get("offsetWidth")) + PX);
- shape = new shapeClass({
+ shape = new ShapeClass({
fill: fill,
stroke: border,
width: w,
@@ -1447,8 +1460,9 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
},
/**
- * 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`.
+ * 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
@@ -1460,11 +1474,11 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
setter: function(val)
{
- if(val == TOP || val == BOTTOM)
+ if(val === TOP || val === BOTTOM)
{
this.set("direction", HORIZONTAL);
}
- else if(val == LEFT || val == RIGHT)
+ else if(val === LEFT || val === RIGHT)
{
this.set("direction", VERTICAL);
}
@@ -1686,4 +1700,4 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], {
});
-}, '3.9.0', {"requires": ["charts-base"]});
+}, '3.9.1', {"requires": ["charts-base"]});
diff --git a/lib/yuilib/3.9.1/build/charts-legend/charts-legend-min.js b/lib/yuilib/3.9.1/build/charts-legend/charts-legend-min.js
new file mode 100644
index 00000000000..9fcec3807de
--- /dev/null
+++ b/lib/yuilib/3.9.1/build/charts-legend/charts-legend-min.js
@@ -0,0 +1,4 @@
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+YUI.add("charts-legend",function(e,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,g={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}},y={_positionLegendItems:function(e,t,n,r,i,s,o,u,a){var f=0,l=0,c,h,p,d,m,g=this.get("width"),b,w,E,S,x,T=s.top-u,N=g-(s.left+s.right),C,k,L,A;y._setRowArrays(e,N,o),b=y.rowArray,S=y.totalWidthArray,w=b.length;for(;l"," *
"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," * "," *
"," * "," * @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.9.0', {\"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: "," * "," * "," *
"," * "," * @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.9.1', {\"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;
@@ -130,4 +130,4 @@ return args.join(sDelimiter);
}();
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/classnamemanager/classnamemanager-debug.js b/lib/yuilib/3.9.1/build/classnamemanager/classnamemanager-debug.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/classnamemanager/classnamemanager-debug.js
rename to lib/yuilib/3.9.1/build/classnamemanager/classnamemanager-debug.js
index 80fef2d7d7a..07889d9934a 100644
--- a/lib/yuilib/3.9.0/build/classnamemanager/classnamemanager-debug.js
+++ b/lib/yuilib/3.9.1/build/classnamemanager/classnamemanager-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('classnamemanager', function (Y, NAME) {
/**
@@ -82,4 +82,4 @@ Y.ClassNameManager = function () {
}();
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/classnamemanager/classnamemanager-min.js b/lib/yuilib/3.9.1/build/classnamemanager/classnamemanager-min.js
similarity index 70%
rename from lib/yuilib/3.9.0/build/classnamemanager/classnamemanager-min.js
rename to lib/yuilib/3.9.1/build/classnamemanager/classnamemanager-min.js
index a4f79ebd927..54f17f9ff3c 100644
--- a/lib/yuilib/3.9.0/build/classnamemanager/classnamemanager-min.js
+++ b/lib/yuilib/3.9.1/build/classnamemanager/classnamemanager-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["yui-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/classnamemanager/classnamemanager.js b/lib/yuilib/3.9.1/build/classnamemanager/classnamemanager.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/classnamemanager/classnamemanager.js
rename to lib/yuilib/3.9.1/build/classnamemanager/classnamemanager.js
index 80fef2d7d7a..07889d9934a 100644
--- a/lib/yuilib/3.9.0/build/classnamemanager/classnamemanager.js
+++ b/lib/yuilib/3.9.1/build/classnamemanager/classnamemanager.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('classnamemanager', function (Y, NAME) {
/**
@@ -82,4 +82,4 @@ Y.ClassNameManager = function () {
}();
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/range-slider/assets/slider-base-core.css b/lib/yuilib/3.9.1/build/clickable-rail/assets/slider-base-core.css
similarity index 90%
rename from lib/yuilib/3.9.0/build/range-slider/assets/slider-base-core.css
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/slider-base-core.css
index 912e9a4a0e8..0bd472112f7 100644
--- a/lib/yuilib/3.9.0/build/range-slider/assets/slider-base-core.css
+++ b/lib/yuilib/3.9.1/build/clickable-rail/assets/slider-base-core.css
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
.yui3-slider,
.yui3-slider-rail {
/* xbrowser inline-block styles */
diff --git a/lib/yuilib/3.9.0/build/slider-base/assets/slider-core.css b/lib/yuilib/3.9.1/build/clickable-rail/assets/slider-core.css
similarity index 90%
rename from lib/yuilib/3.9.0/build/slider-base/assets/slider-core.css
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/slider-core.css
index 912e9a4a0e8..0bd472112f7 100644
--- a/lib/yuilib/3.9.0/build/slider-base/assets/slider-core.css
+++ b/lib/yuilib/3.9.1/build/clickable-rail/assets/slider-core.css
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
.yui3-slider,
.yui3-slider-rail {
/* xbrowser inline-block styles */
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-x-oblong-dark.png b/lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-x-oblong-dark.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-x-oblong-dark.png
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-x-oblong-dark.png
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-x-oblong.png b/lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-x-oblong.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-x-oblong.png
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-x-oblong.png
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-x-oblong2-dark.png b/lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-x-oblong2-dark.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-x-oblong2-dark.png
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-x-oblong2-dark.png
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-x-oblong2.png b/lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-x-oblong2.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-x-oblong2.png
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-x-oblong2.png
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-y-oblong-dark.png b/lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-y-oblong-dark.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-y-oblong-dark.png
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-y-oblong-dark.png
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-y-oblong.png b/lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-y-oblong.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-y-oblong.png
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-y-oblong.png
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-y-oblong2-dark.png b/lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-y-oblong2-dark.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-y-oblong2-dark.png
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-y-oblong2-dark.png
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-y-oblong2.png b/lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-y-oblong2.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/clickable-rail/assets/thumb-y-oblong2.png
rename to lib/yuilib/3.9.1/build/clickable-rail/assets/thumb-y-oblong2.png
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/clickable-rail-coverage.js b/lib/yuilib/3.9.1/build/clickable-rail/clickable-rail-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/clickable-rail/clickable-rail-coverage.js
rename to lib/yuilib/3.9.1/build/clickable-rail/clickable-rail-coverage.js
index d5480c32a74..ce3898a1da9 100644
--- a/lib/yuilib/3.9.0/build/clickable-rail/clickable-rail-coverage.js
+++ b/lib/yuilib/3.9.1/build/clickable-rail/clickable-rail-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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.9.0', {\"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.9.1', {\"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;
@@ -282,4 +282,4 @@ return [
}, true);
-}, '3.9.0', {"requires": ["slider-base"]});
+}, '3.9.1', {"requires": ["slider-base"]});
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/clickable-rail-debug.js b/lib/yuilib/3.9.1/build/clickable-rail/clickable-rail-debug.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/clickable-rail/clickable-rail-debug.js
rename to lib/yuilib/3.9.1/build/clickable-rail/clickable-rail-debug.js
index c8dac5e6e27..4b0adcbca34 100644
--- a/lib/yuilib/3.9.0/build/clickable-rail/clickable-rail-debug.js
+++ b/lib/yuilib/3.9.1/build/clickable-rail/clickable-rail-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('clickable-rail', function (Y, NAME) {
/**
@@ -210,4 +210,4 @@ Y.ClickableRail = Y.mix(ClickableRail, {
}, true);
-}, '3.9.0', {"requires": ["slider-base"]});
+}, '3.9.1', {"requires": ["slider-base"]});
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/clickable-rail-min.js b/lib/yuilib/3.9.1/build/clickable-rail/clickable-rail-min.js
similarity index 92%
rename from lib/yuilib/3.9.0/build/clickable-rail/clickable-rail-min.js
rename to lib/yuilib/3.9.1/build/clickable-rail/clickable-rail-min.js
index bcd66328cda..c2e513ce9a0 100644
--- a/lib/yuilib/3.9.0/build/clickable-rail/clickable-rail-min.js
+++ b/lib/yuilib/3.9.1/build/clickable-rail/clickable-rail-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["slider-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["slider-base"]});
diff --git a/lib/yuilib/3.9.0/build/clickable-rail/clickable-rail.js b/lib/yuilib/3.9.1/build/clickable-rail/clickable-rail.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/clickable-rail/clickable-rail.js
rename to lib/yuilib/3.9.1/build/clickable-rail/clickable-rail.js
index c8dac5e6e27..4b0adcbca34 100644
--- a/lib/yuilib/3.9.0/build/clickable-rail/clickable-rail.js
+++ b/lib/yuilib/3.9.1/build/clickable-rail/clickable-rail.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('clickable-rail', function (Y, NAME) {
/**
@@ -210,4 +210,4 @@ Y.ClickableRail = Y.mix(ClickableRail, {
}, true);
-}, '3.9.0', {"requires": ["slider-base"]});
+}, '3.9.1', {"requires": ["slider-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-base/color-base-coverage.js b/lib/yuilib/3.9.1/build/color-base/color-base-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/color-base/color-base-coverage.js
rename to lib/yuilib/3.9.1/build/color-base/color-base-coverage.js
index e2e70482fa8..765362c8d92 100644
--- a/lib/yuilib/3.9.0/build/color-base/color-base-coverage.js
+++ b/lib/yuilib/3.9.1/build/color-base/color-base-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,7 @@ _yuitest_coverage["build/color-base/color-base.js"] = {
path: "build/color-base/color-base.js",
code: []
};
-_yuitest_coverage["build/color-base/color-base.js"].code=["YUI.add('color-base', function (Y, NAME) {","","/**","Color provides static methods for color conversion.",""," Y.Color.toRGB('f00'); // rgb(255, 0, 0)",""," Y.Color.toHex('rgb(255, 255, 0)'); // #ffff00","","","@module color","@submodule color-base","@class Color","@since 3.8.0","**/","","var REGEX_HEX = /^#?([\\da-fA-F]{2})([\\da-fA-F]{2})([\\da-fA-F]{2})/,"," REGEX_HEX3 = /^#?([\\da-fA-F]{1})([\\da-fA-F]{1})([\\da-fA-F]{1})/,"," REGEX_RGB = /rgba?\\(([\\d]{1,3}), ?([\\d]{1,3}), ?([\\d]{1,3}),? ?([.\\d]*)?\\)/,"," TYPES = { 'HEX': 'hex', 'RGB': 'rgb', 'RGBA': 'rgba' },"," CONVERTS = { 'hex': 'toHex', 'rgb': 'toRGB', 'rgba': 'toRGBA' };","","","Y.Color = {"," /**"," @static"," @property KEYWORDS"," @type Object"," @since 3.8.0"," **/"," KEYWORDS: {"," 'black': '000', 'silver': 'c0c0c0', 'gray': '808080', 'white': 'fff',"," 'maroon': '800000', 'red': 'f00', 'purple': '800080', 'fuchsia': 'f0f',"," 'green': '008000', 'lime': '0f0', 'olive': '808000', 'yellow': 'ff0',"," 'navy': '000080', 'blue': '00f', 'teal': '008080', 'aqua': '0ff'"," },",""," /**"," @static"," @property REGEX_HEX"," @type RegExp"," @default /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/"," @since 3.8.0"," **/"," REGEX_HEX: REGEX_HEX,",""," /**"," @static"," @property REGEX_HEX3"," @type RegExp"," @default /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})/"," @since 3.8.0"," **/"," REGEX_HEX3: REGEX_HEX3,",""," /**"," @static"," @property REGEX_RGB"," @type RegExp"," @default /rgba?\\(([0-9]{1,3}), ?([0-9]{1,3}), ?([0-9]{1,3}),? ?([.0-9]{1,3})?\\)/"," @since 3.8.0"," **/"," REGEX_RGB: REGEX_RGB,",""," re_RGB: REGEX_RGB,",""," re_hex: REGEX_HEX,",""," re_hex3: REGEX_HEX3,",""," /**"," @static"," @property STR_HEX"," @type String"," @default #{*}{*}{*}"," @since 3.8.0"," **/"," STR_HEX: '#{*}{*}{*}',",""," /**"," @static"," @property STR_RGB"," @type String"," @default rgb({*}, {*}, {*})"," @since 3.8.0"," **/"," STR_RGB: 'rgb({*}, {*}, {*})',",""," /**"," @static"," @property STR_RGBA"," @type String"," @default rgba({*}, {*}, {*}, {*})"," @since 3.8.0"," **/"," STR_RGBA: 'rgba({*}, {*}, {*}, {*})',",""," /**"," @static"," @property TYPES"," @type Object"," @default {'rgb':'rgb', 'rgba':'rgba'}"," @since 3.8.0"," **/"," TYPES: TYPES,",""," /**"," @static"," @property CONVERTS"," @type Object"," @default {}"," @since 3.8.0"," **/"," CONVERTS: CONVERTS,",""," /**"," @public"," @method convert"," @param {String} str"," @param {String} to"," @return {String}"," @since 3.8.0"," **/"," convert: function (str, to) {"," // check for a toXXX conversion method first"," // if it doesn't exist, use the toXxx conversion method"," var convert = Y.Color.CONVERTS[to],"," clr = Y.Color[convert](str);",""," return clr.toLowerCase();"," },",""," /**"," Converts provided color value to a hex value string"," @public"," @method toHex"," @param {String} str Hex or RGB value string"," @return {String} returns array of values or CSS string if options.css is true"," @since 3.8.0"," **/"," toHex: function (str) {"," var clr = Y.Color._convertTo(str, 'hex');"," return clr.toLowerCase();"," },",""," /**"," Converts provided color value to an RGB value string"," @public"," @method toRGB"," @param {String} str Hex or RGB value string"," @return {String}"," @since 3.8.0"," **/"," toRGB: function (str) {"," var clr = Y.Color._convertTo(str, 'rgb');"," return clr.toLowerCase();"," },",""," /**"," Converts provided color value to an RGB value string"," @public"," @method toRGBA"," @param {String} str Hex or RGB value string"," @return {String}"," @since 3.8.0"," **/"," toRGBA: function (str) {"," var clr = Y.Color._convertTo(str, 'rgba' );"," return clr.toLowerCase();"," },",""," /**"," Converts the provided color string to an array of values. Will"," return an empty array if the provided string is not able"," to be parsed."," @public"," @method toArray"," @param {String} str"," @return {Array}"," @since 3.8.0"," **/"," toArray: function(str) {"," // parse with regex and return \"matches\" array"," var type = Y.Color.findType(str).toUpperCase(),"," regex,"," arr,"," length,"," lastItem;",""," if (type === 'HEX' && str.length < 5) {"," type = 'HEX3';"," }",""," if (type.charAt(type.length - 1) === 'A') {"," type = type.slice(0, -1);"," }"," regex = Y.Color['REGEX_' + type];"," if (regex) {"," arr = regex.exec(str) || [];"," length = arr.length;",""," if (length) {",""," arr.shift();"," length--;",""," lastItem = arr[length - 1];"," if (!lastItem) {"," arr[length - 1] = 1;"," }"," }"," }",""," return arr;",""," },",""," /**"," Converts the array of values to a string based on the provided template."," @public"," @method fromArray"," @param {Array} arr"," @param {String} template"," @return {String}"," @since 3.8.0"," **/"," fromArray: function(arr, template) {"," arr = arr.concat();",""," if (typeof template === 'undefined') {"," return arr.join(', ');"," }",""," var replace = '{*}';",""," template = Y.Color['STR_' + template.toUpperCase()];",""," if (arr.length === 3 && template.match(/\\{\\*\\}/g).length === 4) {"," arr.push(1);"," }",""," while ( template.indexOf(replace) >= 0 && arr.length > 0) {"," template = template.replace(replace, arr.shift());"," }",""," return template;"," },",""," /**"," Finds the value type based on the str value provided."," @public"," @method findType"," @param {String} str"," @return {String}"," @since 3.8.0"," **/"," findType: function (str) {"," if (Y.Color.KEYWORDS[str]) {"," return 'keyword';"," }",""," var index = str.indexOf('('),"," key;",""," if (index > 0) {"," key = str.substr(0, index);"," }",""," if (key && Y.Color.TYPES[key.toUpperCase()]) {"," return Y.Color.TYPES[key.toUpperCase()];"," }",""," return 'hex';",""," }, // return 'keyword', 'hex', 'rgb'",""," /**"," Retrives the alpha channel from the provided string. If no alpha"," channel is present, `1` will be returned."," @protected"," @method _getAlpha"," @param {String} clr"," @return {Number}"," @since 3.8.0"," **/"," _getAlpha: function (clr) {"," var alpha,"," arr = Y.Color.toArray(clr);",""," if (arr.length > 3) {"," alpha = arr.pop();"," }",""," return +alpha || 1;"," },",""," /**"," Returns the hex value string if found in the KEYWORDS object"," @protected"," @method _keywordToHex"," @param {String} clr"," @return {String}"," @since 3.8.0"," **/"," _keywordToHex: function (clr) {"," var keyword = Y.Color.KEYWORDS[clr];",""," if (keyword) {"," return keyword;"," }"," },",""," /**"," Converts the provided color string to the value type provided as `to`"," @protected"," @method _convertTo"," @param {String} clr"," @param {String} to"," @return {String}"," @since 3.8.0"," **/"," _convertTo: function(clr, to) {"," var from = Y.Color.findType(clr),"," originalTo = to,"," needsAlpha,"," alpha,"," method,"," ucTo;",""," if (from === 'keyword') {"," clr = Y.Color._keywordToHex(clr);"," from = 'hex';"," }",""," if (from === 'hex' && clr.length < 5) {"," if (clr.charAt(0) === '#') {"," clr = clr.substr(1);"," }",""," clr = '#' + clr.charAt(0) + clr.charAt(0) +"," clr.charAt(1) + clr.charAt(1) +"," clr.charAt(2) + clr.charAt(2);"," }",""," if (from === to) {"," return clr;"," }",""," if (from.charAt(from.length - 1) === 'a') {"," from = from.slice(0, -1);"," }",""," needsAlpha = (to.charAt(to.length - 1) === 'a');"," if (needsAlpha) {"," to = to.slice(0, -1);"," alpha = Y.Color._getAlpha(clr);"," }",""," ucTo = to.charAt(0).toUpperCase() + to.substr(1).toLowerCase();"," method = Y.Color['_' + from + 'To' + ucTo ];",""," // check to see if need conversion to rgb first"," // check to see if there is a direct conversion method"," // convertions are: hex <-> rgb <-> hsl"," if (!method) {"," if (from !== 'rgb' && to !== 'rgb') {"," clr = Y.Color['_' + from + 'ToRgb'](clr);"," from = 'rgb';"," method = Y.Color['_' + from + 'To' + ucTo ];"," }"," }",""," if (method) {"," clr = ((method)(clr, needsAlpha));"," }",""," // process clr from arrays to strings after conversions if alpha is needed"," if (needsAlpha) {"," if (!Y.Lang.isArray(clr)) {"," clr = Y.Color.toArray(clr);"," }"," clr.push(alpha);"," clr = Y.Color.fromArray(clr, originalTo.toUpperCase());"," }",""," return clr;"," },",""," /**"," Processes the hex string into r, g, b values. Will return values as"," an array, or as an rgb string."," @protected"," @method _hexToRgb"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _hexToRgb: function (str, toArray) {"," var r, g, b;",""," /*jshint bitwise:false*/"," if (str.charAt(0) === '#') {"," str = str.substr(1);"," }",""," str = parseInt(str, 16);",""," r = str >> 16;"," g = str >> 8 & 0xFF;"," b = str & 0xFF;",""," if (toArray) {"," return [r, g, b];"," }",""," return 'rgb(' + r + ', ' + g + ', ' + b + ')';"," },",""," /**"," Processes the rgb string into r, g, b values. Will return values as"," an array, or as a hex string."," @protected"," @method _rgbToHex"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _rgbToHex: function (str) {"," /*jshint bitwise:false*/"," var rgb = Y.Color.toArray(str),"," hex = rgb[2] | (rgb[1] << 8) | (rgb[0] << 16);",""," hex = (+hex).toString(16);",""," while (hex.length < 6) {"," hex = '0' + hex;"," }",""," return '#' + hex;"," }","","};","","","","}, '3.9.0', {\"requires\": [\"yui-base\"]});"];
+_yuitest_coverage["build/color-base/color-base.js"].code=["YUI.add('color-base', function (Y, NAME) {","","/**","Color provides static methods for color conversion.",""," Y.Color.toRGB('f00'); // rgb(255, 0, 0)",""," Y.Color.toHex('rgb(255, 255, 0)'); // #ffff00","","","@module color","@submodule color-base","@class Color","@since 3.8.0","**/","","var REGEX_HEX = /^#?([\\da-fA-F]{2})([\\da-fA-F]{2})([\\da-fA-F]{2})/,"," REGEX_HEX3 = /^#?([\\da-fA-F]{1})([\\da-fA-F]{1})([\\da-fA-F]{1})/,"," REGEX_RGB = /rgba?\\(([\\d]{1,3}), ?([\\d]{1,3}), ?([\\d]{1,3}),? ?([.\\d]*)?\\)/,"," TYPES = { 'HEX': 'hex', 'RGB': 'rgb', 'RGBA': 'rgba' },"," CONVERTS = { 'hex': 'toHex', 'rgb': 'toRGB', 'rgba': 'toRGBA' };","","","Y.Color = {"," /**"," @static"," @property KEYWORDS"," @type Object"," @since 3.8.0"," **/"," KEYWORDS: {"," 'black': '000', 'silver': 'c0c0c0', 'gray': '808080', 'white': 'fff',"," 'maroon': '800000', 'red': 'f00', 'purple': '800080', 'fuchsia': 'f0f',"," 'green': '008000', 'lime': '0f0', 'olive': '808000', 'yellow': 'ff0',"," 'navy': '000080', 'blue': '00f', 'teal': '008080', 'aqua': '0ff'"," },",""," /**"," @static"," @property REGEX_HEX"," @type RegExp"," @default /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/"," @since 3.8.0"," **/"," REGEX_HEX: REGEX_HEX,",""," /**"," @static"," @property REGEX_HEX3"," @type RegExp"," @default /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})/"," @since 3.8.0"," **/"," REGEX_HEX3: REGEX_HEX3,",""," /**"," @static"," @property REGEX_RGB"," @type RegExp"," @default /rgba?\\(([0-9]{1,3}), ?([0-9]{1,3}), ?([0-9]{1,3}),? ?([.0-9]{1,3})?\\)/"," @since 3.8.0"," **/"," REGEX_RGB: REGEX_RGB,",""," re_RGB: REGEX_RGB,",""," re_hex: REGEX_HEX,",""," re_hex3: REGEX_HEX3,",""," /**"," @static"," @property STR_HEX"," @type String"," @default #{*}{*}{*}"," @since 3.8.0"," **/"," STR_HEX: '#{*}{*}{*}',",""," /**"," @static"," @property STR_RGB"," @type String"," @default rgb({*}, {*}, {*})"," @since 3.8.0"," **/"," STR_RGB: 'rgb({*}, {*}, {*})',",""," /**"," @static"," @property STR_RGBA"," @type String"," @default rgba({*}, {*}, {*}, {*})"," @since 3.8.0"," **/"," STR_RGBA: 'rgba({*}, {*}, {*}, {*})',",""," /**"," @static"," @property TYPES"," @type Object"," @default {'rgb':'rgb', 'rgba':'rgba'}"," @since 3.8.0"," **/"," TYPES: TYPES,",""," /**"," @static"," @property CONVERTS"," @type Object"," @default {}"," @since 3.8.0"," **/"," CONVERTS: CONVERTS,",""," /**"," @public"," @method convert"," @param {String} str"," @param {String} to"," @return {String}"," @since 3.8.0"," **/"," convert: function (str, to) {"," // check for a toXXX conversion method first"," // if it doesn't exist, use the toXxx conversion method"," var convert = Y.Color.CONVERTS[to],"," clr = Y.Color[convert](str);",""," return clr.toLowerCase();"," },",""," /**"," Converts provided color value to a hex value string"," @public"," @method toHex"," @param {String} str Hex or RGB value string"," @return {String} returns array of values or CSS string if options.css is true"," @since 3.8.0"," **/"," toHex: function (str) {"," var clr = Y.Color._convertTo(str, 'hex');"," return clr.toLowerCase();"," },",""," /**"," Converts provided color value to an RGB value string"," @public"," @method toRGB"," @param {String} str Hex or RGB value string"," @return {String}"," @since 3.8.0"," **/"," toRGB: function (str) {"," var clr = Y.Color._convertTo(str, 'rgb');"," return clr.toLowerCase();"," },",""," /**"," Converts provided color value to an RGB value string"," @public"," @method toRGBA"," @param {String} str Hex or RGB value string"," @return {String}"," @since 3.8.0"," **/"," toRGBA: function (str) {"," var clr = Y.Color._convertTo(str, 'rgba' );"," return clr.toLowerCase();"," },",""," /**"," Converts the provided color string to an array of values. Will"," return an empty array if the provided string is not able"," to be parsed."," @public"," @method toArray"," @param {String} str"," @return {Array}"," @since 3.8.0"," **/"," toArray: function(str) {"," // parse with regex and return \"matches\" array"," var type = Y.Color.findType(str).toUpperCase(),"," regex,"," arr,"," length,"," lastItem;",""," if (type === 'HEX' && str.length < 5) {"," type = 'HEX3';"," }",""," if (type.charAt(type.length - 1) === 'A') {"," type = type.slice(0, -1);"," }"," regex = Y.Color['REGEX_' + type];"," if (regex) {"," arr = regex.exec(str) || [];"," length = arr.length;",""," if (length) {",""," arr.shift();"," length--;",""," lastItem = arr[length - 1];"," if (!lastItem) {"," arr[length - 1] = 1;"," }"," }"," }",""," return arr;",""," },",""," /**"," Converts the array of values to a string based on the provided template."," @public"," @method fromArray"," @param {Array} arr"," @param {String} template"," @return {String}"," @since 3.8.0"," **/"," fromArray: function(arr, template) {"," arr = arr.concat();",""," if (typeof template === 'undefined') {"," return arr.join(', ');"," }",""," var replace = '{*}';",""," template = Y.Color['STR_' + template.toUpperCase()];",""," if (arr.length === 3 && template.match(/\\{\\*\\}/g).length === 4) {"," arr.push(1);"," }",""," while ( template.indexOf(replace) >= 0 && arr.length > 0) {"," template = template.replace(replace, arr.shift());"," }",""," return template;"," },",""," /**"," Finds the value type based on the str value provided."," @public"," @method findType"," @param {String} str"," @return {String}"," @since 3.8.0"," **/"," findType: function (str) {"," if (Y.Color.KEYWORDS[str]) {"," return 'keyword';"," }",""," var index = str.indexOf('('),"," key;",""," if (index > 0) {"," key = str.substr(0, index);"," }",""," if (key && Y.Color.TYPES[key.toUpperCase()]) {"," return Y.Color.TYPES[key.toUpperCase()];"," }",""," return 'hex';",""," }, // return 'keyword', 'hex', 'rgb'",""," /**"," Retrives the alpha channel from the provided string. If no alpha"," channel is present, `1` will be returned."," @protected"," @method _getAlpha"," @param {String} clr"," @return {Number}"," @since 3.8.0"," **/"," _getAlpha: function (clr) {"," var alpha,"," arr = Y.Color.toArray(clr);",""," if (arr.length > 3) {"," alpha = arr.pop();"," }",""," return +alpha || 1;"," },",""," /**"," Returns the hex value string if found in the KEYWORDS object"," @protected"," @method _keywordToHex"," @param {String} clr"," @return {String}"," @since 3.8.0"," **/"," _keywordToHex: function (clr) {"," var keyword = Y.Color.KEYWORDS[clr];",""," if (keyword) {"," return keyword;"," }"," },",""," /**"," Converts the provided color string to the value type provided as `to`"," @protected"," @method _convertTo"," @param {String} clr"," @param {String} to"," @return {String}"," @since 3.8.0"," **/"," _convertTo: function(clr, to) {"," var from = Y.Color.findType(clr),"," originalTo = to,"," needsAlpha,"," alpha,"," method,"," ucTo;",""," if (from === 'keyword') {"," clr = Y.Color._keywordToHex(clr);"," from = 'hex';"," }",""," if (from === 'hex' && clr.length < 5) {"," if (clr.charAt(0) === '#') {"," clr = clr.substr(1);"," }",""," clr = '#' + clr.charAt(0) + clr.charAt(0) +"," clr.charAt(1) + clr.charAt(1) +"," clr.charAt(2) + clr.charAt(2);"," }",""," if (from === to) {"," return clr;"," }",""," if (from.charAt(from.length - 1) === 'a') {"," from = from.slice(0, -1);"," }",""," needsAlpha = (to.charAt(to.length - 1) === 'a');"," if (needsAlpha) {"," to = to.slice(0, -1);"," alpha = Y.Color._getAlpha(clr);"," }",""," ucTo = to.charAt(0).toUpperCase() + to.substr(1).toLowerCase();"," method = Y.Color['_' + from + 'To' + ucTo ];",""," // check to see if need conversion to rgb first"," // check to see if there is a direct conversion method"," // convertions are: hex <-> rgb <-> hsl"," if (!method) {"," if (from !== 'rgb' && to !== 'rgb') {"," clr = Y.Color['_' + from + 'ToRgb'](clr);"," from = 'rgb';"," method = Y.Color['_' + from + 'To' + ucTo ];"," }"," }",""," if (method) {"," clr = ((method)(clr, needsAlpha));"," }",""," // process clr from arrays to strings after conversions if alpha is needed"," if (needsAlpha) {"," if (!Y.Lang.isArray(clr)) {"," clr = Y.Color.toArray(clr);"," }"," clr.push(alpha);"," clr = Y.Color.fromArray(clr, originalTo.toUpperCase());"," }",""," return clr;"," },",""," /**"," Processes the hex string into r, g, b values. Will return values as"," an array, or as an rgb string."," @protected"," @method _hexToRgb"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _hexToRgb: function (str, toArray) {"," var r, g, b;",""," /*jshint bitwise:false*/"," if (str.charAt(0) === '#') {"," str = str.substr(1);"," }",""," str = parseInt(str, 16);",""," r = str >> 16;"," g = str >> 8 & 0xFF;"," b = str & 0xFF;",""," if (toArray) {"," return [r, g, b];"," }",""," return 'rgb(' + r + ', ' + g + ', ' + b + ')';"," },",""," /**"," Processes the rgb string into r, g, b values. Will return values as"," an array, or as a hex string."," @protected"," @method _rgbToHex"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _rgbToHex: function (str) {"," /*jshint bitwise:false*/"," var rgb = Y.Color.toArray(str),"," hex = rgb[2] | (rgb[1] << 8) | (rgb[0] << 16);",""," hex = (+hex).toString(16);",""," while (hex.length < 6) {"," hex = '0' + hex;"," }",""," return '#' + hex;"," }","","};","","","","}, '3.9.1', {\"requires\": [\"yui-base\"]});"];
_yuitest_coverage["build/color-base/color-base.js"].lines = {"1":0,"17":0,"24":0,"127":0,"130":0,"142":0,"143":0,"155":0,"156":0,"168":0,"169":0,"184":0,"190":0,"191":0,"194":0,"195":0,"197":0,"198":0,"199":0,"200":0,"202":0,"204":0,"205":0,"207":0,"208":0,"209":0,"214":0,"228":0,"230":0,"231":0,"234":0,"236":0,"238":0,"239":0,"242":0,"243":0,"246":0,"258":0,"259":0,"262":0,"265":0,"266":0,"269":0,"270":0,"273":0,"287":0,"290":0,"291":0,"294":0,"306":0,"308":0,"309":0,"323":0,"330":0,"331":0,"332":0,"335":0,"336":0,"337":0,"340":0,"345":0,"346":0,"349":0,"350":0,"353":0,"354":0,"355":0,"356":0,"359":0,"360":0,"365":0,"366":0,"367":0,"368":0,"369":0,"373":0,"374":0,"378":0,"379":0,"380":0,"382":0,"383":0,"386":0,"400":0,"403":0,"404":0,"407":0,"409":0,"410":0,"411":0,"413":0,"414":0,"417":0,"432":0,"435":0,"437":0,"438":0,"441":0};
_yuitest_coverage["build/color-base/color-base.js"].functions = {"convert:124":0,"toHex:141":0,"toRGB:154":0,"toRGBA:167":0,"toArray:182":0,"fromArray:227":0,"findType:257":0,"_getAlpha:286":0,"_keywordToHex:305":0,"_convertTo:322":0,"_hexToRgb:399":0,"_rgbToHex:430":0,"(anonymous 1):1":0};
_yuitest_coverage["build/color-base/color-base.js"].coveredLines = 98;
@@ -590,4 +590,4 @@ return '#' + hex;
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-base/color-base-debug.js b/lib/yuilib/3.9.1/build/color-base/color-base-debug.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/color-base/color-base-debug.js
rename to lib/yuilib/3.9.1/build/color-base/color-base-debug.js
index 2d19aebfcc6..4f7ccc0a863 100644
--- a/lib/yuilib/3.9.0/build/color-base/color-base-debug.js
+++ b/lib/yuilib/3.9.1/build/color-base/color-base-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('color-base', function (Y, NAME) {
/**
@@ -446,4 +446,4 @@ Y.Color = {
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-base/color-base-min.js b/lib/yuilib/3.9.1/build/color-base/color-base-min.js
similarity index 96%
rename from lib/yuilib/3.9.0/build/color-base/color-base-min.js
rename to lib/yuilib/3.9.1/build/color-base/color-base-min.js
index 378ebd65f15..6f458ae8fe6 100644
--- a/lib/yuilib/3.9.0/build/color-base/color-base-min.js
+++ b/lib/yuilib/3.9.1/build/color-base/color-base-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("color-base",function(e,t){var n=/^#?([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})/,r=/^#?([\da-fA-F]{1})([\da-fA-F]{1})([\da-fA-F]{1})/,i=/rgba?\(([\d]{1,3}), ?([\d]{1,3}), ?([\d]{1,3}),? ?([.\d]*)?\)/,s={HEX:"hex",RGB:"rgb",RGBA:"rgba"},o={hex:"toHex",rgb:"toRGB",rgba:"toRGBA"};e.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},REGEX_HEX:n,REGEX_HEX3:r,REGEX_RGB:i,re_RGB:i,re_hex:n,re_hex3:r,STR_HEX:"#{*}{*}{*}",STR_RGB:"rgb({*}, {*}, {*})",STR_RGBA:"rgba({*}, {*}, {*}, {*})",TYPES:s,CONVERTS:o,convert:function(t,n){var r=e.Color.CONVERTS[n],i=e.Color[r](t);return i.toLowerCase()},toHex:function(t){var n=e.Color._convertTo(t,"hex");return n.toLowerCase()},toRGB:function(t){var n=e.Color._convertTo(t,"rgb");return n.toLowerCase()},toRGBA:function(t){var n=e.Color._convertTo(t,"rgba");return n.toLowerCase()},toArray:function(t){var n=e.Color.findType(t).toUpperCase(),r,i,s,o;return n==="HEX"&&t.length<5&&(n="HEX3"),n.charAt(n.length-1)==="A"&&(n=n.slice(0,-1)),r=e.Color["REGEX_"+n],r&&(i=r.exec(t)||[],s=i.length,s&&(i.shift(),s--,o=i[s-1],o||(i[s-1]=1))),i},fromArray:function(t,n){t=t.concat();if(typeof n=="undefined")return t.join(", ");var r="{*}";n=e.Color["STR_"+n.toUpperCase()],t.length===3&&n.match(/\{\*\}/g).length===4&&t.push(1);while(n.indexOf(r)>=0&&t.length>0)n=n.replace(r,t.shift());return n},findType:function(t){if(e.Color.KEYWORDS[t])return"keyword";var n=t.indexOf("("),r;return n>0&&(r=t.substr(0,n)),r&&e.Color.TYPES[r.toUpperCase()]?e.Color.TYPES[r.toUpperCase()]:"hex"},_getAlpha:function(t){var n,r=e.Color.toArray(t);return r.length>3&&(n=r.pop()),+n||1},_keywordToHex:function(t){var n=e.Color.KEYWORDS[t];if(n)return n},_convertTo:function(t,n){var r=e.Color.findType(t),i=n,s,o,u,a;return r==="keyword"&&(t=e.Color._keywordToHex(t),r="hex"),r==="hex"&&t.length<5&&(t.charAt(0)==="#"&&(t=t.substr(1)),t="#"+t.charAt(0)+t.charAt(0)+t.charAt(1)+t.charAt(1)+t.charAt(2)+t.charAt(2)),r===n?t:(r.charAt(r.length-1)==="a"&&(r=r.slice(0,-1)),s=n.charAt(n.length-1)==="a",s&&(n=n.slice(0,-1),o=e.Color._getAlpha(t)),a=n.charAt(0).toUpperCase()+n.substr(1).toLowerCase(),u=e.Color["_"+r+"To"+a],u||r!=="rgb"&&n!=="rgb"&&(t=e.Color["_"+r+"ToRgb"](t),r="rgb",u=e.Color["_"+r+"To"+a]),u&&(t=u(t,s)),s&&(e.Lang.isArray(t)||(t=e.Color.toArray(t)),t.push(o),t=e.Color.fromArray(t,i.toUpperCase())),t)},_hexToRgb:function(e,t){var n,r,i;return e.charAt(0)==="#"&&(e=e.substr(1)),e=parseInt(e,16),n=e>>16,r=e>>8&255,i=e&255,t?[n,r,i]:"rgb("+n+", "+r+", "+i+")"},_rgbToHex:function(t){var n=e.Color.toArray(t),r=n[2]|n[1]<<8|n[0]<<16;r=(+r).toString(16);while(r.length<6)r="0"+r;return"#"+r}}},"3.9.0",{requires:["yui-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+YUI.add("color-base",function(e,t){var n=/^#?([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})/,r=/^#?([\da-fA-F]{1})([\da-fA-F]{1})([\da-fA-F]{1})/,i=/rgba?\(([\d]{1,3}), ?([\d]{1,3}), ?([\d]{1,3}),? ?([.\d]*)?\)/,s={HEX:"hex",RGB:"rgb",RGBA:"rgba"},o={hex:"toHex",rgb:"toRGB",rgba:"toRGBA"};e.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},REGEX_HEX:n,REGEX_HEX3:r,REGEX_RGB:i,re_RGB:i,re_hex:n,re_hex3:r,STR_HEX:"#{*}{*}{*}",STR_RGB:"rgb({*}, {*}, {*})",STR_RGBA:"rgba({*}, {*}, {*}, {*})",TYPES:s,CONVERTS:o,convert:function(t,n){var r=e.Color.CONVERTS[n],i=e.Color[r](t);return i.toLowerCase()},toHex:function(t){var n=e.Color._convertTo(t,"hex");return n.toLowerCase()},toRGB:function(t){var n=e.Color._convertTo(t,"rgb");return n.toLowerCase()},toRGBA:function(t){var n=e.Color._convertTo(t,"rgba");return n.toLowerCase()},toArray:function(t){var n=e.Color.findType(t).toUpperCase(),r,i,s,o;return n==="HEX"&&t.length<5&&(n="HEX3"),n.charAt(n.length-1)==="A"&&(n=n.slice(0,-1)),r=e.Color["REGEX_"+n],r&&(i=r.exec(t)||[],s=i.length,s&&(i.shift(),s--,o=i[s-1],o||(i[s-1]=1))),i},fromArray:function(t,n){t=t.concat();if(typeof n=="undefined")return t.join(", ");var r="{*}";n=e.Color["STR_"+n.toUpperCase()],t.length===3&&n.match(/\{\*\}/g).length===4&&t.push(1);while(n.indexOf(r)>=0&&t.length>0)n=n.replace(r,t.shift());return n},findType:function(t){if(e.Color.KEYWORDS[t])return"keyword";var n=t.indexOf("("),r;return n>0&&(r=t.substr(0,n)),r&&e.Color.TYPES[r.toUpperCase()]?e.Color.TYPES[r.toUpperCase()]:"hex"},_getAlpha:function(t){var n,r=e.Color.toArray(t);return r.length>3&&(n=r.pop()),+n||1},_keywordToHex:function(t){var n=e.Color.KEYWORDS[t];if(n)return n},_convertTo:function(t,n){var r=e.Color.findType(t),i=n,s,o,u,a;return r==="keyword"&&(t=e.Color._keywordToHex(t),r="hex"),r==="hex"&&t.length<5&&(t.charAt(0)==="#"&&(t=t.substr(1)),t="#"+t.charAt(0)+t.charAt(0)+t.charAt(1)+t.charAt(1)+t.charAt(2)+t.charAt(2)),r===n?t:(r.charAt(r.length-1)==="a"&&(r=r.slice(0,-1)),s=n.charAt(n.length-1)==="a",s&&(n=n.slice(0,-1),o=e.Color._getAlpha(t)),a=n.charAt(0).toUpperCase()+n.substr(1).toLowerCase(),u=e.Color["_"+r+"To"+a],u||r!=="rgb"&&n!=="rgb"&&(t=e.Color["_"+r+"ToRgb"](t),r="rgb",u=e.Color["_"+r+"To"+a]),u&&(t=u(t,s)),s&&(e.Lang.isArray(t)||(t=e.Color.toArray(t)),t.push(o),t=e.Color.fromArray(t,i.toUpperCase())),t)},_hexToRgb:function(e,t){var n,r,i;return e.charAt(0)==="#"&&(e=e.substr(1)),e=parseInt(e,16),n=e>>16,r=e>>8&255,i=e&255,t?[n,r,i]:"rgb("+n+", "+r+", "+i+")"},_rgbToHex:function(t){var n=e.Color.toArray(t),r=n[2]|n[1]<<8|n[0]<<16;r=(+r).toString(16);while(r.length<6)r="0"+r;return"#"+r}}},"3.9.1",{requires:["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-base/color-base.js b/lib/yuilib/3.9.1/build/color-base/color-base.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/color-base/color-base.js
rename to lib/yuilib/3.9.1/build/color-base/color-base.js
index 2d19aebfcc6..4f7ccc0a863 100644
--- a/lib/yuilib/3.9.0/build/color-base/color-base.js
+++ b/lib/yuilib/3.9.1/build/color-base/color-base.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('color-base', function (Y, NAME) {
/**
@@ -446,4 +446,4 @@ Y.Color = {
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-harmony/color-harmony-coverage.js b/lib/yuilib/3.9.1/build/color-harmony/color-harmony-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/color-harmony/color-harmony-coverage.js
rename to lib/yuilib/3.9.1/build/color-harmony/color-harmony-coverage.js
index 7e69f8716c6..f60d8afe4ad 100644
--- a/lib/yuilib/3.9.0/build/color-harmony/color-harmony-coverage.js
+++ b/lib/yuilib/3.9.1/build/color-harmony/color-harmony-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,7 @@ _yuitest_coverage["build/color-harmony/color-harmony.js"] = {
path: "build/color-harmony/color-harmony.js",
code: []
};
-_yuitest_coverage["build/color-harmony/color-harmony.js"].code=["YUI.add('color-harmony', function (Y, NAME) {","","/**","Color Harmony provides methods useful for color combination discovery.","","@module color","@submodule color-harmony","@class Harmony","@namespace Color","@since 3.8.0","*/","var HSL = 'hsl',"," RGB = 'rgb',",""," SPLIT_OFFSET = 30,"," ANALOGOUS_OFFSET = 10,"," TRIAD_OFFSET = 360/3,"," TETRAD_OFFSET = 360/6,"," SQUARE_OFFSET = 360/4 ,",""," DEF_COUNT = 5,"," DEF_OFFSET = 10,",""," Color = Y.Color,",""," Harmony = {",""," // Color Groups"," /**"," Returns an Array of two colors. The first color in the Array"," will be the color passed in. The second will be the"," complementary color of the color provided"," @public"," @method getComplementary"," @param {String} str"," @param {String} [to]"," @return {Array}"," @since 3.8.0"," **/"," getComplementary: function(str, to) {"," var c = Harmony._start(str),"," offsets = [];",""," to = to || Color.findType(str);",""," offsets.push({});"," offsets.push({ h: 180 });",""," return Harmony._adjustOffsetAndFinish(c, offsets, to);"," },",""," /**"," Returns an Array of three colors. The first color in the Array"," will be the color passed in. The second two will be split"," complementary colors."," @public"," @method getSplit"," @param {String} str"," @param {Number} [offset]"," @param {String} [to]"," @return {String}"," @since 3.8.0"," **/"," getSplit: function(str, offset, to) {"," var c = Harmony._start(str),"," offsets = [];",""," offset = offset || SPLIT_OFFSET;",""," to = to || Color.findType(str);",""," offsets.push({});"," offsets.push({ h: 180 + offset });"," offsets.push({ h: 180 - offset });",""," return Harmony._adjustOffsetAndFinish(c, offsets, to);"," },",""," /**"," Returns an Array of five colors. The first color in the Array"," will be the color passed in. The remaining four will be"," analogous colors two in either direction from the initially"," provided color."," @public"," @method getAnalogous"," @param {String} str"," @param {Number} [offset]"," @param {String} [to]"," @return {String}"," @since 3.8.0"," **/"," getAnalogous: function(str, offset, to) {"," var c = Harmony._start(str),"," offsets = [];",""," offset = offset || ANALOGOUS_OFFSET;"," to = to || Color.findType(str);",""," offsets.push({});"," offsets.push({ h: offset });"," offsets.push({ h: offset * 2 });"," offsets.push({ h: -offset });"," offsets.push({ h: -offset * 2 });",""," return Harmony._adjustOffsetAndFinish(c, offsets, to);"," },",""," /**"," Returns an Array of three colors. The first color in the Array"," will be the color passed in. The second two will be equidistant"," from the start color and each other."," @public"," @method getTriad"," @param {String} str"," @param {String} [to]"," @return {String}"," @since 3.8.0"," **/"," getTriad: function(str, to) {"," var c = Harmony._start(str),"," offsets = [];",""," to = to || Color.findType(str);",""," offsets.push({});"," offsets.push({ h: TRIAD_OFFSET });"," offsets.push({ h: -TRIAD_OFFSET });",""," return Harmony._adjustOffsetAndFinish(c, offsets, to);"," },",""," /**"," Returns an Array of four colors. The first color in the Array"," will be the color passed in. The remaining three colors are"," equidistant offsets from the starting color and each other."," @public"," @method getTetrad"," @param {String} str"," @param {Number} [offset]"," @param {String} [to]"," @return {String}"," @since 3.8.0"," **/"," getTetrad: function(str, offset, to) {"," var c = Harmony._start(str),"," offsets = [];",""," offset = offset || TETRAD_OFFSET;"," to = to || Color.findType(str);",""," offsets.push({});"," offsets.push({ h: offset });"," offsets.push({ h: 180 });"," offsets.push({ h: 180 + offset });",""," return Harmony._adjustOffsetAndFinish(c, offsets, to);"," },",""," /**"," Returns an Array of four colors. The first color in the Array"," will be the color passed in. The remaining three colors are"," equidistant offsets from the starting color and each other."," @public"," @method getSquare"," @param {String} str"," @param {String} [to]"," @return {String}"," @since 3.8.0"," **/"," getSquare: function(str, to) {"," var c = Harmony._start(str),"," offsets = [];",""," to = to || Color.findType(str);",""," offsets.push({});"," offsets.push({ h: SQUARE_OFFSET });"," offsets.push({ h: SQUARE_OFFSET * 2 });"," offsets.push({ h: SQUARE_OFFSET * 3 });",""," return Harmony._adjustOffsetAndFinish(c, offsets, to);"," },",""," /**"," Calculates lightness offsets resulting in a monochromatic Array"," of values."," @public"," @method getMonochrome"," @param {String} str"," @param {Number} [count]"," @param {String} [to]"," @return {String}"," @since 3.8.0"," **/"," getMonochrome: function(str, count, to) {"," var c = Harmony._start(str),"," colors = [],"," i = 0,"," l,"," step,"," _c = c.concat();",""," count = count || DEF_COUNT;"," to = to || Color.findType(str);","",""," if (count < 2) {"," return str;"," }",""," step = 100 / (count - 1);",""," for (; i <= 100; i += step) {"," _c[2] = Math.max(Math.min(i, 100), 0);"," colors.push(_c.concat());"," }",""," l = colors.length;",""," for (i=0; i100?100:t,f=Math.max(0,a-u),d=Math.min(100,a+u),g=Math.max(0,m-u),y=Math.min(100,m+u),o.push({});for(i=0;i 1) {"," hue -= 1;"," }",""," if (hue * 6 < 1) {"," return p + (q - p) * 6 * hue;"," }"," if (hue * 2 < 1) {"," return q;"," }"," if (hue * 3 < 2) {"," return p + (q - p) * (2/3 - hue) * 6;"," }"," return p;"," }","","};","","Y.Color = Y.mix(Color, Y.Color);","","Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSL':'hsl', 'HSLA':'hsla'});","Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsl': 'toHSL', 'hsla': 'toHSLA'});","","","}, '3.9.0', {\"requires\": [\"color-base\"]});"];
+_yuitest_coverage["build/color-hsl/color-hsl.js"].code=["YUI.add('color-hsl', function (Y, NAME) {","","/**","Color provides static methods for color conversion to hsl values.",""," Y.Color.toHSL('f00'); // hsl(0, 100%, 50%)",""," Y.Color.toHSLA('rgb(255, 255, 0'); // hsla(60, 100%, 50%, 1)","","@module color","@submodule color-hsl","@class HSL","@namespace Color","@since 3.8.0","**/","Color = {",""," /**"," @static"," @property REGEX_HSL"," @type RegExp"," @default /hsla?\\(([.\\d]*), ?([.\\d]*)%, ?([.\\d]*)%,? ?([.\\d]*)?\\)/"," @since 3.8.0"," **/"," REGEX_HSL: /hsla?\\(([.\\d]*), ?([.\\d]*)%, ?([.\\d]*)%,? ?([.\\d]*)?\\)/,",""," /**"," @static"," @property STR_HSL"," @type String"," @default hsl({*}, {*}%, {*}%)"," @since 3.8.0"," **/"," STR_HSL: 'hsl({*}, {*}%, {*}%)',",""," /**"," @static"," @property STR_HSLA"," @type String"," @default hsla({*}, {*}%, {*}%, {*})"," @since 3.8.0"," **/"," STR_HSLA: 'hsla({*}, {*}%, {*}%, {*})',",""," /**"," Converts provided color value to an HSL string."," @public"," @method toHSL"," @param {String} str"," @return {String}"," @since 3.8.0"," **/"," toHSL: function (str) {"," var clr = Y.Color._convertTo(str, 'hsl');"," return clr.toLowerCase();"," },",""," /**"," Converts provided color value to an HSLA string."," @public"," @method toHSLA"," @param {String} str"," @return {String}"," @since 3.8.0"," **/"," toHSLA: function (str) {"," var clr = Y.Color._convertTo(str, 'hsla');"," return clr.toLowerCase();"," },",""," /**"," Parses the RGB string into h, s, l values. Will return an Array"," of values or an HSL string."," @protected"," @method _rgbToHsl"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _rgbToHsl: function (str, toArray) {"," var h, s, l,"," rgb = Y.Color.REGEX_RGB.exec(str),"," r = rgb[1] / 255,"," g = rgb[2] / 255,"," b = rgb[3] / 255,"," max = Math.max(r, g, b),"," min = Math.min(r, g, b),"," isGrayScale = false,"," sub = max - min,"," sum = max + min;","",""," if (r === g && g === b) {"," isGrayScale = true;"," }",""," // hue"," if (sub === 0) {"," h = 0;"," } else if (r === max) {"," h = ((60 * (g - b) / sub) + 360) % 360;"," } else if (g === max) {"," h = (60 * (b - r) / sub) + 120;"," } else {"," h = (60 * (r - g) / sub) + 240;"," }",""," // lightness"," l = sum / 2;",""," // saturation"," if (l === 0 || l === 1) {"," s = l;"," } else if (l <= 0.5) {"," s = sub / sum;"," } else {"," s = sub / (2 - sum);"," }",""," if (isGrayScale) {"," s = 0;"," }",""," // clean up hsl"," h = Math.round(h);"," s = Math.round(s * 100);"," l = Math.round(l * 100);",""," if (toArray) {"," return [h, s, l];"," }",""," return 'hsl(' + h + ', ' + s + '%, ' + l + '%)';"," },",""," /**"," Parses the HSL string into r, b, g values. Will return an Array"," of values or an RGB string."," @protected"," @method _hslToRgb"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _hslToRgb: function (str, toArray) {"," // assume input is [h, s, l]"," // TODO: Find legals for use of formula"," var hsl = Y.Color.REGEX_HSL.exec(str),"," h = parseInt(hsl[1], 10) / 360,"," s = parseInt(hsl[2], 10) / 100,"," l = parseInt(hsl[3], 10) / 100,"," r,"," g,"," b,"," p,"," q;",""," if (l <= 0.5) {"," q = l * (s + 1);"," } else {"," q = (l + s) - (l * s);"," }",""," p = 2 * l - q;",""," r = Math.round(Color._hueToRGB(p, q, h + 1/3) * 255);"," g = Math.round(Color._hueToRGB(p, q, h) * 255);"," b = Math.round(Color._hueToRGB(p, q, h - 1/3) * 255);",""," if (toArray) {"," return [r, g, b];"," }",""," return 'rgb(' + r + ', ' + g + ', ' + b + ')';"," },",""," /**"," Converts the HSL hue to the different channels for RGB",""," @protected"," @method _hueToRGB"," @param {Number} p"," @param {Number} q"," @param {Number} hue"," @return {Number} value for requested channel"," @since 3.8.0"," **/"," _hueToRGB: function(p, q, hue) {"," // TODO: Find legals for use of formula"," if (hue < 0) {"," hue += 1;"," } else if (hue > 1) {"," hue -= 1;"," }",""," if (hue * 6 < 1) {"," return p + (q - p) * 6 * hue;"," }"," if (hue * 2 < 1) {"," return q;"," }"," if (hue * 3 < 2) {"," return p + (q - p) * (2/3 - hue) * 6;"," }"," return p;"," }","","};","","Y.Color = Y.mix(Color, Y.Color);","","Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSL':'hsl', 'HSLA':'hsla'});","Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsl': 'toHSL', 'hsla': 'toHSLA'});","","","}, '3.9.1', {\"requires\": [\"color-base\"]});"];
_yuitest_coverage["build/color-hsl/color-hsl.js"].lines = {"1":0,"16":0,"54":0,"55":0,"67":0,"68":0,"82":0,"94":0,"95":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"106":0,"110":0,"113":0,"114":0,"115":0,"116":0,"118":0,"121":0,"122":0,"126":0,"127":0,"128":0,"130":0,"131":0,"134":0,"150":0,"160":0,"161":0,"163":0,"166":0,"168":0,"169":0,"170":0,"172":0,"173":0,"176":0,"192":0,"193":0,"194":0,"195":0,"198":0,"199":0,"201":0,"202":0,"204":0,"205":0,"207":0,"212":0,"214":0,"215":0};
_yuitest_coverage["build/color-hsl/color-hsl.js"].functions = {"toHSL:53":0,"toHSLA:66":0,"_rgbToHsl:81":0,"_hslToRgb:147":0,"_hueToRGB:190":0,"(anonymous 1):1":0};
_yuitest_coverage["build/color-hsl/color-hsl.js"].coveredLines = 55;
@@ -310,4 +310,4 @@ _yuitest_coverline("build/color-hsl/color-hsl.js", 215);
Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsl': 'toHSL', 'hsla': 'toHSLA'});
-}, '3.9.0', {"requires": ["color-base"]});
+}, '3.9.1', {"requires": ["color-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-hsl/color-hsl-debug.js b/lib/yuilib/3.9.1/build/color-hsl/color-hsl-debug.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/color-hsl/color-hsl-debug.js
rename to lib/yuilib/3.9.1/build/color-hsl/color-hsl-debug.js
index 75204af54f2..e1d2d229d08 100644
--- a/lib/yuilib/3.9.0/build/color-hsl/color-hsl-debug.js
+++ b/lib/yuilib/3.9.1/build/color-hsl/color-hsl-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('color-hsl', function (Y, NAME) {
/**
@@ -216,4 +216,4 @@ Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSL':'hsl', 'HSLA':'hsla'});
Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsl': 'toHSL', 'hsla': 'toHSLA'});
-}, '3.9.0', {"requires": ["color-base"]});
+}, '3.9.1', {"requires": ["color-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-hsl/color-hsl-min.js b/lib/yuilib/3.9.1/build/color-hsl/color-hsl-min.js
similarity index 92%
rename from lib/yuilib/3.9.0/build/color-hsl/color-hsl-min.js
rename to lib/yuilib/3.9.1/build/color-hsl/color-hsl-min.js
index 965567ab173..757bca077d1 100644
--- a/lib/yuilib/3.9.0/build/color-hsl/color-hsl-min.js
+++ b/lib/yuilib/3.9.1/build/color-hsl/color-hsl-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("color-hsl",function(e,t){Color={REGEX_HSL:/hsla?\(([.\d]*), ?([.\d]*)%, ?([.\d]*)%,? ?([.\d]*)?\)/,STR_HSL:"hsl({*}, {*}%, {*}%)",STR_HSLA:"hsla({*}, {*}%, {*}%, {*})",toHSL:function(t){var n=e.Color._convertTo(t,"hsl");return n.toLowerCase()},toHSLA:function(t){var n=e.Color._convertTo(t,"hsla");return n.toLowerCase()},_rgbToHsl:function(t,n){var r,i,s,o=e.Color.REGEX_RGB.exec(t),u=o[1]/255,a=o[2]/255,f=o[3]/255,l=Math.max(u,a,f),c=Math.min(u,a,f),h=!1,p=l-c,d=l+c;return u===a&&a===f&&(h=!0),p===0?r=0:u===l?r=(60*(a-f)/p+360)%360:a===l?r=60*(f-u)/p+120:r=60*(u-a)/p+240,s=d/2,s===0||s===1?i=s:s<=.5?i=p/d:i=p/(2-d),h&&(i=0),r=Math.round(r),i=Math.round(i*100),s=Math.round(s*100),n?[r,i,s]:"hsl("+r+", "+i+"%, "+s+"%)"},_hslToRgb:function(t,n){var r=e.Color.REGEX_HSL.exec(t),i=parseInt(r[1],10)/360,s=parseInt(r[2],10)/100,o=parseInt(r[3],10)/100,u,a,f,l,c;return o<=.5?c=o*(s+1):c=o+s-o*s,l=2*o-c,u=Math.round(Color._hueToRGB(l,c,i+1/3)*255),a=Math.round(Color._hueToRGB(l,c,i)*255),f=Math.round(Color._hueToRGB(l,c,i-1/3)*255),n?[u,a,f]:"rgb("+u+", "+a+", "+f+")"},_hueToRGB:function(e,t,n){return n<0?n+=1:n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}},e.Color=e.mix(Color,e.Color),e.Color.TYPES=e.mix(e.Color.TYPES,{HSL:"hsl",HSLA:"hsla"}),e.Color.CONVERTS=e.mix(e.Color.CONVERTS,{hsl:"toHSL",hsla:"toHSLA"})},"3.9.0",{requires:["color-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+YUI.add("color-hsl",function(e,t){Color={REGEX_HSL:/hsla?\(([.\d]*), ?([.\d]*)%, ?([.\d]*)%,? ?([.\d]*)?\)/,STR_HSL:"hsl({*}, {*}%, {*}%)",STR_HSLA:"hsla({*}, {*}%, {*}%, {*})",toHSL:function(t){var n=e.Color._convertTo(t,"hsl");return n.toLowerCase()},toHSLA:function(t){var n=e.Color._convertTo(t,"hsla");return n.toLowerCase()},_rgbToHsl:function(t,n){var r,i,s,o=e.Color.REGEX_RGB.exec(t),u=o[1]/255,a=o[2]/255,f=o[3]/255,l=Math.max(u,a,f),c=Math.min(u,a,f),h=!1,p=l-c,d=l+c;return u===a&&a===f&&(h=!0),p===0?r=0:u===l?r=(60*(a-f)/p+360)%360:a===l?r=60*(f-u)/p+120:r=60*(u-a)/p+240,s=d/2,s===0||s===1?i=s:s<=.5?i=p/d:i=p/(2-d),h&&(i=0),r=Math.round(r),i=Math.round(i*100),s=Math.round(s*100),n?[r,i,s]:"hsl("+r+", "+i+"%, "+s+"%)"},_hslToRgb:function(t,n){var r=e.Color.REGEX_HSL.exec(t),i=parseInt(r[1],10)/360,s=parseInt(r[2],10)/100,o=parseInt(r[3],10)/100,u,a,f,l,c;return o<=.5?c=o*(s+1):c=o+s-o*s,l=2*o-c,u=Math.round(Color._hueToRGB(l,c,i+1/3)*255),a=Math.round(Color._hueToRGB(l,c,i)*255),f=Math.round(Color._hueToRGB(l,c,i-1/3)*255),n?[u,a,f]:"rgb("+u+", "+a+", "+f+")"},_hueToRGB:function(e,t,n){return n<0?n+=1:n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}},e.Color=e.mix(Color,e.Color),e.Color.TYPES=e.mix(e.Color.TYPES,{HSL:"hsl",HSLA:"hsla"}),e.Color.CONVERTS=e.mix(e.Color.CONVERTS,{hsl:"toHSL",hsla:"toHSLA"})},"3.9.1",{requires:["color-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-hsl/color-hsl.js b/lib/yuilib/3.9.1/build/color-hsl/color-hsl.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/color-hsl/color-hsl.js
rename to lib/yuilib/3.9.1/build/color-hsl/color-hsl.js
index 75204af54f2..e1d2d229d08 100644
--- a/lib/yuilib/3.9.0/build/color-hsl/color-hsl.js
+++ b/lib/yuilib/3.9.1/build/color-hsl/color-hsl.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('color-hsl', function (Y, NAME) {
/**
@@ -216,4 +216,4 @@ Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSL':'hsl', 'HSLA':'hsla'});
Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsl': 'toHSL', 'hsla': 'toHSLA'});
-}, '3.9.0', {"requires": ["color-base"]});
+}, '3.9.1', {"requires": ["color-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-hsv/color-hsv-coverage.js b/lib/yuilib/3.9.1/build/color-hsv/color-hsv-coverage.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/color-hsv/color-hsv-coverage.js
rename to lib/yuilib/3.9.1/build/color-hsv/color-hsv-coverage.js
index 1a968508db3..a80935558e7 100644
--- a/lib/yuilib/3.9.0/build/color-hsv/color-hsv-coverage.js
+++ b/lib/yuilib/3.9.1/build/color-hsv/color-hsv-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,7 @@ _yuitest_coverage["build/color-hsv/color-hsv.js"] = {
path: "build/color-hsv/color-hsv.js",
code: []
};
-_yuitest_coverage["build/color-hsv/color-hsv.js"].code=["YUI.add('color-hsv', function (Y, NAME) {","","/**","Color provides static methods for color conversion hsv values.",""," Y.Color.toHSV('f00'); // hsv(0, 100%, 100%)",""," Y.Color.toHSVA('rgb(255, 255, 0'); // hsva(60, 100%, 100%, 1)","","","@module color","@submodule color-hsv","@class HSV","@namespace Color","@since 3.8.0","**/","Color = {",""," /**"," @static"," @property REGEX_HSV"," @type RegExp"," @default /hsva?\\(([.\\d]*), ?([.\\d]*)%, ?([.\\d]*)%,? ?([.\\d]*)?\\)/"," @since 3.8.0"," **/"," REGEX_HSV: /hsva?\\(([.\\d]*), ?([.\\d]*)%, ?([.\\d]*)%,? ?([.\\d]*)?\\)/,",""," /**"," @static"," @property STR_HSV"," @type String"," @default hsv({*}, {*}%, {*}%)"," @since 3.8.0"," **/"," STR_HSV: 'hsv({*}, {*}%, {*}%)',",""," /**"," @static"," @property STR_HSVA"," @type String"," @default hsva({*}, {*}%, {*}%, {*})"," @since 3.8.0"," **/"," STR_HSVA: 'hsva({*}, {*}%, {*}%, {*})',",""," /**"," Converts provided color value to an HSV string."," @public"," @method toHSV"," @param {String} str"," @return {String}"," @since 3.8.0"," **/"," toHSV: function (str) {"," var clr = Y.Color._convertTo(str, 'hsv');"," return clr.toLowerCase();"," },",""," /**"," Converts provided color value to an HSVA string."," @public"," @method toHSVA"," @param {String} str"," @return {String}"," @since 3.8.0"," **/"," toHSVA: function (str) {"," var clr = Y.Color._convertTo(str, 'hsva');"," return clr.toLowerCase();"," },",""," /**"," Parses the RGB string into h, s, v values. Will return an Array"," of values or an HSV string."," @protected"," @method _rgbToHsv"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _rgbToHsv: function (str, toArray) {"," var h, s, v,"," rgb = Y.Color.REGEX_RGB.exec(str),"," r = rgb[1] / 255,"," g = rgb[2] / 255,"," b = rgb[3] / 255,"," max = Math.max(r, g, b),"," min = Math.min(r, g, b),"," delta = max - min;",""," if (max === min) {"," h = 0;"," } else if (max === r) {"," h = 60 * (g - b) / delta;"," } else if (max === g) {"," h = (60 * (b - r) / delta) + 120;"," } else { // max === b"," h = (60 * (r - g) / delta) + 240;"," }",""," s = (max === 0) ? 0 : 1 - (min / max);",""," // ensure h is between 0 and 360"," while (h < 0) {"," h += 360;"," }"," h %= 360;"," h = Math.round(h);",""," // saturation is percentage"," s = Math.round(s * 100);",""," // value is percentage"," v = Math.round(max * 100);",""," if (toArray) {"," return [h, s, v];"," }",""," return Y.Color.fromArray([h, s, v], Y.Color.TYPES.HSV);"," },",""," /**"," Parses the HSV string into r, b, g values. Will return an Array"," of values or an RGB string."," @protected"," @method _hsvToRgb"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _hsvToRgb: function (str, toArray) {"," var hsv = Y.Color.REGEX_HSV.exec(str),"," h = parseInt(hsv[1], 10),"," s = parseInt(hsv[2], 10) / 100, // 0 - 1"," v = parseInt(hsv[3], 10) / 100, // 0 - 1"," r,"," g,"," b,"," i = Math.floor(h / 60) % 6,"," f = (h / 60) - i,"," p = v * (1 - s),"," q = v * (1 - (s * f)),"," t = v * (1 - (s * (1 - f)));",""," if (s === 0) {"," r = v;"," g = v;"," b = v;"," } else {"," switch (i) {"," case 0: r = v; g = t; b = p; break;"," case 1: r = q; g = v; b = p; break;"," case 2: r = p; g = v; b = t; break;"," case 3: r = p; g = q; b = v; break;"," case 4: r = t; g = p; b = v; break;"," case 5: r = v; g = p; b = q; break;"," }"," }",""," r = Math.min(255, Math.round(r * 256));"," g = Math.min(255, Math.round(g * 256));"," b = Math.min(255, Math.round(b * 256));",""," if (toArray) {"," return [r, g, b];"," }",""," return Y.Color.fromArray([r, g, b], Y.Color.TYPES.RGB);"," }","","};","","Y.Color = Y.mix(Color, Y.Color);","","Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSV':'hsv', 'HSVA':'hsva'});","Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsv': 'toHSV', 'hsva': 'toHSVA'});","","","}, '3.9.0', {\"requires\": [\"color-base\"]});"];
+_yuitest_coverage["build/color-hsv/color-hsv.js"].code=["YUI.add('color-hsv', function (Y, NAME) {","","/**","Color provides static methods for color conversion hsv values.",""," Y.Color.toHSV('f00'); // hsv(0, 100%, 100%)",""," Y.Color.toHSVA('rgb(255, 255, 0'); // hsva(60, 100%, 100%, 1)","","","@module color","@submodule color-hsv","@class HSV","@namespace Color","@since 3.8.0","**/","Color = {",""," /**"," @static"," @property REGEX_HSV"," @type RegExp"," @default /hsva?\\(([.\\d]*), ?([.\\d]*)%, ?([.\\d]*)%,? ?([.\\d]*)?\\)/"," @since 3.8.0"," **/"," REGEX_HSV: /hsva?\\(([.\\d]*), ?([.\\d]*)%, ?([.\\d]*)%,? ?([.\\d]*)?\\)/,",""," /**"," @static"," @property STR_HSV"," @type String"," @default hsv({*}, {*}%, {*}%)"," @since 3.8.0"," **/"," STR_HSV: 'hsv({*}, {*}%, {*}%)',",""," /**"," @static"," @property STR_HSVA"," @type String"," @default hsva({*}, {*}%, {*}%, {*})"," @since 3.8.0"," **/"," STR_HSVA: 'hsva({*}, {*}%, {*}%, {*})',",""," /**"," Converts provided color value to an HSV string."," @public"," @method toHSV"," @param {String} str"," @return {String}"," @since 3.8.0"," **/"," toHSV: function (str) {"," var clr = Y.Color._convertTo(str, 'hsv');"," return clr.toLowerCase();"," },",""," /**"," Converts provided color value to an HSVA string."," @public"," @method toHSVA"," @param {String} str"," @return {String}"," @since 3.8.0"," **/"," toHSVA: function (str) {"," var clr = Y.Color._convertTo(str, 'hsva');"," return clr.toLowerCase();"," },",""," /**"," Parses the RGB string into h, s, v values. Will return an Array"," of values or an HSV string."," @protected"," @method _rgbToHsv"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _rgbToHsv: function (str, toArray) {"," var h, s, v,"," rgb = Y.Color.REGEX_RGB.exec(str),"," r = rgb[1] / 255,"," g = rgb[2] / 255,"," b = rgb[3] / 255,"," max = Math.max(r, g, b),"," min = Math.min(r, g, b),"," delta = max - min;",""," if (max === min) {"," h = 0;"," } else if (max === r) {"," h = 60 * (g - b) / delta;"," } else if (max === g) {"," h = (60 * (b - r) / delta) + 120;"," } else { // max === b"," h = (60 * (r - g) / delta) + 240;"," }",""," s = (max === 0) ? 0 : 1 - (min / max);",""," // ensure h is between 0 and 360"," while (h < 0) {"," h += 360;"," }"," h %= 360;"," h = Math.round(h);",""," // saturation is percentage"," s = Math.round(s * 100);",""," // value is percentage"," v = Math.round(max * 100);",""," if (toArray) {"," return [h, s, v];"," }",""," return Y.Color.fromArray([h, s, v], Y.Color.TYPES.HSV);"," },",""," /**"," Parses the HSV string into r, b, g values. Will return an Array"," of values or an RGB string."," @protected"," @method _hsvToRgb"," @param {String} str"," @param {Boolean} [toArray]"," @return {String|Array}"," @since 3.8.0"," **/"," _hsvToRgb: function (str, toArray) {"," var hsv = Y.Color.REGEX_HSV.exec(str),"," h = parseInt(hsv[1], 10),"," s = parseInt(hsv[2], 10) / 100, // 0 - 1"," v = parseInt(hsv[3], 10) / 100, // 0 - 1"," r,"," g,"," b,"," i = Math.floor(h / 60) % 6,"," f = (h / 60) - i,"," p = v * (1 - s),"," q = v * (1 - (s * f)),"," t = v * (1 - (s * (1 - f)));",""," if (s === 0) {"," r = v;"," g = v;"," b = v;"," } else {"," switch (i) {"," case 0: r = v; g = t; b = p; break;"," case 1: r = q; g = v; b = p; break;"," case 2: r = p; g = v; b = t; break;"," case 3: r = p; g = q; b = v; break;"," case 4: r = t; g = p; b = v; break;"," case 5: r = v; g = p; b = q; break;"," }"," }",""," r = Math.min(255, Math.round(r * 256));"," g = Math.min(255, Math.round(g * 256));"," b = Math.min(255, Math.round(b * 256));",""," if (toArray) {"," return [r, g, b];"," }",""," return Y.Color.fromArray([r, g, b], Y.Color.TYPES.RGB);"," }","","};","","Y.Color = Y.mix(Color, Y.Color);","","Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSV':'hsv', 'HSVA':'hsva'});","Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsv': 'toHSV', 'hsva': 'toHSVA'});","","","}, '3.9.1', {\"requires\": [\"color-base\"]});"];
_yuitest_coverage["build/color-hsv/color-hsv.js"].lines = {"1":0,"17":0,"55":0,"56":0,"68":0,"69":0,"83":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"99":0,"102":0,"105":0,"106":0,"108":0,"109":0,"112":0,"115":0,"117":0,"118":0,"121":0,"135":0,"148":0,"149":0,"150":0,"151":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"163":0,"164":0,"165":0,"167":0,"168":0,"171":0,"176":0,"178":0,"179":0};
_yuitest_coverage["build/color-hsv/color-hsv.js"].functions = {"toHSV:54":0,"toHSVA:67":0,"_rgbToHsv:82":0,"_hsvToRgb:134":0,"(anonymous 1):1":0};
_yuitest_coverage["build/color-hsv/color-hsv.js"].coveredLines = 45;
@@ -263,4 +263,4 @@ _yuitest_coverline("build/color-hsv/color-hsv.js", 179);
Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsv': 'toHSV', 'hsva': 'toHSVA'});
-}, '3.9.0', {"requires": ["color-base"]});
+}, '3.9.1', {"requires": ["color-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-hsv/color-hsv-debug.js b/lib/yuilib/3.9.1/build/color-hsv/color-hsv-debug.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/color-hsv/color-hsv-debug.js
rename to lib/yuilib/3.9.1/build/color-hsv/color-hsv-debug.js
index bb0e03d2d05..5a7f5a9e642 100644
--- a/lib/yuilib/3.9.0/build/color-hsv/color-hsv-debug.js
+++ b/lib/yuilib/3.9.1/build/color-hsv/color-hsv-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('color-hsv', function (Y, NAME) {
/**
@@ -180,4 +180,4 @@ Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSV':'hsv', 'HSVA':'hsva'});
Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsv': 'toHSV', 'hsva': 'toHSVA'});
-}, '3.9.0', {"requires": ["color-base"]});
+}, '3.9.1', {"requires": ["color-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-hsv/color-hsv-min.js b/lib/yuilib/3.9.1/build/color-hsv/color-hsv-min.js
similarity index 91%
rename from lib/yuilib/3.9.0/build/color-hsv/color-hsv-min.js
rename to lib/yuilib/3.9.1/build/color-hsv/color-hsv-min.js
index 1584945b33f..2c207ab71ad 100644
--- a/lib/yuilib/3.9.0/build/color-hsv/color-hsv-min.js
+++ b/lib/yuilib/3.9.1/build/color-hsv/color-hsv-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
-YUI.add("color-hsv",function(e,t){Color={REGEX_HSV:/hsva?\(([.\d]*), ?([.\d]*)%, ?([.\d]*)%,? ?([.\d]*)?\)/,STR_HSV:"hsv({*}, {*}%, {*}%)",STR_HSVA:"hsva({*}, {*}%, {*}%, {*})",toHSV:function(t){var n=e.Color._convertTo(t,"hsv");return n.toLowerCase()},toHSVA:function(t){var n=e.Color._convertTo(t,"hsva");return n.toLowerCase()},_rgbToHsv:function(t,n){var r,i,s,o=e.Color.REGEX_RGB.exec(t),u=o[1]/255,a=o[2]/255,f=o[3]/255,l=Math.max(u,a,f),c=Math.min(u,a,f),h=l-c;l===c?r=0:l===u?r=60*(a-f)/h:l===a?r=60*(f-u)/h+120:r=60*(u-a)/h+240,i=l===0?0:1-c/l;while(r<0)r+=360;return r%=360,r=Math.round(r),i=Math.round(i*100),s=Math.round(l*100),n?[r,i,s]:e.Color.fromArray([r,i,s],e.Color.TYPES.HSV)},_hsvToRgb:function(t,n){var r=e.Color.REGEX_HSV.exec(t),i=parseInt(r[1],10),s=parseInt(r[2],10)/100,o=parseInt(r[3],10)/100,u,a,f,l=Math.floor(i/60)%6,c=i/60-l,h=o*(1-s),p=o*(1-s*c),d=o*(1-s*(1-c));if(s===0)u=o,a=o,f=o;else switch(l){case 0:u=o,a=d,f=h;break;case 1:u=p,a=o,f=h;break;case 2:u=h,a=o,f=d;break;case 3:u=h,a=p,f=o;break;case 4:u=d,a=h,f=o;break;case 5:u=o,a=h,f=p}return u=Math.min(255,Math.round(u*256)),a=Math.min(255,Math.round(a*256)),f=Math.min(255,Math.round(f*256)),n?[u,a,f]:e.Color.fromArray([u,a,f],e.Color.TYPES.RGB)}},e.Color=e.mix(Color,e.Color),e.Color.TYPES=e.mix(e.Color.TYPES,{HSV:"hsv",HSVA:"hsva"}),e.Color.CONVERTS=e.mix(e.Color.CONVERTS,{hsv:"toHSV",hsva:"toHSVA"})},"3.9.0",{requires:["color-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+YUI.add("color-hsv",function(e,t){Color={REGEX_HSV:/hsva?\(([.\d]*), ?([.\d]*)%, ?([.\d]*)%,? ?([.\d]*)?\)/,STR_HSV:"hsv({*}, {*}%, {*}%)",STR_HSVA:"hsva({*}, {*}%, {*}%, {*})",toHSV:function(t){var n=e.Color._convertTo(t,"hsv");return n.toLowerCase()},toHSVA:function(t){var n=e.Color._convertTo(t,"hsva");return n.toLowerCase()},_rgbToHsv:function(t,n){var r,i,s,o=e.Color.REGEX_RGB.exec(t),u=o[1]/255,a=o[2]/255,f=o[3]/255,l=Math.max(u,a,f),c=Math.min(u,a,f),h=l-c;l===c?r=0:l===u?r=60*(a-f)/h:l===a?r=60*(f-u)/h+120:r=60*(u-a)/h+240,i=l===0?0:1-c/l;while(r<0)r+=360;return r%=360,r=Math.round(r),i=Math.round(i*100),s=Math.round(l*100),n?[r,i,s]:e.Color.fromArray([r,i,s],e.Color.TYPES.HSV)},_hsvToRgb:function(t,n){var r=e.Color.REGEX_HSV.exec(t),i=parseInt(r[1],10),s=parseInt(r[2],10)/100,o=parseInt(r[3],10)/100,u,a,f,l=Math.floor(i/60)%6,c=i/60-l,h=o*(1-s),p=o*(1-s*c),d=o*(1-s*(1-c));if(s===0)u=o,a=o,f=o;else switch(l){case 0:u=o,a=d,f=h;break;case 1:u=p,a=o,f=h;break;case 2:u=h,a=o,f=d;break;case 3:u=h,a=p,f=o;break;case 4:u=d,a=h,f=o;break;case 5:u=o,a=h,f=p}return u=Math.min(255,Math.round(u*256)),a=Math.min(255,Math.round(a*256)),f=Math.min(255,Math.round(f*256)),n?[u,a,f]:e.Color.fromArray([u,a,f],e.Color.TYPES.RGB)}},e.Color=e.mix(Color,e.Color),e.Color.TYPES=e.mix(e.Color.TYPES,{HSV:"hsv",HSVA:"hsva"}),e.Color.CONVERTS=e.mix(e.Color.CONVERTS,{hsv:"toHSV",hsva:"toHSVA"})},"3.9.1",{requires:["color-base"]});
diff --git a/lib/yuilib/3.9.0/build/color-hsv/color-hsv.js b/lib/yuilib/3.9.1/build/color-hsv/color-hsv.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/color-hsv/color-hsv.js
rename to lib/yuilib/3.9.1/build/color-hsv/color-hsv.js
index bb0e03d2d05..5a7f5a9e642 100644
--- a/lib/yuilib/3.9.0/build/color-hsv/color-hsv.js
+++ b/lib/yuilib/3.9.1/build/color-hsv/color-hsv.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('color-hsv', function (Y, NAME) {
/**
@@ -180,4 +180,4 @@ Y.Color.TYPES = Y.mix(Y.Color.TYPES, {'HSV':'hsv', 'HSVA':'hsva'});
Y.Color.CONVERTS = Y.mix(Y.Color.CONVERTS, {'hsv': 'toHSV', 'hsva': 'toHSVA'});
-}, '3.9.0', {"requires": ["color-base"]});
+}, '3.9.1', {"requires": ["color-base"]});
diff --git a/lib/yuilib/3.9.1/build/console-filters/assets/console-filters-core.css b/lib/yuilib/3.9.1/build/console-filters/assets/console-filters-core.css
new file mode 100644
index 00000000000..032880fae8e
--- /dev/null
+++ b/lib/yuilib/3.9.1/build/console-filters/assets/console-filters-core.css
@@ -0,0 +1 @@
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
diff --git a/lib/yuilib/3.9.0/build/console/assets/skins/sam/console-filters-skin.css b/lib/yuilib/3.9.1/build/console-filters/assets/skins/sam/console-filters-skin.css
similarity index 92%
rename from lib/yuilib/3.9.0/build/console/assets/skins/sam/console-filters-skin.css
rename to lib/yuilib/3.9.1/build/console-filters/assets/skins/sam/console-filters-skin.css
index 6f3b17636d2..eb988f35b21 100644
--- a/lib/yuilib/3.9.0/build/console/assets/skins/sam/console-filters-skin.css
+++ b/lib/yuilib/3.9.1/build/console-filters/assets/skins/sam/console-filters-skin.css
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
.yui3-skin-sam .yui3-console-ft .yui3-console-filters-categories,
.yui3-skin-sam .yui3-console-ft .yui3-console-filters-sources {
text-align: left;
diff --git a/lib/yuilib/3.9.0/build/assets/skins/sam/console-filters.css b/lib/yuilib/3.9.1/build/console-filters/assets/skins/sam/console-filters.css
similarity index 92%
rename from lib/yuilib/3.9.0/build/assets/skins/sam/console-filters.css
rename to lib/yuilib/3.9.1/build/console-filters/assets/skins/sam/console-filters.css
index e0dc1d896b8..fee56f5d737 100644
--- a/lib/yuilib/3.9.0/build/assets/skins/sam/console-filters.css
+++ b/lib/yuilib/3.9.1/build/console-filters/assets/skins/sam/console-filters.css
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
.yui3-skin-sam .yui3-console-ft .yui3-console-filters-categories,.yui3-skin-sam .yui3-console-ft .yui3-console-filters-sources{text-align:left;padding:5px 0;border:1px inset;margin:0 2px}.yui3-skin-sam .yui3-console-ft .yui3-console-filters-categories{background:#fff;border-bottom:2px ridge}.yui3-skin-sam .yui3-console-ft .yui3-console-filters-sources{background:#fff;margin-bottom:2px;border-top:0 none;border-bottom-right-radius:10px;border-bottom-left-radius:10px;-moz-border-radius-bottomright:10px;-moz-border-radius-bottomleft:10px;-webkit-border-bottom-right-radius:10px;-webkit-border-bottom-left-radius:10px}.yui3-skin-sam .yui3-console-filter-label{white-space:nowrap;margin-left:1ex}#yui3-css-stamp.skin-sam-console-filters{display:none}
diff --git a/lib/yuilib/3.9.0/build/console-filters/console-filters-coverage.js b/lib/yuilib/3.9.1/build/console-filters/console-filters-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/console-filters/console-filters-coverage.js
rename to lib/yuilib/3.9.1/build/console-filters/console-filters-coverage.js
index 79661a2e5ca..8883e205fc7 100644
--- a/lib/yuilib/3.9.0/build/console-filters/console-filters-coverage.js
+++ b/lib/yuilib/3.9.1/build/console-filters/console-filters-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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) {","","/**"," * 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}'+"," '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:"," * "," *
"," * @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:"," * "," *
"," *"," * @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."," *"," * "," *
"," *"," * @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."," *"," * "," *
"," *"," * @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:"," *"," * "," *
"," *"," * @property HEADER_TEMPLATE"," * @type String"," * @static"," */"," HEADER_TEMPLATE :"," '{str_title}
'+"," ''+"," '"," *
"," *"," * @property FOOTER_TEMPLATE"," * @type String"," * @static"," */"," FOOTER_TEMPLATE :"," '"," *
"," *"," * @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:"," *"," * "," *
"," *"," * @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.9.0', {\"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:"," * "," *
"," * @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:"," * "," *
"," *"," * @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."," *"," * "," *
"," *"," * @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."," *"," * "," *
"," *"," * @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:"," *"," * "," *
"," *"," * @property HEADER_TEMPLATE"," * @type String"," * @static"," */"," HEADER_TEMPLATE :"," '{str_title}
'+"," ''+"," '"," *
"," *"," * @property FOOTER_TEMPLATE"," * @type String"," * @static"," */"," FOOTER_TEMPLATE :"," '"," *
"," *"," * @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:"," *"," * "," *
"," *"," * @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.9.1', {\"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,"1249":0,"1269":0,"1341":0,"1487":0,"1490":0,"1506":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:1248":0,"valueFn:1269":0,"setter:1340":0,"getter:1486":0,"setter:1489":0,"validator:1505":0,"(anonymous 1):1":0};
_yuitest_coverage["build/console/console.js"].coveredLines = 184;
@@ -1781,4 +1781,4 @@ return this._validateStyle(v);
});
-}, '3.9.0', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
+}, '3.9.1', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
diff --git a/lib/yuilib/3.9.0/build/console/console-debug.js b/lib/yuilib/3.9.1/build/console/console-debug.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/console/console-debug.js
rename to lib/yuilib/3.9.1/build/console/console-debug.js
index 512a6085ace..2ce3b07006f 100644
--- a/lib/yuilib/3.9.0/build/console/console-debug.js
+++ b/lib/yuilib/3.9.1/build/console/console-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('console', function (Y, NAME) {
/**
@@ -1512,4 +1512,4 @@ Y.Console = Y.extend(Console, Y.Widget,
});
-}, '3.9.0', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
+}, '3.9.1', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "ja"]});
diff --git a/lib/yuilib/3.9.0/build/console/console-min.js b/lib/yuilib/3.9.1/build/console/console-min.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/console/console-min.js
rename to lib/yuilib/3.9.1/build/console/console-min.js
index c7f5c900994..916306611eb 100644
--- a/lib/yuilib/3.9.0/build/console/console-min.js
+++ b/lib/yuilib/3.9.1/build/console/console-min.js
@@ -1,3 +1,3 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add("console",function(e,t){function et(){et.superclass.constructor.apply(this,arguments)}var n=e.ClassNameManager.getClassName,r="checked",i="clear",s="click",o="collapsed",u="console",a="contentBox",f="disabled",l="entry",c="error",h="height",p="info",d="lastTime",v="pause",m="paused",g="reset",y="startTime",b="title",w="warn",E=".",S=n(u,"button"),x=n(u,"checkbox"),T=n(u,i),N=n(u,"collapse"),C=n(u,o),k=n(u,"controls"),L=n(u,"hd"),A=n(u,"bd"),O=n(u,"ft"),M=n(u,b),_=n(u,l),D=n(u,l,"cat"),P=n(u,l,"content"),H=n(u,l,"meta"),B=n(u,l,"src"),j=n(u,l,"time"),F=n(u,v),I=n(u,v,"label"),q=/^(\S+)\s/,R=/&(?!#?[a-z0-9]+;)/g,U=/>/g,z=/{message}',J=e.Lang,K=e.Node.create,Q=J.isNumber,G=J.isString,Y=e.merge,Z=e.Lang.sub;e.Console=e.extend(et,e.Widget,{_evtCat:null,_head:null,_body:null,_foot:null,_printLoop:null,buffer:null,log:function(){return e.log.apply(e,arguments),this},clearConsole:function(){return this._body.empty(),this._cancelPrintLoop(),this.buffer=[],this},reset:function(){return this.fire(g),this},collapse:function(){return this.set(o,!0),this},expand:function(){return this.set(o,!1),this},printBuffer:function(t){var n=this.buffer,r=e.config.debug,i=[],s=this.get("consoleLimit"),o=this.get("newestOnTop"),u=o?this._body.get("firstChild"):null,a;n.length>s&&n.splice(0,n.length-s),t=Math.min(n.length,t||n.length),e.config.debug=!1;if(!this.get(m)&&this.get("rendered")){for(a=0;a{str_title}
',BODY_TEMPLATE:'',FOOTER_TEMPLATE:'{str_title}
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), reverseCookieLoading (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, options);"," 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."," * @param {Object} options (Optional) Containing one or more settings for cookie parsing."," * @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*/, options /*:Object*/) /*:Variant*/ {",""," var hash /*:Variant*/ = this.getSubs(name, options);",""," 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."," * @param {Object} options (Optional) Containing one or more settings for cookie parsing."," * @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 /*:String*/, options /*:Object*/) {",""," validateCookieName(name); //throws error",""," var cookies = this._parseCookieString(doc.cookie, false, options);"," 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.9.0', {\"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."," * @param {Object} options (Optional) Contains settings for loading the cookie."," * @return {Object} An object containing entries for each accessible cookie."," * @method _parseCookieString"," * @private"," * @static"," */"," _parseCookieString : function (text /*:String*/, shouldDecode /*:Boolean*/, options /*:Object*/) /*: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 = \"\";"," }"," // don't overwrite an already loaded cookie if set by option"," if (!isUndefined(options) && options.reverseCookieLoading) {"," if (isUndefined(cookies[cookieName])) {"," cookies[cookieName] = cookieValue;"," }"," } else {"," 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), reverseCookieLoading (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, options);"," 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."," * @param {Object} options (Optional) Containing one or more settings for cookie parsing."," * @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*/, options /*:Object*/) /*:Variant*/ {",""," var hash /*:Variant*/ = this.getSubs(name, options);",""," 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."," * @param {Object} options (Optional) Containing one or more settings for cookie parsing."," * @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 /*:String*/, options /*:Object*/) {",""," validateCookieName(name); //throws error",""," var cookies = this._parseCookieString(doc.cookie, false, options);"," 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.9.1', {\"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,"166":0,"168":0,"170":0,"176":0,"178":0,"179":0,"180":0,"181":0,"182":0,"188":0,"189":0,"192":0,"193":0,"194":0,"197":0,"203":0,"219":0,"236":0,"238":0,"240":0,"261":0,"263":0,"268":0,"269":0,"270":0,"271":0,"272":0,"274":0,"277":0,"278":0,"281":0,"282":0,"285":0,"286":0,"288":0,"308":0,"310":0,"312":0,"314":0,"315":0,"318":0,"319":0,"321":0,"324":0,"340":0,"342":0,"343":0,"344":0,"346":0,"363":0,"366":0,"371":0,"388":0,"390":0,"392":0,"395":0,"398":0,"399":0,"401":0,"404":0,"407":0,"408":0,"409":0,"413":0,"416":0,"435":0,"437":0,"438":0,"441":0,"443":0,"444":0,"445":0,"462":0,"464":0,"466":0,"467":0,"470":0,"472":0,"473":0,"476":0,"478":0,"495":0,"497":0,"498":0,"501":0,"502":0,"503":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):170":0,"_parseCookieString:164":0,"_setDoc:218":0,"exists:234":0,"get:259":0,"getSub:306":0,"getSubs:338":0,"remove:361":0,"removeSub:386":0,"set:433":0,"setSub:460":0,"setSubs:493":0,"(anonymous 1):1":0};
_yuitest_coverage["build/cookie/cookie.js"].coveredLines = 123;
@@ -683,4 +683,4 @@ return text;
};
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/cookie/cookie-debug.js b/lib/yuilib/3.9.1/build/cookie/cookie-debug.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/cookie/cookie-debug.js
rename to lib/yuilib/3.9.1/build/cookie/cookie-debug.js
index 4c56e41e564..8d950d616aa 100644
--- a/lib/yuilib/3.9.0/build/cookie/cookie-debug.js
+++ b/lib/yuilib/3.9.1/build/cookie/cookie-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('cookie', function (Y, NAME) {
/**
@@ -507,4 +507,4 @@ YUI.add('cookie', function (Y, NAME) {
};
-}, '3.9.0', {"requires": ["yui-base"]});
+}, '3.9.1', {"requires": ["yui-base"]});
diff --git a/lib/yuilib/3.9.0/build/cookie/cookie-min.js b/lib/yuilib/3.9.1/build/cookie/cookie-min.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/cookie/cookie-min.js
rename to lib/yuilib/3.9.1/build/cookie/cookie-min.js
index 154bc40472f..fa6cf05a575 100644
--- a/lib/yuilib/3.9.0/build/cookie/cookie-min.js
+++ b/lib/yuilib/3.9.1/build/cookie/cookie-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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;s"," *
"," * @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.9.0', {\"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:"," * "," *
"," * @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.9.1', {\"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;
@@ -154,4 +154,4 @@ _yuitest_coverline("build/datasource-arrayschema/datasource-arrayschema.js", 103
Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-arrayschema/datasource-arrayschema-debug.js b/lib/yuilib/3.9.1/build/datasource-arrayschema/datasource-arrayschema-debug.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/datasource-arrayschema/datasource-arrayschema-debug.js
rename to lib/yuilib/3.9.1/build/datasource-arrayschema/datasource-arrayschema-debug.js
index 1035dcf68fd..a28d3672398 100644
--- a/lib/yuilib/3.9.0/build/datasource-arrayschema/datasource-arrayschema-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-arrayschema/datasource-arrayschema-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-arrayschema', function (Y, NAME) {
/**
@@ -104,4 +104,4 @@ Y.extend(DataSourceArraySchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-arrayschema/datasource-arrayschema-min.js b/lib/yuilib/3.9.1/build/datasource-arrayschema/datasource-arrayschema-min.js
similarity index 85%
rename from lib/yuilib/3.9.0/build/datasource-arrayschema/datasource-arrayschema-min.js
rename to lib/yuilib/3.9.1/build/datasource-arrayschema/datasource-arrayschema-min.js
index 92cfb13bb69..6bb3fa28ca5 100644
--- a/lib/yuilib/3.9.0/build/datasource-arrayschema/datasource-arrayschema-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-arrayschema/datasource-arrayschema-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["datasource-local","plugin","dataschema-array"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["datasource-local","plugin","dataschema-array"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-arrayschema/datasource-arrayschema.js b/lib/yuilib/3.9.1/build/datasource-arrayschema/datasource-arrayschema.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/datasource-arrayschema/datasource-arrayschema.js
rename to lib/yuilib/3.9.1/build/datasource-arrayschema/datasource-arrayschema.js
index 1035dcf68fd..a28d3672398 100644
--- a/lib/yuilib/3.9.0/build/datasource-arrayschema/datasource-arrayschema.js
+++ b/lib/yuilib/3.9.1/build/datasource-arrayschema/datasource-arrayschema.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-arrayschema', function (Y, NAME) {
/**
@@ -104,4 +104,4 @@ Y.extend(DataSourceArraySchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "dataschema-array"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-cache/datasource-cache-coverage.js b/lib/yuilib/3.9.1/build/datasource-cache/datasource-cache-coverage.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/datasource-cache/datasource-cache-coverage.js
rename to lib/yuilib/3.9.1/build/datasource-cache/datasource-cache-coverage.js
index b25d03b444f..aa27fbde46d 100644
--- a/lib/yuilib/3.9.0/build/datasource-cache/datasource-cache-coverage.js
+++ b/lib/yuilib/3.9.1/build/datasource-cache/datasource-cache-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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:"," * "," *
"," * @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:"," * "," *
"," * @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.9.0', {\"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:"," * "," *
"," * "," *
"," * "," *
"," * @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:"," * "," *
"," * @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.9.1', {\"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;
@@ -224,4 +224,4 @@ _yuitest_coverline("build/datasource-cache/datasource-cache.js", 163);
Y.namespace("Plugin").DataSourceCache = DataSourceCache;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "cache-base"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "cache-base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-cache/datasource-cache-debug.js b/lib/yuilib/3.9.1/build/datasource-cache/datasource-cache-debug.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/datasource-cache/datasource-cache-debug.js
rename to lib/yuilib/3.9.1/build/datasource-cache/datasource-cache-debug.js
index 737a965d388..1161573a529 100644
--- a/lib/yuilib/3.9.0/build/datasource-cache/datasource-cache-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-cache/datasource-cache-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-cache', function (Y, NAME) {
/**
@@ -164,4 +164,4 @@ Y.mix(DataSourceCache, {
Y.namespace("Plugin").DataSourceCache = DataSourceCache;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "cache-base"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "cache-base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-cache/datasource-cache-min.js b/lib/yuilib/3.9.1/build/datasource-cache/datasource-cache-min.js
similarity index 88%
rename from lib/yuilib/3.9.0/build/datasource-cache/datasource-cache-min.js
rename to lib/yuilib/3.9.1/build/datasource-cache/datasource-cache-min.js
index 80e7402cda1..c243bd30aa7 100644
--- a/lib/yuilib/3.9.0/build/datasource-cache/datasource-cache-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-cache/datasource-cache-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["datasource-local","plugin","cache-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["datasource-local","plugin","cache-base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-cache/datasource-cache.js b/lib/yuilib/3.9.1/build/datasource-cache/datasource-cache.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/datasource-cache/datasource-cache.js
rename to lib/yuilib/3.9.1/build/datasource-cache/datasource-cache.js
index 737a965d388..1161573a529 100644
--- a/lib/yuilib/3.9.0/build/datasource-cache/datasource-cache.js
+++ b/lib/yuilib/3.9.1/build/datasource-cache/datasource-cache.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-cache', function (Y, NAME) {
/**
@@ -164,4 +164,4 @@ Y.mix(DataSourceCache, {
Y.namespace("Plugin").DataSourceCache = DataSourceCache;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "cache-base"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "cache-base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-function/datasource-function-coverage.js b/lib/yuilib/3.9.1/build/datasource-function/datasource-function-coverage.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/datasource-function/datasource-function-coverage.js
rename to lib/yuilib/3.9.1/build/datasource-function/datasource-function-coverage.js
index c443841d0a9..72295683203 100644
--- a/lib/yuilib/3.9.0/build/datasource-function/datasource-function-coverage.js
+++ b/lib/yuilib/3.9.1/build/datasource-function/datasource-function-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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:"," * "," *
"," * @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.9.0', {\"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:"," * "," *
"," * @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.9.1', {\"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;
@@ -154,4 +154,4 @@ _yuitest_coverline("build/datasource-function/datasource-function.js", 103);
Y.DataSource.Function = DSFn;
-}, '3.9.0', {"requires": ["datasource-local"]});
+}, '3.9.1', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-function/datasource-function-debug.js b/lib/yuilib/3.9.1/build/datasource-function/datasource-function-debug.js
similarity index 96%
rename from lib/yuilib/3.9.0/build/datasource-function/datasource-function-debug.js
rename to lib/yuilib/3.9.1/build/datasource-function/datasource-function-debug.js
index 4736144b234..283a417210a 100644
--- a/lib/yuilib/3.9.0/build/datasource-function/datasource-function-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-function/datasource-function-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-function', function (Y, NAME) {
/**
@@ -106,4 +106,4 @@ Y.extend(DSFn, Y.DataSource.Local, {
Y.DataSource.Function = DSFn;
-}, '3.9.0', {"requires": ["datasource-local"]});
+}, '3.9.1', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-function/datasource-function-min.js b/lib/yuilib/3.9.1/build/datasource-function/datasource-function-min.js
similarity index 80%
rename from lib/yuilib/3.9.0/build/datasource-function/datasource-function-min.js
rename to lib/yuilib/3.9.1/build/datasource-function/datasource-function-min.js
index 09000d5014c..7cdda539263 100644
--- a/lib/yuilib/3.9.0/build/datasource-function/datasource-function-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-function/datasource-function-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["datasource-local"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["datasource-local"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-function/datasource-function.js b/lib/yuilib/3.9.1/build/datasource-function/datasource-function.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/datasource-function/datasource-function.js
rename to lib/yuilib/3.9.1/build/datasource-function/datasource-function.js
index 3f371a776cf..9801e9e1325 100644
--- a/lib/yuilib/3.9.0/build/datasource-function/datasource-function.js
+++ b/lib/yuilib/3.9.1/build/datasource-function/datasource-function.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-function', function (Y, NAME) {
/**
@@ -104,4 +104,4 @@ Y.extend(DSFn, Y.DataSource.Local, {
Y.DataSource.Function = DSFn;
-}, '3.9.0', {"requires": ["datasource-local"]});
+}, '3.9.1', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-get/datasource-get-coverage.js b/lib/yuilib/3.9.1/build/datasource-get/datasource-get-coverage.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/datasource-get/datasource-get-coverage.js
rename to lib/yuilib/3.9.1/build/datasource-get/datasource-get-coverage.js
index aab1d24d06c..70c8afcc2b4 100644
--- a/lib/yuilib/3.9.0/build/datasource-get/datasource-get-coverage.js
+++ b/lib/yuilib/3.9.1/build/datasource-get/datasource-get-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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:"," * "," *
"," * @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:"," * "," *
"," * "," * "," *
"," *"," * @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.9.0', {\"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:"," * "," *
"," * @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:"," * "," *
"," * "," * "," *
"," *"," * @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.9.1', {\"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;
@@ -275,4 +275,4 @@ _yuitest_coverline("build/datasource-get/datasource-get.js", 206);
YUI.namespace("Env.DataSource.callbacks");
-}, '3.9.0', {"requires": ["datasource-local", "get"]});
+}, '3.9.1', {"requires": ["datasource-local", "get"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-get/datasource-get-debug.js b/lib/yuilib/3.9.1/build/datasource-get/datasource-get-debug.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/datasource-get/datasource-get-debug.js
rename to lib/yuilib/3.9.1/build/datasource-get/datasource-get-debug.js
index 71c2b923d8a..f1b0f1b63d8 100644
--- a/lib/yuilib/3.9.0/build/datasource-get/datasource-get-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-get/datasource-get-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-get', function (Y, NAME) {
/**
@@ -211,4 +211,4 @@ Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, {
YUI.namespace("Env.DataSource.callbacks");
-}, '3.9.0', {"requires": ["datasource-local", "get"]});
+}, '3.9.1', {"requires": ["datasource-local", "get"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-get/datasource-get-min.js b/lib/yuilib/3.9.1/build/datasource-get/datasource-get-min.js
similarity index 91%
rename from lib/yuilib/3.9.0/build/datasource-get/datasource-get-min.js
rename to lib/yuilib/3.9.1/build/datasource-get/datasource-get-min.js
index 3017722c44c..bd6eb10cbeb 100644
--- a/lib/yuilib/3.9.0/build/datasource-get/datasource-get-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-get/datasource-get-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["datasource-local","get"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["datasource-local","get"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-get/datasource-get.js b/lib/yuilib/3.9.1/build/datasource-get/datasource-get.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/datasource-get/datasource-get.js
rename to lib/yuilib/3.9.1/build/datasource-get/datasource-get.js
index 358dd876f8c..dd9269b4ef0 100644
--- a/lib/yuilib/3.9.0/build/datasource-get/datasource-get.js
+++ b/lib/yuilib/3.9.1/build/datasource-get/datasource-get.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-get', function (Y, NAME) {
/**
@@ -207,4 +207,4 @@ Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, {
YUI.namespace("Env.DataSource.callbacks");
-}, '3.9.0', {"requires": ["datasource-local", "get"]});
+}, '3.9.1', {"requires": ["datasource-local", "get"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-io/datasource-io-coverage.js b/lib/yuilib/3.9.1/build/datasource-io/datasource-io-coverage.js
similarity index 98%
rename from lib/yuilib/3.9.0/build/datasource-io/datasource-io-coverage.js
rename to lib/yuilib/3.9.1/build/datasource-io/datasource-io-coverage.js
index 02d44752e1f..e9213b2b62e 100644
--- a/lib/yuilib/3.9.0/build/datasource-io/datasource-io-coverage.js
+++ b/lib/yuilib/3.9.1/build/datasource-io/datasource-io-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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):"," * "," *
"," * @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:"," * "," *
"," * @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.9.0', {\"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):"," * "," *
"," * "," *
"," * @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:"," * "," *
"," * @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.9.1', {\"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;
@@ -265,4 +265,4 @@ _yuitest_coverline("build/datasource-io/datasource-io.js", 198);
Y.DataSource.IO = DSIO;
-}, '3.9.0', {"requires": ["datasource-local", "io-base"]});
+}, '3.9.1', {"requires": ["datasource-local", "io-base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-io/datasource-io-debug.js b/lib/yuilib/3.9.1/build/datasource-io/datasource-io-debug.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/datasource-io/datasource-io-debug.js
rename to lib/yuilib/3.9.1/build/datasource-io/datasource-io-debug.js
index 5e80dd729dd..b1bcdeb5cb1 100644
--- a/lib/yuilib/3.9.0/build/datasource-io/datasource-io-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-io/datasource-io-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-io', function (Y, NAME) {
/**
@@ -202,4 +202,4 @@ Y.extend(DSIO, Y.DataSource.Local, {
Y.DataSource.IO = DSIO;
-}, '3.9.0', {"requires": ["datasource-local", "io-base"]});
+}, '3.9.1', {"requires": ["datasource-local", "io-base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-io/datasource-io-min.js b/lib/yuilib/3.9.1/build/datasource-io/datasource-io-min.js
similarity index 90%
rename from lib/yuilib/3.9.0/build/datasource-io/datasource-io-min.js
rename to lib/yuilib/3.9.1/build/datasource-io/datasource-io-min.js
index 3fcb643f86c..36a3373b2dd 100644
--- a/lib/yuilib/3.9.0/build/datasource-io/datasource-io-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-io/datasource-io-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["datasource-local","io-base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["datasource-local","io-base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-io/datasource-io.js b/lib/yuilib/3.9.1/build/datasource-io/datasource-io.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/datasource-io/datasource-io.js
rename to lib/yuilib/3.9.1/build/datasource-io/datasource-io.js
index 755fdd91d72..b1062092638 100644
--- a/lib/yuilib/3.9.0/build/datasource-io/datasource-io.js
+++ b/lib/yuilib/3.9.1/build/datasource-io/datasource-io.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-io', function (Y, NAME) {
/**
@@ -199,4 +199,4 @@ Y.extend(DSIO, Y.DataSource.Local, {
Y.DataSource.IO = DSIO;
-}, '3.9.0', {"requires": ["datasource-local", "io-base"]});
+}, '3.9.1', {"requires": ["datasource-local", "io-base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema-coverage.js b/lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema-coverage.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema-coverage.js
rename to lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema-coverage.js
index 1e55543b5b6..a371210bb32 100644
--- a/lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema-coverage.js
+++ b/lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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:"," * "," *
"," * "," *
"," * @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.9.0', {\"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:"," * "," *
"," * @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.9.1', {\"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;
@@ -149,4 +149,4 @@ _yuitest_coverline("build/datasource-jsonschema/datasource-jsonschema.js", 100);
Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema-debug.js b/lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema-debug.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema-debug.js
rename to lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema-debug.js
index 5d5fcc05ada..45e481db733 100644
--- a/lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-jsonschema', function (Y, NAME) {
/**
@@ -101,4 +101,4 @@ Y.extend(DataSourceJSONSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema-min.js b/lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema-min.js
similarity index 83%
rename from lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema-min.js
rename to lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema-min.js
index 2e09cbc90ec..64b0a2ad12e 100644
--- a/lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["datasource-local","plugin","dataschema-json"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["datasource-local","plugin","dataschema-json"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema.js b/lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema.js
rename to lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema.js
index 5d5fcc05ada..45e481db733 100644
--- a/lib/yuilib/3.9.0/build/datasource-jsonschema/datasource-jsonschema.js
+++ b/lib/yuilib/3.9.1/build/datasource-jsonschema/datasource-jsonschema.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-jsonschema', function (Y, NAME) {
/**
@@ -101,4 +101,4 @@ Y.extend(DataSourceJSONSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "dataschema-json"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-local/datasource-local-coverage.js b/lib/yuilib/3.9.1/build/datasource-local/datasource-local-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/datasource-local/datasource-local-coverage.js
rename to lib/yuilib/3.9.1/build/datasource-local/datasource-local-coverage.js
index e89b1c04940..79dd2a4d44c 100644
--- a/lib/yuilib/3.9.0/build/datasource-local/datasource-local-coverage.js
+++ b/lib/yuilib/3.9.1/build/datasource-local/datasource-local-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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:"," * "," *
"," * @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:"," * "," *
"," * @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:"," * "," *
"," * "," *
"," * @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:"," * "," *
"," * "," *
"," * "," *
"," */",""," },",""," /**"," * 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:"," * "," *
"," * @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:"," * "," *
"," * "," *
"," * @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:"," * "," *
"," * "," *
"," * @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:"," * "," *
"," * @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.9.0', {\"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:"," * requeston"," *
"," * successfailureargumentcfg "," *
"," * @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:"," * "," *
"," * @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:"," * "," *
"," * "," *
"," * @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:"," * "," *
"," * "," *
"," * "," *
"," */",""," },",""," /**"," * 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:"," * "," *
"," * @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:"," * "," *
"," * "," *
"," * @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:"," * "," *
"," * "," *
"," * @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:"," * "," *
"," * @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.9.1', {\"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;
@@ -469,4 +469,4 @@ _yuitest_coverline("build/datasource-local/datasource-local.js", 395);
Y.namespace("DataSource").Local = DSLocal;
-}, '3.9.0', {"requires": ["base"]});
+}, '3.9.1', {"requires": ["base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-local/datasource-local-debug.js b/lib/yuilib/3.9.1/build/datasource-local/datasource-local-debug.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/datasource-local/datasource-local-debug.js
rename to lib/yuilib/3.9.1/build/datasource-local/datasource-local-debug.js
index c456a76caab..15a1a33665f 100644
--- a/lib/yuilib/3.9.0/build/datasource-local/datasource-local-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-local/datasource-local-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-local', function (Y, NAME) {
/**
@@ -400,4 +400,4 @@ Y.extend(DSLocal, Y.Base, {
Y.namespace("DataSource").Local = DSLocal;
-}, '3.9.0', {"requires": ["base"]});
+}, '3.9.1', {"requires": ["base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-local/datasource-local-min.js b/lib/yuilib/3.9.1/build/datasource-local/datasource-local-min.js
similarity index 92%
rename from lib/yuilib/3.9.0/build/datasource-local/datasource-local-min.js
rename to lib/yuilib/3.9.1/build/datasource-local/datasource-local-min.js
index bb129229257..f436f1bd7b3 100644
--- a/lib/yuilib/3.9.0/build/datasource-local/datasource-local-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-local/datasource-local-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["base"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-local/datasource-local.js b/lib/yuilib/3.9.1/build/datasource-local/datasource-local.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/datasource-local/datasource-local.js
rename to lib/yuilib/3.9.1/build/datasource-local/datasource-local.js
index d0f1155dbcb..9ebde9c8df3 100644
--- a/lib/yuilib/3.9.0/build/datasource-local/datasource-local.js
+++ b/lib/yuilib/3.9.1/build/datasource-local/datasource-local.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-local', function (Y, NAME) {
/**
@@ -396,4 +396,4 @@ Y.extend(DSLocal, Y.Base, {
Y.namespace("DataSource").Local = DSLocal;
-}, '3.9.0', {"requires": ["base"]});
+}, '3.9.1', {"requires": ["base"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-polling/datasource-polling-coverage.js b/lib/yuilib/3.9.1/build/datasource-polling/datasource-polling-coverage.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/datasource-polling/datasource-polling-coverage.js
rename to lib/yuilib/3.9.1/build/datasource-polling/datasource-polling-coverage.js
index cbe48256126..53772afa8b1 100644
--- a/lib/yuilib/3.9.0/build/datasource-polling/datasource-polling-coverage.js
+++ b/lib/yuilib/3.9.1/build/datasource-polling/datasource-polling-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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:"," * requeston"," *
"," * successfailureargumentcfg"," *
"," * @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.9.0', {\"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:"," * requestcallback"," *
"," * successfailureargumentcfg"," *
"," * @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.9.1', {\"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;
@@ -143,4 +143,4 @@ _yuitest_coverline("build/datasource-polling/datasource-polling.js", 90);
Y.augment(Y.DataSource.Local, Pollable);
-}, '3.9.0', {"requires": ["datasource-local"]});
+}, '3.9.1', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-polling/datasource-polling-debug.js b/lib/yuilib/3.9.1/build/datasource-polling/datasource-polling-debug.js
similarity index 96%
rename from lib/yuilib/3.9.0/build/datasource-polling/datasource-polling-debug.js
rename to lib/yuilib/3.9.1/build/datasource-polling/datasource-polling-debug.js
index c51e12dcb53..909fc1efc82 100644
--- a/lib/yuilib/3.9.0/build/datasource-polling/datasource-polling-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-polling/datasource-polling-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-polling', function (Y, NAME) {
/**
@@ -91,4 +91,4 @@ Pollable.prototype = {
Y.augment(Y.DataSource.Local, Pollable);
-}, '3.9.0', {"requires": ["datasource-local"]});
+}, '3.9.1', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-polling/datasource-polling-min.js b/lib/yuilib/3.9.1/build/datasource-polling/datasource-polling-min.js
similarity index 78%
rename from lib/yuilib/3.9.0/build/datasource-polling/datasource-polling-min.js
rename to lib/yuilib/3.9.1/build/datasource-polling/datasource-polling-min.js
index cb1f9367b1d..f2a61e55711 100644
--- a/lib/yuilib/3.9.0/build/datasource-polling/datasource-polling-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-polling/datasource-polling-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["datasource-local"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["datasource-local"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-polling/datasource-polling.js b/lib/yuilib/3.9.1/build/datasource-polling/datasource-polling.js
similarity index 96%
rename from lib/yuilib/3.9.0/build/datasource-polling/datasource-polling.js
rename to lib/yuilib/3.9.1/build/datasource-polling/datasource-polling.js
index c51e12dcb53..909fc1efc82 100644
--- a/lib/yuilib/3.9.0/build/datasource-polling/datasource-polling.js
+++ b/lib/yuilib/3.9.1/build/datasource-polling/datasource-polling.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-polling', function (Y, NAME) {
/**
@@ -91,4 +91,4 @@ Pollable.prototype = {
Y.augment(Y.DataSource.Local, Pollable);
-}, '3.9.0', {"requires": ["datasource-local"]});
+}, '3.9.1', {"requires": ["datasource-local"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema-coverage.js b/lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema-coverage.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema-coverage.js
rename to lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema-coverage.js
index 742e83d1fba..911e9266ffb 100644
--- a/lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema-coverage.js
+++ b/lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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:"," * requestcallback"," *
"," * successfailureargumentcfg"," *
"," * @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.9.0', {\"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:"," * "," *
"," * @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.9.1', {\"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;
@@ -148,4 +148,4 @@ _yuitest_coverline("build/datasource-textschema/datasource-textschema.js", 99);
Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema-debug.js b/lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema-debug.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema-debug.js
rename to lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema-debug.js
index 3b3524c6a59..69ed4b2eb19 100644
--- a/lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-textschema', function (Y, NAME) {
/**
@@ -100,4 +100,4 @@ Y.extend(DataSourceTextSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema-min.js b/lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema-min.js
similarity index 83%
rename from lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema-min.js
rename to lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema-min.js
index f4b0f3d136a..86c9aa0248b 100644
--- a/lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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.9.0",{requires:["datasource-local","plugin","dataschema-text"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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.9.1",{requires:["datasource-local","plugin","dataschema-text"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema.js b/lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema.js
rename to lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema.js
index 3b3524c6a59..69ed4b2eb19 100644
--- a/lib/yuilib/3.9.0/build/datasource-textschema/datasource-textschema.js
+++ b/lib/yuilib/3.9.1/build/datasource-textschema/datasource-textschema.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-textschema', function (Y, NAME) {
/**
@@ -100,4 +100,4 @@ Y.extend(DataSourceTextSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "dataschema-text"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema-coverage.js b/lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema-coverage.js
similarity index 97%
rename from lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema-coverage.js
rename to lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema-coverage.js
index e9ec6899a93..1da14ec70f5 100644
--- a/lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema-coverage.js
+++ b/lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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:"," * "," *
"," * @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 = Y.XML.parse(e.data.responseText) || 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.9.0', {\"requires\": [\"datasource-local\", \"plugin\", \"datatype-xml\", \"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:"," * "," *
"," * @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 = Y.XML.parse(e.data.responseText) || 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.9.1', {\"requires\": [\"datasource-local\", \"plugin\", \"datatype-xml\", \"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;
@@ -148,4 +148,4 @@ _yuitest_coverline("build/datasource-xmlschema/datasource-xmlschema.js", 99);
Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "datatype-xml", "dataschema-xml"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "datatype-xml", "dataschema-xml"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema-debug.js b/lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema-debug.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema-debug.js
rename to lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema-debug.js
index e0390e21486..450c784f2d3 100644
--- a/lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema-debug.js
+++ b/lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema-debug.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-xmlschema', function (Y, NAME) {
/**
@@ -100,4 +100,4 @@ Y.extend(DataSourceXMLSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "datatype-xml", "dataschema-xml"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "datatype-xml", "dataschema-xml"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema-min.js b/lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema-min.js
similarity index 83%
rename from lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema-min.js
rename to lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema-min.js
index 168580f8a4e..28ebb6991c2 100644
--- a/lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema-min.js
+++ b/lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema-min.js
@@ -1,2 +1,2 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. 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=e.XML.parse(t.data.responseText)||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.9.0",{requires:["datasource-local","plugin","datatype-xml","dataschema-xml"]});
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. 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=e.XML.parse(t.data.responseText)||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.9.1",{requires:["datasource-local","plugin","datatype-xml","dataschema-xml"]});
diff --git a/lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema.js b/lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema.js
similarity index 95%
rename from lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema.js
rename to lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema.js
index e0390e21486..450c784f2d3 100644
--- a/lib/yuilib/3.9.0/build/datasource-xmlschema/datasource-xmlschema.js
+++ b/lib/yuilib/3.9.1/build/datasource-xmlschema/datasource-xmlschema.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
YUI.add('datasource-xmlschema', function (Y, NAME) {
/**
@@ -100,4 +100,4 @@ Y.extend(DataSourceXMLSchema, Y.Plugin.Base, {
Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema;
-}, '3.9.0', {"requires": ["datasource-local", "plugin", "datatype-xml", "dataschema-xml"]});
+}, '3.9.1', {"requires": ["datasource-local", "plugin", "datatype-xml", "dataschema-xml"]});
diff --git a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
similarity index 96%
rename from lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
rename to lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
index 0ec7ecfa7f3..2d4b3fda6c4 100644
--- a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
+++ b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
/* foundational CSS */
/* mask */
diff --git a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
similarity index 99%
rename from lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
rename to lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
index 8a0ba7c321b..2182caa6e73 100644
--- a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
+++ b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
.yui3-skin-night .yui3-datatable{
font-family: HelveticaNeue,arial,helvetica,clean,sans-serif;
color:#8E8E8E;
diff --git a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
similarity index 99%
rename from lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
rename to lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
index b690eb17536..26208526ab2 100644
--- a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
+++ b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css
@@ -1,3 +1,3 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
.yui3-skin-sam .yui3-datatable-mask{position:absolute;z-index:9500}.yui3-datatable-tmp{position:absolute;left:-9000px}.yui3-datatable-scrollable .yui3-datatable-bd{overflow:auto}.yui3-datatable-scrollable .yui3-datatable-hd{overflow:hidden;position:relative}.yui3-datatable-scrollable .yui3-datatable-bd thead tr,.yui3-datatable-scrollable .yui3-datatable-bd thead th{position:absolute;left:-1500px}.yui3-datatable-scrollable tbody{-moz-outline:0}.yui3-skin-sam thead .yui3-datatable-sortable{cursor:pointer}.yui3-skin-sam thead .yui3-datatable-draggable{cursor:move}.yui3-datatable-coltarget{position:absolute;z-index:999}.yui3-datatable-hd{zoom:1}th.yui3-datatable-resizeable .yui3-datatable-resizerliner{position:relative}.yui3-datatable-resizer{position:absolute;right:0;bottom:0;height:100%;cursor:e-resize;cursor:col-resize;background-color:#CCC;opacity:0;filter:alpha(opacity=0)}.yui3-datatable-resizerproxy{visibility:hidden;position:absolute;z-index:9000;background-color:#CCC;opacity:0;filter:alpha(opacity=0)}th.yui3-datatable-hidden .yui3-datatable-liner,td.yui3-datatable-hidden .yui3-datatable-liner,th.yui3-datatable-hidden .yui3-datatable-resizer{display:none}.yui3-datatable-editor,.yui3-datatable-editor-shim{position:absolute;z-index:9000}.yui3-skin-night .yui3-datatable{font-family:HelveticaNeue,arial,helvetica,clean,sans-serif;color:#8e8e8e}.yui3-skin-night .yui3-datatable table{margin:0;padding:0;font-size:inherit;border-collapse:separate;*border-collapse:collapse;border-spacing:0;border:1px solid #323434;border-right:0}.yui3-skin-night .yui3-datatable thead{border-spacing:0}.yui3-skin-night .yui3-datatable caption{color:#474747;font-size:85%;font-weight:normal;font-style:italic;line-height:1;padding:1em 0;text-align:center}.yui3-skin-night .yui3-datatable th{background-color:#3b3c3d;background:-moz-linear-gradient(0% 100% 90deg,#242526 0,#3b3c3d 96%,#2c2d2f 100%);background:-webkit-gradient(linear,left bottom,left top,from(#242526),color-stop(0.96,#3b3c3d),to(#2c2d2f))}.yui3-skin-night .yui3-datatable th,.yui3-skin-night .yui3-datatable th a{font-weight:normal;text-decoration:none;color:#eee;vertical-align:bottom}.yui3-skin-night .yui3-datatable th{margin:0;padding:0;border:0;border-right:1px solid #303030}.yui3-skin-night .yui3-datatable tr.yui3-datatable-first td{border-top:1px solid #323434}.yui3-skin-night .yui3-datatable th .yui3-datatable-liner{white-space:nowrap}.yui3-skin-night .yui3-datatable-liner{margin:0;padding:0;padding:4px 10px 4px 10px;overflow:visible;border:0 solid black}.yui3-skin-night .yui3-datatable-coltarget{width:5px;background-color:red}.yui3-skin-night .yui3-datatable td{margin:0;padding:0;border:0;border-right:1px solid #303030;text-align:left}.yui3-skin-night .yui3-datatable-list td{border-right:0}.yui3-skin-night .yui3-datatable-resizer{width:6px}.yui3-skin-night .yui3-datatable-mask{background-color:#000;opacity:.25;filter:alpha(opacity=25)}.yui3-skin-night .yui3-datatable-message{background-color:#FFF}.yui3-skin-night .yui3-datatable-scrollable thead .yui3-datatable-first th:last-child div{border-right:solid 30px #2f3031}.yui3-skin-night .yui3-datatable-scrollable table{border:0}.yui3-skin-night .yui3-datatable-scrollable .yui3-datatable-hd{border-left:1px solid #303030;border-top:1px solid #303030;border-right:1px solid #303030}.yui3-skin-night .yui3-datatable-scrollable .yui3-datatable-bd{border-left:1px solid #303030;border-bottom:1px solid #303030;border-right:1px solid #303030;background-color:#000}.yui3-skin-night .yui3-datatable-scrollable .yui3-datatable-data tr.yui3-datatable-last td{border-bottom:1px solid #303030}.yui3-skin-night th.yui3-datatable-asc,.yui3-skin-night th.yui3-datatable-desc{background-color:#555658;background:-moz-linear-gradient(0% 100% 90deg,#343536 0,#555658 96%,#3e3f41 100%);background:-webkit-gradient(linear,left bottom,left top,from(#343536),color-stop(0.96,#555658),to(#3e3f41))}.yui3-skin-night th.yui3-datatable-sortable .yui3-datatable-liner{padding-right:20px}.yui3-skin-night th.yui3-datatable-asc .yui3-datatable-liner{background:url(dt-arrow-up.png) no-repeat right}.yui3-skin-night th.yui3-datatable-desc .yui3-datatable-liner{background:url(dt-arrow-dn.png) no-repeat right}tbody .yui3-datatable-editable{cursor:pointer}.yui3-datatable-editor{text-align:left;background-color:#f2f2f2;border:1px solid #808080;padding:6px}.yui3-datatable-editor label{padding-left:4px;padding-right:6px}.yui3-datatable-editor .yui3-datatable-button{padding-top:6px;text-align:right}.yui3-datatable-editor .yui3-datatable-button button{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;border:1px solid #999;width:4em;height:1.8em;margin-left:6px}.yui3-datatable-editor .yui3-datatable-button button.yui3-datatable-default{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1400px;background-color:#5584e0;border:1px solid #304369;color:#FFF}.yui3-datatable-editor .yui3-datatable-button button:hover{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1300px;color:#000}.yui3-datatable-editor .yui3-datatable-button button:active{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1700px;color:#000}.yui3-skin-night .yui3-datatable td{background-color:transparent}.yui3-skin-night tr.yui3-datatable-even td{background-color:#0e0e0e}.yui3-skin-night tr.yui3-datatable-odd td{background-color:#1d1e1e}.yui3-skin-night tr.yui3-datatable-even td.yui3-datatable-asc,.yui3-skin-night tr.yui3-datatable-even td.yui3-datatable-desc{background-color:#191a1a}.yui3-skin-night tr.yui3-datatable-odd td.yui3-datatable-asc,.yui3-skin-night tr.yui3-datatable-odd td.yui3-datatable-desc{background-color:#2b2c2c}.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-even{background-color:#0e0e0e}.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-odd{background-color:#0e0e0e}.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-asc,.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-desc{background-color:#151515}
.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-asc,.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-desc{background-color:#151515}.yui3-skin-night th.yui3-datatable-highlighted,.yui3-skin-night th.yui3-datatable-highlighted a{background-color:#b2d2ff}.yui3-skin-night tr.yui3-datatable-highlighted,.yui3-skin-night tr.yui3-datatable-highlighted td.yui3-datatable-asc,.yui3-skin-night tr.yui3-datatable-highlighted td.yui3-datatable-desc,.yui3-skin-night tr.yui3-datatable-even td.yui3-datatable-highlighted,.yui3-skin-night tr.yui3-datatable-odd td.yui3-datatable-highlighted{cursor:pointer;background-color:#b2d2ff}.yui3-skin-night .yui3-datatable-list th.yui3-datatable-highlighted,.yui3-skin-night .yui3-datatable-list th.yui3-datatable-highlighted a{background-color:#b2d2ff}.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-highlighted,.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-asc,.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-desc,.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-highlighted,.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-highlighted{cursor:pointer;background-color:#b2d2ff}.yui3-skin-night th.yui3-datatable-selected,.yui3-skin-night th.yui3-datatable-selected a{background-color:#446cd7}.yui3-skin-night tr.yui3-datatable-selected td,.yui3-skin-night tr.yui3-datatable-selected td.yui3-datatable-asc,.yui3-skin-night tr.yui3-datatable-selected td.yui3-datatable-desc{background-color:#426fd9;color:#FFF}.yui3-skin-night tr.yui3-datatable-even td.yui3-datatable-selected,.yui3-skin-night tr.yui3-datatable-odd td.yui3-datatable-selected{background-color:#446cd7;color:#FFF}.yui3-skin-night .yui3-datatable-list th.yui3-datatable-selected,.yui3-skin-night .yui3-datatable-list th.yui3-datatable-selected a{background-color:#446cd7}.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-selected td,.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-asc,.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-desc{background-color:#426fd9;color:#FFF}.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-selected,.yui3-skin-night .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-selected{background-color:#446cd7;color:#FFF}.yui3-skin-night .yui3-datatable-paginator{display:block;margin:6px 0;white-space:nowrap}.yui3-skin-night .yui3-datatable-paginator .yui3-datatable-first,.yui3-skin-night .yui3-datatable-paginator .yui3-datatable-last,.yui3-skin-night .yui3-datatable-paginator .yui3-datatable-selected{padding:2px 6px}.yui3-skin-night .yui3-datatable-paginator a.yui3-datatable-first,.yui3-skin-night .yui3-datatable-paginator a.yui3-datatable-last{text-decoration:none}.yui3-skin-night .yui3-datatable-paginator .yui3-datatable-previous,.yui3-skin-night .yui3-datatable-paginator .yui3-datatable-next{display:none}.yui3-skin-night a.yui3-datatable-page{border:1px solid #303030;padding:2px 6px;text-decoration:none;background-color:#fff}.yui3-skin-night .yui3-datatable-selected{border:1px solid #fff;background-color:#fff}#yui3-css-stamp.skin-night-datatable-base-deprecated{display:none}
diff --git a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
similarity index 99%
rename from lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
rename to lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
index 94b3b925d85..2436361230f 100644
--- a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
+++ b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
/* basic skin styles */
.yui3-skin-sam .yui3-datatable table {
margin:0;padding:0;
diff --git a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
similarity index 99%
rename from lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
rename to lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
index 7f18faba192..6b122786f63 100644
--- a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
+++ b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css
@@ -1,3 +1,3 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
.yui3-skin-sam .yui3-datatable-mask{position:absolute;z-index:9500}.yui3-datatable-tmp{position:absolute;left:-9000px}.yui3-datatable-scrollable .yui3-datatable-bd{overflow:auto}.yui3-datatable-scrollable .yui3-datatable-hd{overflow:hidden;position:relative}.yui3-datatable-scrollable .yui3-datatable-bd thead tr,.yui3-datatable-scrollable .yui3-datatable-bd thead th{position:absolute;left:-1500px}.yui3-datatable-scrollable tbody{-moz-outline:0}.yui3-skin-sam thead .yui3-datatable-sortable{cursor:pointer}.yui3-skin-sam thead .yui3-datatable-draggable{cursor:move}.yui3-datatable-coltarget{position:absolute;z-index:999}.yui3-datatable-hd{zoom:1}th.yui3-datatable-resizeable .yui3-datatable-resizerliner{position:relative}.yui3-datatable-resizer{position:absolute;right:0;bottom:0;height:100%;cursor:e-resize;cursor:col-resize;background-color:#CCC;opacity:0;filter:alpha(opacity=0)}.yui3-datatable-resizerproxy{visibility:hidden;position:absolute;z-index:9000;background-color:#CCC;opacity:0;filter:alpha(opacity=0)}th.yui3-datatable-hidden .yui3-datatable-liner,td.yui3-datatable-hidden .yui3-datatable-liner,th.yui3-datatable-hidden .yui3-datatable-resizer{display:none}.yui3-datatable-editor,.yui3-datatable-editor-shim{position:absolute;z-index:9000}.yui3-skin-sam .yui3-datatable table{margin:0;padding:0;font-family:arial;font-size:inherit;border-collapse:separate;*border-collapse:collapse;border-spacing:0;border:1px solid #7f7f7f}.yui3-skin-sam .yui3-datatable thead{border-spacing:0}.yui3-skin-sam .yui3-datatable caption{color:#000;font-size:85%;font-weight:normal;font-style:italic;line-height:1;padding:1em 0;text-align:center}.yui3-skin-sam .yui3-datatable th{background:#d8d8da url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0}.yui3-skin-sam .yui3-datatable th,.yui3-skin-sam .yui3-datatable th a{font-weight:normal;text-decoration:none;color:#000;vertical-align:bottom}.yui3-skin-sam .yui3-datatable th{margin:0;padding:0;border:0;border-right:1px solid #cbcbcb}.yui3-skin-sam .yui3-datatable tr.yui3-datatable-first td{border-top:1px solid #7f7f7f}.yui3-skin-sam .yui3-datatable th .yui3-datatable-liner{white-space:nowrap}.yui3-skin-sam .yui3-datatable-liner{margin:0;padding:0;padding:4px 10px 4px 10px;overflow:visible;border:0 solid black}.yui3-skin-sam .yui3-datatable-coltarget{width:5px;background-color:red}.yui3-skin-sam .yui3-datatable td{margin:0;padding:0;border:0;border-right:1px solid #cbcbcb;text-align:left}.yui3-skin-sam .yui3-datatable-list td{border-right:0}.yui3-skin-sam .yui3-datatable-resizer{width:6px}.yui3-skin-sam .yui3-datatable-mask{background-color:#000;opacity:.25;filter:alpha(opacity=25)}.yui3-skin-sam .yui3-datatable-message{background-color:#FFF}.yui3-skin-sam .yui3-datatable-scrollable table{border:0}.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-hd{border-left:1px solid #7f7f7f;border-top:1px solid #7f7f7f;border-right:1px solid #7f7f7f}.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-bd{border-left:1px solid #7f7f7f;border-bottom:1px solid #7f7f7f;border-right:1px solid #7f7f7f;background-color:#FFF}.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-data tr.yui3-datatable-last td{border-bottom:1px solid #7f7f7f}.yui3-skin-sam th.yui3-datatable-asc,.yui3-skin-sam th.yui3-datatable-desc{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -100px}.yui3-skin-sam th.yui3-datatable-sortable .yui3-datatable-liner{padding-right:20px}.yui3-skin-sam th.yui3-datatable-asc .yui3-datatable-liner{background:url(dt-arrow-up.png) no-repeat right}.yui3-skin-sam th.yui3-datatable-desc .yui3-datatable-liner{background:url(dt-arrow-dn.png) no-repeat right}tbody .yui3-datatable-editable{cursor:pointer}.yui3-datatable-editor{text-align:left;background-color:#f2f2f2;border:1px solid #808080;padding:6px}.yui3-datatable-editor label{padding-left:4px;padding-right:6px}.yui3-datatable-editor .yui3-datatable-button{padding-top:6px;text-align:right}.yui3-datatable-editor .yui3-datatable-button button{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;border:1px solid #999;width:4em;height:1.8em;margin-left:6px}.yui3-datatable-editor .yui3-datatable-button button.yui3-datatable-default{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1400px;background-color:#5584e0;border:1px solid #304369;color:#FFF}.yui3-datatable-editor .yui3-datatable-button button:hover{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1300px;color:#000}.yui3-datatable-editor .yui3-datatable-button button:active{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1700px;color:#000}.yui3-skin-sam .yui3-datatable td{background-color:transparent}.yui3-skin-sam tr.yui3-datatable-even td{background-color:#FFF}.yui3-skin-sam tr.yui3-datatable-odd td{background-color:#edf5ff}.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-desc{background-color:#edf5ff}.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-desc{background-color:#dbeaff}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even{background-color:#FFF}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd{background-color:#FFF}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-desc{background-color:#edf5ff}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-desc{background-color:#edf5ff}.yui3-skin-sam th.yui3-datatable-highlighted,.yui3-skin-sam th.yui3-datatable-highlighted a{background-color:#b2d2ff}.yui3-skin-sam tr.yui3-datatable-highlighted,.yui3-skin-sam tr.yui3-datatable-highlighted td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-highlighted td.yui3-datatable-desc,.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-highlighted,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-highlighted{cursor:pointer;background-color:#b2d2ff}
.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-highlighted,.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-highlighted a{background-color:#b2d2ff}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-desc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-highlighted,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-highlighted{cursor:pointer;background-color:#b2d2ff}.yui3-skin-sam th.yui3-datatable-selected,.yui3-skin-sam th.yui3-datatable-selected a{background-color:#446cd7}.yui3-skin-sam tr.yui3-datatable-selected td,.yui3-skin-sam tr.yui3-datatable-selected td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-selected td.yui3-datatable-desc{background-color:#426fd9;color:#FFF}.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-selected,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-selected{background-color:#446cd7;color:#FFF}.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-selected,.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-selected a{background-color:#446cd7}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-desc{background-color:#426fd9;color:#FFF}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-selected,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-selected{background-color:#446cd7;color:#FFF}.yui3-skin-sam .yui3-datatable-paginator{display:block;margin:6px 0;white-space:nowrap}.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-first,.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-last,.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-selected{padding:2px 6px}.yui3-skin-sam .yui3-datatable-paginator a.yui3-datatable-first,.yui3-skin-sam .yui3-datatable-paginator a.yui3-datatable-last{text-decoration:none}.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-previous,.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-next{display:none}.yui3-skin-sam a.yui3-datatable-page{border:1px solid #cbcbcb;padding:2px 6px;text-decoration:none;background-color:#fff}.yui3-skin-sam .yui3-datatable-selected{border:1px solid #fff;background-color:#fff}#yui3-css-stamp.skin-sam-datatable-base-deprecated{display:none}
diff --git a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-dn.png b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-dn.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-dn.png
rename to lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-dn.png
diff --git a/lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-up.png b/lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-up.png
similarity index 100%
rename from lib/yuilib/3.9.0/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-up.png
rename to lib/yuilib/3.9.1/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-up.png
diff --git a/lib/yuilib/3.9.0/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js b/lib/yuilib/3.9.1/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
similarity index 99%
rename from lib/yuilib/3.9.0/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
rename to lib/yuilib/3.9.1/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
index 314a8cc8e2b..c28f5205b94 100644
--- a/lib/yuilib/3.9.0/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
+++ b/lib/yuilib/3.9.1/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js
@@ -1,4 +1,4 @@
-/* YUI 3.9.0 (build 5827) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
+/* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
@@ -27,7 +27,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_TR = '',"," TEMPLATE_TD = ' ',"," 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 '"," */"," thTemplate: TEMPLATE_TH,",""," /*"," * @property tdTemplate"," * @description Tokenized markup template for TD node creation."," * @type String"," * @default ' '"," */"," 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 = [\"',"," TEMPLATE_COL = '
',"," TEMPLATE_TR = '',"," TEMPLATE_TD = ' ',"," 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 '"," */"," thTemplate: TEMPLATE_TH,",""," /*"," * @property tdTemplate"," * @description Tokenized markup template for TD node creation."," * @type String"," * @default ' '"," */"," 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 = [\"",x="
',G='',a=' ',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(;U");},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","// 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:","","
","","### 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 `","// 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' }","];","