{"version":3,"sources":["kendo.draganddrop.js"],"names":["f","define","$","undefined","contains","parent","child","e","numericCssPropery","element","property","parseInt","css","within","value","range","Math","min","max","containerBoundaries","container","offset","getOffset","minX","left","minY","top","maxX","width","outerWidth","maxY","height","outerHeight","x","y","checkTarget","target","targets","areas","theTarget","theFilter","i","targetLen","length","areaLen","parentNode","targetElement","support","matchesSelector","call","options","filter","destroyDroppable","collection","widget","groupName","group","droppables","Widget","fn","destroy","splice","scrollableViewPort","root","scrollableRoot","scrollTop","scrollLeft","bottom","$window","right","kendo","browser","chrome","document","body","documentElement","findScrollableParent","isScrollable","autoScrollVelocity","mouseX","mouseY","rect","velocity","AUTO_SCROLL_AREA","lastDropTarget","translate","Movable","DropTarget","DropTargetArea","Draggable","window","Class","ui","Observable","UserEvents","proxy","extend","draggables","dropTargets","dropAreas","elementUnderCursor","KEYUP","CHANGE","DRAGSTART","HOLD","DRAG","DRAGEND","DRAGCANCEL","HINTDESTROYED","DRAGENTER","DRAGLEAVE","DROP","TapCapture","init","that","this","domElement","capture","addEventListener","each","eventMap","down","split","_press","up","_release","attachEvent","bind","captureNext","cancelCapture","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","closest","is","sender","cancel","gesturechange","coordinates","offsetX","offsetY","previousGesture","previousCenter","center","scaleDelta","distance","scaleWith","move","tagName","match","touch","skip","end","TRANSFORM_STYLE","transitions","prefix","hasHW3D","style","webkitTransformOrigin","_saveCoordinates","by","scaleTo","moveAxis","moveTo","newCoordinates","round","msie","version","push","events","name","_trigger","eventName","draggable","dropTarget","_over","_out","_drop","dropped","destroyGroup","_cache","_activated","global","allowSelection","threshold","start","_start","hold","_hold","_drag","_end","_cancel","select","_select","_afterEndHandler","_afterEnd","_captureEscape","cursorOffset","ignore","holdToDrag","autoScroll","cancelHold","keyCode","keys","ESC","_updateHint","boundaries","location","hintOffset","hint","_shouldIgnoreTarget","ignoreSelector","initialTouch","currentTarget","currentTargetOffset","stop","remove","isFunction","zIndex","appendTo","angular","removeAttr","scopeTarget","data","elements","get","scopeFrom","on","cursorElement","_elementUnderCursor","_lastEvent","_processMovement","_cursorElement","_scrollableParent","_scrollCompenstation","_scrollVelocity","clearInterval","_scrollInterval","setInterval","_withDropTarget","_autoScroll","yIsScrollable","xIsScrollable","isRootNode","yDelta","yInBounds","xDelta","xInBounds","compensation","scrollHeight","scrollWidth","offsetHeight","offsetWidth","isDefaultPrevented","setTimeout","animate","initialTarget","hide","show","callback","result","off","plugin","utils","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.draganddrop.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.draganddrop', [\n 'kendo.core',\n 'kendo.userevents'\n ], f);\n}(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: [\n 'core',\n 'userevents'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, support = kendo.support, document = window.document, $window = $(window), Class = kendo.Class, Widget = kendo.ui.Widget, Observable = kendo.Observable, UserEvents = kendo.UserEvents, proxy = $.proxy, extend = $.extend, getOffset = kendo.getOffset, draggables = {}, dropTargets = {}, dropAreas = {}, lastDropTarget, elementUnderCursor = kendo.elementUnderCursor, KEYUP = 'keyup', CHANGE = 'change', DRAGSTART = 'dragstart', HOLD = 'hold', DRAG = 'drag', DRAGEND = 'dragend', DRAGCANCEL = 'dragcancel', HINTDESTROYED = 'hintDestroyed', DRAGENTER = 'dragenter', DRAGLEAVE = 'dragleave', DROP = 'drop';\n function contains(parent, child) {\n try {\n return $.contains(parent, child) || parent == child;\n } catch (e) {\n return false;\n }\n }\n function numericCssPropery(element, property) {\n return parseInt(element.css(property), 10) || 0;\n }\n function within(value, range) {\n return Math.min(Math.max(value, range.min), range.max);\n }\n function containerBoundaries(container, element) {\n var offset = getOffset(container), minX = offset.left + numericCssPropery(container, 'borderLeftWidth') + numericCssPropery(container, 'paddingLeft'), minY = offset.top + numericCssPropery(container, 'borderTopWidth') + numericCssPropery(container, 'paddingTop'), maxX = minX + container.width() - element.outerWidth(true), maxY = minY + container.height() - element.outerHeight(true);\n return {\n x: {\n min: minX,\n max: maxX\n },\n y: {\n min: minY,\n max: maxY\n }\n };\n }\n function checkTarget(target, targets, areas) {\n var theTarget, theFilter, i = 0, targetLen = targets && targets.length, areaLen = areas && areas.length;\n while (target && target.parentNode) {\n for (i = 0; i < targetLen; i++) {\n theTarget = targets[i];\n if (theTarget.element[0] === target) {\n return {\n target: theTarget,\n 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 {\n target: theFilter,\n targetElement: target\n };\n }\n }\n target = target.parentNode;\n }\n return undefined;\n }\n var TapCapture = Observable.extend({\n init: function (element, options) {\n var that = this, domElement = element[0];\n that.capture = false;\n if (domElement.addEventListener) {\n $.each(kendo.eventMap.down.split(' '), function () {\n domElement.addEventListener(this, proxy(that._press, that), true);\n });\n $.each(kendo.eventMap.up.split(' '), function () {\n domElement.addEventListener(this, proxy(that._release, that), true);\n });\n } else {\n $.each(kendo.eventMap.down.split(' '), function () {\n domElement.attachEvent(this, proxy(that._press, that));\n });\n $.each(kendo.eventMap.up.split(' '), function () {\n domElement.attachEvent(this, proxy(that._release, that));\n });\n }\n Observable.fn.init.call(that);\n that.bind([\n 'press',\n 'release'\n ], options || {});\n },\n captureNext: function () {\n this.capture = true;\n },\n cancelCapture: function () {\n this.capture = false;\n },\n _press: function (e) {\n var that = this;\n that.trigger('press');\n if (that.capture) {\n e.preventDefault();\n }\n },\n _release: function (e) {\n var that = this;\n that.trigger('release');\n if (that.capture) {\n e.preventDefault();\n that.cancelCapture();\n }\n }\n });\n var PaneDimension = Observable.extend({\n init: function (options) {\n var that = this;\n Observable.fn.init.call(that);\n that.forcedEnabled = false;\n $.extend(that, options);\n that.scale = 1;\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 makeVirtual: function () {\n $.extend(this, {\n virtual: true,\n forcedEnabled: true,\n _virtualMin: 0,\n _virtualMax: 0\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 outOfBounds: function (offset) {\n return offset > this.max || offset < this.min;\n },\n forceEnabled: function () {\n this.forcedEnabled = true;\n },\n getSize: function () {\n return this.container[0][this.measure];\n },\n getTotal: function () {\n return this.element[0][this.scrollSize];\n },\n rescale: function (scale) {\n this.scale = scale;\n },\n update: function (silent) {\n var that = this, total = that.virtual ? that._virtualMax : that.getTotal(), scaledTotal = total * that.scale, size = that.getSize();\n if (total === 0 && !that.forcedEnabled) {\n return;\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 that.enabled = that.forcedEnabled || scaledTotal > size;\n if (!silent) {\n that.trigger(CHANGE, that);\n }\n }\n });\n var PaneDimensions = Observable.extend({\n init: function (options) {\n var that = this;\n Observable.fn.init.call(that);\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 that.bind(CHANGE, options);\n },\n rescale: function (newScale) {\n this.x.rescale(newScale);\n this.y.rescale(newScale);\n this.refresh();\n },\n centerCoordinates: function () {\n return {\n x: Math.min(0, -this.x.centerOffset),\n 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 var PaneAxis = Observable.extend({\n init: function (options) {\n var that = this;\n extend(that, options);\n Observable.fn.init.call(that);\n },\n outOfBounds: function () {\n return this.dimension.outOfBounds(this.movable[this.axis]);\n },\n dragMove: function (delta) {\n var that = this, dimension = that.dimension, axis = that.axis, movable = that.movable, position = movable[axis] + delta;\n if (!dimension.enabled) {\n return;\n }\n if (position < dimension.min && delta < 0 || position > dimension.max && delta > 0) {\n delta *= that.resistance;\n }\n movable.translateAxis(axis, delta);\n that.trigger(CHANGE, that);\n }\n });\n var Pane = Class.extend({\n init: function (options) {\n var that = this, x, y, resistance, movable;\n extend(that, { elastic: true }, options);\n resistance = that.elastic ? 0.5 : 0;\n movable = that.movable;\n that.x = x = new PaneAxis({\n axis: 'x',\n dimension: that.dimensions.x,\n resistance: resistance,\n movable: movable\n });\n that.y = y = new PaneAxis({\n axis: 'y',\n dimension: that.dimensions.y,\n resistance: resistance,\n movable: movable\n });\n that.userEvents.bind([\n 'press',\n 'move',\n 'end',\n 'gesturestart',\n 'gesturechange'\n ], {\n gesturestart: function (e) {\n that.gesture = e;\n that.offset = that.dimensions.container.offset();\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 gesturechange: function (e) {\n var previousGesture = that.gesture, previousCenter = previousGesture.center, center = e.center, scaleDelta = e.distance / previousGesture.distance, minScale = that.dimensions.minScale, maxScale = that.dimensions.maxScale, coordinates;\n if (movable.scale <= minScale && scaleDelta < 1) {\n scaleDelta += (1 - scaleDelta) * 0.8;\n }\n if (movable.scale * scaleDelta >= maxScale) {\n scaleDelta = maxScale / movable.scale;\n }\n var offsetX = movable.x + that.offset.left, offsetY = movable.y + that.offset.top;\n coordinates = {\n x: (offsetX - previousCenter.x) * scaleDelta + center.x - offsetX,\n y: (offsetY - previousCenter.y) * scaleDelta + center.y - offsetY\n };\n movable.scaleWith(scaleDelta);\n x.dragMove(coordinates.x);\n y.dragMove(coordinates.y);\n that.dimensions.rescale(movable.scale);\n that.gesture = e;\n e.preventDefault();\n },\n move: function (e) {\n if (e.event.target.tagName.match(/textarea|input/i)) {\n return;\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 end: function (e) {\n e.preventDefault();\n }\n });\n }\n });\n var TRANSFORM_STYLE = support.transitions.prefix + 'Transform', translate;\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 var Movable = Observable.extend({\n init: function (element) {\n var that = this;\n Observable.fn.init.call(that);\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 translateAxis: function (axis, by) {\n this[axis] += by;\n this.refresh();\n },\n scaleTo: function (scale) {\n this.scale = scale;\n this.refresh();\n },\n scaleWith: function (scaleDelta) {\n this.scale *= scaleDelta;\n this.refresh();\n },\n translate: function (coordinates) {\n this.x += coordinates.x;\n this.y += coordinates.y;\n this.refresh();\n },\n moveAxis: function (axis, value) {\n this[axis] = value;\n this.refresh();\n },\n moveTo: function (coordinates) {\n extend(this, coordinates);\n this.refresh();\n },\n refresh: function () {\n var that = this, x = that.x, y = that.y, newCoordinates;\n if (that.round) {\n x = Math.round(x);\n y = Math.round(y);\n }\n newCoordinates = translate(x, y, that.scale);\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 } else {\n that.element[0].style[TRANSFORM_STYLE] = newCoordinates;\n }\n that._saveCoordinates(newCoordinates);\n that.trigger(CHANGE);\n }\n },\n _saveCoordinates: function (coordinates) {\n this.coordinates = coordinates;\n }\n });\n function destroyDroppable(collection, widget) {\n var groupName = widget.options.group, droppables = collection[groupName], i;\n Widget.fn.destroy.call(widget);\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;\n delete collection[groupName];\n }\n }\n var DropTarget = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n var group = that.options.group;\n if (!(group in dropTargets)) {\n dropTargets[group] = [that];\n } else {\n dropTargets[group].push(that);\n }\n },\n events: [\n DRAGENTER,\n DRAGLEAVE,\n DROP\n ],\n options: {\n name: 'DropTarget',\n group: 'default'\n },\n destroy: function () {\n destroyDroppable(dropTargets, this);\n },\n _trigger: function (eventName, e) {\n var that = this, draggable = draggables[that.options.group];\n if (draggable) {\n return that.trigger(eventName, extend({}, e.event, {\n draggable: draggable,\n dropTarget: e.dropTarget\n }));\n }\n },\n _over: function (e) {\n this._trigger(DRAGENTER, e);\n },\n _out: function (e) {\n this._trigger(DRAGLEAVE, e);\n },\n _drop: function (e) {\n var that = this, draggable = draggables[that.options.group];\n if (draggable) {\n draggable.dropped = !that._trigger(DROP, e);\n }\n }\n });\n DropTarget.destroyGroup = function (groupName) {\n var group = dropTargets[groupName] || dropAreas[groupName], i;\n if (group) {\n for (i = 0; i < group.length; i++) {\n Widget.fn.destroy.call(group[i]);\n }\n group.length = 0;\n delete dropTargets[groupName];\n delete dropAreas[groupName];\n }\n };\n DropTarget._cache = dropTargets;\n var DropTargetArea = DropTarget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n var group = that.options.group;\n if (!(group in dropAreas)) {\n dropAreas[group] = [that];\n } else {\n dropAreas[group].push(that);\n }\n },\n destroy: function () {\n destroyDroppable(dropAreas, this);\n },\n options: {\n name: 'DropTargetArea',\n group: 'default',\n filter: null\n }\n });\n var Draggable = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that._activated = false;\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: proxy(that._start, that),\n hold: proxy(that._hold, that),\n move: proxy(that._drag, that),\n end: proxy(that._end, that),\n cancel: proxy(that._cancel, that),\n select: proxy(that._select, that)\n });\n that._afterEndHandler = proxy(that._afterEnd, that);\n that._captureEscape = proxy(that._captureEscape, that);\n },\n events: [\n HOLD,\n DRAGSTART,\n DRAG,\n DRAGEND,\n DRAGCANCEL,\n HINTDESTROYED\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 autoScroll: false,\n dropped: false\n },\n cancelHold: function () {\n this._activated = false;\n },\n _captureEscape: function (e) {\n var that = this;\n if (e.keyCode === kendo.keys.ESC) {\n that._trigger(DRAGCANCEL, { event: e });\n that.userEvents.cancel();\n }\n },\n _updateHint: function (e) {\n var that = this, coordinates, options = that.options, boundaries = that.boundaries, axis = options.axis, cursorOffset = that.options.cursorOffset;\n if (cursorOffset) {\n coordinates = {\n left: e.x.location + cursorOffset.left,\n top: e.y.location + cursorOffset.top\n };\n } else {\n that.hintOffset.left += e.x.delta;\n that.hintOffset.top += e.y.delta;\n coordinates = $.extend({}, that.hintOffset);\n }\n if (boundaries) {\n coordinates.top = within(coordinates.top, boundaries.y);\n coordinates.left = within(coordinates.left, boundaries.x);\n }\n if (axis === 'x') {\n delete coordinates.top;\n } else if (axis === 'y') {\n delete coordinates.left;\n }\n that.hint.css(coordinates);\n },\n _shouldIgnoreTarget: function (target) {\n var ignoreSelector = this.options.ignore;\n return ignoreSelector && $(target).is(ignoreSelector);\n },\n _select: function (e) {\n if (!this._shouldIgnoreTarget(e.event.target)) {\n e.preventDefault();\n }\n },\n _start: function (e) {\n var that = this, options = that.options, container = options.container, hint = options.hint;\n if (this._shouldIgnoreTarget(e.touch.initialTouch) || options.holdToDrag && !that._activated) {\n that.userEvents.cancel();\n return;\n }\n that.currentTarget = e.target;\n that.currentTargetOffset = getOffset(that.currentTarget);\n if (hint) {\n if (that.hint) {\n that.hint.stop(true, true).remove();\n }\n that.hint = kendo.isFunction(hint) ? $(hint.call(that, that.currentTarget)) : hint;\n var offset = getOffset(that.currentTarget);\n that.hintOffset = offset;\n that.hint.css({\n position: 'absolute',\n zIndex: 20000,\n left: offset.left,\n top: offset.top\n }).appendTo(document.body);\n that.angular('compile', function () {\n that.hint.removeAttr('ng-repeat');\n var scopeTarget = $(e.target);\n while (!scopeTarget.data('$$kendoScope') && scopeTarget.length) {\n scopeTarget = scopeTarget.parent();\n }\n return {\n elements: that.hint.get(),\n scopeFrom: scopeTarget.data('$$kendoScope')\n };\n });\n }\n draggables[options.group] = that;\n that.dropped = false;\n if (container) {\n that.boundaries = containerBoundaries(container, that.hint);\n }\n $(document).on(KEYUP, that._captureEscape);\n if (that._trigger(DRAGSTART, e)) {\n that.userEvents.cancel();\n that._afterEnd();\n }\n that.userEvents.capture();\n },\n _hold: function (e) {\n this.currentTarget = e.target;\n if (this._trigger(HOLD, e)) {\n this.userEvents.cancel();\n } else {\n this._activated = true;\n }\n },\n _drag: function (e) {\n e.preventDefault();\n var cursorElement = this._elementUnderCursor(e);\n this._lastEvent = e;\n this._processMovement(e, cursorElement);\n if (this.options.autoScroll) {\n if (this._cursorElement !== cursorElement) {\n this._scrollableParent = findScrollableParent(cursorElement);\n this._cursorElement = cursorElement;\n }\n if (this._scrollableParent[0]) {\n var velocity = autoScrollVelocity(e.x.location, e.y.location, scrollableViewPort(this._scrollableParent));\n this._scrollCompenstation = $.extend({}, this.hintOffset);\n this._scrollVelocity = velocity;\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($.proxy(this, '_autoScroll'), 50);\n }\n }\n }\n if (this.hint) {\n this._updateHint(e);\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 if (lastDropTarget) {\n if (targetElement === lastDropTarget.targetElement) {\n return;\n }\n lastDropTarget._trigger(DRAGLEAVE, extend(e, { dropTarget: $(lastDropTarget.targetElement) }));\n }\n target._trigger(DRAGENTER, extend(e, { dropTarget: $(targetElement) }));\n lastDropTarget = extend(target, { targetElement: targetElement });\n });\n this._trigger(DRAG, extend(e, {\n dropTarget: lastDropTarget,\n elementUnderCursor: cursorElement\n }));\n },\n _autoScroll: function () {\n var parent = this._scrollableParent[0], velocity = this._scrollVelocity, compensation = this._scrollCompenstation;\n if (!parent) {\n return;\n }\n var cursorElement = this._elementUnderCursor(this._lastEvent);\n this._processMovement(this._lastEvent, cursorElement);\n var yIsScrollable, xIsScrollable;\n var isRootNode = parent === scrollableRoot()[0];\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 var yDelta = parent.scrollTop + velocity.y;\n var yInBounds = yIsScrollable && yDelta > 0 && yDelta < parent.scrollHeight;\n var xDelta = parent.scrollLeft + velocity.x;\n var xInBounds = xIsScrollable && xDelta > 0 && xDelta < parent.scrollWidth;\n if (yInBounds) {\n parent.scrollTop += velocity.y;\n }\n if (xInBounds) {\n parent.scrollLeft += velocity.x;\n }\n if (isRootNode && (xInBounds || yInBounds)) {\n if (yInBounds) {\n compensation.top += velocity.y;\n }\n if (xInBounds) {\n compensation.left += velocity.x;\n }\n this.hint.css(compensation);\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 this._cancel(this._trigger(DRAGEND, e));\n },\n _cancel: function (isDefaultPrevented) {\n var that = this;\n that._scrollableParent = null;\n this._cursorElement = null;\n clearInterval(this._scrollInterval);\n that._activated = false;\n if (that.hint && !that.dropped) {\n setTimeout(function () {\n that.hint.stop(true, true);\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 _trigger: function (eventName, e) {\n var that = this;\n return that.trigger(eventName, extend({}, e.event, {\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 }));\n },\n _elementUnderCursor: function (e) {\n var target = elementUnderCursor(e), hint = this.hint;\n if (hint && contains(hint[0], target)) {\n hint.hide();\n target = elementUnderCursor(e);\n if (!target) {\n target = elementUnderCursor(e);\n }\n hint.show();\n }\n return target;\n },\n _withDropTarget: function (element, callback) {\n var result, group = this.options.group, targets = dropTargets[group], areas = dropAreas[group];\n if (targets && targets.length || areas && areas.length) {\n result = checkTarget(element, targets, areas);\n if (result) {\n callback(result.target, result.targetElement);\n } else {\n callback();\n }\n }\n },\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that._afterEnd();\n that.userEvents.destroy();\n this._scrollableParent = null;\n this._cursorElement = null;\n clearInterval(this._scrollInterval);\n that.currentTarget = null;\n },\n _afterEnd: function () {\n var that = this;\n if (that.hint) {\n that.hint.remove();\n }\n delete draggables[that.options.group];\n that.trigger('destroy');\n that.trigger(HINTDESTROYED);\n $(document).off(KEYUP, that._captureEscape);\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 extend(kendo.ui, {\n Pane: Pane,\n PaneDimensions: PaneDimensions,\n Movable: Movable\n });\n function scrollableViewPort(element) {\n var root = scrollableRoot()[0], offset, top, left;\n if (element[0] === root) {\n top = root.scrollTop;\n left = root.scrollLeft;\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 function scrollableRoot() {\n return $(kendo.support.browser.chrome ? document.body : document.documentElement);\n }\n function findScrollableParent(element) {\n var root = scrollableRoot();\n if (!element || element === document.body || element === document.documentElement) {\n return root;\n }\n var parent = $(element)[0];\n while (parent && !kendo.isScrollable(parent) && parent !== document.body) {\n parent = parent.parentNode;\n }\n if (parent === document.body) {\n return root;\n }\n return $(parent);\n }\n function autoScrollVelocity(mouseX, mouseY, rect) {\n var velocity = {\n x: 0,\n y: 0\n };\n var AUTO_SCROLL_AREA = 50;\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 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 return velocity;\n }\n kendo.ui.Draggable.utils = {\n autoScrollVelocity: autoScrollVelocity,\n scrollableViewPort: scrollableViewPort,\n findScrollableParent: findScrollableParent\n };\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"],"sourceRoot":"/source/"}