{"version":3,"file":"kendo.draganddrop.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendodraganddrop","js","this","$","undefined$1","lastDropTarget","kendo","window","support","document","$window","Class","Widget","ui","Observable","UserEvents","ClickMoveClick","extend","getOffset","draggables","dropTargets","dropAreas","elementUnderCursor","KEYUP","CHANGE","DRAGSTART","HOLD","DRAG","DRAGEND","DRAGCANCEL","HINTDESTROYED","DRAGENTER","DRAGLEAVE","DROP","numericCssPropery","element","property","parseInt","css","within","value","range","Math","min","max","containerBoundaries","container","offset","outerWidth","_outerWidth","outerHeight","_outerHeight","minX","left","minY","top","x","width","y","height","translate","TapCapture","init","options","that","domElement","capture","addEventListener","each","eventMap","down","split","_press","bind","up","_release","attachEvent","fn","call","captureNext","cancelCapture","e","trigger","preventDefault","PaneDimension","forcedEnabled","scale","horizontal","measure","scrollSize","axis","makeVirtual","virtual","_virtualMin","_virtualMax","virtualSize","update","outOfBounds","forceEnabled","getSize","getTotal","rescale","silent","total","scaledTotal","size","minScale","centerOffset","enabled","PaneDimensions","forcedMinScale","maxScale","newScale","refresh","centerCoordinates","fitScale","PaneAxis","dimension","movable","dragMove","delta","position","resistance","translateAxis","Pane","elastic","dimensions","userEvents","gesturestart","gesture","press","event","target","closest","is","sender","cancel","gesturechange","coordinates","previousGesture","previousCenter","center","scaleDelta","distance","offsetX","offsetY","scaleWith","move","tagName","match","touch","skip","end","TRANSFORM_STYLE","transitions","prefix","hasHW3D","Movable","style","webkitTransformOrigin","_saveCoordinates","by","scaleTo","moveAxis","moveTo","newCoordinates","round","browser","msie","version","destroyDroppable","collection","widget","i","groupName","group","droppables","destroy","length","splice","DropTarget","push","events","name","_trigger","eventName","draggable","dropTarget","_over","_out","_drop","dropped","destroyGroup","_cache","DropTargetArea","filter","Draggable","_activated","clickMoveClick","start","_startClickMoveClick","_drag","_end","_onCancel","allowSelection","threshold","_start","hold","_hold","select","_select","find","_afterEndHandler","_afterEnd","_captureEscape","cursorOffset","ignore","holdToDrag","showHintOnHold","autoScroll","preventOsHoldFeatures","cancelHold","keyCode","keys","ESC","_updateHint","boundaries","location","hintOffset","startLocation","initialDelta","hint","_shouldIgnoreTarget","ignoreSelector","_hint","stop","remove","isFunction","currentTarget","zIndex","appendTo","body","initialTouch","currentTargetOffset","on","cursorElement","_elementUnderCursor","_cursorElement","_scrollableParent","findScrollableParent","_lastEvent","_processMovement","velocity","autoScrollVelocity","scrollableViewPort","_scrollCompenstation","_scrollVelocity","clearInterval","_scrollInterval","setInterval","_autoScroll","_withDropTarget","targetElement","parent","compensation","yIsScrollable","xIsScrollable","isRootNode","scrollableRoot","scrollHeight","scrollWidth","offsetHeight","offsetWidth","yDelta","scrollTop","yInBounds","xDelta","scrollLeft","xInBounds","ev","attr","one","_cancel","isDefaultPrevented","setTimeout","animate","initialTarget","child","contains","hide","show","callback","result","targets","areas","theTarget","theFilter","targetLen","areaLen","parentNode","matchesSelector","checkTarget","off","root","bottom","right","edge","safari","documentElement","isScrollable","mouseX","mouseY","rect","AUTO_SCROLL_AREA","plugin","utils","jQuery"],"sources":["kendo.draganddrop.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.userevents.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.userevents'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendodraganddrop = global.kendodraganddrop || {}, global.kendodraganddrop.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"draganddrop\",\n name: \"Drag & drop\",\n category: \"framework\",\n description: \"Drag & drop functionality for any DOM element.\",\n depends: [ \"core\", \"userevents\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n support = kendo.support,\n document = window.document,\n $window = $(window),\n Class = kendo.Class,\n Widget = kendo.ui.Widget,\n Observable = kendo.Observable,\n UserEvents = kendo.UserEvents,\n ClickMoveClick = kendo.ClickMoveClick,\n extend = $.extend,\n getOffset = kendo.getOffset,\n draggables = {},\n dropTargets = {},\n dropAreas = {},\n lastDropTarget,\n elementUnderCursor = kendo.elementUnderCursor,\n KEYUP = \"keyup\",\n CHANGE = \"change\",\n\n // Draggable events\n DRAGSTART = \"dragstart\",\n HOLD = \"hold\",\n DRAG = \"drag\",\n DRAGEND = \"dragend\",\n DRAGCANCEL = \"dragcancel\",\n HINTDESTROYED = \"hintDestroyed\",\n\n // DropTarget events\n DRAGENTER = \"dragenter\",\n DRAGLEAVE = \"dragleave\",\n DROP = \"drop\";\n\n function contains(parent, child) {\n try {\n return $.contains(parent, child) || parent == child;\n } catch (e) {\n return false;\n }\n }\n\n function numericCssPropery(element, property) {\n return parseInt(element.css(property), 10) || 0;\n }\n\n function within(value, range) {\n return Math.min(Math.max(value, range.min), range.max);\n }\n\n function containerBoundaries(container, element) {\n var offset = getOffset(container),\n outerWidth = kendo._outerWidth,\n outerHeight = kendo._outerHeight,\n minX = offset.left + numericCssPropery(container, \"borderLeftWidth\") + numericCssPropery(container, \"paddingLeft\"),\n minY = offset.top + numericCssPropery(container, \"borderTopWidth\") + numericCssPropery(container, \"paddingTop\"),\n maxX = minX + container.width() - outerWidth(element, true),\n maxY = minY + container.height() - outerHeight(element, true);\n\n return {\n x: { min: minX, max: maxX },\n y: { min: minY, max: maxY }\n };\n }\n\n function checkTarget(target, targets, areas) {\n var theTarget, theFilter, i = 0,\n targetLen = targets && targets.length,\n areaLen = areas && areas.length;\n\n while (target && target.parentNode) {\n for (i = 0; i < targetLen; i ++) {\n theTarget = targets[i];\n if (theTarget.element[0] === target) {\n return { target: theTarget, targetElement: target };\n }\n }\n\n for (i = 0; i < areaLen; i ++) {\n theFilter = areas[i];\n if ($.contains(theFilter.element[0], target) && support.matchesSelector.call(target, theFilter.options.filter)) {\n return { target: theFilter, targetElement: target };\n }\n }\n\n target = target.parentNode;\n }\n\n return undefined$1;\n }\n\n var TapCapture = Observable.extend({\n init: function(element, options) {\n var that = this,\n domElement = element[0];\n\n that.capture = false;\n\n if (domElement.addEventListener) {\n $.each(kendo.eventMap.down.split(\" \"), function() {\n domElement.addEventListener(this, that._press.bind(that), true);\n });\n $.each(kendo.eventMap.up.split(\" \"), function() {\n domElement.addEventListener(this, that._release.bind(that), true);\n });\n } else {\n $.each(kendo.eventMap.down.split(\" \"), function() {\n domElement.attachEvent(this, that._press.bind(that));\n });\n $.each(kendo.eventMap.up.split(\" \"), function() {\n domElement.attachEvent(this, that._release.bind(that));\n });\n }\n\n Observable.fn.init.call(that);\n\n that.bind([\"press\", \"release\"], options || {});\n },\n\n captureNext: function() {\n this.capture = true;\n },\n\n cancelCapture: function() {\n this.capture = false;\n },\n\n _press: function(e) {\n var that = this;\n that.trigger(\"press\");\n if (that.capture) {\n e.preventDefault();\n }\n },\n\n _release: function(e) {\n var that = this;\n that.trigger(\"release\");\n\n if (that.capture) {\n e.preventDefault();\n that.cancelCapture();\n }\n }\n });\n\n var PaneDimension = Observable.extend({\n init: function(options) {\n var that = this;\n Observable.fn.init.call(that);\n\n that.forcedEnabled = false;\n\n $.extend(that, options);\n\n that.scale = 1;\n\n if (that.horizontal) {\n that.measure = \"offsetWidth\";\n that.scrollSize = \"scrollWidth\";\n that.axis = \"x\";\n } else {\n that.measure = \"offsetHeight\";\n that.scrollSize = \"scrollHeight\";\n that.axis = \"y\";\n }\n },\n\n makeVirtual: function() {\n $.extend(this, {\n virtual: true,\n forcedEnabled: true,\n _virtualMin: 0,\n _virtualMax: 0\n });\n },\n\n virtualSize: function(min, max) {\n if (this._virtualMin !== min || this._virtualMax !== max) {\n this._virtualMin = min;\n this._virtualMax = max;\n this.update();\n }\n },\n\n outOfBounds: function(offset) {\n return offset > this.max || offset < this.min;\n },\n\n forceEnabled: function() {\n this.forcedEnabled = true;\n },\n\n getSize: function() {\n return this.container[0][this.measure];\n },\n\n getTotal: function() {\n return this.element[0][this.scrollSize];\n },\n\n rescale: function(scale) {\n this.scale = scale;\n },\n\n update: function(silent) {\n var that = this,\n total = that.virtual ? that._virtualMax : that.getTotal(),\n scaledTotal = total * that.scale,\n size = that.getSize();\n\n if (total === 0 && !that.forcedEnabled) {\n return; // we are not visible.\n }\n\n that.max = that.virtual ? -that._virtualMin : 0;\n that.size = size;\n that.total = scaledTotal;\n that.min = Math.min(that.max, size - scaledTotal);\n that.minScale = size / total;\n that.centerOffset = (scaledTotal - size) / 2;\n\n that.enabled = that.forcedEnabled || (scaledTotal > size);\n\n if (!silent) {\n that.trigger(CHANGE, that);\n }\n }\n });\n\n var PaneDimensions = Observable.extend({\n init: function(options) {\n var that = this;\n\n Observable.fn.init.call(that);\n\n that.x = new PaneDimension(extend({ horizontal: true }, options));\n that.y = new PaneDimension(extend({ horizontal: false }, options));\n that.container = options.container;\n that.forcedMinScale = options.minScale;\n that.maxScale = options.maxScale || 100;\n\n that.bind(CHANGE, options);\n },\n\n rescale: function(newScale) {\n this.x.rescale(newScale);\n this.y.rescale(newScale);\n this.refresh();\n },\n\n centerCoordinates: function() {\n return { x: Math.min(0, -this.x.centerOffset), y: Math.min(0, -this.y.centerOffset) };\n },\n\n refresh: function() {\n var that = this;\n that.x.update();\n that.y.update();\n that.enabled = that.x.enabled || that.y.enabled;\n that.minScale = that.forcedMinScale || Math.min(that.x.minScale, that.y.minScale);\n that.fitScale = Math.max(that.x.minScale, that.y.minScale);\n that.trigger(CHANGE);\n }\n });\n\n var PaneAxis = Observable.extend({\n init: function(options) {\n var that = this;\n extend(that, options);\n Observable.fn.init.call(that);\n },\n\n outOfBounds: function() {\n return this.dimension.outOfBounds(this.movable[this.axis]);\n },\n\n dragMove: function(delta) {\n var that = this,\n dimension = that.dimension,\n axis = that.axis,\n movable = that.movable,\n position = movable[axis] + delta;\n\n if (!dimension.enabled) {\n return;\n }\n\n if ((position < dimension.min && delta < 0) || (position > dimension.max && delta > 0)) {\n delta *= that.resistance;\n }\n\n movable.translateAxis(axis, delta);\n that.trigger(CHANGE, that);\n }\n });\n\n var Pane = Class.extend({\n\n init: function(options) {\n var that = this,\n x,\n y,\n resistance,\n movable;\n\n extend(that, { elastic: true }, options);\n\n resistance = that.elastic ? 0.5 : 0;\n movable = that.movable;\n\n that.x = x = new PaneAxis({\n axis: \"x\",\n dimension: that.dimensions.x,\n resistance: resistance,\n movable: movable\n });\n\n that.y = y = new PaneAxis({\n axis: \"y\",\n dimension: that.dimensions.y,\n resistance: resistance,\n movable: movable\n });\n\n that.userEvents.bind([\"press\", \"move\", \"end\", \"gesturestart\", \"gesturechange\"], {\n gesturestart: function(e) {\n that.gesture = e;\n that.offset = that.dimensions.container.offset();\n },\n\n press: function(e) {\n if ($(e.event.target).closest(\"a\").is(\"[data-navigate-on-press=true]\")) {\n e.sender.cancel();\n }\n },\n\n gesturechange: function(e) {\n var previousGesture = that.gesture,\n previousCenter = previousGesture.center,\n\n center = e.center,\n\n scaleDelta = e.distance / previousGesture.distance,\n\n minScale = that.dimensions.minScale,\n maxScale = that.dimensions.maxScale,\n coordinates;\n\n if (movable.scale <= minScale && scaleDelta < 1) {\n // Resist shrinking. Instead of shrinking from 1 to 0.5, it will shrink to 0.5 + (1 /* minScale */ - 0.5) * 0.8 = 0.9;\n scaleDelta += (1 - scaleDelta) * 0.8;\n }\n\n if (movable.scale * scaleDelta >= maxScale) {\n scaleDelta = maxScale / movable.scale;\n }\n\n var offsetX = movable.x + that.offset.left,\n offsetY = movable.y + that.offset.top;\n\n coordinates = {\n x: (offsetX - previousCenter.x) * scaleDelta + center.x - offsetX,\n y: (offsetY - previousCenter.y) * scaleDelta + center.y - offsetY\n };\n\n movable.scaleWith(scaleDelta);\n\n x.dragMove(coordinates.x);\n y.dragMove(coordinates.y);\n\n that.dimensions.rescale(movable.scale);\n that.gesture = e;\n e.preventDefault();\n },\n\n move: function(e) {\n if (e.event.target.tagName.match(/textarea|input/i)) {\n return;\n }\n\n if (x.dimension.enabled || y.dimension.enabled) {\n x.dragMove(e.x.delta);\n y.dragMove(e.y.delta);\n e.preventDefault();\n } else {\n e.touch.skip();\n }\n },\n\n end: function(e) {\n e.preventDefault();\n }\n });\n }\n });\n\n var TRANSFORM_STYLE = support.transitions.prefix + \"Transform\",\n translate;\n\n\n if (support.hasHW3D) {\n translate = function(x, y, scale) {\n return \"translate3d(\" + x + \"px,\" + y + \"px,0) scale(\" + scale + \")\";\n };\n } else {\n translate = function(x, y, scale) {\n return \"translate(\" + x + \"px,\" + y + \"px) scale(\" + scale + \")\";\n };\n }\n\n var Movable = Observable.extend({\n init: function(element) {\n var that = this;\n\n Observable.fn.init.call(that);\n\n that.element = $(element);\n that.element[0].style.webkitTransformOrigin = \"left top\";\n that.x = 0;\n that.y = 0;\n that.scale = 1;\n that._saveCoordinates(translate(that.x, that.y, that.scale));\n },\n\n translateAxis: function(axis, by) {\n this[axis] += by;\n this.refresh();\n },\n\n scaleTo: function(scale) {\n this.scale = scale;\n this.refresh();\n },\n\n scaleWith: function(scaleDelta) {\n this.scale *= scaleDelta;\n this.refresh();\n },\n\n translate: function(coordinates) {\n this.x += coordinates.x;\n this.y += coordinates.y;\n this.refresh();\n },\n\n moveAxis: function(axis, value) {\n this[axis] = value;\n this.refresh();\n },\n\n moveTo: function(coordinates) {\n extend(this, coordinates);\n this.refresh();\n },\n\n refresh: function() {\n var that = this,\n x = that.x,\n y = that.y,\n newCoordinates;\n\n if (that.round) {\n x = Math.round(x);\n y = Math.round(y);\n }\n\n newCoordinates = translate(x, y, that.scale);\n\n if (newCoordinates != that.coordinates) {\n if (kendo.support.browser.msie && kendo.support.browser.version < 10) {\n that.element[0].style.position = \"absolute\";\n that.element[0].style.left = that.x + \"px\";\n that.element[0].style.top = that.y + \"px\";\n\n } else {\n that.element[0].style[TRANSFORM_STYLE] = newCoordinates;\n }\n that._saveCoordinates(newCoordinates);\n that.trigger(CHANGE);\n }\n },\n\n _saveCoordinates: function(coordinates) {\n this.coordinates = coordinates;\n }\n });\n\n function destroyDroppable(collection, widget) {\n var groupName = widget.options.group,\n droppables = collection[groupName],\n i;\n\n Widget.fn.destroy.call(widget);\n\n if (droppables.length > 1) {\n for (i = 0; i < droppables.length; i++) {\n if (droppables[i] == widget) {\n droppables.splice(i, 1);\n break;\n }\n }\n } else {\n droppables.length = 0; // WTF, porting this from the previous destroyGroup\n delete collection[groupName];\n }\n }\n\n var DropTarget = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n var group = that.options.group;\n\n if (!(group in dropTargets)) {\n dropTargets[group] = [ that ];\n } else {\n dropTargets[group].push( that );\n }\n },\n\n events: [\n DRAGENTER,\n DRAGLEAVE,\n DROP\n ],\n\n options: {\n name: \"DropTarget\",\n group: \"default\"\n },\n\n destroy: function() {\n destroyDroppable(dropTargets, this);\n },\n\n _trigger: function(eventName, e) {\n var that = this,\n draggable = draggables[that.options.group];\n\n if (draggable) {\n return that.trigger(eventName, extend({}, e.event, {\n draggable: draggable,\n dropTarget: e.dropTarget\n }));\n }\n },\n\n _over: function(e) {\n this._trigger(DRAGENTER, e);\n },\n\n _out: function(e) {\n this._trigger(DRAGLEAVE, e);\n },\n\n _drop: function(e) {\n var that = this,\n draggable = draggables[that.options.group];\n\n if (draggable) {\n draggable.dropped = !that._trigger(DROP, e);\n }\n }\n });\n\n DropTarget.destroyGroup = function(groupName) {\n var group = dropTargets[groupName] || dropAreas[groupName],\n i;\n\n if (group) {\n for (i = 0; i < group.length; i++) {\n Widget.fn.destroy.call(group[i]);\n }\n\n group.length = 0;\n delete dropTargets[groupName];\n delete dropAreas[groupName];\n }\n };\n\n DropTarget._cache = dropTargets;\n\n var DropTargetArea = DropTarget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n var group = that.options.group;\n\n if (!(group in dropAreas)) {\n dropAreas[group] = [ that ];\n } else {\n dropAreas[group].push( that );\n }\n },\n\n destroy: function() {\n destroyDroppable(dropAreas, this);\n },\n\n options: {\n name: \"DropTargetArea\",\n group: \"default\",\n filter: null\n }\n });\n\n var Draggable = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that._activated = false;\n\n if (this.options.clickMoveClick) {\n that.clickMoveClick = new ClickMoveClick(that.element, {\n global: true,\n filter: that.options.filter,\n start: that._startClickMoveClick.bind(that),\n move: that._drag.bind(that),\n end: that._end.bind(that),\n cancel: that._onCancel.bind(that)\n });\n }\n\n that.userEvents = new UserEvents(that.element, {\n global: true,\n allowSelection: true,\n filter: that.options.filter,\n threshold: that.options.distance,\n start: that._start.bind(that),\n hold: that._hold.bind(that),\n move: that._drag.bind(that),\n end: that._end.bind(that),\n cancel: that._onCancel.bind(that),\n select: that._select.bind(that),\n press: that._press.bind(that),\n });\n\n if (kendo.support.touch) {\n that.element.find(that.options.filter).css('touch-action', 'none');\n }\n\n that._afterEndHandler = that._afterEnd.bind(that);\n that._captureEscape = that._captureEscape.bind(that);\n },\n\n events: [\n HOLD,\n DRAGSTART,\n DRAG,\n DRAGEND,\n DRAGCANCEL,\n HINTDESTROYED\n ],\n\n options: {\n name: \"Draggable\",\n distance: ( kendo.support.touch ? 0 : 5),\n group: \"default\",\n cursorOffset: null,\n axis: null,\n container: null,\n filter: null,\n ignore: null,\n holdToDrag: false,\n showHintOnHold: false,\n autoScroll: false,\n dropped: false,\n clickMoveClick: false,\n preventOsHoldFeatures: false\n },\n\n cancelHold: function() {\n this._activated = false;\n },\n\n _captureEscape: function(e) {\n var that = this;\n\n if (e.keyCode === kendo.keys.ESC) {\n that.userEvents.cancel();\n\n if (that.clickMoveClick) {\n that.clickMoveClick.cancel();\n }\n\n this._trigger(DRAGCANCEL, { event: e });\n }\n },\n\n _updateHint: function(e) {\n var that = this,\n coordinates,\n options = that.options,\n boundaries = that.boundaries,\n axis = options.axis,\n cursorOffset = that.options.cursorOffset;\n\n if (cursorOffset) {\n coordinates = { left: e.x.location + cursorOffset.left, top: e.y.location + cursorOffset.top };\n } else {\n if (e.x.delta !== 0 || e.y.delta !== 0) {\n that.hintOffset.left += e.x.delta;\n that.hintOffset.top += e.y.delta;\n coordinates = $.extend({}, that.hintOffset);\n } else {\n that.hintOffset.left = e.x.startLocation + e.x.initialDelta;\n that.hintOffset.top = e.y.startLocation + e.y.initialDelta;\n coordinates = $.extend({}, that.hintOffset);\n }\n }\n\n if (boundaries) {\n coordinates.top = within(coordinates.top, boundaries.y);\n coordinates.left = within(coordinates.left, boundaries.x);\n }\n\n if (axis === \"x\") {\n delete coordinates.top;\n } else if (axis === \"y\") {\n delete coordinates.left;\n }\n\n that.hint.css(coordinates);\n },\n\n _shouldIgnoreTarget: function(target) {\n var ignoreSelector = this.options.ignore;\n return ignoreSelector && $(target).is(ignoreSelector);\n },\n\n _select: function(e) {\n if (!this._shouldIgnoreTarget(e.event.target)) {\n e.preventDefault();\n }\n },\n\n _startClickMoveClick: function(e) {\n this._activated = true;\n\n this._start(e);\n },\n\n _hint: function() {\n var that = this,\n hint = that.options.hint;\n\n if (hint) {\n if (that.hint) {\n that.hint.stop(true, true).remove();\n }\n\n that.hint = kendo.isFunction(hint) ? $(hint.call(that, that.currentTarget)) : hint;\n\n var offset = getOffset(that.currentTarget);\n that.hintOffset = offset;\n\n that.hint.css( {\n position: \"absolute\",\n zIndex: 20000, // the Window's z-index is 10000 and can be raised because of z-stacking\n left: offset.left,\n top: offset.top\n })\n .appendTo(document.body);\n }\n },\n\n _start: function(e) {\n var that = this,\n options = that.options,\n container = options.container ? $(options.container) : null,\n hint = options.hint;\n\n if (this._shouldIgnoreTarget(e.touch.initialTouch) || (options.holdToDrag && !that._activated)) {\n that.userEvents.cancel();\n return;\n }\n\n that.currentTarget = e.target;\n that.currentTargetOffset = getOffset(that.currentTarget);\n\n if (hint) {\n that._hint();\n }\n\n draggables[options.group] = that;\n\n that.dropped = false;\n\n if (container) {\n that.boundaries = containerBoundaries(container, that.hint);\n }\n\n $(document).on(KEYUP, that._captureEscape);\n\n if (that._trigger(DRAGSTART, e)) {\n that.userEvents.cancel();\n\n if (that.clickMoveClick) {\n that.clickMoveClick.cancel();\n }\n\n that._afterEnd();\n }\n\n that.userEvents.capture();\n },\n\n _hold: function(e) {\n this.currentTarget = e.target;\n\n if (this._trigger(HOLD, e)) {\n this.userEvents.cancel();\n } else {\n this._activated = true;\n if (this.options.showHintOnHold) {\n this._hint();\n }\n }\n },\n\n _drag: function(e) {\n e.preventDefault();\n\n var cursorElement = this._elementUnderCursor(e);\n\n if (this.options.autoScroll && this._cursorElement !== cursorElement) {\n this._scrollableParent = findScrollableParent(cursorElement);\n this._cursorElement = cursorElement;\n }\n\n this._lastEvent = e;\n this._processMovement(e, cursorElement);\n\n if (this.options.autoScroll) {\n // chrome seems to trigger mousemove when mouse is moved outside of the window (over the Chrome), too.\n if (this._scrollableParent[0]) {\n var velocity = autoScrollVelocity(e.x.location, e.y.location, scrollableViewPort(this._scrollableParent));\n\n\n this._scrollCompenstation = $.extend({}, this.hintOffset);\n this._scrollVelocity = velocity;\n\n if (velocity.y === 0 && velocity.x === 0) {\n clearInterval(this._scrollInterval);\n this._scrollInterval = null;\n } else if (!this._scrollInterval) {\n this._scrollInterval = setInterval(this._autoScroll.bind(this), 50);\n }\n }\n }\n\n if (this.hint) {\n this._updateHint(e);\n }\n },\n\n _processMovement: function(e, cursorElement) {\n this._withDropTarget(cursorElement, function(target, targetElement) {\n if (!target) {\n if (lastDropTarget) {\n lastDropTarget._trigger(DRAGLEAVE, extend(e, { dropTarget: $(lastDropTarget.targetElement) }));\n lastDropTarget = null;\n }\n return;\n }\n\n if (lastDropTarget) {\n if (targetElement === lastDropTarget.targetElement) {\n return;\n }\n\n lastDropTarget._trigger(DRAGLEAVE, extend(e, { dropTarget: $(lastDropTarget.targetElement) }));\n }\n\n target._trigger(DRAGENTER, extend(e, { dropTarget: $(targetElement) }));\n lastDropTarget = extend(target, { targetElement: targetElement });\n });\n\n this._trigger(DRAG, extend(e, { dropTarget: lastDropTarget, elementUnderCursor: cursorElement }));\n },\n\n _autoScroll: function() {\n var parent = this._scrollableParent[0],\n velocity = this._scrollVelocity,\n compensation = this._scrollCompenstation;\n\n if (!parent) {\n return;\n }\n\n var cursorElement = this._elementUnderCursor(this._lastEvent);\n this._processMovement(this._lastEvent, cursorElement);\n\n var yIsScrollable, xIsScrollable;\n\n var isRootNode = parent === scrollableRoot()[0];\n\n if (isRootNode) {\n yIsScrollable = document.body.scrollHeight > $window.height();\n xIsScrollable = document.body.scrollWidth > $window.width();\n } else {\n yIsScrollable = parent.offsetHeight <= parent.scrollHeight;\n xIsScrollable = parent.offsetWidth <= parent.scrollWidth;\n }\n\n var yDelta = parent.scrollTop + velocity.y;\n var yInBounds = yIsScrollable && yDelta > 0 && yDelta < parent.scrollHeight;\n\n var xDelta = parent.scrollLeft + velocity.x;\n var xInBounds = xIsScrollable && xDelta > 0 && xDelta < parent.scrollWidth;\n\n if (yInBounds) {\n parent.scrollTop += velocity.y;\n } else if (yIsScrollable && yDelta < 0) {\n parent.scrollTop = 0;\n }\n\n if (xInBounds) {\n parent.scrollLeft += velocity.x;\n } else if (xIsScrollable && xDelta < 0) {\n parent.scrollLeft = 0;\n }\n\n if (this.hint && isRootNode && (xInBounds || yInBounds)) {\n if (yInBounds) {\n compensation.top += velocity.y;\n }\n\n if (xInBounds) {\n compensation.left += velocity.x;\n }\n\n this.hint.css(compensation);\n }\n },\n\n _press: function(ev) {\n if (this.options.preventOsHoldFeatures) {\n ev.target.css('-webkit-user-select', 'none');\n ev.target.attr('unselectable', 'on');\n ev.target.one('contextmenu', (ev) => {\n ev.preventDefault();\n });\n }\n },\n\n _end: function(e) {\n this._withDropTarget(this._elementUnderCursor(e), function(target, targetElement) {\n if (target) {\n target._drop(extend({}, e, { dropTarget: $(targetElement) }));\n lastDropTarget = null;\n }\n });\n\n clearInterval(this._scrollInterval);\n this._scrollInterval = null;\n this._cancel(this._trigger(DRAGEND, e));\n },\n\n _onCancel: function(e) {\n this._cancel();\n this._trigger(DRAGCANCEL, { event: e });\n },\n\n _cancel: function(isDefaultPrevented) {\n var that = this;\n\n that._scrollableParent = null;\n this._cursorElement = null;\n clearInterval(this._scrollInterval);\n that._activated = false;\n\n if (that.hint && !that.dropped) {\n setTimeout(function() {\n that.hint.stop(true, true);\n\n if (isDefaultPrevented) {\n that._afterEndHandler();\n } else {\n that.hint.animate(that.currentTargetOffset, \"fast\", that._afterEndHandler);\n }\n }, 0);\n } else {\n that._afterEnd();\n }\n },\n\n _trigger: function(eventName, e) {\n var that = this;\n\n return that.trigger(\n eventName, extend(\n {},\n e.event,\n {\n x: e.x,\n y: e.y,\n currentTarget: that.currentTarget,\n initialTarget: e.touch ? e.touch.initialTouch : null,\n dropTarget: e.dropTarget,\n elementUnderCursor: e.elementUnderCursor,\n clickMoveClick: e.clickMoveClick\n }\n ));\n },\n\n _elementUnderCursor: function(e) {\n var target = elementUnderCursor(e),\n hint = this.hint;\n\n if (hint && contains(hint[0], target)) {\n hint.hide();\n target = elementUnderCursor(e);\n // IE8 does not return the element in iframe from first attempt\n if (!target) {\n target = elementUnderCursor(e);\n }\n hint.show();\n }\n\n return target;\n },\n\n _withDropTarget: function(element, callback) {\n var result,\n group = this.options.group,\n targets = dropTargets[group],\n areas = dropAreas[group];\n\n if (targets && targets.length || areas && areas.length) {\n result = checkTarget(element, targets, areas);\n\n if (result) {\n callback(result.target, result.targetElement);\n } else {\n callback();\n }\n }\n },\n\n destroy: function() {\n var that = this;\n\n Widget.fn.destroy.call(that);\n\n that._afterEnd();\n\n that.userEvents.destroy();\n\n if (that.clickMoveClick) {\n that.clickMoveClick.destroy();\n }\n\n this._scrollableParent = null;\n this._cursorElement = null;\n clearInterval(this._scrollInterval);\n\n that.currentTarget = null;\n },\n\n _afterEnd: function() {\n var that = this;\n\n if (that.hint) {\n that.hint.remove();\n }\n\n delete draggables[that.options.group];\n\n that.trigger(\"destroy\");\n that.trigger(HINTDESTROYED);\n $(document).off(KEYUP, that._captureEscape);\n }\n });\n\n kendo.ui.plugin(DropTarget);\n kendo.ui.plugin(DropTargetArea);\n kendo.ui.plugin(Draggable);\n kendo.TapCapture = TapCapture;\n kendo.containerBoundaries = containerBoundaries;\n\n extend(kendo.ui, {\n Pane: Pane,\n PaneDimensions: PaneDimensions,\n Movable: Movable\n });\n\n function scrollableViewPort(element) {\n var root = scrollableRoot()[0],\n offset,\n top,\n left;\n\n if (element[0] === root) {\n top = root.scrollTop;\n left = root.scrollLeft;\n\n return {\n top: top,\n left: left,\n bottom: top + $window.height(),\n right: left + $window.width()\n };\n } else {\n offset = element.offset();\n offset.bottom = offset.top + element.height();\n offset.right = offset.left + element.width();\n return offset;\n }\n }\n\n function scrollableRoot() {\n return $(kendo.support.browser.edge || kendo.support.browser.safari ? document.body : document.documentElement);\n }\n\n function findScrollableParent(element) {\n var root = scrollableRoot();\n\n if (!element || element === document.body || element === document.documentElement) {\n return root;\n }\n\n var parent = $(element)[0];\n\n while (parent && !kendo.isScrollable(parent) && parent !== document.body) {\n parent = parent.parentNode;\n }\n\n if (parent === document.body) {\n return root;\n }\n\n return $(parent);\n }\n\n function autoScrollVelocity(mouseX, mouseY, rect) {\n var velocity = { x: 0, y: 0 };\n\n var AUTO_SCROLL_AREA = 50;\n\n if (mouseX - rect.left < AUTO_SCROLL_AREA) {\n velocity.x = -(AUTO_SCROLL_AREA - (mouseX - rect.left));\n } else if (rect.right - mouseX < AUTO_SCROLL_AREA) {\n velocity.x = AUTO_SCROLL_AREA - (rect.right - mouseX);\n }\n\n if (mouseY - rect.top < AUTO_SCROLL_AREA) {\n velocity.y = -(AUTO_SCROLL_AREA - (mouseY - rect.top));\n } else if (rect.bottom - mouseY < AUTO_SCROLL_AREA) {\n velocity.y = AUTO_SCROLL_AREA - (rect.bottom - mouseY);\n }\n\n return velocity;\n }\n\n // export for testing\n kendo.ui.Draggable.utils = {\n autoScrollVelocity: autoScrollVelocity,\n scrollableViewPort: scrollableViewPort,\n findScrollableParent: findScrollableParent\n };\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}