{"version":3,"file":"5524433d151be85282b7352b.js?3.6.14.7428b935c.1727745705662","mappings":"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","sources":["webpack://mono-repo/./src/js/lib/nx-drag/jquery-netx-drag.js"],"sourcesContent":["/**\n * NetxDrag\n * Rather useless on its own.\n * Not \"useless\"- just it will only fire off events; it will not manipulate tho DOM in any fashion.\n * This library is meant to be extended.\n */\nimport 'javascript-detect-element-resize';\n\nimport {simulateClickBody} from '@netx/core/lib/utils';\n\n// These things will hold true for every instance\nvar dir_map = {x: 'left', y: 'top'},\n\t// Some math functions that will be used a bit\n\tround = Math.round,\n\tabs = Math.abs;\n\n// Constructor\nfunction NetxDrag(options, el) {\n\tthis.$proxyEl = false;\n\n\t// Extend options\n\tthis.options = options;\n\t// Main element\n\tthis.el = $(el);\n\t// Uniqueness\n\tthis.uuid = new Date().getTime();\n\tthis.baseName = 'netx-drag';\n\tthis.name = this.baseName + '-' + this.uuid;\n\tthis.ns = '.' + this.name;\n\n\tthis.initialized = false;\n\n\t// Target\n\tthis.targetItem = options.targetItem\n\t\t? options.targetItem\n\t\t: this.$proxyEl || this.el;\n\n\tthis.targetItems = this.targetItem;\n\t// The data to return with a custom event\n\tthis.ui = null;\n\t// If this has not been extended by another plugin\n\tthis.stand_alone = true;\n\t// Initialize\n\tthis.init();\n}\n\n// Methods\nvar methods = {\n\t/**\n\t * Inititalize\n\t * Be sure to call super if you override this\n\t * @returns {object} this\n\t */\n\tinit: function(options) {\n\t\tthis.is_touch = !!('ontouchstart' in window);\n\t\tthis.$win = $(window);\n\t\tthis.$doc = $(document);\n\t\tthis.$body = $('body');\n\t\tthis.win_size = {w: 0, h: 0};\n\n\t\tif (options) {\n\t\t\tthis.options = options;\n\t\t}\n\n\t\tif (this.is_touch) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Debounced/throttled methods\n\t\tthis.calculateBoundContainer = _.throttle(\n\t\t\tthis.calculateBoundContainer,\n\t\t\t100,\n\t\t);\n\t\tthis.calculateScrollContainer = _.throttle(\n\t\t\tthis.calculateScrollContainer,\n\t\t\t1500,\n\t\t);\n\t\tthis.debouncedUpdateItems = _.debounce(this.updateItems, 100);\n\n\t\t// We were already initialized once but something has changed via the outside world\n\t\tif (this.initialized) {\n\t\t\tthis.updateItems();\n\t\t}\n\n\t\t// For styling purposes\n\t\tthis.el.addClass(this.name);\n\n\t\t// We wouldn't to start of on the wrong foot\n\t\tthis.disabled = this.overlapped = this.is_dragging = false;\n\n\t\t// Get our window and docuemnt sizes\n\t\tthis._updateStageSize();\n\n\t\t// No static positions!\n\t\tvar pos = (this.$proxyEl || this.el).css('position');\n\t\t(this.$proxyEl || this.el).css(\n\t\t\t'position',\n\t\t\tpos === 'static' ? 'relative' : pos,\n\t\t);\n\n\t\t// Setup events\n\t\tthis._events();\n\n\t\tthis.diff_top_correction = 0;\n\n\t\t// Keep tabs on our containers\n\t\tthis.$boundContainer = $(this.options.boundContainer);\n\t\tthis.$scrollContainer = $(this.options.scrollContainer);\n\n\t\tthis.calculateBoundContainer();\n\t\tthis.calculateScrollContainer();\n\n\t\tthis.$win.off(this.ns).on(\n\t\t\tthis._nsEvent('resize'),\n\t\t\t_.throttle(\n\t\t\t\t_.bind(function() {\n\t\t\t\t\t// Update our window and docuemnt sizes\n\t\t\t\t\tthis._updateStageSize();\n\t\t\t\t\tthis.calculateBoundContainer();\n\t\t\t\t\tthis.calculateScrollContainer();\n\t\t\t\t}, this),\n\t\t\t\t150,\n\t\t\t),\n\t\t);\n\n\t\tthis.$scrollContainer\n\t\t\t.off(this.ns)\n\t\t\t.on(this._nsEvent('scroll'), _.bind(this.calculateScrollContainer, this));\n\n\t\t// Listen for change in children and reattach events\n\t\tif (!this.observer) {\n\t\t\tthis.observer = new MutationObserver(\n\t\t\t\t_.bind(function(mutations) {\n\t\t\t\t\tvar additions = 0,\n\t\t\t\t\t\tremovals = 0,\n\t\t\t\t\t\taddedNodes,\n\t\t\t\t\t\taddedClassList,\n\t\t\t\t\t\tremovedClassList,\n\t\t\t\t\t\tremovedNodes;\n\n\t\t\t\t\t_.each(\n\t\t\t\t\t\tmutations,\n\t\t\t\t\t\tfunction(mutation, k) {\n\t\t\t\t\t\t\taddedNodes = mutation.addedNodes;\n\t\t\t\t\t\t\taddedClassList =\n\t\t\t\t\t\t\t\taddedNodes && addedNodes.length && addedNodes[0].classList;\n\t\t\t\t\t\t\tif (addedClassList && !addedClassList.contains('dummy')) {\n\t\t\t\t\t\t\t\tadditions++;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tremovedNodes = mutation.removedNodes;\n\t\t\t\t\t\t\tremovedClassList =\n\t\t\t\t\t\t\t\tremovedNodes &&\n\t\t\t\t\t\t\t\tremovedNodes.length &&\n\t\t\t\t\t\t\t\tremovedNodes[0].classList;\n\t\t\t\t\t\t\tif (removedClassList && !removedClassList.contains('dummy')) {\n\t\t\t\t\t\t\t\tremovals++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tthis,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (additions || removals) {\n\t\t\t\t\t\tthis.debouncedUpdateItems();\n\t\t\t\t\t}\n\t\t\t\t}, this),\n\t\t\t);\n\t\t\tthis.observer.observe(this.el[0], {childList: true});\n\t\t}\n\n\t\tthis.initialized = true;\n\n\t\treturn this;\n\t},\n\t/**\n\t * Calculate bounding container\n\t * @method\n\t */\n\tcalculateBoundContainer: function() {\n\t\tif (!this.el || this.el.isHidden()) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $boundContainer = this.$boundContainer;\n\t\tvar boundContainer = (this.boundContainer =\n\t\t\tthis.options.boundContainer !== window\n\t\t\t\t? {\n\t\t\t\t\t\tw: $boundContainer.outerWidth(true),\n\t\t\t\t\t\th: $boundContainer.outerHeight(true),\n\t\t\t\t\t\toffset: $boundContainer.offset(),\n\t\t\t\t\t\tposition: $boundContainer.position(),\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tw: $boundContainer.outerWidth(true),\n\t\t\t\t\t\th: $boundContainer.outerHeight(true),\n\t\t\t\t\t\toffset: {top: 0, left: 0},\n\t\t\t\t\t\tposition: {top: 0, left: 0},\n\t\t\t\t });\n\n\t\tvar offset = boundContainer.offset;\n\t\t_.extend(boundContainer, {\n\t\t\tx: offset.left,\n\t\t\ty: offset.top,\n\t\t\tx2: offset.left + boundContainer.w,\n\t\t\ty2: offset.top + boundContainer.h,\n\t\t});\n\n\t\tthis.calculateScrollContainer();\n\t\tthis.calculateScrollBoundOffset();\n\t},\n\t/**\n\t * Calculate scrolling container\n\t * @method\n\t */\n\tcalculateScrollContainer: function() {\n\t\tif (!this.el || this.el.isHidden()) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $scrollContainer = this.$scrollContainer;\n\t\tvar scrollContainer = (this.scrollContainer =\n\t\t\tthis.options.scrollContainer !== window\n\t\t\t\t? {\n\t\t\t\t\t\tw: $scrollContainer.outerWidth(true),\n\t\t\t\t\t\th: $scrollContainer.outerHeight(true),\n\t\t\t\t\t\toffset: $scrollContainer.offset(),\n\t\t\t\t\t\tposition: $scrollContainer.position(),\n\t\t\t\t\t\tscroll: {\n\t\t\t\t\t\t\tx: $scrollContainer.scrollLeft(),\n\t\t\t\t\t\t\ty: $scrollContainer.scrollTop(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscrollHeight: $scrollContainer[0].scrollHeight,\n\t\t\t\t\t\tscrollWidth: $scrollContainer[0].scrollWidth,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tw: $scrollContainer.outerWidth(true),\n\t\t\t\t\t\th: $scrollContainer.outerHeight(true),\n\t\t\t\t\t\toffset: {top: 0, left: 0},\n\t\t\t\t\t\tposition: {top: 0, left: 0},\n\t\t\t\t\t\tscroll: {\n\t\t\t\t\t\t\tx: this.$scrollContainer.scrollLeft(),\n\t\t\t\t\t\t\ty: this.$scrollContainer.scrollTop(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscrollHeight: $scrollContainer[0].scrollHeight,\n\t\t\t\t\t\tscrollWidth: $scrollContainer[0].scrollWidth,\n\t\t\t\t });\n\n\t\tvar offset = this.scrollContainer.offset;\n\t\t_.extend(this.scrollContainer, {\n\t\t\tx: offset.left,\n\t\t\ty: offset.top,\n\t\t\tx2: offset.left + scrollContainer.w,\n\t\t\ty2: offset.top + scrollContainer.h,\n\t\t});\n\n\t\tthis.calculateScrollBoundOffset();\n\t},\n\t/**\n\t * Calculate scroll bound offset\n\t * @method\n\t */\n\tcalculateScrollBoundOffset: function() {\n\t\tif (\n\t\t\t!_.isUndefined(this.scrollContainer) &&\n\t\t\t!_.isUndefined(this.boundContainer) &&\n\t\t\tthis.$boundContainer[0] !== this.$scrollContainer[0]\n\t\t) {\n\t\t\tvar boundContainer = this.boundContainer,\n\t\t\t\tscrollContainer = this.scrollContainer;\n\n\t\t\t_.extend(boundContainer, {\n\t\t\t\trelative: {\n\t\t\t\t\tx: boundContainer.x - scrollContainer.x,\n\t\t\t\t\ty: boundContainer.y - scrollContainer.y,\n\t\t\t\t\tx2: boundContainer.x - scrollContainer.x + boundContainer.w,\n\t\t\t\t\ty2: boundContainer.y - scrollContainer.y + boundContainer.h,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t},\n\t/**\n\t * Calculate item bound offset\n\t * @method\n\t */\n\tcalculateItemBoundOffset: function() {\n\t\tif (\n\t\t\t!_.isUndefined(this.itemContainer) &&\n\t\t\t!_.isUndefined(this.boundContainer)\n\t\t) {\n\t\t\tvar boundContainer = this.boundContainer,\n\t\t\t\titemContainer = this.itemContainer;\n\n\t\t\t_.extend(itemContainer, {\n\t\t\t\trelative: {\n\t\t\t\t\tx: itemContainer.x - boundContainer.x,\n\t\t\t\t\ty: itemContainer.y - boundContainer.y,\n\t\t\t\t\tx2: itemContainer.x - boundContainer.x + itemContainer.w,\n\t\t\t\t\ty2: itemContainer.y - boundContainer.y + itemContainer.h,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t},\n\t/**\n\t * Destruction\n\t * I strongly recommend overriding this\n\t * @returns {object} this\n\t */\n\tdestroy: function() {\n\t\tif (this.lingerTimer) clearInterval(this.lingerTimer);\n\n\t\tdelete this.items;\n\n\t\t// Kill all events in our namespace\n\t\tthis.el\n\t\t\t.off(this.ns)\n\t\t\t.children()\n\t\t\t.off(this.ns);\n\t\tthis.$doc && this.$doc.off(this.ns);\n\t\tthis.$scrollContainer && this.$scrollContainer.off(this.ns);\n\t\tthis.$win && this.$win.off(this.ns);\n\t\t//this.el.off( this.ns );\n\t\tthis.el.removeData('netxDrag');\n\t\tthis.observer && this.observer.disconnect();\n\n\t\tdelete this.el;\n\n\t\treturn this;\n\t},\n\t/**\n\t * Events\n\t * I strongly recommend against overriding this\n\t * @returns {object} this\n\t */\n\t_events: function() {\n\t\tthis.pntr_evts = {\n\t\t\tstart: this._nsEvent('touchstart') + ' ' + this._nsEvent('mousedown'), // Drag start\n\t\t\tmove: this._nsEvent('touchmove') + ' ' + this._nsEvent('mousemove'), // Dragging\n\t\t\tend: this._nsEvent('touchend') + ' ' + this._nsEvent('mouseup'), // Drag end\n\t\t};\n\n\t\t// Attach start event\n\t\t(this.$proxyEl || this.el)\n\t\t\t.off(this.pntr_evts.start)\n\t\t\t.on(\n\t\t\t\tthis.pntr_evts.start,\n\t\t\t\tthis.targetItems,\n\t\t\t\t_.bind(this._dragHandler, this),\n\t\t\t);\n\n\t\t// Dragging stopped\n\t\tthis.$doc.off(this.pntr_evts.end).on(\n\t\t\tthis.pntr_evts.end,\n\t\t\t_.bind(function(e) {\n\t\t\t\t// No outsiders\n\t\t\t\t// if( !this.is_touch ) {\n\t\t\t\t// \te.stopPropagation();\n\t\t\t\t// \te.preventDefault();\n\t\t\t\t// }\n\n\t\t\t\t// Drag is over, baby. Drag is over.\n\t\t\t\tthis.is_dragging = false;\n\n\t\t\t\t// Get out of here!\n\t\t\t\tif (!this.el || this.disabled || this.el.isHidden()) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t\t// Kill the move event\n\t\t\t\tthis.$doc.off(this.pntr_evts.move);\n\n\t\t\t\t// Trigger drag stop event\n\t\t\t\tif (this.drag_start) {\n\t\t\t\t\tthis._onDragStop(e);\n\t\t\t\t}\n\t\t\t}, this),\n\t\t);\n\n\t\treturn this;\n\t},\n\t/**\n\t * Get drag data\n\t * Our data that will be returned on a callback\n\t * You're probably going to want to override this in most cases\n\t * Make sure you maintain this formatting of the return though\n\t *\tvar os \t\t\t= this._getOffset( e ); <- You're always going to want this\n\t *\tos.someProperty = someValue;\n\t *\treturn os;\n\t * @param {event} e MouseEvent\n\t * @returns {object} Drag data\n\t */\n\t_getDragData: function(e) {\n\t\tvar os = this._getOffset(e);\n\t\treturn os;\n\t},\n\t/**\n\t * Get drag event\n\t * Get event to send to DOM\n\t * @param {string} eStr The event name\n\t * @param {event} e The event that took place\n\t * @param {object} ui Specifics of the plugin to send with event\n\t * @returns {event} Event\n\t */\n\t_getDragEvent: function(eStr, e, ui) {\n\t\t// Maybe instead of a javascript event we might want to pass custom Netx events?\n\t\t// Have to do it this way for IE\n\t\tvar _e = document.createEvent('MouseEvent');\n\t\tif (typeof e === 'undefined') {\n\t\t\te = {};\n\t\t}\n\t\t_e.initMouseEvent(\n\t\t\teStr,\n\t\t\ttrue,\n\t\t\ttrue,\n\t\t\twindow,\n\t\t\t0,\n\t\t\te.screenX,\n\t\t\te.screenY,\n\t\t\te.clientX,\n\t\t\te.clientY,\n\t\t\te.ctrlKey,\n\t\t\te.altKey,\n\t\t\te.shiftKey,\n\t\t\te.metaKey,\n\t\t\t0,\n\t\t\tnull,\n\t\t);\n\t\tif (typeof this.ui !== 'undefined') {\n\t\t\t_e.ui = this.ui;\n\t\t}\n\t\treturn _e;\n\t},\n\t/**\n\t * Get mouse position\n\t * Regulates mouse position for desktop and mobile\n\t * More than likely you're going to want to leave this alone\n\t * @param {event} e MouseEvent\n\t * @returns {object} Positions as left and top\n\t */\n\t_getMousePos: function(e) {\n\t\t// Check for touches\n\t\tif (e.originalEvent && e.originalEvent.touches) {\n\t\t\tvar oe = e.originalEvent;\n\t\t\te = oe.touches.length ? oe.touches[0] : oe.changedTouches[0];\n\t\t}\n\t\treturn {\n\t\t\tleft: e.clientX,\n\t\t\ttop: e.clientY,\n\t\t};\n\t},\n\t/**\n\t * Get offset\n\t * Item/Mouse position for dragged item\n\t * More than likely you're going to want to leave this alone\n\t * @param {event} e Event\n\t * @returns {object} Positions and Pointers\n\t */\n\t_getOffset: function(e) {\n\t\tvar adjustX = 0,\n\t\t\tadjustY = 0,\n\t\t\thelperHeight,\n\t\t\thelperOffset,\n\t\t\thelperWidth,\n\t\t\tdiff_x,\n\t\t\tdiff_y,\n\t\t\tleft,\n\t\t\tms_actl_pos,\n\t\t\tposition,\n\t\t\ttop;\n\n\t\t// Compensate for sizing difference (styles applied)\n\t\tif (this.$helper) {\n\t\t\thelperHeight = this.$helper.outerHeight();\n\t\t\thelperWidth = this.$helper.outerWidth();\n\t\t\thelperOffset = this.$helper.offset() || {left: 0, top: 0};\n\t\t\tadjustX = (helperWidth - this.$item.outerWidth()) / 2;\n\t\t\tadjustY = (helperHeight - this.$item.outerHeight()) / 2;\n\t\t}\n\n\t\t// Mouse pos\n\t\tms_actl_pos = this._getMousePos(e);\n\t\t// Keep in bounds\n\t\tif (ms_actl_pos.top > this.win_size.h) {\n\t\t\tms_actl_pos.top = this.win_size.h;\n\t\t}\n\t\tif (ms_actl_pos.left > this.win_size.w) {\n\t\t\tms_actl_pos.left = this.win_size.w;\n\t\t}\n\n\t\t// difference in movement x\n\t\tdiff_x = round(ms_actl_pos.left - this.ms_init_pos.left);\n\t\t// difference in movement y\n\t\tdiff_y = round(ms_actl_pos.top - this.ms_init_pos.top);\n\t\t// new position x\n\t\tleft = round(this.el_init_os.left + diff_x + this.scrollContainer.scroll.x);\n\t\t// new position y\n\t\ttop = round(this.el_init_os.top + diff_y + this.scrollContainer.scroll.y);\n\n\t\t// Take into account size adjustment\n\t\tleft -= adjustX;\n\t\ttop -= adjustY;\n\n\t\t// Center our helper element\n\t\tif (this.$helper) {\n\t\t\tleft =\n\t\t\t\tleft +\n\t\t\t\t(ms_actl_pos.left + this.scrollContainer.scroll.x - left) -\n\t\t\t\thelperWidth / 2;\n\t\t\ttop =\n\t\t\t\ttop +\n\t\t\t\t(ms_actl_pos.top + this.scrollContainer.scroll.y - top) -\n\t\t\t\thelperHeight / 2;\n\t\t}\n\n\t\t//console.log( ms_actl_pos.top );\n\t\tif (this.options.boundContainer != window) {\n\t\t\tposition = this.$boundContainer.css('position');\n\t\t\tif (\n\t\t\t\tposition == 'absolute' ||\n\t\t\t\tposition == 'relative' ||\n\t\t\t\tposition == 'fixed'\n\t\t\t) {\n\t\t\t\t// Take into account bound container offset left\n\t\t\t\tleft -= this.boundContainer.x;\n\t\t\t\t// Take into account bound container offset top\n\t\t\t\ttop -= this.boundContainer.y;\n\t\t\t}\n\t\t} else {\n\t\t\t// If the initializing element is not the target element\n\t\t\tif ((this.$proxyEl || this.el)[0] != this.targetItem[0]) {\n\t\t\t\t// Take off the scroll top\n\t\t\t\ttop -= this.scrollContainer.scroll.y;\n\t\t\t\t// Take off the scroll left\n\t\t\t\tleft -= this.scrollContainer.scroll.x;\n\t\t\t}\n\t\t\tleft -= this.win_scroll_x;\n\t\t\ttop -= this.win_scroll_y;\n\t\t}\n\n\t\tif (this.itemContainer) {\n\t\t\tif (left < this.boundContainer.x) {\n\t\t\t\tleft = this.boundContainer.x;\n\t\t\t}\n\t\t\tif (left + this.itemContainer.w > this.boundContainer.x2) {\n\t\t\t\tleft = this.boundContainer.x2 - this.itemContainer.w;\n\t\t\t}\n\t\t\tif (top < this.boundContainer.y) {\n\t\t\t\ttop = this.boundContainer.y;\n\t\t\t}\n\t\t\tif (top > this.boundContainer.y2 - this.itemContainer.h) {\n\t\t\t\ttop = this.boundContainer.y2 - this.itemContainer.h;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tposition: {\n\t\t\t\tleft: left,\n\t\t\t\ttop: top,\n\t\t\t},\n\t\t\tpointer: {\n\t\t\t\t// actual mouse position x\n\t\t\t\tleft: ms_actl_pos.left,\n\t\t\t\t// actual mouse position y\n\t\t\t\ttop: ms_actl_pos.top,\n\t\t\t\t// + ( scrlLeft - this.win_scroll_x )\tWas needed- not no more... but yeah.. maybe one day\n\t\t\t\tdiff_left: diff_x,\n\t\t\t\t// + ( scrlTop - this.win_scroll_y )\tWas needed- not no more... but yeah.. maybe one day\n\t\t\t\tdiff_top: diff_y,\n\t\t\t},\n\t\t};\n\t},\n\t/**\n\t * Ignore drag\n\t * Check if element shoudl be ignored for dragging\n\t * More than likely you're going to want to override this\n\t * @param {event} e Event\n\t * @returns {bool} Whether or not to ignore\n\t */\n\t_ignoreDrag: function(e) {\n\t\tif (this.options.handle) {\n\t\t\treturn !$(e.target).is(this.options.handle);\n\t\t}\n\t\treturn false;\n\t},\n\t/**\n\t * Manage scroll\n\t * Handle page scrolling during drag\n\t * Calls this._scrollIn()\n\t * @param {object} data The object returned from this._getOffset()\n\t * @returns {object} this\n\t */\n\t_manageScroll: function(data) {\n\t\tthis._scrollIn('x', data);\n\t\tthis._scrollIn('y', data);\n\t\t// Chain it\n\t\treturn this;\n\t},\n\t/**\n\t * Namespace your events\n\t * Append our namespace to event strings\n\t * @param {string} eStr Event name\n\t * @returns {string} Event name namespaced\n\t */\n\t_nsEvent: function(eStr) {\n\t\treturn (eStr || '') + this.ns;\n\t},\n\t/**\n\t * Do scrolling\n\t * More than likely you're going to want to leave this alone\n\t * Called by this._manageScroll(),\n\t * @param {string} axis X or Y (defaults to Y)\n\t * @param {object} data The object returned from this._getOffset()\n\t * @returns {object} this\n\t */\n\t_scrollIn: function(axis, data) {\n\t\tif (this.itemContainer) {\n\t\t\tvar maxX, maxY, scrollTo;\n\t\t\tscrollTo = 0;\n\t\t\tmaxX = this.scrollContainer.scrollWidth - this.scrollContainer.w;\n\t\t\tmaxY = this.scrollContainer.scrollHeight - this.scrollContainer.h;\n\t\t\tif (axis == 'y') {\n\t\t\t\tif (\n\t\t\t\t\tdata.pointer.top + this.options.scrollAreaSize >\n\t\t\t\t\tthis.scrollContainer.y2\n\t\t\t\t) {\n\t\t\t\t\tscrollTo =\n\t\t\t\t\t\tthis.scrollContainer.scroll.y + this.options.scrollIncrement;\n\t\t\t\t\tthis.scrollContainer.scroll.y = scrollTo <= maxY ? scrollTo : maxY;\n\t\t\t\t\tthis.$scrollContainer.scrollTop(this.scrollContainer.scroll.y);\n\t\t\t\t} else if (\n\t\t\t\t\tdata.pointer.top - this.options.scrollAreaSize <\n\t\t\t\t\tthis.scrollContainer.y\n\t\t\t\t) {\n\t\t\t\t\tscrollTo =\n\t\t\t\t\t\tthis.scrollContainer.scroll.y - this.options.scrollIncrement;\n\t\t\t\t\tthis.scrollContainer.scroll.y = scrollTo >= 0 ? scrollTo : 0;\n\t\t\t\t\tthis.$scrollContainer.scrollTop(this.scrollContainer.scroll.y);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (axis == 'x') {\n\t\t\t\tif (\n\t\t\t\t\tdata.pointer.left + this.options.scrollAreaSize >\n\t\t\t\t\tthis.scrollContainer.x2\n\t\t\t\t) {\n\t\t\t\t\tscrollTo =\n\t\t\t\t\t\tthis.scrollContainer.scroll.x + this.options.scrollIncrement;\n\t\t\t\t\tthis.scrollContainer.scroll.x = scrollTo <= maxX ? scrollTo : maxX;\n\t\t\t\t\tthis.$scrollContainer.scrollLeft(this.scrollContainer.scroll.x);\n\t\t\t\t} else if (\n\t\t\t\t\tdata.pointer.left - this.options.scrollAreaSize <\n\t\t\t\t\tthis.scrollContainer.x\n\t\t\t\t) {\n\t\t\t\t\tscrollTo =\n\t\t\t\t\t\tthis.scrollContainer.scroll.x - this.options.scrollIncrement;\n\t\t\t\t\tthis.scrollContainer.scroll.x = scrollTo >= 0 ? scrollTo : 0;\n\t\t\t\t\tthis.$scrollContainer.scrollLeft(this.scrollContainer.scroll.x);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\tlingered: function() {\n\t\tif (this.lingeredAlertTimer) clearTimeout(this.lingeredAlertTimer);\n\t\tthis.lingeredAlertTimer = setTimeout(_.bind(this.updateItems, this), 500);\n\t},\n\tupdateItems: function() {},\n\t/**\n\t * Update sizes\n\t * Gets our window and document sizes\n\t * More than likely you're going to want to leave this alone\n\t * @returns {object} this\n\t */\n\t_updateStageSize: _.throttle(function() {\n\t\tthis.win_size.h = this.$win.height();\n\t\tthis.win_size.w = this.$win.width();\n\t\t// Chain it\n\t\treturn this;\n\t}, 200),\n\t/**\n\t * _dragHandler\n\t * Fires immediately on touch/mousedown\n\t * If you override this you will want to call super, I guarantee it\n\t * Best to override the empty function this.dragHandler() (notice the lack of an underscore)\n\t * @param {event} e MouseEvent\n\t * @returns {object} this\n\t */\n\t_dragHandler: function(e) {\n\t\t// Shh... Don't let anyone else know\n\t\t// moved to line 510 to appease touch devices\n\t\t//e.preventDefault();\n\t\t//e.stopImmediatePropagation();\n\n\t\t// Check the validity of the drag\n\t\tif (\n\t\t\t!this.el ||\n\t\t\tthis.disabled ||\n\t\t\t(e.which !== 1 && !this.is_touch) ||\n\t\t\tthis.el.isHidden()\n\t\t) {\n\t\t\t// Don't be disabled, e.which must be 1 or this must be a touch\n\t\t\treturn this;\n\t\t}\n\n\t\t// Check if this is an allowed draggable item\n\t\t// Returns false if it is to be ignored\n\t\tif (this._ignoreDrag(e)) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.diff_top_correction = 0;\n\n\t\tthis._updateStageSize();\n\t\tthis.calculateBoundContainer();\n\t\tthis.calculateScrollContainer();\n\n\t\t// Initial mouse position\n\t\tthis.ms_init_pos = this._getMousePos(e);\n\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\t// Current item\n\t\t\tthis.targetItem = $(e.currentTarget);\n\t\t}\n\n\t\t// Get initial position\n\t\t// Item's initial position\n\t\tthis.el_init_pos = this.targetItem.position();\n\t\t// Item's initial offset\n\t\tthis.el_init_os = this.targetItem.offset();\n\t\t// Make sure this is the first move event\n\t\tvar first = true;\n\n\t\tvar mouseMove = _.bind(function(mse) {\n\t\t\t// Positioning based on mouse\n\t\t\tvar ms_actl_pos = this._getMousePos(mse), // Where the mouse is now\n\t\t\t\tdiff_x = abs(ms_actl_pos.left - this.ms_init_pos.left), // How much the mouse has moved from the left\n\t\t\t\tdiff_y = abs(ms_actl_pos.top - this.ms_init_pos.top); // How much the mouse has moved from the top\n\n\t\t\t// Make sure there was adequate movement to make any of this worthwhile\n\t\t\tif (!(diff_x > this.options.distance || diff_y > this.options.distance)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Shh... Don't let anyone else know.\n\t\t\tmse.stopPropagation();\n\t\t\tmse.preventDefault();\n\n\t\t\t// If the first movement of current item\n\t\t\tif (first) {\n\t\t\t\tfirst = false;\n\t\t\t\tthis._onDragStart.call(this, mse);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// The item is moving and has already been initialized\n\t\t\tif (this.is_dragging === true) {\n\t\t\t\tthis._onDragMove.call(this, mse);\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}, this);\n\n\t\t// Mouse is moving\n\t\tthis.$doc\n\t\t\t.off(this.pntr_evts.move)\n\t\t\t.on(this.pntr_evts.move, _.throttle(mouseMove, 20));\n\n\t\t// If desktop return false for the event\n\t\tif (!this.is_touch) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\t// TODO: Abandon this monster I wrote and use of of the 3 third party drag libs\n\t\t\t// we now have\n\t\t\t// The only thing we have that they don't, currently, is the idea of \"loitering\"\n\t\t\t// where you drag an item over another item for long enough it will send out an event\n\t\t\t// we could just rethink that - as all drag libs have a drag over and we can have\n\t\t\t// the things that want to repsond to that handle when they respond (like if a drag\n\t\t\t// over occcurs and a drag out does not occir within so much time - take that as the\n\t\t\t// \"loitering\" event)\n\t\t\t// We need to kill focus to any input thast may have been focused\n\t\t\tif (\"activeElement\" in document) {\n\t\t\t\tdocument.activeElement.blur();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\n\t\t// Go on to more specific things\n\t\tthis.onDragHandler(e);\n\n\t\treturn this;\n\t},\n\tonDragHandler: function(e) {},\n\t/**\n\t * _onDragStart\n\t * Is called once per drag by this._dragHandler()\n\t * If you override this you will want to call super, I guarantee it\n\t * Best to override the empty function this.onDragStart() (notice the lack of an underscore)\n\t * @param {event} e MouseEvent\n\t * @returns {object} this\n\t */\n\t_onDragStart: function(e) {\n\t\t// Shh... Don't let anyone else know.\n\t\t//e.stopImmediatePropagation();\n\t\t//e.preventDefault();\n\n\t\t// Already dragging - whay are you here then?\n\t\tif (this.is_dragging) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Keep cruising\n\t\tthis.drag_start = this.is_dragging = true;\n\n\t\t// Store initial positions\n\t\tthis.win_scroll_x = this.$win.scrollLeft();\n\t\tthis.win_scroll_y = this.$win.scrollTop();\n\t\tthis.con_scroll_x = this.scrollContainer.scroll.x; //this.$scrollContainer.scrollLeft();\n\t\tthis.con_scroll_y = this.scrollContainer.scroll.y; //this.$scrollContainer.scrollTop();\n\n\t\t// Our ui data\n\t\tthis.ui = this._getDragData(e);\n\n\t\t// Trigger drag start callback\n\t\tif (this.options.dragstart) {\n\t\t\tthis.options.dragstart.call(\n\t\t\t\tthis.$item,\n\t\t\t\tthis._getDragEvent('dragstart', e),\n\t\t\t\tthis.ui,\n\t\t\t);\n\t\t}\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem[0].dispatchEvent(\n\t\t\t\tthis._getDragEvent('dragstart', e, this.ui),\n\t\t\t);\n\t\t}\n\n\t\t// Go on to more specific things\n\t\tthis.onDragStart(e);\n\n\t\tif (!this.is_touch) {\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\t// Check for lingerers so we can let the dom know (maybe we want to open an item)\n\t\tif (this.lingerTimer) clearInterval(this.lingerTimer);\n\t\tif (this.$curr_zones) {\n\t\t\tthis.lingerTimer = setInterval(\n\t\t\t\t_.bind(function() {\n\t\t\t\t\tif (this.$curr_zones.length) {\n\t\t\t\t\t\t// We only care about the last zone\n\t\t\t\t\t\tvar zone = _.last(this.$curr_zones);\n\t\t\t\t\t\tzone.lingered++;\n\t\t\t\t\t\tif (!zone.el.classList.contains('dummy') && zone.lingered === 3) {\n\t\t\t\t\t\t\tthis.lingered();\n\t\t\t\t\t\t\t// The object passed back with the event\n\t\t\t\t\t\t\t_.extend(this.ui, {\n\t\t\t\t\t\t\t\tzone: zone.el,\n\t\t\t\t\t\t\t\titem: this.$item,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// Trigger callback\n\t\t\t\t\t\t\tvar _e = this._getDragEvent('loitering', e, this.ui);\n\t\t\t\t\t\t\t// Let the container know we have a loiterer\n\t\t\t\t\t\t\tthis.el[0].dispatchEvent(_e);\n\t\t\t\t\t\t\t// Let the zone know we have a loiterer\n\t\t\t\t\t\t\tzone.el.dispatchEvent(_e);\n\t\t\t\t\t\t\tif (this.options.loitering) {\n\t\t\t\t\t\t\t\tthis.options.loitering.call(\n\t\t\t\t\t\t\t\t\tthis.$item,\n\t\t\t\t\t\t\t\t\tthis._getDragEvent('loitering', e),\n\t\t\t\t\t\t\t\t\tthis.ui,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this),\n\t\t\t\t500,\n\t\t\t);\n\t\t}\n\n\t\treturn this;\n\t},\n\tonDragStart: function(e) {\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem.addClass(this.options.draggingClass);\n\t\t}\n\t},\n\t/**\n\t * _onDragMove\n\t * Is fired by _this.dragHandler() every time the touch/mouse moves during a drag\n\t * If you override this you will want to call super, I guarantee it\n\t * Best to override the empty function this.onDragMove() (notice the lack of an underscore)\n\t * @param {event} e MouseEvent\n\t * @returns {object} this\n\t */\n\t_onDragMove: function(e) {\n\t\tthis.ui = this._getDragData(e);\n\n\t\t// Let's scroll?\n\t\tthis.options.autoscroll && this._manageScroll(this.ui);\n\n\t\tvar last_pos = this.last_pos || this.ui.position;\n\t\tthis.ui.prev_position = last_pos;\n\t\t// Store position\n\t\tthis.last_pos = this.ui.position;\n\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\t// Update position\n\t\t\tvar left = this.ui.position.left,\n\t\t\t\ttop = this.ui.position.top,\n\t\t\t\tposition = this.el.css('position');\n\n\t\t\tif (\n\t\t\t\tthis.options.boundContainer == window &&\n\t\t\t\tthis.el.parent()[0] != $('body')[0]\n\t\t\t) {\n\t\t\t\tvar os = this.el.parent().offset();\n\t\t\t\tleft -= os.left;\n\t\t\t\ttop -= os.top;\n\t\t\t}\n\n\t\t\tthis.targetItem.css({\n\t\t\t\tposition: position == 'relative' ? 'absolute' : position,\n\t\t\t\tleft: left,\n\t\t\t\ttop: top,\n\t\t\t\tdisplay: 'block',\n\t\t\t\tzIndex: 999,\n\t\t\t});\n\t\t}\n\n\t\t// Trigger dragging callback\n\t\tif (this.options.drag) {\n\t\t\tthis.options.drag.call(\n\t\t\t\tthis.$item,\n\t\t\t\tthis._getDragEvent('drag', e),\n\t\t\t\tthis.ui,\n\t\t\t);\n\t\t}\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem[0].dispatchEvent(this._getDragEvent('drag', e, this.ui));\n\t\t}\n\n\t\tthis.onDragMove(e);\n\n\t\treturn this;\n\t},\n\tonDragMove: function(e) {},\n\t/**\n\t * _onDragStop\n\t * Fires when the mouse/touch has ended after a drag\n\t * If you override this you will want to call super, I guarantee it\n\t * Best to override the empty function this.onDragStop() (notice the lack of an underscore)\n\t * @param {event} e MouseEvent\n\t * @returns {object} this\n\t */\n\t_onDragStop: function(e) {\n\t\t// Then why are we here?!\n\t\tif (!this.drag_start) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Kill our loitering (lingerers, man) timer\n\t\tthis.lingerTimer && clearInterval(this.lingerTimer);\n\n\t\tthis.ui = this._getDragData(e);\n\n\t\t// It's all over\n\t\tthis.drag_start = this.is_dragging = false;\n\n\t\t// Call stop callback\n\t\tif (this.options.dragend) {\n\t\t\tthis.options.dragend.call(\n\t\t\t\tthis.$item,\n\t\t\t\tthis._getDragEvent('dragend', e),\n\t\t\t\tthis.ui,\n\t\t\t);\n\t\t}\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem[0].dispatchEvent(\n\t\t\t\tthis._getDragEvent('dragend', e, this.ui),\n\t\t\t);\n\t\t}\n\n\t\tthis.onDragStop(e);\n\n\t\treturn this;\n\t},\n\tonDragStop: function(e) {\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem.removeClass(this.options.draggingClass);\n\t\t}\n\t},\n};\n$.extend(NetxDrag.prototype, methods);\n\n// Make plugin accessible via jQuery namesapce\nfunction Plugin(option) {\n\tvar _arguments = arguments;\n\n\treturn this.each(function() {\n\t\tvar $this = $(this),\n\t\t\tdrag = $this.data('netxDrag'),\n\t\t\toptions = $.extend(\n\t\t\t\t{},\n\t\t\t\t$.fn.netxDrag.defaults,\n\t\t\t\ttypeof option === 'object' ? option : {},\n\t\t\t);\n\n\t\tif (drag) {\n\t\t\tif (typeof option === 'object' || !option) {\n\t\t\t\tdrag.init();\n\t\t\t} else if (option.charAt(0) !== '_' && drag[option]) {\n\t\t\t\tdrag[option](_arguments[1]);\n\t\t\t} else {\n\t\t\t\tdrag.init();\n\t\t\t}\n\t\t\treturn $this;\n\t\t} else if (option != 'destroy') {\n\t\t\tdrag = new NetxDrag(options, $this[0]);\n\t\t\t$this.data('netxDrag', drag);\n\t\t\treturn $this;\n\t\t}\n\t});\n}\n\n$.fn.netxDrag = Plugin;\n$.fn.netxDrag.Constructor = NetxDrag;\n\n// Defaults\n$.fn.netxDrag.defaults = {\n\tautoscroll: true, // Whether or not to scroll the page with dragging\n\tdistance: 5, // Minimum distance the select must be moved to trigger a drag\n\tdraggingClass: 'dragging', // Dragging class\n\thandle: false, // The handle\n\toffsetLeft: 0, // Left offset\n\toffsetTop: 0, // Top offset\n\tscrollContainer: window, // The container that is to be scrolled when dragging occurs\n\tboundContainer: window, // The container the item is bound to\n\tallowNegative: false,\n\tscrollIncrement: 15, // Amount to scroll at a time\n\tscrollAreaSize: 15, // How close you need to be to the edge to start a scroll\n\t// Callbacks\n\t// drag\t\t\t\t: function( event, ui ) {},\t// On dragging\n\t// dragstart \t\t: function( event, ui ) {},\t// On drag start\n\t// dragend \t\t\t: function( event, ui ) {},\t// On drag stop\n};\n\nexport default Plugin;\n"],"names":["round","Math","abs","NetxDrag","options","el","this","$proxyEl","$","uuid","Date","getTime","baseName","name","ns","initialized","targetItem","targetItems","ui","stand_alone","init","methods","is_touch","window","$win","$doc","document","$body","win_size","w","h","calculateBoundContainer","_","throttle","calculateScrollContainer","debouncedUpdateItems","debounce","updateItems","addClass","disabled","overlapped","is_dragging","_updateStageSize","pos","css","_events","diff_top_correction","$boundContainer","boundContainer","$scrollContainer","scrollContainer","off","on","_nsEvent","bind","observer","MutationObserver","mutations","addedNodes","addedClassList","removedClassList","removedNodes","additions","removals","each","mutation","k","length","classList","contains","observe","childList","isHidden","outerWidth","outerHeight","offset","position","top","left","extend","x","y","x2","y2","calculateScrollBoundOffset","scroll","scrollLeft","scrollTop","scrollHeight","scrollWidth","isUndefined","relative","calculateItemBoundOffset","itemContainer","destroy","lingerTimer","clearInterval","items","children","removeData","disconnect","pntr_evts","start","move","end","_dragHandler","e","drag_start","_onDragStop","_getDragData","_getOffset","_getDragEvent","eStr","_e","createEvent","initMouseEvent","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","_getMousePos","originalEvent","touches","oe","changedTouches","helperHeight","helperWidth","diff_x","diff_y","ms_actl_pos","adjustX","adjustY","$helper","$item","ms_init_pos","el_init_os","win_scroll_x","win_scroll_y","pointer","diff_left","diff_top","_ignoreDrag","handle","target","is","_manageScroll","data","_scrollIn","axis","maxX","maxY","scrollTo","scrollAreaSize","scrollIncrement","lingered","lingeredAlertTimer","clearTimeout","setTimeout","height","width","which","currentTarget","el_init_pos","first","mouseMove","mse","distance","stopPropagation","preventDefault","_onDragStart","call","_onDragMove","onDragHandler","activeElement","blur","con_scroll_x","con_scroll_y","dragstart","dispatchEvent","onDragStart","stopImmediatePropagation","$curr_zones","setInterval","zone","last","item","loitering","draggingClass","autoscroll","last_pos","prev_position","parent","os","display","zIndex","drag","onDragMove","dragend","onDragStop","removeClass","Plugin","option","_arguments","arguments","$this","fn","netxDrag","defaults","charAt","prototype","Constructor","offsetLeft","offsetTop","allowNegative"],"sourceRoot":""}