happstack-yui-7371.5.0: bundle/resize-constrain/resize-constrain-coverage.js
/*
YUI 3.7.1 (build 5627)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
if (typeof _yuitest_coverage == "undefined"){
_yuitest_coverage = {};
_yuitest_coverline = function(src, line){
var coverage = _yuitest_coverage[src];
if (!coverage.lines[line]){
coverage.calledLines++;
}
coverage.lines[line]++;
};
_yuitest_coverfunc = function(src, name, line){
var coverage = _yuitest_coverage[src],
funcId = name + ":" + line;
if (!coverage.functions[funcId]){
coverage.calledFunctions++;
}
coverage.functions[funcId]++;
};
}
_yuitest_coverage["build/resize-constrain/resize-constrain.js"] = {
lines: {},
functions: {},
coveredLines: 0,
calledLines: 0,
coveredFunctions: 0,
calledFunctions: 0,
path: "build/resize-constrain/resize-constrain.js",
code: []
};
_yuitest_coverage["build/resize-constrain/resize-constrain.js"].code=["YUI.add('resize-constrain', function (Y, NAME) {","","var Lang = Y.Lang,"," isBoolean = Lang.isBoolean,"," isNumber = Lang.isNumber,"," isString = Lang.isString,"," capitalize = Y.Resize.capitalize,",""," isNode = function(v) {"," return (v instanceof Y.Node);"," },",""," toNumber = function(num) {"," return parseFloat(num) || 0;"," },",""," BORDER_BOTTOM_WIDTH = 'borderBottomWidth',"," BORDER_LEFT_WIDTH = 'borderLeftWidth',"," BORDER_RIGHT_WIDTH = 'borderRightWidth',"," BORDER_TOP_WIDTH = 'borderTopWidth',"," BORDER = 'border',"," BOTTOM = 'bottom',"," CON = 'con',"," CONSTRAIN = 'constrain',"," HOST = 'host',"," LEFT = 'left',"," MAX_HEIGHT = 'maxHeight',"," MAX_WIDTH = 'maxWidth',"," MIN_HEIGHT = 'minHeight',"," MIN_WIDTH = 'minWidth',"," NODE = 'node',"," OFFSET_HEIGHT = 'offsetHeight',"," OFFSET_WIDTH = 'offsetWidth',"," PRESEVE_RATIO = 'preserveRatio',"," REGION = 'region',"," RESIZE_CONTRAINED = 'resizeConstrained',"," RIGHT = 'right',"," TICK_X = 'tickX',"," TICK_Y = 'tickY',"," TOP = 'top',"," WIDTH = 'width',"," VIEW = 'view',"," VIEWPORT_REGION = 'viewportRegion';","","/**","A Resize plugin that will attempt to constrain the resize node to the boundaries.","@module resize","@submodule resize-contrain","@class ResizeConstrained","@param config {Object} Object literal specifying widget configuration properties.","@constructor","@extends Plugin.Base","@namespace Plugin","*/","","function ResizeConstrained() {"," ResizeConstrained.superclass.constructor.apply(this, arguments);","}","","Y.mix(ResizeConstrained, {"," NAME: RESIZE_CONTRAINED,",""," NS: CON,",""," ATTRS: {"," /**"," * Will attempt to constrain the resize node to the boundaries. Arguments:<br>"," * 'view': Contrain to Viewport<br>"," * '#selector_string': Constrain to this node<br>"," * '{Region Object}': An Object Literal containing a valid region (top, right, bottom, left) of page positions"," *"," * @attribute constrain"," * @type {String|Object|Node}"," */"," constrain: {"," setter: function(v) {"," if (v && (isNode(v) || isString(v) || v.nodeType)) {"," v = Y.one(v);"," }",""," return v;"," }"," },",""," /**"," * The minimum height of the element"," *"," * @attribute minHeight"," * @default 15"," * @type Number"," */"," minHeight: {"," value: 15,"," validator: isNumber"," },",""," /**"," * The minimum width of the element"," *"," * @attribute minWidth"," * @default 15"," * @type Number"," */"," minWidth: {"," value: 15,"," validator: isNumber"," },",""," /**"," * The maximum height of the element"," *"," * @attribute maxHeight"," * @default Infinity"," * @type Number"," */"," maxHeight: {"," value: Infinity,"," validator: isNumber"," },",""," /**"," * The maximum width of the element"," *"," * @attribute maxWidth"," * @default Infinity"," * @type Number"," */"," maxWidth: {"," value: Infinity,"," validator: isNumber"," },",""," /**"," * Maintain the element's ratio when resizing."," *"," * @attribute preserveRatio"," * @default false"," * @type boolean"," */"," preserveRatio: {"," value: false,"," validator: isBoolean"," },",""," /**"," * The number of x ticks to span the resize to."," *"," * @attribute tickX"," * @default false"," * @type Number | false"," */"," tickX: {"," value: false"," },",""," /**"," * The number of y ticks to span the resize to."," *"," * @attribute tickY"," * @default false"," * @type Number | false"," */"," tickY: {"," value: false"," }"," }","});","","Y.extend(ResizeConstrained, Y.Plugin.Base, {"," /**"," * Stores the <code>constrain</code>"," * surrounding information retrieved from"," * <a href=\"Resize.html#method__getBoxSurroundingInfo\">_getBoxSurroundingInfo</a>."," *"," * @property constrainSurrounding"," * @type Object"," * @default null"," */"," constrainSurrounding: null,",""," initializer: function() {"," var instance = this,"," host = instance.get(HOST);",""," host.delegate.dd.plug("," Y.Plugin.DDConstrained,"," {"," tickX: instance.get(TICK_X),"," tickY: instance.get(TICK_Y)"," }"," );",""," host.after('resize:align', Y.bind(instance._handleResizeAlignEvent, instance));"," host.on('resize:start', Y.bind(instance._handleResizeStartEvent, instance));"," },",""," /**"," * Helper method to update the current values on"," * <a href=\"Resize.html#property_info\">info</a> to respect the"," * constrain node."," *"," * @method _checkConstrain"," * @param {String} axis 'top' or 'left'"," * @param {String} axisConstrain 'bottom' or 'right'"," * @param {String} offset 'offsetHeight' or 'offsetWidth'"," * @protected"," */"," _checkConstrain: function(axis, axisConstrain, offset) {"," var instance = this,"," point1,"," point1Constrain,"," point2,"," point2Constrain,"," host = instance.get(HOST),"," info = host.info,"," constrainBorders = instance.constrainSurrounding.border,"," region = instance._getConstrainRegion();",""," if (region) {"," point1 = info[axis] + info[offset];"," point1Constrain = region[axisConstrain] - toNumber(constrainBorders[capitalize(BORDER, axisConstrain, WIDTH)]);",""," if (point1 >= point1Constrain) {"," info[offset] -= (point1 - point1Constrain);"," }",""," point2 = info[axis];"," point2Constrain = region[axis] + toNumber(constrainBorders[capitalize(BORDER, axis, WIDTH)]);",""," if (point2 <= point2Constrain) {"," info[axis] += (point2Constrain - point2);"," info[offset] -= (point2Constrain - point2);"," }"," }"," },",""," /**"," * Update the current values on <a href=\"Resize.html#property_info\">info</a>"," * to respect the maxHeight and minHeight."," *"," * @method _checkHeight"," * @protected"," */"," _checkHeight: function() {"," var instance = this,"," host = instance.get(HOST),"," info = host.info,"," maxHeight = (instance.get(MAX_HEIGHT) + host.totalVSurrounding),"," minHeight = (instance.get(MIN_HEIGHT) + host.totalVSurrounding);",""," instance._checkConstrain(TOP, BOTTOM, OFFSET_HEIGHT);",""," if (info.offsetHeight > maxHeight) {"," host._checkSize(OFFSET_HEIGHT, maxHeight);"," }",""," if (info.offsetHeight < minHeight) {"," host._checkSize(OFFSET_HEIGHT, minHeight);"," }"," },",""," /**"," * Update the current values on <a href=\"Resize.html#property_info\">info</a>"," * calculating the correct ratio for the other values."," *"," * @method _checkRatio"," * @protected"," */"," _checkRatio: function() {"," var instance = this,"," host = instance.get(HOST),"," info = host.info,"," originalInfo = host.originalInfo,"," oWidth = originalInfo.offsetWidth,"," oHeight = originalInfo.offsetHeight,"," oTop = originalInfo.top,"," oLeft = originalInfo.left,"," oBottom = originalInfo.bottom,"," oRight = originalInfo.right,"," // wRatio/hRatio functions keep the ratio information always synced with the current info information"," // RETURN: percentage how much width/height has changed from the original width/height"," wRatio = function() {"," return (info.offsetWidth/oWidth);"," },"," hRatio = function() {"," return (info.offsetHeight/oHeight);"," },"," isClosestToHeight = host.changeHeightHandles,"," bottomDiff,"," constrainBorders,"," constrainRegion,"," leftDiff,"," rightDiff,"," topDiff;",""," // check whether the resizable node is closest to height or not"," if (instance.get(CONSTRAIN) && host.changeHeightHandles && host.changeWidthHandles) {"," constrainRegion = instance._getConstrainRegion();"," constrainBorders = instance.constrainSurrounding.border;"," bottomDiff = (constrainRegion.bottom - toNumber(constrainBorders[BORDER_BOTTOM_WIDTH])) - oBottom;"," leftDiff = oLeft - (constrainRegion.left + toNumber(constrainBorders[BORDER_LEFT_WIDTH]));"," rightDiff = (constrainRegion.right - toNumber(constrainBorders[BORDER_RIGHT_WIDTH])) - oRight;"," topDiff = oTop - (constrainRegion.top + toNumber(constrainBorders[BORDER_TOP_WIDTH]));",""," if (host.changeLeftHandles && host.changeTopHandles) {"," isClosestToHeight = (topDiff < leftDiff);"," }"," else if (host.changeLeftHandles) {"," isClosestToHeight = (bottomDiff < leftDiff);"," }"," else if (host.changeTopHandles) {"," isClosestToHeight = (topDiff < rightDiff);"," }"," else {"," isClosestToHeight = (bottomDiff < rightDiff);"," }"," }",""," // when the height of the resizable element touch the border of the constrain first"," // force the offsetWidth to be calculated based on the height ratio"," if (isClosestToHeight) {"," info.offsetWidth = oWidth*hRatio();"," instance._checkWidth();"," info.offsetHeight = oHeight*wRatio();"," }"," else {"," info.offsetHeight = oHeight*wRatio();"," instance._checkHeight();"," info.offsetWidth = oWidth*hRatio();"," }",""," // fixing the top on handles which are able to change top"," // the idea here is change the top based on how much the height has changed instead of follow the dy"," if (host.changeTopHandles) {"," info.top = oTop + (oHeight - info.offsetHeight);"," }",""," // fixing the left on handles which are able to change left"," // the idea here is change the left based on how much the width has changed instead of follow the dx"," if (host.changeLeftHandles) {"," info.left = oLeft + (oWidth - info.offsetWidth);"," }",""," // rounding values to avoid pixel jumpings"," Y.each(info, function(value, key) {"," if (isNumber(value)) {"," info[key] = Math.round(value);"," }"," });"," },",""," /**"," * Check whether the resizable node is inside the constrain region."," *"," * @method _checkRegion"," * @protected"," * @return {boolean}"," */"," _checkRegion: function() {"," var instance = this,"," host = instance.get(HOST),"," region = instance._getConstrainRegion();",""," return Y.DOM.inRegion(null, region, true, host.info);"," },",""," /**"," * Update the current values on <a href=\"Resize.html#property_info\">info</a>"," * to respect the maxWidth and minWidth."," *"," * @method _checkWidth"," * @protected"," */"," _checkWidth: function() {"," var instance = this,"," host = instance.get(HOST),"," info = host.info,"," maxWidth = (instance.get(MAX_WIDTH) + host.totalHSurrounding),"," minWidth = (instance.get(MIN_WIDTH) + host.totalHSurrounding);",""," instance._checkConstrain(LEFT, RIGHT, OFFSET_WIDTH);",""," if (info.offsetWidth < minWidth) {"," host._checkSize(OFFSET_WIDTH, minWidth);"," }",""," if (info.offsetWidth > maxWidth) {"," host._checkSize(OFFSET_WIDTH, maxWidth);"," }"," },",""," /**"," * Get the constrain region based on the <code>constrain</code>"," * attribute."," *"," * @method _getConstrainRegion"," * @protected"," * @return {Object Region}"," */"," _getConstrainRegion: function() {"," var instance = this,"," host = instance.get(HOST),"," node = host.get(NODE),"," constrain = instance.get(CONSTRAIN),"," region = null;",""," if (constrain) {"," if (constrain == VIEW) {"," region = node.get(VIEWPORT_REGION);"," }"," else if (isNode(constrain)) {"," region = constrain.get(REGION);"," }"," else {"," region = constrain;"," }"," }",""," return region;"," },",""," _handleResizeAlignEvent: function(event) {"," var instance = this,"," host = instance.get(HOST);",""," // check the max/min height and locking top when these values are reach"," instance._checkHeight();",""," // check the max/min width and locking left when these values are reach"," instance._checkWidth();",""," // calculating the ratio, for proportionally resizing"," if (instance.get(PRESEVE_RATIO)) {"," instance._checkRatio();"," }",""," if (instance.get(CONSTRAIN) && !instance._checkRegion()) {"," host.info = host.lastInfo;"," }"," },",""," _handleResizeStartEvent: function(event) {"," var instance = this,"," constrain = instance.get(CONSTRAIN),"," host = instance.get(HOST);",""," instance.constrainSurrounding = host._getBoxSurroundingInfo(constrain);"," }","});","","Y.namespace('Plugin');","Y.Plugin.ResizeConstrained = ResizeConstrained;","","","}, '3.7.1', {\"requires\": [\"plugin\", \"resize-base\"]});"];
_yuitest_coverage["build/resize-constrain/resize-constrain.js"].lines = {"1":0,"3":0,"10":0,"14":0,"56":0,"57":0,"60":0,"77":0,"78":0,"81":0,"169":0,"182":0,"185":0,"193":0,"194":0,"209":0,"219":0,"220":0,"221":0,"223":0,"224":0,"227":0,"228":0,"230":0,"231":0,"232":0,"245":0,"251":0,"253":0,"254":0,"257":0,"258":0,"270":0,"283":0,"286":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"305":0,"306":0,"308":0,"309":0,"311":0,"312":0,"315":0,"321":0,"322":0,"323":0,"324":0,"327":0,"328":0,"329":0,"334":0,"335":0,"340":0,"341":0,"345":0,"346":0,"347":0,"360":0,"364":0,"375":0,"381":0,"383":0,"384":0,"387":0,"388":0,"401":0,"407":0,"408":0,"409":0,"411":0,"412":0,"415":0,"419":0,"423":0,"427":0,"430":0,"433":0,"434":0,"437":0,"438":0,"443":0,"447":0,"451":0,"452":0};
_yuitest_coverage["build/resize-constrain/resize-constrain.js"].functions = {"isNode:9":0,"toNumber:13":0,"ResizeConstrained:56":0,"setter:76":0,"initializer:181":0,"_checkConstrain:208":0,"_checkHeight:244":0,"wRatio:282":0,"hRatio:285":0,"(anonymous 2):345":0,"_checkRatio:269":0,"_checkRegion:359":0,"_checkWidth:374":0,"_getConstrainRegion:400":0,"_handleResizeAlignEvent:422":0,"_handleResizeStartEvent:442":0,"(anonymous 1):1":0};
_yuitest_coverage["build/resize-constrain/resize-constrain.js"].coveredLines = 90;
_yuitest_coverage["build/resize-constrain/resize-constrain.js"].coveredFunctions = 17;
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 1);
YUI.add('resize-constrain', function (Y, NAME) {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "(anonymous 1)", 1);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 3);
var Lang = Y.Lang,
isBoolean = Lang.isBoolean,
isNumber = Lang.isNumber,
isString = Lang.isString,
capitalize = Y.Resize.capitalize,
isNode = function(v) {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "isNode", 9);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 10);
return (v instanceof Y.Node);
},
toNumber = function(num) {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "toNumber", 13);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 14);
return parseFloat(num) || 0;
},
BORDER_BOTTOM_WIDTH = 'borderBottomWidth',
BORDER_LEFT_WIDTH = 'borderLeftWidth',
BORDER_RIGHT_WIDTH = 'borderRightWidth',
BORDER_TOP_WIDTH = 'borderTopWidth',
BORDER = 'border',
BOTTOM = 'bottom',
CON = 'con',
CONSTRAIN = 'constrain',
HOST = 'host',
LEFT = 'left',
MAX_HEIGHT = 'maxHeight',
MAX_WIDTH = 'maxWidth',
MIN_HEIGHT = 'minHeight',
MIN_WIDTH = 'minWidth',
NODE = 'node',
OFFSET_HEIGHT = 'offsetHeight',
OFFSET_WIDTH = 'offsetWidth',
PRESEVE_RATIO = 'preserveRatio',
REGION = 'region',
RESIZE_CONTRAINED = 'resizeConstrained',
RIGHT = 'right',
TICK_X = 'tickX',
TICK_Y = 'tickY',
TOP = 'top',
WIDTH = 'width',
VIEW = 'view',
VIEWPORT_REGION = 'viewportRegion';
/**
A Resize plugin that will attempt to constrain the resize node to the boundaries.
@module resize
@submodule resize-contrain
@class ResizeConstrained
@param config {Object} Object literal specifying widget configuration properties.
@constructor
@extends Plugin.Base
@namespace Plugin
*/
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 56);
function ResizeConstrained() {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "ResizeConstrained", 56);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 57);
ResizeConstrained.superclass.constructor.apply(this, arguments);
}
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 60);
Y.mix(ResizeConstrained, {
NAME: RESIZE_CONTRAINED,
NS: CON,
ATTRS: {
/**
* Will attempt to constrain the resize node to the boundaries. Arguments:<br>
* 'view': Contrain to Viewport<br>
* '#selector_string': Constrain to this node<br>
* '{Region Object}': An Object Literal containing a valid region (top, right, bottom, left) of page positions
*
* @attribute constrain
* @type {String|Object|Node}
*/
constrain: {
setter: function(v) {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "setter", 76);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 77);
if (v && (isNode(v) || isString(v) || v.nodeType)) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 78);
v = Y.one(v);
}
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 81);
return v;
}
},
/**
* The minimum height of the element
*
* @attribute minHeight
* @default 15
* @type Number
*/
minHeight: {
value: 15,
validator: isNumber
},
/**
* The minimum width of the element
*
* @attribute minWidth
* @default 15
* @type Number
*/
minWidth: {
value: 15,
validator: isNumber
},
/**
* The maximum height of the element
*
* @attribute maxHeight
* @default Infinity
* @type Number
*/
maxHeight: {
value: Infinity,
validator: isNumber
},
/**
* The maximum width of the element
*
* @attribute maxWidth
* @default Infinity
* @type Number
*/
maxWidth: {
value: Infinity,
validator: isNumber
},
/**
* Maintain the element's ratio when resizing.
*
* @attribute preserveRatio
* @default false
* @type boolean
*/
preserveRatio: {
value: false,
validator: isBoolean
},
/**
* The number of x ticks to span the resize to.
*
* @attribute tickX
* @default false
* @type Number | false
*/
tickX: {
value: false
},
/**
* The number of y ticks to span the resize to.
*
* @attribute tickY
* @default false
* @type Number | false
*/
tickY: {
value: false
}
}
});
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 169);
Y.extend(ResizeConstrained, Y.Plugin.Base, {
/**
* Stores the <code>constrain</code>
* surrounding information retrieved from
* <a href="Resize.html#method__getBoxSurroundingInfo">_getBoxSurroundingInfo</a>.
*
* @property constrainSurrounding
* @type Object
* @default null
*/
constrainSurrounding: null,
initializer: function() {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "initializer", 181);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 182);
var instance = this,
host = instance.get(HOST);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 185);
host.delegate.dd.plug(
Y.Plugin.DDConstrained,
{
tickX: instance.get(TICK_X),
tickY: instance.get(TICK_Y)
}
);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 193);
host.after('resize:align', Y.bind(instance._handleResizeAlignEvent, instance));
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 194);
host.on('resize:start', Y.bind(instance._handleResizeStartEvent, instance));
},
/**
* Helper method to update the current values on
* <a href="Resize.html#property_info">info</a> to respect the
* constrain node.
*
* @method _checkConstrain
* @param {String} axis 'top' or 'left'
* @param {String} axisConstrain 'bottom' or 'right'
* @param {String} offset 'offsetHeight' or 'offsetWidth'
* @protected
*/
_checkConstrain: function(axis, axisConstrain, offset) {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "_checkConstrain", 208);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 209);
var instance = this,
point1,
point1Constrain,
point2,
point2Constrain,
host = instance.get(HOST),
info = host.info,
constrainBorders = instance.constrainSurrounding.border,
region = instance._getConstrainRegion();
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 219);
if (region) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 220);
point1 = info[axis] + info[offset];
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 221);
point1Constrain = region[axisConstrain] - toNumber(constrainBorders[capitalize(BORDER, axisConstrain, WIDTH)]);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 223);
if (point1 >= point1Constrain) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 224);
info[offset] -= (point1 - point1Constrain);
}
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 227);
point2 = info[axis];
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 228);
point2Constrain = region[axis] + toNumber(constrainBorders[capitalize(BORDER, axis, WIDTH)]);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 230);
if (point2 <= point2Constrain) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 231);
info[axis] += (point2Constrain - point2);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 232);
info[offset] -= (point2Constrain - point2);
}
}
},
/**
* Update the current values on <a href="Resize.html#property_info">info</a>
* to respect the maxHeight and minHeight.
*
* @method _checkHeight
* @protected
*/
_checkHeight: function() {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "_checkHeight", 244);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 245);
var instance = this,
host = instance.get(HOST),
info = host.info,
maxHeight = (instance.get(MAX_HEIGHT) + host.totalVSurrounding),
minHeight = (instance.get(MIN_HEIGHT) + host.totalVSurrounding);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 251);
instance._checkConstrain(TOP, BOTTOM, OFFSET_HEIGHT);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 253);
if (info.offsetHeight > maxHeight) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 254);
host._checkSize(OFFSET_HEIGHT, maxHeight);
}
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 257);
if (info.offsetHeight < minHeight) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 258);
host._checkSize(OFFSET_HEIGHT, minHeight);
}
},
/**
* Update the current values on <a href="Resize.html#property_info">info</a>
* calculating the correct ratio for the other values.
*
* @method _checkRatio
* @protected
*/
_checkRatio: function() {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "_checkRatio", 269);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 270);
var instance = this,
host = instance.get(HOST),
info = host.info,
originalInfo = host.originalInfo,
oWidth = originalInfo.offsetWidth,
oHeight = originalInfo.offsetHeight,
oTop = originalInfo.top,
oLeft = originalInfo.left,
oBottom = originalInfo.bottom,
oRight = originalInfo.right,
// wRatio/hRatio functions keep the ratio information always synced with the current info information
// RETURN: percentage how much width/height has changed from the original width/height
wRatio = function() {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "wRatio", 282);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 283);
return (info.offsetWidth/oWidth);
},
hRatio = function() {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "hRatio", 285);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 286);
return (info.offsetHeight/oHeight);
},
isClosestToHeight = host.changeHeightHandles,
bottomDiff,
constrainBorders,
constrainRegion,
leftDiff,
rightDiff,
topDiff;
// check whether the resizable node is closest to height or not
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 297);
if (instance.get(CONSTRAIN) && host.changeHeightHandles && host.changeWidthHandles) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 298);
constrainRegion = instance._getConstrainRegion();
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 299);
constrainBorders = instance.constrainSurrounding.border;
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 300);
bottomDiff = (constrainRegion.bottom - toNumber(constrainBorders[BORDER_BOTTOM_WIDTH])) - oBottom;
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 301);
leftDiff = oLeft - (constrainRegion.left + toNumber(constrainBorders[BORDER_LEFT_WIDTH]));
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 302);
rightDiff = (constrainRegion.right - toNumber(constrainBorders[BORDER_RIGHT_WIDTH])) - oRight;
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 303);
topDiff = oTop - (constrainRegion.top + toNumber(constrainBorders[BORDER_TOP_WIDTH]));
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 305);
if (host.changeLeftHandles && host.changeTopHandles) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 306);
isClosestToHeight = (topDiff < leftDiff);
}
else {_yuitest_coverline("build/resize-constrain/resize-constrain.js", 308);
if (host.changeLeftHandles) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 309);
isClosestToHeight = (bottomDiff < leftDiff);
}
else {_yuitest_coverline("build/resize-constrain/resize-constrain.js", 311);
if (host.changeTopHandles) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 312);
isClosestToHeight = (topDiff < rightDiff);
}
else {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 315);
isClosestToHeight = (bottomDiff < rightDiff);
}}}
}
// when the height of the resizable element touch the border of the constrain first
// force the offsetWidth to be calculated based on the height ratio
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 321);
if (isClosestToHeight) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 322);
info.offsetWidth = oWidth*hRatio();
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 323);
instance._checkWidth();
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 324);
info.offsetHeight = oHeight*wRatio();
}
else {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 327);
info.offsetHeight = oHeight*wRatio();
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 328);
instance._checkHeight();
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 329);
info.offsetWidth = oWidth*hRatio();
}
// fixing the top on handles which are able to change top
// the idea here is change the top based on how much the height has changed instead of follow the dy
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 334);
if (host.changeTopHandles) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 335);
info.top = oTop + (oHeight - info.offsetHeight);
}
// fixing the left on handles which are able to change left
// the idea here is change the left based on how much the width has changed instead of follow the dx
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 340);
if (host.changeLeftHandles) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 341);
info.left = oLeft + (oWidth - info.offsetWidth);
}
// rounding values to avoid pixel jumpings
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 345);
Y.each(info, function(value, key) {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "(anonymous 2)", 345);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 346);
if (isNumber(value)) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 347);
info[key] = Math.round(value);
}
});
},
/**
* Check whether the resizable node is inside the constrain region.
*
* @method _checkRegion
* @protected
* @return {boolean}
*/
_checkRegion: function() {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "_checkRegion", 359);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 360);
var instance = this,
host = instance.get(HOST),
region = instance._getConstrainRegion();
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 364);
return Y.DOM.inRegion(null, region, true, host.info);
},
/**
* Update the current values on <a href="Resize.html#property_info">info</a>
* to respect the maxWidth and minWidth.
*
* @method _checkWidth
* @protected
*/
_checkWidth: function() {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "_checkWidth", 374);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 375);
var instance = this,
host = instance.get(HOST),
info = host.info,
maxWidth = (instance.get(MAX_WIDTH) + host.totalHSurrounding),
minWidth = (instance.get(MIN_WIDTH) + host.totalHSurrounding);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 381);
instance._checkConstrain(LEFT, RIGHT, OFFSET_WIDTH);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 383);
if (info.offsetWidth < minWidth) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 384);
host._checkSize(OFFSET_WIDTH, minWidth);
}
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 387);
if (info.offsetWidth > maxWidth) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 388);
host._checkSize(OFFSET_WIDTH, maxWidth);
}
},
/**
* Get the constrain region based on the <code>constrain</code>
* attribute.
*
* @method _getConstrainRegion
* @protected
* @return {Object Region}
*/
_getConstrainRegion: function() {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "_getConstrainRegion", 400);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 401);
var instance = this,
host = instance.get(HOST),
node = host.get(NODE),
constrain = instance.get(CONSTRAIN),
region = null;
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 407);
if (constrain) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 408);
if (constrain == VIEW) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 409);
region = node.get(VIEWPORT_REGION);
}
else {_yuitest_coverline("build/resize-constrain/resize-constrain.js", 411);
if (isNode(constrain)) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 412);
region = constrain.get(REGION);
}
else {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 415);
region = constrain;
}}
}
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 419);
return region;
},
_handleResizeAlignEvent: function(event) {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "_handleResizeAlignEvent", 422);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 423);
var instance = this,
host = instance.get(HOST);
// check the max/min height and locking top when these values are reach
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 427);
instance._checkHeight();
// check the max/min width and locking left when these values are reach
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 430);
instance._checkWidth();
// calculating the ratio, for proportionally resizing
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 433);
if (instance.get(PRESEVE_RATIO)) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 434);
instance._checkRatio();
}
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 437);
if (instance.get(CONSTRAIN) && !instance._checkRegion()) {
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 438);
host.info = host.lastInfo;
}
},
_handleResizeStartEvent: function(event) {
_yuitest_coverfunc("build/resize-constrain/resize-constrain.js", "_handleResizeStartEvent", 442);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 443);
var instance = this,
constrain = instance.get(CONSTRAIN),
host = instance.get(HOST);
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 447);
instance.constrainSurrounding = host._getBoxSurroundingInfo(constrain);
}
});
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 451);
Y.namespace('Plugin');
_yuitest_coverline("build/resize-constrain/resize-constrain.js", 452);
Y.Plugin.ResizeConstrained = ResizeConstrained;
}, '3.7.1', {"requires": ["plugin", "resize-base"]});