{"version":3,"file":"kendo.chiplist.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendochiplist","js","this","$","undefined$1","kendo","window","ui","Widget","keys","isPlainObject","isEmptyObject","NS","DOT","SELECT","REMOVE","html","chipListStyles","widget","item","selected","disabled","enabledItemSelector","ChipList","extend","init","element","options","that","fn","call","renderChipList","_selectable","selectable","_bindEvents","_items","name","items","fillMode","rounded","size","itemSize","events","destroy","_keydownProxy","unbind","_selectProxy","_removeProxy","off","find","each","_getChipFromElement","_updateCssClasses","styles","removeClass","index","className","indexOf","addClass","getValidCssClass","_getInitializeChipOptions","itemOptions","attributes","tabindex","role","removable","remove","select","getKendoChip","chipOptions","selectedItems","chipEl","firstNavigatableItem","i","length","append","_createChip","_getFirstNavigatableItem","_applyTabIndex","filter","ind","ch","chip","_isItem","is","itemElement","el","attr","kendoChip","_keydown","bind","_select","_remove","on","ev","sender","_triggerSelect","preventDefault","trigger","originalEvent","selectedChipElement","_removeItem","wrapper","_focusNavigatableItem","target","closest","key","keyCode","LEFT","RIGHT","nextCandidate","_getNavigatableItem","focus","first","_getLastNavigatableItem","last","current","prevAll","nextAll","children","state","enable","isNaN","eq","itemById","id","add","before","method","targetElement","setOptions","empty","plugin","jQuery"],"sources":["kendo.chiplist.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.chip.js'), require('kendo.html.chiplist.js')) :\n    typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.chip', 'kendo.html.chiplist'], factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendochiplist = global.kendochiplist || {}, global.kendochiplist.js = factory()));\n})(this, (function () {\n    var __meta__ = {\n        id: \"chiplist\",\n        name: \"ChipList\",\n        category: \"web\",\n        docsCategory: \"navigation\",\n        description: \"The ChipList component.\",\n        depends: [\"core\", \"chip\", \"html.chiplist\"]\n    };\n    (function($, undefined$1) {\n        var kendo = window.kendo,\n            ui = kendo.ui,\n            Widget = ui.Widget,\n            keys = kendo.keys,\n            isPlainObject = $.isPlainObject,\n            isEmptyObject = $.isEmptyObject,\n\n            NS = \".kendoChipList\",\n            PREFIX = \"k-chip-list-\",\n            DOT = \".\",\n\n            SELECT = \"select\",\n            REMOVE = \"remove\";\n        var html = kendo.html;\n\n        var chipListStyles = {\n            widget: \"k-chip-list\",\n            item: \"k-chip\",\n            selected: \"k-selected\",\n            disabled: \"k-disabled\",\n            enabledItemSelector: \"k-chip:not(.k-disabled)\"\n        };\n\n        var ChipList = Widget.extend({\n            init: function(element, options) {\n                var that = this;\n                options = options || {};\n                Widget.fn.init.call(that, element, options);\n\n                html.renderChipList(element, $.extend({}, options));\n\n                that._selectable = that.options.selectable;\n                that._bindEvents();\n                that._items();\n            },\n\n            options: {\n                name: \"ChipList\",\n                selectable: \"none\",\n                items: [],\n                fillMode: \"solid\",\n                rounded: \"medium\",\n                size: \"medium\",\n                itemSize: \"medium\"\n            },\n\n            events: [\n                SELECT,\n                REMOVE\n            ],\n\n            destroy: function() {\n                var that = this;\n\n                if (that._keydownProxy) {\n                    that.unbind(that._keydownProxy);\n                    that._keydownProxy = null;\n                }\n\n                if (that._selectProxy) {\n                    that.unbind(that._selectProxy);\n                    that._selectProxy = null;\n                }\n\n                if (that._removeProxy) {\n                    that.unbind(that._removeProxy);\n                    that._removeProxy = null;\n                }\n\n                that.element.off(NS);\n                that.element.find(\"[data-role='chip']\").each(function() {\n                    that._getChipFromElement(this).destroy();\n                });\n\n                Widget.fn.destroy.call(this);\n            },\n\n            _updateCssClasses: function() {\n                var that = this,\n                    options = that.options,\n                    styles = chipListStyles;\n\n                // Remove all class names\n                that.element.removeClass(function(index, className) {\n                    if (className.indexOf('k-') === 0) {\n                        that.element.removeClass(className);\n                    }\n                });\n\n                that.element.addClass(styles.widget);\n                that.element.addClass(kendo.getValidCssClass(PREFIX, \"size\", options.size));\n            },\n\n            _getInitializeChipOptions: function(itemOptions) {\n                var that = this,\n                    options = that.options;\n\n                var attributes = $.extend(itemOptions.attributes || {}, {\n                    tabindex: \"-1\"\n                });\n\n                if (options.selectable !== \"none\") {\n                    attributes.role = \"option\";\n                    attributes[\"aria-selected\"] = itemOptions.selected;\n                }\n\n                if (options.removable || itemOptions.removable) {\n                    attributes[\"aria-keyshortcuts\"] = \"Enter Delete\";\n                }\n\n                return $.extend({\n                    fillMode: options.fillMode,\n                    size: options.itemSize,\n                    rounded: options.rounded,\n                    selectable: options.selectable !== \"none\",\n                    removable: options.removable,\n                    remove: that._removeProxy,\n                    select: that._selectProxy,\n                }, itemOptions, { attributes: attributes });\n            },\n\n            _getChipFromElement: function(element) {\n                return $(element).getKendoChip() || $(element).find(\"[data-role='chip']\").getKendoChip();\n            },\n\n            _items: function() {\n                var that = this,\n                    options = that.options,\n                    items = options.items,\n                    chipOptions,\n                    selectedItems,\n                    chipEl,\n                    firstNavigatableItem,\n                    item;\n\n                for (var i = 0; i < items.length; i++) {\n                    chipOptions = that._getInitializeChipOptions(items[i]);\n                    chipEl = $(\"<span></span>\");\n                    that.element.append(chipEl);\n                    item = that._createChip(chipEl, chipOptions);\n                }\n\n                firstNavigatableItem = that._getFirstNavigatableItem();\n                if (firstNavigatableItem) {\n                    that._applyTabIndex(that.items().index(firstNavigatableItem));\n                }\n\n                if (that._selectable === \"single\") {\n                    selectedItems = that.items().filter(DOT + chipListStyles.selected);\n                    selectedItems.each(function(ind, ch) {\n                        if (ind !== selectedItems.length - 1) {\n                            var chip = that._getChipFromElement(ch);\n                            if (chip) {\n                                chip.select(false);\n                            }\n                        }\n                    });\n                }\n            },\n\n            _isItem: function(item) {\n                var that = this;\n\n                item = $(item);\n\n                return item.is(DOT + chipListStyles.item) && !!that.element.find(item).length;\n            },\n\n            _applyTabIndex: function(index) {\n                var that = this;\n                var itemElement = that.item(+index ? +index : 0);\n\n                that.items().each(function(ind, el) {\n                    $(el).attr(\"tabindex\", \"-1\");\n                });\n\n                itemElement.attr(\"tabindex\", \"0\");\n            },\n\n            _createChip: function(element, chipOptions) {\n                return element.kendoChip(chipOptions);\n            },\n\n            _bindEvents: function() {\n                var that = this;\n                that._keydownProxy = that._keydown.bind(that);\n                that._selectProxy = that._select.bind(that);\n                that._removeProxy = that._remove.bind(that);\n\n                that.element.on(\"keydown\" + NS, DOT + chipListStyles.item, that._keydownProxy);\n            },\n\n            _select: function(ev) {\n                var that = this,\n                    chip = ev.sender;\n\n                if (that._selectable == \"none\") {\n                    ev.preventDefault();\n                    return;\n                }\n\n                that._triggerSelect(chip, ev);\n            },\n\n            _triggerSelect: function(item, ev) {\n                var that = this,\n                    selectedItems;\n\n                if (that.element.is(DOT + chipListStyles.disabled)) {\n                    return;\n                }\n\n                if (that.trigger(SELECT, { originalEvent: ev, item: item })) {\n                    return;\n                }\n\n                if (that._selectable === \"single\") {\n                    selectedItems = that.select();\n                    if (selectedItems.length > 0) {\n                        selectedItems.each(function(ind, selectedChipElement) {\n                            var chip = that._getChipFromElement(selectedChipElement);\n                            if (chip && chip !== item) {\n                                chip.select(false);\n                            }\n                        });\n                    }\n                }\n            },\n\n            _remove: function(ev) {\n                var that = this,\n                    chip = ev.sender;\n\n                if (that.trigger(REMOVE, { originalEvent: ev, item: ev.sender })) {\n                    return;\n                }\n\n                that._removeItem(chip);\n            },\n\n            _removeItem: function(chip) {\n                var that = this;\n                if (chip) {\n                    var el = chip.wrapper;\n                    chip.destroy();\n                    el.remove();\n                    that._focusNavigatableItem();\n                }\n            },\n\n            _keydown: function(ev) {\n                // change the tabindex to the next/prev chip\n                // and remove it from the others\n                var that = this,\n                    target = $(ev.target).closest(DOT + chipListStyles.item),\n                    key = ev.keyCode;\n\n                if (key === keys.LEFT || key === keys.RIGHT) {\n                    that._focusNavigatableItem(key, target);\n                }\n                // add support for Home and End keys?\n            },\n\n            _focusNavigatableItem: function(key, target) {\n                var that = this;\n                var nextCandidate = that._getNavigatableItem(key, target);\n                if (nextCandidate) {\n                    that._applyTabIndex(that.items().index(nextCandidate));\n                    nextCandidate.focus();\n                }\n            },\n\n            _getFirstNavigatableItem: function() {\n                var that = this;\n                return that.items().filter(DOT + chipListStyles.enabledItemSelector).first();\n            },\n\n            _getLastNavigatableItem: function() {\n                var that = this;\n                return that.items().filter(DOT + chipListStyles.enabledItemSelector).last();\n            },\n\n            _getNavigatableItem: function(key, target) {\n                var that = this;\n                var current;\n\n                if (target) {\n                    current = target;\n                } else {\n                    current = that._getFirstNavigatableItem();\n                }\n\n                if (key === keys.LEFT && target) {\n                    current = target.prevAll(DOT + chipListStyles.enabledItemSelector).first();\n                }\n\n                if (key === keys.RIGHT && target) {\n                    current = target.nextAll(DOT + chipListStyles.enabledItemSelector).first();\n                }\n\n                return current.length ? current : null;\n            },\n\n            items: function() {\n                var that = this;\n                return that.element.children();\n            },\n\n            select: function(item, state) {\n                var that = this,\n                    chip,\n                    selectedItems = that.items().filter(DOT + chipListStyles.selected);\n\n                if (!item) {\n                    return selectedItems;\n                }\n\n                state = state !== false;\n\n                chip = that._getChipFromElement(item);\n                if (chip) {\n                    if (that._selectable === \"single\") {\n                        selectedItems = that.select();\n                        if (selectedItems.length > 0) {\n                            selectedItems.each(function(ind, selectedChipElement) {\n                                var chip = that._getChipFromElement(selectedChipElement);\n                                if (chip && chip !== item) {\n                                    chip.select(false);\n                                }\n                            });\n                        }\n                    }\n\n                    chip.select(state);\n                }\n            },\n\n            enable: function(item, state) {\n                var chip = this._getChipFromElement(item);\n                state = state !== false;\n\n                if (chip) {\n                    chip.enable(state);\n                }\n            },\n\n            item: function(index) {\n                var that = this;\n\n                if (isNaN(index)) {\n                    return null;\n                }\n\n                return that.items().eq(index);\n            },\n\n            itemById: function(id) {\n                var that = this;\n\n                return that.element.find(\"#\" + id);\n            },\n\n            add: function(item, before) {\n                // add validation to get element, options object and a Chip widget\n                var that = this,\n                    method = \"append\",\n                    chip,\n                    chipEl,\n                    targetElement = that.element;\n\n                if (before && that._isItem(before)) {\n                    method = \"before\";\n                    targetElement = $(before);\n                }\n\n                chip = that._getChipFromElement(item);\n                if (chip) {\n                    if (that._selectable !== \"none\") {\n                        chip.wrapper.attr(\"role\", \"option\");\n                    }\n\n                    targetElement[method](chip.wrapper);\n                } else if (item && isPlainObject(item) && !isEmptyObject(item)) {\n                    chipEl = $(\"<span></span>\");\n                    targetElement[method](chipEl);\n                    that._createChip(chipEl, that._getInitializeChipOptions(item));\n                }\n            },\n\n            remove: function(item) {\n                var that = this;\n\n                if (item && that._isItem(item)) {\n                    kendo.destroy(item);\n                    item.remove();\n                    that._focusNavigatableItem();\n                }\n            },\n\n            setOptions: function(options) {\n                var that = this;\n\n                Widget.fn.setOptions.call(this, options);\n                that._updateCssClasses();\n\n                if (options.items) {\n                    that.element.empty();\n                    that._items();\n                }\n            }\n        });\n\n        ui.plugin(ChipList);\n    })(window.kendo.jQuery);\n    var kendo$1 = kendo;\n\n    return kendo$1;\n\n}));\n"]}