{"version":3,"file":"kendo.reorderable.min.js","names":["factory","define","amd","$","kendo","outerWidth","outerHeight","getOffset","Widget","CHANGE","Reorderable","window","jQuery","_outerWidth","_outerHeight","ui","extend","init","element","options","draggable","that","this","group","guid","fn","call","addClass","Draggable","autoScroll","filter","hint","dropFilter","reorderDropCue","find","kendoDropTarget","dragenter","e","externalDraggableInstance","_externalDraggable","_draggable","_handleExternalDraggable","offset","dropTarget","denied","_isPartOfSortable","_dropTargetAllowed","_isLastDraggable","toggleHintClass","cueOffset","top","left","isHorizontal","orientation","smartPosition","inSameContainer","source","target","sourceIndex","_index","targetIndex","_dropTarget","css","height","zIndex","appendTo","document","body","positionDropCue","dragleave","remove","drop","dropIndex","isAfter","trigger","oldIndex","newIndex","position","bind","dragcancel","_dragcancel","dragend","_dragend","dragstart","_dragstart","drag","_drag","name","deniedIcon","allowIcon","events","removeClass","draggableFilter","trimStart","substring","_dragcancelHandler","_dragendHandler","_dragstartHandler","_dragHandler","currentTarget","closest","_draggableInstance","_elements","unbind","is","sender","hasClass","dropStartOffset","width","pageX","dropStartTop","pageY","dragOverContainers","index","externalDraggable","item","elements","get","found","length","pop","destroy","each","data","plugin"],"sources":["kendo.reorderable.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.draganddrop'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"reorderable\",\n name: \"Reorderable\",\n category: \"framework\",\n depends: [ \"core\", \"draganddrop\" ],\n advanced: true\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n outerWidth = kendo._outerWidth,\n outerHeight = kendo._outerHeight,\n getOffset = kendo.getOffset,\n Widget = kendo.ui.Widget,\n CHANGE = \"change\",\n KREORDERABLE = \"k-reorderable\";\n\n var Reorderable = Widget.extend({\n init: function(element, options) {\n var that = this,\n draggable,\n group = kendo.guid() + \"-reorderable\";\n\n Widget.fn.init.call(that, element, options);\n\n element = that.element.addClass(KREORDERABLE);\n options = that.options;\n\n that.draggable = draggable = options.draggable || new kendo.ui.Draggable(element, {\n group: group,\n autoScroll: true,\n filter: options.filter,\n hint: options.hint\n });\n\n if (!that.options.dropFilter) {\n that.options.dropFilter = draggable.options.filter;\n }\n\n that.reorderDropCue = that.options.reorderDropCue;\n\n element.find(options.dropFilter).kendoDropTarget({\n group: draggable.options.group,\n dragenter: function(e) {\n var externalDraggableInstance = that._externalDraggable(e);\n\n if (!that._draggable && !externalDraggableInstance) {\n return;\n }\n\n if (externalDraggableInstance) {\n that._handleExternalDraggable(externalDraggableInstance);\n }\n\n var dropTarget = this.element, offset;\n\n var denied = that._isPartOfSortable(that._draggable) ? (!that._dropTargetAllowed(dropTarget) || that._isLastDraggable()) : false;\n\n that.toggleHintClass(e.draggable.hint, denied);\n\n if (!denied) {\n offset = getOffset(dropTarget);\n var cueOffset = { top: offset.top, left: offset.left };\n var isHorizontal = options.orientation === \"horizontal\";\n\n if (!options.smartPosition || (options.inSameContainer && !options.inSameContainer({\n source: dropTarget,\n target: that._draggable,\n sourceIndex: that._index(dropTarget),\n targetIndex: that._index(that._draggable)\n }))) {\n that._dropTarget = dropTarget;\n } else {\n if (that._index(dropTarget) > that._index(that._draggable) && options.smartPosition) {\n cueOffset[isHorizontal ? \"left\" : \"top\"] += isHorizontal ? outerWidth(dropTarget) : outerHeight(dropTarget);\n }\n }\n\n that.reorderDropCue.css({\n height: outerHeight(dropTarget),\n top: cueOffset.top,\n left: cueOffset.left,\n zIndex: 19000\n })\n .appendTo(document.body);\n\n if (options.positionDropCue) {\n options.positionDropCue(that.reorderDropCue, dropTarget);\n }\n }\n },\n dragleave: function(e) {\n that.toggleHintClass(e.draggable.hint, true);\n that.reorderDropCue.remove();\n that._dropTarget = null;\n },\n drop: function() {\n that._dropTarget = null;\n\n if (!that._draggable) {\n return;\n }\n var dropTarget = this.element;\n var draggable = that._draggable;\n var dropIndex = that._index(dropTarget);\n\n var isAfter = that.options.orientation === \"horizontal\" ?\n getOffset(that.reorderDropCue).left > getOffset(dropTarget).left :\n getOffset(that.reorderDropCue).top > getOffset(dropTarget).top;\n\n dropIndex = isAfter ? dropIndex + 1 : dropIndex;\n\n if (that._dropTargetAllowed(dropTarget) && !that._isLastDraggable() && that._index(draggable) !== dropIndex) {\n that.trigger(CHANGE, {\n element: that._draggable,\n target: dropTarget,\n oldIndex: that._index(draggable),\n newIndex: that._index(dropTarget),\n position: isAfter ? \"after\" : \"before\"\n });\n }\n\n if (that.reorderDropCue) {\n that.reorderDropCue.remove();\n }\n }\n });\n\n draggable.bind([ \"dragcancel\", \"dragend\", \"dragstart\", \"drag\" ], {\n dragcancel: that._dragcancel.bind(that),\n dragend: that._dragend.bind(that),\n dragstart: that._dragstart.bind(that),\n drag: that._drag.bind(that)\n });\n },\n\n options: {\n name: \"Reorderable\",\n filter: \"*\",\n orientation: \"horizontal\",\n deniedIcon: \"k-i-cancel\",\n allowIcon: \"k-i-plus\",\n reorderDropCue: $('
'),\n smartPosition: true\n },\n\n events: [\n CHANGE\n ],\n\n toggleHintClass: function(hint, denied) {\n var that = this,\n options = that.options;\n\n hint = $(hint);\n\n if (denied) {\n hint.find(\".k-drag-status\").removeClass(options.allowIcon).addClass(options.deniedIcon);\n } else {\n hint.find(\".k-drag-status\").removeClass(options.deniedIcon).addClass(options.allowIcon);\n }\n },\n\n _handleExternalDraggable: function(draggable) {\n var that = this;\n var draggableFilter = that.options.dropFilter.trimStart();\n\n // make direct child selectors compatible with .closest()\n if (draggableFilter && draggableFilter[0] == \">\") {\n draggableFilter = draggableFilter.substring(1);\n }\n\n that._dragcancelHandler = that._dragcancel.bind(that);\n that._dragendHandler = that._dragend.bind(that);\n that._dragstartHandler = that._dragstart.bind(that);\n that._dragHandler = that._drag.bind(that);\n\n that._draggable = draggable.currentTarget.closest(draggableFilter);\n that._draggableInstance = draggable;\n that._elements = that.element.find(that.options.dropFilter);\n\n draggable.bind([ \"dragcancel\", \"dragend\", \"dragstart\", \"drag\" ], {\n dragcancel: that._dragcancelHandler,\n dragend: that._dragendHandler,\n dragstart: that._dragstartHandler,\n drag: that._dragHandler\n });\n },\n\n _dragcancel: function() {\n var that = this;\n\n if (that._draggableInstance && (that._dragcancelHandler || that._dragendHandler ||\n that._dragstartHandler || that._dragHandler)) {\n\n that._draggableInstance.unbind({\n dragcancel: that._dragcancelHandler,\n dragend: that._dragendHandler,\n dragstart: that._dragstartHandler,\n drag: that._dragHandler\n });\n }\n\n if (that.reorderDropCue) {\n that.reorderDropCue.remove();\n }\n\n that._draggable = null;\n that._elements = null;\n\n },\n _dragend: function() {\n var that = this;\n\n if (that._draggableInstance && (that._dragcancelHandler || that._dragendHandler ||\n that._dragstartHandler || that._dragHandler)) {\n\n that._draggableInstance.unbind({\n dragcancel: that._dragcancelHandler,\n dragend: that._dragendHandler,\n dragstart: that._dragstartHandler,\n drag: that._dragHandler\n });\n }\n\n if (that.reorderDropCue) {\n that.reorderDropCue.remove();\n }\n\n that._draggable = null;\n that._elements = null;\n },\n _dragstart: function(e) {\n var that = this;\n var target = $(e.currentTarget);\n var draggableFilter = that.options.dropFilter.trimStart();\n\n // make direct child selectors compatible with .closest()\n if (draggableFilter && draggableFilter[0] == \">\") {\n draggableFilter = draggableFilter.substring(1);\n }\n\n that._draggable = target.is(draggableFilter) ? target : target.closest(draggableFilter);\n that._elements = that.element.find(that.options.dropFilter);\n },\n _drag: function(e) {\n var that = this,\n dropIndex, sourceIndex, denied,\n offset = {},\n target,\n draggableFilter = that.options.dropFilter.trimStart();\n\n // make direct child selectors compatible with .closest()\n if (draggableFilter && draggableFilter[0] == \">\") {\n draggableFilter = draggableFilter.substring(1);\n }\n\n target = $(e.currentTarget).closest(draggableFilter);\n\n if (!that._dropTarget || (that.options.smartPosition && e.sender.hint.find(\".k-drag-status\").hasClass(\"k-i-cancel\"))) {\n return;\n }\n\n dropIndex = that._index(that._dropTarget);\n sourceIndex = that._index(target);\n sourceIndex = dropIndex > sourceIndex ? sourceIndex + 1 : sourceIndex;\n\n if (that.options.orientation === \"horizontal\") {\n var dropStartOffset = getOffset(that._dropTarget).left;\n var width = outerWidth(that._dropTarget);\n\n if (e.pageX > dropStartOffset + width / 2) {\n offset.left = dropStartOffset + width;\n dropIndex += 1;\n } else {\n offset.left = dropStartOffset;\n }\n } else {\n var dropStartTop = getOffset(that._dropTarget).top;\n var height = outerHeight(that._dropTarget);\n\n if (e.pageY > dropStartTop + height / 2) {\n offset.top = dropStartTop + height;\n dropIndex += 1;\n } else {\n offset.top = dropStartTop;\n }\n }\n\n that.reorderDropCue.css(offset);\n\n if (that.options.positionDropCue) {\n that.options.positionDropCue(that.reorderDropCue, that._dropTarget);\n }\n\n if (that._isPartOfSortable(target)) {\n\n denied = sourceIndex === dropIndex || (that.options.dragOverContainers && !that.options.dragOverContainers(sourceIndex, dropIndex));\n\n that.toggleHintClass(e.sender.hint, denied);\n }\n },\n\n _isPartOfSortable: function(draggable) {\n var that = this;\n\n return that._elements.index(draggable) >= 0;\n },\n\n _externalDraggable: function(e) {\n var that = this,\n options = that.options;\n\n if (!that._draggable && options.externalDraggable) {\n return options.externalDraggable(e);\n }\n\n return null;\n },\n\n _isLastDraggable: function() {\n var inSameContainer = this.options.inSameContainer,\n draggable = this._draggable[0],\n elements = this._elements.get(),\n found = false,\n item;\n\n if (!inSameContainer) {\n return false;\n }\n\n while (!found && elements.length > 0) {\n item = elements.pop();\n found = draggable !== item && inSameContainer({\n source: draggable,\n target: item,\n sourceIndex: this._index(draggable),\n targetIndex: this._index(item)\n });\n }\n\n return !found;\n },\n\n _dropTargetAllowed: function(dropTarget) {\n var inSameContainer = this.options.inSameContainer,\n dragOverContainers = this.options.dragOverContainers,\n draggable = this._draggable;\n\n if (draggable[0] === dropTarget[0]) {\n return false;\n }\n\n if (!inSameContainer || !dragOverContainers) {\n return true;\n }\n\n if (inSameContainer({ source: draggable,\n target: dropTarget,\n sourceIndex: this._index(draggable),\n targetIndex: this._index(dropTarget)\n })) {\n return true;\n }\n\n return dragOverContainers(this._index(draggable), this._index(dropTarget));\n },\n\n _index: function(element) {\n return this._elements.index(element);\n },\n\n destroy: function() {\n var that = this;\n\n\n Widget.fn.destroy.call(that);\n\n that.element.find(that.options.dropFilter).each(function() {\n var item = $(this);\n if (item.data(\"kendoDropTarget\")) {\n item.data(\"kendoDropTarget\").destroy();\n }\n });\n\n if (that.draggable) {\n that.draggable.destroy();\n\n that.draggable.element = that.draggable = null;\n }\n\n that.reorderDropCue.remove();\n that.elements = that.reorderDropCue = that._elements = that._draggable = null;\n }\n });\n\n kendo.ui.plugin(Reorderable);\n\n })(window.kendo.jQuery);\n\n}));\n"]}