{"version":3,"sources":["garnish.js"],"names":["$","cancel","raf","erd","Base","extend","_instance","_static","prototype","_prototyping","proto","this","call","base","constructor","klass","_constructing","apply","arguments","ancestor","forEach","implement","toString","valueOf","type","init","source","value","length","test","method","previous","returnValue","toSource","hidden","i","key","desc","Object","getOwnPropertyDescriptor","defineProperty","version","object","block","context","undefined","String","Garnish","getErd","elementResizeDetectorMaker","callOnAdd","triggerResizeEvent","elem","trigger","$win","window","$doc","document","$bod","body","rtl","hasClass","ltr","$scrollContainer","DELETE_KEY","SHIFT_KEY","CTRL_KEY","ALT_KEY","RETURN_KEY","ESC_KEY","SPACE_KEY","LEFT_KEY","UP_KEY","RIGHT_KEY","DOWN_KEY","A_KEY","S_KEY","CMD_KEY","PRIMARY_CLICK","SECONDARY_CLICK","X_AXIS","Y_AXIS","FX_DURATION","TEXT_NODE","log","msg","console","_isMobileBrowser","_isMobileOrTabletBrowser","isMobileBrowser","detectTablets","a","navigator","userAgent","vendor","opera","RegExp","substr","isArray","val","Array","isJquery","jQuery","isString","hasAttr","attr","isTextNode","nodeType","getOffset","_offset","offset","top","scrollTop","left","scrollLeft","getDist","x1","y1","x2","y2","Math","sqrt","pow","hitTest","x","y","_$elem","_x1","_y1","_x2","outerWidth","_y2","outerHeight","isCursorOver","ev","pageX","pageY","copyTextStyles","target","$source","css","fontFamily","fontSize","fontWeight","letterSpacing","lineHeight","textAlign","textIndent","whiteSpace","wordSpacing","wordWrap","getBodyScrollTop","_scrollTop","_maxScrollTop","height","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","id","scrollContainerToElement","container","$elem","$container","scrollParent","prop","elemScrollOffset","elemOffset","targetScrollTop","elemHeight","containerHeight","innerHeight","clientHeight","velocity","mobileHA","SHAKE_STEPS","SHAKE_STEP_DURATION","shake","startingPoint","parseInt","isNaN","_properties","getElement","makeArray","getInputBasename","name","replace","getInputPostVal","$input","findInputs","find","getPostData","inputName","postData","arrayInputCounters","$inputs","eq","inputVal","isArrayInput","croppedName","substring","j","copyInputValues","$sourceInputs","$targetInputs","isCtrlKeyPressed","platform","match","metaKey","ctrlKey","altKey","_eventHandlers","_normalizeEvents","events","split","on","data","handler","push","namespace","off","eventHandler","splice","settings","_namespace","_$listeners","_disabled","floor","random","_listeners","noop","setSettings","defaults","baseSettings","_ev","_splitEvents","trim","_formatEvents","slice","join","addListener","func","bind","proxy","inArray","removeListener","removeAllListeners","disable","enable","destroy","event","special","activate","setup","namespaces","eventHandle","mousedown.garnish-activate","e","preventDefault","click.garnish-activate","keydown.garnish-activate","keyCode","addClass","removeClass","removeAttr","teardown","textchange","handle","el","args","delay","handleObj","targetData","delayTimeout","resize","listenTo","each","BaseDrag","$items","dragging","mousedownX","mousedownY","realMouseX","realMouseY","mouseX","mouseY","mouseDistX","mouseDistY","mouseOffsetX","mouseOffsetY","$targetItem","scrollProperty","scrollAxis","scrollDist","scrollProxy","scrollFrame","_","items","isPlainObject","addItems","allowDragging","startDragging","onDragStart","drag","didMouseMove","_scrollProperty","axis","_winScrollTop","_minMouseScrollY","windowScrollTargetSize","_scrollAxis","_scrollDist","round","_maxMouseScrollY","_winScrollLeft","_minMouseScrollX","_maxMouseScrollX","width","_scrollWindow","_cancelWindowScroll","onDrag","stopDragging","onDragStop","item","removeItems","add","index","_deinitItem","removeAllItems","_handleMouseDown","which","$target","$handle","_getItemHandle","currentTarget","is","closest","ignoreHandleSelector","_handleMouseMove","_mouseDist","minMouseDist","_handleMouseUp","scrollPos","removeData","CheckboxSelect","$all","$options","$checkboxes","filter","not","onAllChange","isAllChecked","checked","disabled","ContextMenu","options","$menu","showingMenu","counter","buildMenu","menuClass","$ul","appendTo","hasOwnProperty","option","$li","$a","label","onClick","mousedown","hideMenu","showMenu","showing","show","hide","Drag","targetItemWidth","targetItemHeight","targetItemPositionInDraggee","$draggee","otherItems","totalOtherItems","helpers","helperTargets","helperPositions","helperLagIncrement","updateHelperPosProxy","updateHelperPosFrame","lastMouseX","lastMouseY","_returningHelpersToDraggees","draggeeDisplay","setDraggee","findDraggee","_updateHelperPos","helperLagIncrementDividend","concat","toArray","singleHelper","_createHelper","removeDraggee","collapseDraggees","appendDraggee","$newDraggee","oldLength","newLength","draggeeVirtualMidpointX","draggeeVirtualMidpointY","getHelperTargetX","getHelperTargetY","returnHelpersToDraggees","$helper","display","visibility","callback","draggeeOffset","_showDraggee","onReturnHelpersToDraggees","$draggeeHelper","clone","copyDraggeeInputValuesToHelper","ceil","margin","pointer-events","helper","append","helperPos","_getHelperTarget","position","zIndex","helperBaseZindex","opacity","helperOpacity","_i","_j","_lag","helperLagBase","helperSpacingX","helperSpacingY","remove","DragDrop","$dropTargets","$activeDropTarget","updateDropTargets","dropTargets","_activeDropTarget","_elem","activeDropTargetClass","onDropTargetChange","fadeOutHelpers","duration","complete","DragMove","DragSort","$heightedContainer","$insertion","insertionVisible","oldDraggeeIndexes","newDraggeeIndexes","closestItem","_midpointVersion","_$prevItem","createInsertion","insertion","magnetStrength","_draggeeOffsetX","_draggeeOffsetY","canInsertBefore","$item","canInsertAfter","_getDraggeeIndexes","moveTargetItemToFront","_getItemIndex","first","insertBefore","_placeInsertionWithDraggee","_clearMidpoints","parent","_removeInsertion","_getClosestItem","_updateInsertion","insertAfter","onSortChange","onInsertionPointChange","indexes","_closestItem","_testForClosestItem","_midpoint","_getItemMidpoint","_startXDist","_lastXDist","abs","_startYDist","_lastYDist","_$otherItem","prev","_xDist","_yDist","last","next","_repositionDraggee","get","_moveDraggeeToItem","_$item","prependTo","_mouseDistX","_mouseDistY","_closestItemMouseDistY","_closestItemMouseDistX","EscManager","handlers","escapeLatest","register","obj","unregister","pop","escManager","HUD","$trigger","$fixedTriggerParent","$hud","$tip","$body","$header","$footer","$mainContainer","$main","$shade","orientation","updatingSizeAndPosition","windowWidth","windowHeight","mainWidth","mainHeight","bodyContents","onShow","onHide","onSubmit","activeHUDs","class","shadeClass","hudClass","tipClass","bodyClass","mainContainerClass","mainClass","updateBody","$parent","offsetParent","hideOnShadeClick","closeBtn","html","headerClass","footerClass","stopPropagation","closeOtherHUDs","hudID","shortcutManager","addLayer","hideOnEsc","registerShortcut","updateRecords","updateSizeAndPosition","changed","force","updateSizeAndPositionInternal","triggerWidth","triggerHeight","triggerOffset","windowScrollLeft","windowScrollTop","scrollContainerTriggerOffset","scrollContainerScrollLeft","scrollContainerScrollTop","hudBodyWidth","hudBodyHeight","right","bottom","overflow-x","overflow-y","maxHudBodyWidth","maxHudBodyHeight","triggerCenter","clearances","orientations","relevantSize","windowSpacing","triggerSpacing","tipClasses","minBodyWidth","minBodyHeight","maxLeft","minLeft","tipLeft","tipWidth","maxTop","minTop","tipTop","removeLayer","toggle","submit","_handleSubmit","Menu","visible","$anchor","menuId","_windowWidth","_windowHeight","_windowScrollLeft","_windowScrollTop","_anchorOffset","_anchorWidth","_anchorHeight","_anchorOffsetRight","_anchorOffsetBottom","_menuWidth","_menuHeight","addOptions","$menuList","role","aria-hidden","attachToElement","anchor","nodeName","optionKey","tabindex","selectOption","setPositionRelativeToAnchor","topClearance","bottomClearance","maxHeight","min","align","_alignCenter","rightClearance","leftClearance","_alignRight","_alignLeft","detach","onOptionSelect","selectedOption","MenuBtn","$btn","menu","btn","menuAnchor","aria-controls","aria-haspopup","aria-expanded","onMenuHide","onBlur","contains","activeElement","onKeyDown","$option","$currentOption","click","focusOption","onMouseDown","MixedInput","elements","focussedElement","blurTimeout","getElementIndex","isText","onFocus","setFocus","setCarotPos","addTextElement","text","TextElement","addElement","focussedElementIndex","selectionStart","selectionEnd","preVal","postVal","newText","removeElement","$prevElem","$nextElem","prevElemVal","newVal","blurFocussedElement","focus","focusPreviousElement","$from","focusNextElement","pos","parentInput","$stage","focussed","interval","padding","setWidth","getIndex","buildStage","getTextWidth","stageWidth","setInterval","checkInput","NiceText","clearInterval","getVal","setVal","onChange","Modal","dragger","desiredWidth","desiredHeight","resizeDragger","resizeStartWidth","resizeStartHeight","setContainer","autoShow","instances","draggable","dragHandleSelector","resizable","$resizeDragHandle","_handleResizeStart","_handleResize","closeOtherModals","visibleModal","onFadeIn","quickShow","onFadeOut","quickHide","max","min-width","min-height","_width","getWidth","minGutter","_height","getHeight","_handleWindowResize","relativeElemPadding","$hint","$charsLeft","autoHeight","maxLength","showCharsLeft","showingHint","inputBoxSizing","minHeight","initialized","input","isVisible","initialize","getHeightForValue","updateHeight","hint","$hintContainer","charsLeftClass","updateCharsLeft","initializeIfVisible","showHint","hintFadeDuration","hideHint","onTextChange","border-top","border-right","border-bottom","border-left","padding-top","padding-right","padding-bottom","padding-left","-webkit-box-sizing","-moz-box-sizing","box-sizing","spaces","onHeightChange","updateHeightIfWidthChanged","_charsLeft","negativeCharsLeftClass","Pill","$outerContainer","$innerContainer","$btns","$selectedBtn","outerContainer","preventOutlineOnMouseFocus","select","selectNext","nextIndex","_getSelectedBtnIndex","selectPrev","prevIndex","Select","$selectedItems","$focusedItem","mousedownTarget","mouseUpTimeout","callbackFrame","$focusable","$first","$last","allowEmpty","checkboxMode","ignoreClick","deselectAll","getItemIndex","isSelected","selectItem","preventScroll","multi","setFocusableItem","focusItem","_selectItems","selectAll","selectRange","sliceFrom","sliceTo","deselectItem","_deselectItems","clearFirst","deselectOthers","toggleItem","_canDeselect","clearMouseUpTimeout","getFirstItem","getLastItem","isPreviousItem","isNextItem","getPreviousItem","getNextItem","getItemToTheLeft","horizontal","vertical","getClosestItem","getItemToTheRight","getItemAbove","getItemBelow","dir","step","axisProps","closestItemAxisProps","dirProps","closestItemDirectionProps","$thisItem","thisOffset","thisMidpoint","midpointOffset","midpointSizeFunc","otherRowPos","smallestMidpointDiff","$closestItem","$otherItem","otherOffset","isNextRow","rowOffset","otherMidpoint","midpointDiff","isWrongDirection","getFurthestItemToTheLeft","getFurthestItem","getFurthestItemToTheRight","getFurthestItemAbove","getFurthestItemBelow","$testItem","totalSelected","getTotalSelected","updateIndexes","itemsChanged","selectionChanged","selectedIndex","selectedClass","onSelectionChange","resetItemOrder","getSelectedItems","shiftKey","_actAsCheckbox","onMouseUp","<","b",">","SelectMenu","selected","build","_addSelectedOptionClass","dom","ul","className","setBtnText","$btnLabel","ulClass","ShortcutManager","shortcuts","layer","shortcut","_normalizeShortcut","JSON","stringify","unregisterShortcut","ctrl","shift","triggerShortcut"],"mappings":"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","file":"garnish.js","sourcesContent":["/**\n * Garnish UI toolkit\n *\n * @copyright 2013 Pixel & Tonic, Inc.. All rights reserved.\n * @author Brandon Kelly \n * @version 0.1.37\n * @license MIT\n */\n(function($){\n\n/*!\r\n\tBase.js, version 1.1a\r\n\tCopyright 2006-2010, Dean Edwards\r\n\tLicense: http://www.opensource.org/licenses/mit-license.php\r\n*/\r\n\r\nvar Base = function() {\r\n\t// dummy\r\n};\r\n\r\nBase.extend = function(_instance, _static) { // subclass\r\n\tvar extend = Base.prototype.extend;\r\n\r\n\t// build the prototype\r\n\tBase._prototyping = true;\r\n\tvar proto = new this;\r\n\textend.call(proto, _instance);\r\n\tproto.base = function() {\r\n\t\t// call this method from any other method to invoke that method's ancestor\r\n\t};\r\n\tdelete Base._prototyping;\r\n\r\n\t// create the wrapper for the constructor function\r\n\t//var constructor = proto.constructor.valueOf(); //-dean\r\n\tvar constructor = proto.constructor;\r\n\tvar klass = proto.constructor = function() {\r\n\t\tif (!Base._prototyping) {\r\n\t\t\tif (this._constructing || this.constructor == klass) { // instantiation\r\n\t\t\t\tthis._constructing = true;\r\n\t\t\t\tconstructor.apply(this, arguments);\r\n\t\t\t\tdelete this._constructing;\r\n\t\t\t} else if (arguments[0] != null) { // casting\r\n\t\t\t\treturn (arguments[0].extend || extend).call(arguments[0], proto);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// build the class interface\r\n\tklass.ancestor = this;\r\n\tklass.extend = this.extend;\r\n\tklass.forEach = this.forEach;\r\n\tklass.implement = this.implement;\r\n\tklass.prototype = proto;\r\n\tklass.toString = this.toString;\r\n\tklass.valueOf = function(type) {\r\n\t\t//return (type == \"object\") ? klass : constructor; //-dean\r\n\t\treturn (type == \"object\") ? klass : constructor.valueOf();\r\n\t};\r\n\textend.call(klass, _static);\r\n\t// class initialisation\r\n\tif (typeof klass.init == \"function\") klass.init();\r\n\treturn klass;\r\n};\r\n\r\nBase.prototype = {\r\n\textend: function(source, value) {\r\n\t\tif (arguments.length > 1) { // extending with a name/value pair\r\n\t\t\tvar ancestor = this[source];\r\n\t\t\tif (ancestor && (typeof value == \"function\") && // overriding a method?\r\n\t\t\t\t// the valueOf() comparison is to avoid circular references\r\n\t\t\t\t(!ancestor.valueOf || ancestor.valueOf() != value.valueOf()) &&\r\n\t\t\t\t/\\bbase\\b/.test(value)) {\r\n\t\t\t\t// get the underlying method\r\n\t\t\t\tvar method = value.valueOf();\r\n\t\t\t\t// override\r\n\t\t\t\tvalue = function() {\r\n\t\t\t\t\tvar previous = this.base || Base.prototype.base;\r\n\t\t\t\t\tthis.base = ancestor;\r\n\t\t\t\t\tvar returnValue = method.apply(this, arguments);\r\n\t\t\t\t\tthis.base = previous;\r\n\t\t\t\t\treturn returnValue;\r\n\t\t\t\t};\r\n\t\t\t\t// point to the underlying method\r\n\t\t\t\tvalue.valueOf = function(type) {\r\n\t\t\t\t\treturn (type == \"object\") ? value : method;\r\n\t\t\t\t};\r\n\t\t\t\tvalue.toString = Base.toString;\r\n\t\t\t}\r\n\t\t\tthis[source] = value;\r\n\t\t} else if (source) { // extending with an object literal\r\n\t\t\tvar extend = Base.prototype.extend;\r\n\t\t\t// if this object has a customised extend method then use it\r\n\t\t\tif (!Base._prototyping && typeof this != \"function\") {\r\n\t\t\t\textend = this.extend || extend;\r\n\t\t\t}\r\n\t\t\tvar proto = {toSource: null};\r\n\t\t\t// do the \"toString\" and other methods manually\r\n\t\t\tvar hidden = [\"constructor\", \"toString\", \"valueOf\"];\r\n\t\t\t// if we are prototyping then include the constructor\r\n\t\t\tvar i = Base._prototyping ? 0 : 1;\r\n\t\t\twhile (key = hidden[i++]) {\r\n\t\t\t\tif (source[key] != proto[key]) {\r\n\t\t\t\t\textend.call(this, key, source[key]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// copy each of the source object's properties to this object\r\n\t\t\tfor (var key in source) {\r\n\t\t\t\tif (!proto[key]) {\r\n\t\t\t\t\tvar desc = Object.getOwnPropertyDescriptor(source, key);\r\n\t\t\t\t\tif (typeof desc.value != typeof undefined) {\r\n\t\t\t\t\t\t// set the value normally in case it's a function that needs to be overwritten\r\n\t\t\t\t\t\textend.call(this, key, desc.value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// set it while maintaining the original descriptor settings\r\n\t\t\t\t\t\tObject.defineProperty(this, key, desc);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n};\r\n\r\n// initialise\r\nBase = Base.extend({\r\n\tconstructor: function() {\r\n\t\tthis.extend(arguments[0]);\r\n\t}\r\n}, {\r\n\tancestor: Object,\r\n\tversion: \"1.1\",\r\n\r\n\tforEach: function(object, block, context) {\r\n\t\tfor (var key in object) {\r\n\t\t\tif (this.prototype[key] === undefined) {\r\n\t\t\t\tblock.call(context, object[key], key, object);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\timplement: function() {\r\n\t\tfor (var i = 0; i < arguments.length; i++) {\r\n\t\t\tif (typeof arguments[i] == \"function\") {\r\n\t\t\t\t// if it's a function, call it\r\n\t\t\t\targuments[i](this.prototype);\r\n\t\t\t} else {\r\n\t\t\t\t// add the interface using the extend method\r\n\t\t\t\tthis.prototype.extend(arguments[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\ttoString: function() {\r\n\t\treturn String(this.valueOf());\r\n\t}\r\n});\r\n\n/**\n * @namespace Garnish\n */\n\n// Bail if Garnish is already defined\nif (typeof Garnish !== 'undefined') {\n throw 'Garnish is already defined!';\n}\n\nGarnish = {\n\n // jQuery objects for common elements\n $win: $(window),\n $doc: $(document),\n $bod: $(document.body)\n\n};\n\nGarnish.rtl = Garnish.$bod.hasClass('rtl');\nGarnish.ltr = !Garnish.rtl;\n\nGarnish = $.extend(Garnish, {\n\n $scrollContainer: Garnish.$win,\n\n // Key code constants\n DELETE_KEY: 8,\n SHIFT_KEY: 16,\n CTRL_KEY: 17,\n ALT_KEY: 18,\n RETURN_KEY: 13,\n ESC_KEY: 27,\n SPACE_KEY: 32,\n LEFT_KEY: 37,\n UP_KEY: 38,\n RIGHT_KEY: 39,\n DOWN_KEY: 40,\n A_KEY: 65,\n S_KEY: 83,\n CMD_KEY: 91,\n\n // Mouse button constants\n PRIMARY_CLICK: 1,\n SECONDARY_CLICK: 3,\n\n // Axis constants\n X_AXIS: 'x',\n Y_AXIS: 'y',\n\n FX_DURATION: 100,\n\n // Node types\n TEXT_NODE: 3,\n\n /**\n * Logs a message to the browser's console, if the browser has one.\n *\n * @param {string} msg\n */\n log: function(msg) {\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log(msg);\n }\n },\n\n _isMobileBrowser: null,\n _isMobileOrTabletBrowser: null,\n\n /**\n * Returns whether this is a mobile browser.\n * Detection script courtesy of http://detectmobilebrowsers.com\n *\n * Last updated: 2014-11-24\n *\n * @param {boolean} detectTablets\n * @return {boolean}\n */\n isMobileBrowser: function(detectTablets) {\n var key = detectTablets ? '_isMobileOrTabletBrowser' : '_isMobileBrowser';\n\n if (Garnish[key] === null) {\n var a = navigator.userAgent || navigator.vendor || window.opera;\n Garnish[key] = ((new RegExp('(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino' + (detectTablets ? '|android|ipad|playbook|silk' : ''), 'i')).test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4)));\n }\n\n return Garnish[key];\n },\n\n /**\n * Returns whether a variable is an array.\n *\n * @param {object} val\n * @return {boolean}\n */\n isArray: function(val) {\n return (val instanceof Array);\n },\n\n /**\n * Returns whether a variable is a jQuery collection.\n *\n * @param {object} val\n * @return {boolean}\n */\n isJquery: function(val) {\n return (val instanceof jQuery);\n },\n\n /**\n * Returns whether a variable is a string.\n *\n * @param {object} val\n * @return {boolean}\n */\n isString: function(val) {\n return (typeof val === 'string');\n },\n\n /**\n * Returns whether an element has an attribute.\n *\n * @see http://stackoverflow.com/questions/1318076/jquery-hasattr-checking-to-see-if-there-is-an-attribute-on-an-element/1318091#1318091\n */\n hasAttr: function(elem, attr) {\n var val = $(elem).attr(attr);\n return (typeof val !== 'undefined' && val !== false);\n },\n\n /**\n * Returns whether something is a text node.\n *\n * @param {object} elem\n * @return {boolean}\n */\n isTextNode: function(elem) {\n return (elem.nodeType === Garnish.TEXT_NODE);\n },\n\n /**\n * Returns the offset of an element within the scroll container, whether that's the window or something else\n */\n getOffset: function(elem) {\n this.getOffset._offset = $(elem).offset();\n\n if (Garnish.$scrollContainer[0] !== Garnish.$win[0]) {\n this.getOffset._offset.top += Garnish.$scrollContainer.scrollTop();\n this.getOffset._offset.left += Garnish.$scrollContainer.scrollLeft();\n }\n\n return this.getOffset._offset;\n },\n\n /**\n * Returns the distance between two coordinates.\n *\n * @param {number} x1 The first coordinate's X position.\n * @param {number} y1 The first coordinate's Y position.\n * @param {number} x2 The second coordinate's X position.\n * @param {number} y2 The second coordinate's Y position.\n * @return {number}\n */\n getDist: function(x1, y1, x2, y2) {\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n },\n\n /**\n * Returns whether an element is touching an x/y coordinate.\n *\n * @param {number} x The coordinate's X position.\n * @param {number} y The coordinate's Y position.\n * @param {object} elem Either an actual element or a jQuery collection.\n * @return {boolean}\n */\n hitTest: function(x, y, elem) {\n Garnish.hitTest._$elem = $(elem);\n Garnish.hitTest._offset = Garnish.hitTest._$elem.offset();\n Garnish.hitTest._x1 = Garnish.hitTest._offset.left;\n Garnish.hitTest._y1 = Garnish.hitTest._offset.top;\n Garnish.hitTest._x2 = Garnish.hitTest._x1 + Garnish.hitTest._$elem.outerWidth();\n Garnish.hitTest._y2 = Garnish.hitTest._y1 + Garnish.hitTest._$elem.outerHeight();\n\n return (x >= Garnish.hitTest._x1 && x < Garnish.hitTest._x2 && y >= Garnish.hitTest._y1 && y < Garnish.hitTest._y2);\n },\n\n /**\n * Returns whether the cursor is touching an element.\n *\n * @param {object} ev The mouse event object containing pageX and pageY properties.\n * @param {object} elem Either an actual element or a jQuery collection.\n * @return {boolean}\n */\n isCursorOver: function(ev, elem) {\n return Garnish.hitTest(ev.pageX, ev.pageY, elem);\n },\n\n /**\n * Copies text styles from one element to another.\n *\n * @param {object} source The source element. Can be either an actual element or a jQuery collection.\n * @param {object} target The target element. Can be either an actual element or a jQuery collection.\n */\n copyTextStyles: function(source, target) {\n var $source = $(source),\n $target = $(target);\n\n $target.css({\n fontFamily: $source.css('fontFamily'),\n fontSize: $source.css('fontSize'),\n fontWeight: $source.css('fontWeight'),\n letterSpacing: $source.css('letterSpacing'),\n lineHeight: $source.css('lineHeight'),\n textAlign: $source.css('textAlign'),\n textIndent: $source.css('textIndent'),\n whiteSpace: $source.css('whiteSpace'),\n wordSpacing: $source.css('wordSpacing'),\n wordWrap: $source.css('wordWrap')\n });\n },\n\n /**\n * Returns the body's real scrollTop, discarding any window banding in Safari.\n *\n * @return {number}\n */\n getBodyScrollTop: function() {\n Garnish.getBodyScrollTop._scrollTop = document.body.scrollTop;\n\n if (Garnish.getBodyScrollTop._scrollTop < 0) {\n Garnish.getBodyScrollTop._scrollTop = 0;\n }\n else {\n Garnish.getBodyScrollTop._maxScrollTop = Garnish.$bod.outerHeight() - Garnish.$win.height();\n\n if (Garnish.getBodyScrollTop._scrollTop > Garnish.getBodyScrollTop._maxScrollTop) {\n Garnish.getBodyScrollTop._scrollTop = Garnish.getBodyScrollTop._maxScrollTop;\n }\n }\n\n return Garnish.getBodyScrollTop._scrollTop;\n },\n\n requestAnimationFrame: (function() {\n var raf = (\n window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n function(fn) {\n return window.setTimeout(fn, 20);\n }\n );\n\n return function(fn) {\n return raf(fn);\n };\n })(),\n\n cancelAnimationFrame: (function() {\n var cancel = (\n window.cancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.clearTimeout\n );\n\n return function(id) {\n return cancel(id);\n };\n })(),\n\n /**\n * Scrolls a container element to an element within it.\n *\n * @param {object} container Either an actual element or a jQuery collection.\n * @param {object} elem Either an actual element or a jQuery collection.\n */\n scrollContainerToElement: function(container, elem) {\n var $elem;\n\n if (typeof elem === 'undefined') {\n $elem = $(container);\n $container = $elem.scrollParent();\n }\n else {\n var $container = $(container);\n $elem = $(elem);\n }\n\n if ($container.prop('nodeName') === 'HTML' || $container[0] === Garnish.$doc[0]) {\n $container = Garnish.$win;\n }\n\n var scrollTop = $container.scrollTop(),\n elemOffset = $elem.offset().top;\n\n var elemScrollOffset;\n\n if ($container[0] === window) {\n elemScrollOffset = elemOffset - scrollTop;\n }\n else {\n elemScrollOffset = elemOffset - $container.offset().top;\n }\n\n var targetScrollTop = false;\n\n // Is the element above the fold?\n if (elemScrollOffset < 0) {\n targetScrollTop = scrollTop + elemScrollOffset - 10;\n }\n else {\n var elemHeight = $elem.outerHeight(),\n containerHeight = ($container[0] === window ? window.innerHeight : $container[0].clientHeight);\n\n // Is it below the fold?\n if (elemScrollOffset + elemHeight > containerHeight) {\n targetScrollTop = scrollTop + (elemScrollOffset - (containerHeight - elemHeight)) + 10;\n }\n }\n\n if (targetScrollTop !== false) {\n // Velocity only allows you to scroll to an arbitrary position if you're scrolling the main window\n if ($container[0] === window) {\n $('html').velocity('scroll', {\n offset: targetScrollTop + 'px',\n mobileHA: false\n });\n }\n else {\n $container.scrollTop(targetScrollTop);\n }\n }\n },\n\n SHAKE_STEPS: 10,\n SHAKE_STEP_DURATION: 25,\n\n /**\n * Shakes an element.\n *\n * @param {object} elem Either an actual element or a jQuery collection.\n * @param {string} prop The property that should be adjusted (default is 'margin-left').\n */\n shake: function(elem, prop) {\n var $elem = $(elem);\n\n if (!prop) {\n prop = 'margin-left';\n }\n\n var startingPoint = parseInt($elem.css(prop));\n if (isNaN(startingPoint)) {\n startingPoint = 0;\n }\n\n for (var i = 0; i <= Garnish.SHAKE_STEPS; i++) {\n (function(i) {\n setTimeout(function() {\n Garnish.shake._properties = {};\n Garnish.shake._properties[prop] = startingPoint + (i % 2 ? -1 : 1) * (10 - i);\n $elem.velocity(Garnish.shake._properties, Garnish.SHAKE_STEP_DURATION);\n }, (Garnish.SHAKE_STEP_DURATION * i));\n })(i);\n }\n },\n\n /**\n * Returns the first element in an array or jQuery collection.\n *\n * @param {object} elem\n * @return mixed\n */\n getElement: function(elem) {\n return $.makeArray(elem)[0];\n },\n\n /**\n * Returns the beginning of an input's name= attribute value with any [bracktes] stripped out.\n *\n * @param {object} elem\n * @return string|null\n */\n getInputBasename: function(elem) {\n var name = $(elem).attr('name');\n\n if (name) {\n return name.replace(/\\[.*/, '');\n }\n else {\n return null;\n }\n },\n\n /**\n * Returns an input's value as it would be POSTed.\n * So unchecked checkboxes and radio buttons return null,\n * and multi-selects whose name don't end in \"[]\" only return the last selection\n *\n * @param {object} $input\n * @return {(string|string[])}\n */\n getInputPostVal: function($input) {\n var type = $input.attr('type'),\n val = $input.val();\n\n // Is this an unchecked checkbox or radio button?\n if ((type === 'checkbox' || type === 'radio')) {\n if ($input.prop('checked')) {\n return val;\n }\n else {\n return null;\n }\n }\n\n // Flatten any array values whose input name doesn't end in \"[]\"\n // - e.g. a multi-select\n else if (Garnish.isArray(val) && $input.attr('name').substr(-2) !== '[]') {\n if (val.length) {\n return val[val.length - 1];\n }\n else {\n return null;\n }\n }\n\n // Just return the value\n else {\n return val;\n }\n },\n\n /**\n * Returns the inputs within a container\n *\n * @param {object} container The container element. Can be either an actual element or a jQuery collection.\n * @return {object}\n */\n findInputs: function(container) {\n return $(container).find('input,text,textarea,select,button');\n },\n\n /**\n * Returns the post data within a container.\n *\n * @param {object} container\n * @return {array}\n */\n getPostData: function(container) {\n var postData = {},\n arrayInputCounters = {},\n $inputs = Garnish.findInputs(container);\n\n var inputName;\n\n for (var i = 0; i < $inputs.length; i++) {\n var $input = $inputs.eq(i);\n\n if ($input.prop('disabled')) {\n continue;\n }\n\n inputName = $input.attr('name');\n if (!inputName) {\n continue;\n }\n\n var inputVal = Garnish.getInputPostVal($input);\n if (inputVal === null) {\n continue;\n }\n\n var isArrayInput = (inputName.substr(-2) === '[]');\n\n if (isArrayInput) {\n // Get the cropped input name\n var croppedName = inputName.substring(0, inputName.length - 2);\n\n // Prep the input counter\n if (typeof arrayInputCounters[croppedName] === 'undefined') {\n arrayInputCounters[croppedName] = 0;\n }\n }\n\n if (!Garnish.isArray(inputVal)) {\n inputVal = [inputVal];\n }\n\n for (var j = 0; j < inputVal.length; j++) {\n if (isArrayInput) {\n inputName = croppedName + '[' + arrayInputCounters[croppedName] + ']';\n arrayInputCounters[croppedName]++;\n }\n\n postData[inputName] = inputVal[j];\n }\n }\n\n return postData;\n },\n\n copyInputValues: function(source, target) {\n var $sourceInputs = Garnish.findInputs(source),\n $targetInputs = Garnish.findInputs(target);\n\n for (var i = 0; i < $sourceInputs.length; i++) {\n if (typeof $targetInputs[i] === 'undefined') {\n break;\n }\n\n $targetInputs.eq(i).val(\n $sourceInputs.eq(i).val()\n );\n }\n },\n\n /**\n * Returns whether the \"Ctrl\" key is pressed (or ⌘ if this is a Mac) for a given keyboard event\n *\n * @param ev The keyboard event\n *\n * @return {boolean} Whether the \"Ctrl\" key is pressed\n */\n isCtrlKeyPressed: function(ev) {\n if (window.navigator.platform.match(/Mac/)) {\n // metaKey maps to ⌘ on Macs\n return ev.metaKey;\n }\n else {\n // Both altKey and ctrlKey == true on some Windows keyboards when the right-hand ALT key is pressed\n // so just be safe and make sure altKey == false\n return (ev.ctrlKey && !ev.altKey);\n }\n },\n\n _eventHandlers: [],\n\n _normalizeEvents: function(events) {\n if (typeof events === 'string') {\n events = events.split(' ');\n }\n\n for (var i = 0; i < events.length; i++) {\n if (typeof events[i] === 'string') {\n events[i] = events[i].split('.');\n }\n }\n\n return events;\n },\n\n on: function(target, events, data, handler) {\n if (typeof data === 'function') {\n handler = data;\n data = {};\n }\n\n events = this._normalizeEvents(events);\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n this._eventHandlers.push({\n target: target,\n type: ev[0],\n namespace: ev[1],\n data: data,\n handler: handler\n });\n }\n },\n\n off: function(target, events, handler) {\n events = this._normalizeEvents(events);\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n\n for (var j = this._eventHandlers.length - 1; j >= 0; j--) {\n var eventHandler = this._eventHandlers[j];\n\n if (\n eventHandler.target === target &&\n eventHandler.type === ev[0] &&\n (!ev[1] || eventHandler.namespace === ev[1]) &&\n eventHandler.handler === handler\n ) {\n this._eventHandlers.splice(j, 1);\n }\n }\n }\n }\n});\n\n\n/**\n * Garnish base class\n */\nGarnish.Base = Base.extend({\n\n settings: null,\n\n _eventHandlers: null,\n _namespace: null,\n _$listeners: null,\n _disabled: false,\n\n constructor: function() {\n this._eventHandlers = [];\n this._namespace = '.Garnish' + Math.floor(Math.random() * 1000000000);\n this._listeners = [];\n this.init.apply(this, arguments);\n },\n\n init: $.noop,\n\n setSettings: function(settings, defaults) {\n var baseSettings = (typeof this.settings === 'undefined' ? {} : this.settings);\n this.settings = $.extend({}, baseSettings, defaults, settings);\n },\n\n on: function(events, data, handler) {\n if (typeof data === 'function') {\n handler = data;\n data = {};\n }\n\n events = Garnish._normalizeEvents(events);\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n this._eventHandlers.push({\n type: ev[0],\n namespace: ev[1],\n data: data,\n handler: handler\n });\n }\n },\n\n off: function(events, handler) {\n events = Garnish._normalizeEvents(events);\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n\n for (var j = this._eventHandlers.length - 1; j >= 0; j--) {\n var eventHandler = this._eventHandlers[j];\n\n if (\n eventHandler.type === ev[0] &&\n (!ev[1] || eventHandler.namespace === ev[1]) &&\n eventHandler.handler === handler\n ) {\n this._eventHandlers.splice(j, 1);\n }\n }\n }\n },\n\n trigger: function(type, data) {\n var ev = {\n type: type,\n target: this\n };\n\n // instance level event handlers\n var i, handler, _ev;\n for (i = 0; i < this._eventHandlers.length; i++) {\n handler = this._eventHandlers[i];\n\n if (handler.type === type) {\n _ev = $.extend({data: handler.data}, data, ev);\n handler.handler(_ev);\n }\n }\n\n // class level event handlers\n for (i = 0; i < Garnish._eventHandlers.length; i++) {\n handler = Garnish._eventHandlers[i];\n\n if (this instanceof handler.target && handler.type === type) {\n _ev = $.extend({data: handler.data}, data, ev);\n handler.handler(_ev);\n }\n }\n },\n\n _splitEvents: function(events) {\n if (typeof events === 'string') {\n events = events.split(',');\n\n for (var i = 0; i < events.length; i++) {\n events[i] = $.trim(events[i]);\n }\n }\n\n return events;\n },\n\n _formatEvents: function(events) {\n events = this._splitEvents(events).slice(0);\n\n for (var i = 0; i < events.length; i++) {\n events[i] += this._namespace;\n }\n\n return events.join(' ');\n },\n\n addListener: function(elem, events, data, func) {\n var $elem = $(elem);\n\n // Ignore if there aren't any elements\n if (!$elem.length) {\n return;\n }\n\n events = this._splitEvents(events);\n\n // Param mapping\n if (typeof func === 'undefined' && typeof data !== 'object') {\n // (elem, events, func)\n func = data;\n data = {};\n }\n\n if (typeof func === 'function') {\n func = func.bind(this);\n }\n else {\n func = this[func].bind(this);\n }\n\n $elem.on(this._formatEvents(events), data, $.proxy(function() {\n if (!this._disabled) {\n return func.apply(this, arguments);\n }\n }, this));\n\n // Remember that we're listening to this element\n if ($.inArray(elem, this._listeners) === -1) {\n this._listeners.push(elem);\n }\n },\n\n removeListener: function(elem, events) {\n $(elem).off(this._formatEvents(events));\n },\n\n removeAllListeners: function(elem) {\n $(elem).off(this._namespace);\n },\n\n disable: function() {\n this._disabled = true;\n },\n\n enable: function() {\n this._disabled = false;\n },\n\n destroy: function() {\n this.trigger('destroy');\n this.removeAllListeners(this._listeners);\n }\n});\n\n// Custom events\n// -----------------------------------------------------------------------------\n\nvar erd;\n\nfunction getErd() {\n if (typeof erd === 'undefined') {\n erd = elementResizeDetectorMaker({\n callOnAdd: false\n });\n }\n\n return erd;\n}\n\nfunction triggerResizeEvent(elem) {\n $(elem).trigger('resize');\n}\n\n// Work them into jQuery's event system\n$.extend(jQuery.event.special, {\n activate: {\n setup: function(data, namespaces, eventHandle) {\n var activateNamespace = this._namespace + '-activate';\n var $elem = $(this);\n\n $elem.on({\n 'mousedown.garnish-activate': function(e) {\n // Prevent buttons from getting focus on click\n e.preventDefault();\n },\n 'click.garnish-activate': function(e) {\n e.preventDefault();\n\n if (!$elem.hasClass('disabled')) {\n $elem.trigger('activate');\n }\n },\n 'keydown.garnish-activate': function(e) {\n // Ignore if the event was bubbled up, or if it wasn't the space key\n if (this !== $elem[0] || e.keyCode !== Garnish.SPACE_KEY) {\n return;\n }\n\n e.preventDefault();\n\n if (!$elem.hasClass('disabled')) {\n $elem.addClass('active');\n\n Garnish.$doc.on('keyup.garnish-activate', function(e) {\n $elem.removeClass('active');\n\n if (e.keyCode === Garnish.SPACE_KEY) {\n e.preventDefault();\n $elem.trigger('activate');\n }\n\n Garnish.$doc.off('keyup.garnish-activate');\n });\n }\n }\n });\n\n if (!$elem.hasClass('disabled')) {\n $elem.attr('tabindex', '0');\n } else {\n $elem.removeAttr('tabindex');\n }\n },\n teardown: function() {\n $(this).off('.garnish-activate');\n }\n },\n\n textchange: {\n setup: function(data, namespaces, eventHandle) {\n var $elem = $(this);\n $elem.data('garnish-textchange-value', $elem.val());\n $elem.on('keypress.garnish-textchange keyup.garnish-textchange change.garnish-textchange blur.garnish-textchange', function(e) {\n var val = $elem.val();\n if (val !== $elem.data('garnish-textchange-value')) {\n $elem.data('garnish-textchange-value', val);\n $elem.trigger('textchange');\n }\n });\n },\n teardown: function() {\n $(this).off('.garnish-textchange');\n },\n handle: function(ev, data) {\n var el = this;\n var args = arguments;\n var delay = data && typeof data.delay !== 'undefined' ? data.delay : (ev.data && ev.data.delay !== undefined ? ev.data.delay : null);\n var handleObj = ev.handleObj;\n var targetData = $.data(ev.target);\n\n // Was this event configured with a delay?\n if (delay) {\n if (targetData.delayTimeout) {\n clearTimeout(targetData.delayTimeout);\n }\n\n targetData.delayTimeout = setTimeout(function() {\n handleObj.handler.apply(el, args);\n }, delay);\n } else {\n return handleObj.handler.apply(el, args);\n }\n }\n },\n\n resize: {\n setup: function(data, namespaces, eventHandle) {\n // window is the only element that natively supports a resize event\n if (this === window) {\n return false;\n }\n\n $('> :last-child', this).addClass('last');\n getErd().listenTo(this, triggerResizeEvent)\n },\n teardown: function() {\n if (this === window) {\n return false;\n }\n\n getErd().removeListener(this, triggerResizeEvent);\n }\n }\n});\n\n// Give them their own element collection chaining methods\njQuery.each(['activate', 'textchange', 'resize'], function(i, name) {\n jQuery.fn[name] = function(data, fn) {\n return arguments.length > 0 ?\n this.on(name, null, data, fn) :\n this.trigger(name);\n };\n});\n\n/** global: Garnish */\n/**\n * Base drag class\n *\n * Does all the grunt work for manipulating elements via click-and-drag,\n * while leaving the actual element manipulation up to a subclass.\n */\nGarnish.BaseDrag = Garnish.Base.extend(\n {\n $items: null,\n\n dragging: false,\n\n mousedownX: null,\n mousedownY: null,\n realMouseX: null,\n realMouseY: null,\n mouseX: null,\n mouseY: null,\n mouseDistX: null,\n mouseDistY: null,\n mouseOffsetX: null,\n mouseOffsetY: null,\n\n $targetItem: null,\n\n scrollProperty: null,\n scrollAxis: null,\n scrollDist: null,\n scrollProxy: null,\n scrollFrame: null,\n\n _: null,\n\n /**\n * Constructor\n *\n * @param {object} items Elements that should be draggable right away. (Can be skipped.)\n * @param {object} settings Any settings that should override the defaults.\n */\n init: function(items, settings) {\n // Param mapping\n if (typeof settings === 'undefined' && $.isPlainObject(items)) {\n // (settings)\n settings = items;\n items = null;\n }\n\n this.settings = $.extend({}, Garnish.BaseDrag.defaults, settings);\n\n this.$items = $();\n this._ = {};\n\n if (items) {\n this.addItems(items);\n }\n },\n\n /**\n * Returns whether dragging is allowed right now.\n */\n allowDragging: function() {\n return true;\n },\n\n /**\n * Start Dragging\n */\n startDragging: function() {\n this.dragging = true;\n this.onDragStart();\n },\n\n /**\n * Drag\n */\n drag: function(didMouseMove) {\n if (didMouseMove) {\n // Is the mouse up against one of the window edges?\n this.drag._scrollProperty = null;\n\n if (this.settings.axis !== Garnish.X_AXIS) {\n // Scrolling up?\n this.drag._winScrollTop = Garnish.$win.scrollTop();\n this.drag._minMouseScrollY = this.drag._winScrollTop + Garnish.BaseDrag.windowScrollTargetSize;\n\n if (this.mouseY < this.drag._minMouseScrollY) {\n this.drag._scrollProperty = 'scrollTop';\n this.drag._scrollAxis = 'Y';\n this.drag._scrollDist = Math.round((this.mouseY - this.drag._minMouseScrollY) / 2);\n }\n else {\n // Scrolling down?\n this.drag._maxMouseScrollY = this.drag._winScrollTop + Garnish.$win.height() - Garnish.BaseDrag.windowScrollTargetSize;\n\n if (this.mouseY > this.drag._maxMouseScrollY) {\n this.drag._scrollProperty = 'scrollTop';\n this.drag._scrollAxis = 'Y';\n this.drag._scrollDist = Math.round((this.mouseY - this.drag._maxMouseScrollY) / 2);\n }\n }\n }\n\n if (!this.drag._scrollProperty && this.settings.axis !== Garnish.Y_AXIS) {\n // Scrolling left?\n this.drag._winScrollLeft = Garnish.$win.scrollLeft();\n this.drag._minMouseScrollX = this.drag._winScrollLeft + Garnish.BaseDrag.windowScrollTargetSize;\n\n if (this.mouseX < this.drag._minMouseScrollX) {\n this.drag._scrollProperty = 'scrollLeft';\n this.drag._scrollAxis = 'X';\n this.drag._scrollDist = Math.round((this.mouseX - this.drag._minMouseScrollX) / 2);\n }\n else {\n // Scrolling right?\n this.drag._maxMouseScrollX = this.drag._winScrollLeft + Garnish.$win.width() - Garnish.BaseDrag.windowScrollTargetSize;\n\n if (this.mouseX > this.drag._maxMouseScrollX) {\n this.drag._scrollProperty = 'scrollLeft';\n this.drag._scrollAxis = 'X';\n this.drag._scrollDist = Math.round((this.mouseX - this.drag._maxMouseScrollX) / 2);\n }\n }\n }\n\n if (this.drag._scrollProperty) {\n // Are we starting to scroll now?\n if (!this.scrollProperty) {\n if (!this.scrollProxy) {\n this.scrollProxy = this._scrollWindow.bind(this);\n }\n\n if (this.scrollFrame) {\n Garnish.cancelAnimationFrame(this.scrollFrame);\n this.scrollFrame = null;\n }\n\n this.scrollFrame = Garnish.requestAnimationFrame(this.scrollProxy);\n }\n\n this.scrollProperty = this.drag._scrollProperty;\n this.scrollAxis = this.drag._scrollAxis;\n this.scrollDist = this.drag._scrollDist;\n }\n else {\n this._cancelWindowScroll();\n }\n }\n\n this.onDrag();\n },\n\n /**\n * Stop Dragging\n */\n stopDragging: function() {\n this.dragging = false;\n this.onDragStop();\n\n // Clear the scroll animation\n this._cancelWindowScroll();\n },\n\n /**\n * Add Items\n *\n * @param {object} items Elements that should be draggable.\n */\n addItems: function(items) {\n items = $.makeArray(items);\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n\n // Make sure this element doesn't belong to another dragger\n if ($.data(item, 'drag')) {\n Garnish.log('Element was added to more than one dragger');\n $.data(item, 'drag').removeItems(item);\n }\n\n // Add the item\n $.data(item, 'drag', this);\n\n // Add the listener\n this.addListener(item, 'mousedown', '_handleMouseDown');\n }\n\n this.$items = this.$items.add(items);\n },\n\n /**\n * Remove Items\n *\n * @param {object} items Elements that should no longer be draggable.\n */\n removeItems: function(items) {\n items = $.makeArray(items);\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n\n // Make sure we actually know about this item\n var index = $.inArray(item, this.$items);\n if (index !== -1) {\n this._deinitItem(item);\n this.$items.splice(index, 1);\n }\n }\n },\n\n /**\n * Remove All Items\n */\n removeAllItems: function() {\n for (var i = 0; i < this.$items.length; i++) {\n this._deinitItem(this.$items[i]);\n }\n\n this.$items = $();\n },\n\n /**\n * Destroy\n */\n destroy: function() {\n this.removeAllItems();\n this.base();\n },\n\n // Events\n // ---------------------------------------------------------------------\n\n /**\n * On Drag Start\n */\n onDragStart: function() {\n Garnish.requestAnimationFrame(function() {\n this.trigger('dragStart');\n this.settings.onDragStart();\n }.bind(this));\n },\n\n /**\n * On Drag\n */\n onDrag: function() {\n Garnish.requestAnimationFrame(function() {\n this.trigger('drag');\n this.settings.onDrag();\n }.bind(this));\n },\n\n /**\n * On Drag Stop\n */\n onDragStop: function() {\n Garnish.requestAnimationFrame(function() {\n this.trigger('dragStop');\n this.settings.onDragStop();\n }.bind(this));\n },\n\n // Private methods\n // ---------------------------------------------------------------------\n\n /**\n * Handle Mouse Down\n */\n _handleMouseDown: function(ev) {\n // Ignore right clicks\n if (ev.which !== Garnish.PRIMARY_CLICK) {\n return;\n }\n\n // Ignore if we already have a target\n if (this.$targetItem) {\n return;\n }\n\n // Ignore if they didn't actually click on the handle\n var $target = $(ev.target),\n $handle = this._getItemHandle(ev.currentTarget);\n\n if (!$target.is($handle) && !$target.closest($handle).length) {\n return;\n }\n\n // Make sure the target isn't a button (unless the button is the handle)\n if (ev.currentTarget !== ev.target && this.settings.ignoreHandleSelector) {\n if (\n $target.is(this.settings.ignoreHandleSelector) ||\n $target.closest(this.settings.ignoreHandleSelector).length\n ) {\n return;\n }\n }\n\n ev.preventDefault();\n\n // Make sure that dragging is allowed right now\n if (!this.allowDragging()) {\n return;\n }\n\n // Capture the target\n this.$targetItem = $(ev.currentTarget);\n\n // Capture the current mouse position\n this.mousedownX = this.mouseX = ev.pageX;\n this.mousedownY = this.mouseY = ev.pageY;\n\n // Capture the difference between the mouse position and the target item's offset\n var offset = this.$targetItem.offset();\n this.mouseOffsetX = ev.pageX - offset.left;\n this.mouseOffsetY = ev.pageY - offset.top;\n\n // Listen for mousemove, mouseup\n this.addListener(Garnish.$doc, 'mousemove', '_handleMouseMove');\n this.addListener(Garnish.$doc, 'mouseup', '_handleMouseUp');\n },\n\n _getItemHandle: function(item) {\n if (this.settings.handle) {\n if (typeof this.settings.handle === 'object') {\n return $(this.settings.handle);\n }\n\n if (typeof this.settings.handle === 'string') {\n return $(this.settings.handle, item);\n }\n\n if (typeof this.settings.handle === 'function') {\n return $(this.settings.handle(item));\n }\n }\n\n return $(item);\n },\n\n /**\n * Handle Mouse Move\n */\n _handleMouseMove: function(ev) {\n ev.preventDefault();\n\n this.realMouseX = ev.pageX;\n this.realMouseY = ev.pageY;\n\n if (this.settings.axis !== Garnish.Y_AXIS) {\n this.mouseX = ev.pageX;\n }\n\n if (this.settings.axis !== Garnish.X_AXIS) {\n this.mouseY = ev.pageY;\n }\n\n this.mouseDistX = this.mouseX - this.mousedownX;\n this.mouseDistY = this.mouseY - this.mousedownY;\n\n if (!this.dragging) {\n // Has the mouse moved far enough to initiate dragging yet?\n this._handleMouseMove._mouseDist = Garnish.getDist(this.mousedownX, this.mousedownY, this.realMouseX, this.realMouseY);\n\n if (this._handleMouseMove._mouseDist >= Garnish.BaseDrag.minMouseDist) {\n this.startDragging();\n }\n }\n\n if (this.dragging) {\n this.drag(true);\n }\n },\n\n /**\n * Handle Moues Up\n */\n _handleMouseUp: function(ev) {\n // Unbind the document events\n this.removeAllListeners(Garnish.$doc);\n\n if (this.dragging) {\n this.stopDragging();\n }\n\n this.$targetItem = null;\n },\n\n /**\n * Scroll Window\n */\n _scrollWindow: function() {\n this._.scrollPos = Garnish.$scrollContainer[this.scrollProperty]();\n Garnish.$scrollContainer[this.scrollProperty](this._.scrollPos + this.scrollDist);\n\n this['mouse' + this.scrollAxis] -= this._.scrollPos - Garnish.$scrollContainer[this.scrollProperty]();\n this['realMouse' + this.scrollAxis] = this['mouse' + this.scrollAxis];\n\n this.drag();\n\n this.scrollFrame = Garnish.requestAnimationFrame(this.scrollProxy);\n },\n\n /**\n * Cancel Window Scroll\n */\n _cancelWindowScroll: function() {\n if (this.scrollFrame) {\n Garnish.cancelAnimationFrame(this.scrollFrame);\n this.scrollFrame = null;\n }\n\n this.scrollProperty = null;\n this.scrollAxis = null;\n this.scrollDist = null;\n },\n\n /**\n * Deinitialize an item.\n */\n _deinitItem: function(item) {\n this.removeAllListeners(item);\n $.removeData(item, 'drag');\n }\n },\n {\n minMouseDist: 1,\n windowScrollTargetSize: 25,\n\n defaults: {\n handle: null,\n axis: null,\n ignoreHandleSelector: 'input, textarea, button, select, .btn',\n\n onDragStart: $.noop,\n onDrag: $.noop,\n onDragStop: $.noop\n }\n }\n);\n\n/** global: Garnish */\n/**\n * Checkbox select class\n */\nGarnish.CheckboxSelect = Garnish.Base.extend(\n {\n $container: null,\n $all: null,\n $options: null,\n\n init: function(container) {\n this.$container = $(container);\n\n // Is this already a checkbox select?\n if (this.$container.data('checkboxSelect')) {\n Garnish.log('Double-instantiating a checkbox select on an element');\n this.$container.data('checkbox-select').destroy();\n }\n\n this.$container.data('checkboxSelect', this);\n\n var $checkboxes = this.$container.find('input');\n this.$all = $checkboxes.filter('.all:first');\n this.$options = $checkboxes.not(this.$all);\n\n this.addListener(this.$all, 'change', 'onAllChange');\n },\n\n onAllChange: function() {\n var isAllChecked = this.$all.prop('checked');\n\n this.$options.prop({\n checked: isAllChecked,\n disabled: isAllChecked\n });\n },\n\n /**\n * Destroy\n */\n destroy: function() {\n this.$container.removeData('checkboxSelect');\n this.base();\n }\n }\n);\n\n/** global: Garnish */\n/**\n * Context Menu\n */\nGarnish.ContextMenu = Garnish.Base.extend(\n {\n $target: null,\n options: null,\n $menu: null,\n showingMenu: false,\n\n /**\n * Constructor\n */\n init: function(target, options, settings) {\n this.$target = $(target);\n\n // Is this already a context menu target?\n if (this.$target.data('contextmenu')) {\n Garnish.log('Double-instantiating a context menu on an element');\n this.$target.data('contextmenu').destroy();\n }\n\n this.$target.data('contextmenu', this);\n\n this.options = options;\n this.setSettings(settings, Garnish.ContextMenu.defaults);\n\n Garnish.ContextMenu.counter++;\n\n this.enable();\n },\n\n /**\n * Build Menu\n */\n buildMenu: function() {\n this.$menu = $('
');\n\n var $ul = $('