{"version":3,"sources":["../../jquery.custom-select.js"],"names":["CustomSelect","$","defaults","block","hideCallback","includeValue","keyboard","modifier","placeholder","search","showCallback","transition","select","options","_$select","_options","_activeModifier","_dropupModifier","_keydown","bind","_dropup","_outside","_init","_$element","hide","after","addClass","_$values","find","_values","each","i","option","el","text","trim","push","_$value","length","html","prop","_$dropdown","cssClass","eq","attr","$option","data","append","_$options","_search","one","event","_show","on","_select","preventDefault","window","slideDown","_$input","focus","call","setTimeout","outsideClickEvent","document","documentElement","_hide","index","slideUp","removeClass","off","blur","show","val","_$wrap","scrollTop","choice","currentTarget","values","splice","last","remove","not","$this","originalEvent","trigger","prepend","wrapAll","query","toLowerCase","match","indexOf","toggle","bottom","getBoundingClientRect","up","height","toggleClass","$target","target","parents","is","$visible","filter","keyCode","next","prev","add","_jQueryPlugin","fn","noConflict"],"mappings":"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","file":"jquery.custom-select.js","sourcesContent":["import $ from 'jquery';\r\n\r\n/*!\r\n * Custom Select jQuery Plugin\r\n */\r\n\r\nconst CustomSelect = (($) => {\r\n\r\n const defaults = {\r\n block: 'custom-select',\r\n hideCallback: false,\r\n includeValue: false,\r\n keyboard: true,\r\n modifier: false,\r\n placeholder: false,\r\n search: false,\r\n showCallback: false,\r\n transition: 0\r\n };\r\n\r\n class CustomSelect {\r\n\r\n /**\r\n * Custom Select\r\n *\r\n * @param {Element} select Original ``\r\n * by chosen option.\r\n *\r\n * @param {Object} event Option click jQuery event.\r\n * @private\r\n */\r\n _select(event) {\r\n event.preventDefault();\r\n\r\n const choice = $(event.currentTarget).text().trim();\r\n const values = [...this._values];\r\n\r\n this._$value\r\n .text(choice)\r\n .removeClass(this._$value.data('class'));\r\n this._$values.prop('selected', false);\r\n\r\n $.each(values, (i, el) => {\r\n if (!this._options.includeValue && el === choice) {\r\n values.splice(i, 1);\r\n }\r\n\r\n $.each(this._$values, (i, option) => {\r\n const $option = $(option);\r\n if ($option.text().trim() === choice) {\r\n const cssClass = $option.attr('class');\r\n\r\n $option.prop('selected', true);\r\n this._$value.addClass(cssClass).data('class', cssClass);\r\n }\r\n });\r\n });\r\n\r\n this._hide();\r\n\r\n // Update dropdown options content\r\n if (!this._options.includeValue) {\r\n if (this._$options.length > values.length) {\r\n const last = this._$options.eq(values.length);\r\n\r\n last.remove();\r\n this._$options = this._$options.not(last);\r\n\r\n if (!this._$options.length) {\r\n this._$value.prop('disabled', true);\r\n }\r\n }\r\n\r\n $.each(this._$options, (i, option) => {\r\n const $option = $(option);\r\n $option.text(values[i]);\r\n\r\n // Reset option class\r\n $option.attr('class', `${this._options.block}__option`);\r\n\r\n $.each(this._$values, function() {\r\n const $this = $(this);\r\n if ($this.text().trim() === values[i]) {\r\n $option.addClass($this.attr('class'));\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (typeof event.originalEvent !== 'undefined') {\r\n this._$select.trigger('change');\r\n }\r\n }\r\n\r\n /**\r\n * Wraps options by wrap element, adds input to\r\n * dropdown & implements options search.\r\n *\r\n * @private\r\n */\r\n _search() {\r\n this._$input = $(``);\r\n this._$dropdown.prepend(this._$input);\r\n\r\n // Add scrollable wrap\r\n this._$options.wrapAll(`
`);\r\n this._$wrap = this._$element.find(`.${this._options.block}__option-wrap`);\r\n\r\n this._$input.on('focus', () => {\r\n this._options.index = -1;\r\n });\r\n\r\n this._$input.on('keyup', () => {\r\n const query = this._$input.val().trim();\r\n\r\n this._$wrap.scrollTop(0);\r\n\r\n if (query.length) {\r\n setTimeout(() => {\r\n if (query === this._$input.val().trim()) {\r\n $.each(this._$options, (i, option) => {\r\n const $option = $(option);\r\n const text = $option.text().trim().toLowerCase();\r\n const match = text.indexOf(query.toLowerCase()) !== -1;\r\n\r\n $option.toggle(match);\r\n });\r\n }\r\n }, 300);\r\n } else {\r\n this._$options.show();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Toggles custom select dropup modifier based\r\n * on space for dropdown below.\r\n *\r\n * @private\r\n */\r\n _dropup() {\r\n const bottom = this._$element[0].getBoundingClientRect().bottom;\r\n const up = $(window).height() - bottom < this._$dropdown.height();\r\n\r\n this._$element.toggleClass(this._dropupModifier, up);\r\n }\r\n\r\n /**\r\n * Hides dropdown if target of event (e.g. click\r\n * on `$window`) is not custom select.\r\n *\r\n * @param {Object} event Outside \"click\" jQuery event.\r\n * @private\r\n */\r\n _outside(event) {\r\n const $target = $(event.target);\r\n if (!$target.parents().is(this._$element) && !$target.is(this._$element)) {\r\n this._hide();\r\n }\r\n }\r\n\r\n /**\r\n * Controls navigation from keyboard by custom\r\n * select options.\r\n *\r\n * @param {Object} event Keydown jQuery event.\r\n * @private\r\n */\r\n _keydown(event) {\r\n const $visible = this._$options.filter(':visible');\r\n\r\n switch (event.keyCode) {\r\n // Down\r\n case 40:\r\n event.preventDefault();\r\n\r\n const next = $visible.eq(this._options.index + 1).length;\r\n if (next) {\r\n this._options.index += 1;\r\n } else {\r\n this._options.index = 0;\r\n }\r\n\r\n $visible.eq(this._options.index).focus();\r\n break;\r\n\r\n // Up\r\n case 38:\r\n event.preventDefault();\r\n\r\n const prev = $visible.eq(this._options.index - 1).length;\r\n if (prev && this._options.index - 1 >= 0) {\r\n this._options.index -= 1;\r\n } else {\r\n this._options.index = $visible.length - 1;\r\n }\r\n\r\n $visible.eq(this._options.index).focus();\r\n break;\r\n\r\n // Enter\r\n case 13:\r\n\r\n // Space\r\n case 32:\r\n if (!this._$input || !this._$input.is(':focus')) {\r\n event.preventDefault();\r\n\r\n const $option = this._$options.add(this._$value).filter(':focus');\r\n $option.trigger('click');\r\n\r\n if (!$option.is(this._$value)) {\r\n this._$select.trigger('change');\r\n }\r\n this._$value.focus();\r\n }\r\n break;\r\n\r\n // Esc\r\n case 27:\r\n event.preventDefault();\r\n\r\n this._hide();\r\n this._$value.focus();\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Creates jQuery plugin function.\r\n *\r\n * @param {Object} [options] Settings object.\r\n * @returns {Function} jQuery plugin.\r\n * @private\r\n */\r\n static _jQueryPlugin(options) {\r\n return this.each(function () {\r\n const $this = $(this);\r\n let data = $this.data('custom-select');\r\n\r\n if (!data) {\r\n data = new CustomSelect(this, options);\r\n $this.data('custom-select', data);\r\n }\r\n });\r\n }\r\n }\r\n\r\n $.fn['customSelect'] = CustomSelect._jQueryPlugin;\r\n $.fn['customSelect'].noConflict = () => $.fn['customSelect'];\r\n\r\n return CustomSelect;\r\n\r\n})($);\r\n\r\nexport default CustomSelect;\r\n"]}