{"version":3,"sources":["kendo.selectable.js"],"names":["f","define","$","undefined","collision","element","position","is","elementPosition","kendo","getOffset","right","left","width","bottom","top","height","_outerWidth","_outerHeight","Selectable","window","Widget","ui","proxy","abs","Math","ARIASELECTED","SELECTED","ACTIVE","SELECTABLE","CHANGE","NS","UNSELECTING","INPUTSELECTOR","msie","support","browser","supportEventDelegation","on","find","click","end","off","extend","init","options","multiple","that","this","fn","call","_marquee","_lastActive","addClass","relatedTarget","aria","attr","userEvents","UserEvents","global","allowSelection","filter","tap","_tap","bind","_start","_move","_end","_select","events","name","noop","_isElement","target","idx","elements","length","result","e","selected","ctrlKey","event","metaKey","shiftKey","whichCode","which","buttonCode","button","closest","_allowSelection","hasClass","clear","add","selectRange","_firstSelectee","_unselect","_notify","value","_downTarget","currentElement","cancel","useAllItems","_items","sender","capture","appendTo","document","body","css","x","client","y","_selectElement","startLocation","location","initialDelta","_invalidateSelectables","preventDefault","remove","removeClass","related","toSelect","items","eq","val","selectElement","each","preventNotify","isPrevented","args","trigger","_activeElement","resetTouchEvents","start","tmp","continuousItems","inArray","destroy","parseOptions","selectable","asLowerString","toLowerCase","indexOf","cell","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.selectable.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.selectable', [\n 'kendo.core',\n 'kendo.userevents'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'selectable',\n name: 'Selectable',\n category: 'framework',\n depends: [\n 'core',\n 'userevents'\n ],\n advanced: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, proxy = $.proxy, abs = Math.abs, ARIASELECTED = 'aria-selected', SELECTED = 'k-state-selected', ACTIVE = 'k-state-selecting', SELECTABLE = 'k-selectable', CHANGE = 'change', NS = '.kendoSelectable', UNSELECTING = 'k-state-unselecting', INPUTSELECTOR = 'input,a,textarea,.k-multiselect-wrap,select,button,.k-button>span,.k-button>img,span.k-icon.k-i-arrow-60-down,span.k-icon.k-i-arrow-60-up', msie = kendo.support.browser.msie, supportEventDelegation = false;\n (function ($) {\n (function () {\n $('
').on('click', '>*', function () {\n supportEventDelegation = true;\n }).find('span').click().end().off();\n }());\n }($));\n var Selectable = Widget.extend({\n init: function (element, options) {\n var that = this, multiple;\n Widget.fn.init.call(that, element, options);\n that._marquee = $('
');\n that._lastActive = null;\n that.element.addClass(SELECTABLE);\n that.relatedTarget = that.options.relatedTarget;\n multiple = that.options.multiple;\n if (this.options.aria && multiple) {\n that.element.attr('aria-multiselectable', true);\n }\n that.userEvents = new kendo.UserEvents(that.element, {\n global: true,\n allowSelection: true,\n filter: (!supportEventDelegation ? '.' + SELECTABLE + ' ' : '') + that.options.filter,\n tap: proxy(that._tap, that)\n });\n if (multiple) {\n that.userEvents.bind('start', proxy(that._start, that)).bind('move', proxy(that._move, that)).bind('end', proxy(that._end, that)).bind('select', proxy(that._select, that));\n }\n },\n events: [CHANGE],\n options: {\n name: 'Selectable',\n filter: '>*',\n multiple: false,\n relatedTarget: $.noop\n },\n _isElement: function (target) {\n var elements = this.element;\n var idx, length = elements.length, result = false;\n target = target[0];\n for (idx = 0; idx < length; idx++) {\n if (elements[idx] === target) {\n result = true;\n break;\n }\n }\n return result;\n },\n _tap: function (e) {\n var target = $(e.target), that = this, ctrlKey = e.event.ctrlKey || e.event.metaKey, multiple = that.options.multiple, shiftKey = multiple && e.event.shiftKey, selected, whichCode = e.event.which, buttonCode = e.event.button;\n if (!that._isElement(target.closest('.' + SELECTABLE)) || whichCode && whichCode == 3 || buttonCode && buttonCode == 2) {\n return;\n }\n if (!this._allowSelection(e.event.target)) {\n return;\n }\n selected = target.hasClass(SELECTED);\n if (!multiple || !ctrlKey) {\n that.clear();\n }\n target = target.add(that.relatedTarget(target));\n if (shiftKey) {\n that.selectRange(that._firstSelectee(), target);\n } else {\n if (selected && ctrlKey) {\n that._unselect(target);\n that._notify(CHANGE);\n } else {\n that.value(target);\n }\n that._lastActive = that._downTarget = target;\n }\n },\n _start: function (e) {\n var that = this, target = $(e.target), selected = target.hasClass(SELECTED), currentElement, ctrlKey = e.event.ctrlKey || e.event.metaKey;\n if (!this._allowSelection(e.event.target)) {\n return;\n }\n that._downTarget = target;\n if (!that._isElement(target.closest('.' + SELECTABLE))) {\n that.userEvents.cancel();\n return;\n }\n if (that.options.useAllItems) {\n that._items = that.element.find(that.options.filter);\n } else {\n currentElement = target.closest(that.element);\n that._items = currentElement.find(that.options.filter);\n }\n e.sender.capture();\n that._marquee.appendTo(document.body).css({\n left: e.x.client + 1,\n top: e.y.client + 1,\n width: 0,\n height: 0\n });\n if (!ctrlKey) {\n that.clear();\n }\n target = target.add(that.relatedTarget(target));\n if (selected) {\n that._selectElement(target, true);\n if (ctrlKey) {\n target.addClass(UNSELECTING);\n }\n }\n },\n _move: function (e) {\n var that = this, position = {\n left: e.x.startLocation > e.x.location ? e.x.location : e.x.startLocation,\n top: e.y.startLocation > e.y.location ? e.y.location : e.y.startLocation,\n width: abs(e.x.initialDelta),\n height: abs(e.y.initialDelta)\n };\n that._marquee.css(position);\n that._invalidateSelectables(position, e.event.ctrlKey || e.event.metaKey);\n e.preventDefault();\n },\n _end: function () {\n var that = this;\n that._marquee.remove();\n that._unselect(that.element.find(that.options.filter + '.' + UNSELECTING)).removeClass(UNSELECTING);\n var target = that.element.find(that.options.filter + '.' + ACTIVE);\n target = target.add(that.relatedTarget(target));\n that.value(target);\n that._lastActive = that._downTarget;\n that._items = null;\n },\n _invalidateSelectables: function (position, ctrlKey) {\n var idx, length, target = this._downTarget[0], items = this._items, related, toSelect;\n for (idx = 0, length = items.length; idx < length; idx++) {\n toSelect = items.eq(idx);\n related = toSelect.add(this.relatedTarget(toSelect));\n if (collision(toSelect, position)) {\n if (toSelect.hasClass(SELECTED)) {\n if (ctrlKey && target !== toSelect[0]) {\n related.removeClass(SELECTED).addClass(UNSELECTING);\n }\n } else if (!toSelect.hasClass(ACTIVE) && !toSelect.hasClass(UNSELECTING)) {\n related.addClass(ACTIVE);\n }\n } else {\n if (toSelect.hasClass(ACTIVE)) {\n related.removeClass(ACTIVE);\n } else if (ctrlKey && toSelect.hasClass(UNSELECTING)) {\n related.removeClass(UNSELECTING).addClass(SELECTED);\n }\n }\n }\n },\n value: function (val) {\n var that = this, selectElement = proxy(that._selectElement, that);\n if (val) {\n val.each(function () {\n selectElement(this);\n });\n that._notify(CHANGE);\n return;\n }\n return that.element.find(that.options.filter + '.' + SELECTED);\n },\n _firstSelectee: function () {\n var that = this, selected;\n if (that._lastActive !== null) {\n return that._lastActive;\n }\n selected = that.value();\n return selected.length > 0 ? selected[0] : that.element.find(that.options.filter)[0];\n },\n _selectElement: function (element, preventNotify) {\n var toSelect = $(element), isPrevented = !preventNotify && this._notify('select', { element: element });\n toSelect.removeClass(ACTIVE);\n if (!isPrevented) {\n toSelect.addClass(SELECTED);\n if (this.options.aria) {\n toSelect.attr(ARIASELECTED, true);\n }\n }\n },\n _notify: function (name, args) {\n args = args || {};\n return this.trigger(name, args);\n },\n _unselect: function (element) {\n element.removeClass(SELECTED);\n if (this.options.aria) {\n element.attr(ARIASELECTED, false);\n }\n return element;\n },\n _select: function (e) {\n if (this._allowSelection(e.event.target)) {\n if (!msie || msie && !$(kendo._activeElement()).is(INPUTSELECTOR)) {\n e.preventDefault();\n }\n }\n },\n _allowSelection: function (target) {\n if ($(target).is(INPUTSELECTOR)) {\n this.userEvents.cancel();\n this._downTarget = null;\n return false;\n }\n return true;\n },\n resetTouchEvents: function () {\n this.userEvents.cancel();\n },\n clear: function () {\n var items = this.element.find(this.options.filter + '.' + SELECTED);\n this._unselect(items);\n },\n selectRange: function (start, end) {\n var that = this, idx, tmp, items;\n that.clear();\n if (that.element.length > 1) {\n items = that.options.continuousItems();\n }\n if (!items || !items.length) {\n items = that.element.find(that.options.filter);\n }\n start = $.inArray($(start)[0], items);\n end = $.inArray($(end)[0], items);\n if (start > end) {\n tmp = start;\n start = end;\n end = tmp;\n }\n if (!that.options.useAllItems) {\n end += that.element.length - 1;\n }\n for (idx = start; idx <= end; idx++) {\n that._selectElement(items[idx]);\n }\n that._notify(CHANGE);\n },\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that.element.off(NS);\n that.userEvents.destroy();\n that._marquee = that._lastActive = that.element = that.userEvents = null;\n }\n });\n Selectable.parseOptions = function (selectable) {\n var asLowerString = typeof selectable === 'string' && selectable.toLowerCase();\n return {\n multiple: asLowerString && asLowerString.indexOf('multiple') > -1,\n cell: asLowerString && asLowerString.indexOf('cell') > -1\n };\n };\n function collision(element, position) {\n if (!element.is(':visible')) {\n return false;\n }\n var elementPosition = kendo.getOffset(element), right = position.left + position.width, bottom = position.top + position.height;\n elementPosition.right = elementPosition.left + kendo._outerWidth(element);\n elementPosition.bottom = elementPosition.top + kendo._outerHeight(element);\n return !(elementPosition.left > right || elementPosition.right < position.left || elementPosition.top > bottom || elementPosition.bottom < position.top);\n }\n kendo.ui.plugin(Selectable);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}