{"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","outerWidth","kendo","_outerWidth","outerHeight","_outerHeight","minX","left","minY","top","maxX","width","maxY","height","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","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","_cursorElement","_scrollableParent","_lastEvent","_processMovement","_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), outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, minX = offset.left + numericCssPropery(container, 'borderLeftWidth') + numericCssPropery(container, 'paddingLeft'), minY = offset.top + numericCssPropery(container, 'borderTopWidth') + numericCssPropery(container, 'paddingTop'), maxX = minX + container.width() - outerWidth(element, true), maxY = minY + container.height() - outerHeight(element, 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 if (this.options.autoScroll && this._cursorElement !== cursorElement) {\n this._scrollableParent = findScrollableParent(cursorElement);\n this._cursorElement = cursorElement;\n }\n this._lastEvent = e;\n this._processMovement(e, cursorElement);\n if (this.options.autoScroll) {\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 (this.hint && 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}));"]}