{"version":3,"sources":["src/scripts/libs/dropdowns-ugh.js"],"names":["factory","define","amd","module","exports","root","jQuery","undefined","window","require","$","$doc","document","$win","pluginName","classList","eventNamespaceSuffix","chars","diacritics","Selectric","element","opts","_this","$element","state","multiple","attr","enabled","opened","currValue","selectedIdx","highlightedIdx","eventTriggers","open","close","destroy","refresh","init","prototype","utils","isMobile","test","navigator","userAgent","escapeRegExp","str","replace","replaceDiacritics","k","length","toLowerCase","format","f","a","arguments","s","i","p","nextEnabledItem","selectItems","selected","disabled","previousEnabledItem","toDash","triggerCallback","fn","scope","elm","func","options","args","concat","slice","call","isFunction","apply","hooks","each","trigger","arrayToClassname","arr","newArr","grep","item","trim","join","extend","defaults","disableOnMobile","classes","getClassNames","input","items","itemsScroll","scroll","wrapper","prefix","arrowButtonMarkup","label","outerWrapper","wrap","parent","append","prepend","hideSelectWrapper","hideselect","elements","nativeOnMobile","addClass","on","originalTabindex","prop","populate","activate","hiddenChildren","closest","children","tempshow","originalWidth","width","removeClass","responsive","inheritOriginalWidth","unbindEvents","$li","removeAttr","find","bindEvents","customClass","classesObj","split","currClass","c","camelCase","setLabel","labelBuilder","currentValues","isArray","labelMarkup","map","value","lookupItems","index","text","maxLabelEntries","push","html","separator","currItem","$options","$justOptions","$selected","filter","selectedIndex","currIndex","emptyValue","$elm","is","optionsGroup","groupDisabled","getItemData","getItemsMarkup","isDisabled","val","className","slug","markup","listBuilder","group","grouplabel","getItemMarkup","itemData","itemBuilder","optionsItemBuilder","filteredItemData","add","off","e","toggleClass","hover","type","openOnHover","clearTimeout","closeTimer","setTimeout","proxy","hoverIntentTimeout","focus","tabindex","handleKeys","one","blur","openOnFocus","resetStr","keySearchTimeout","RegExp","highlight","mousedown","preventDefault","stopPropagation","click","select","data","key","keyCode","which","keys","isPrevKey","inArray","previous","isNextKey","next","isSelectKey","isOpenKey","idx","isFirstOrLastItem","goToItem","allowWrap","keepMenuOpen","setOptionsDimensions","maxHeight","itemsWidth","outerWidth","wrapperWidth","expandToItemText","finalWidth","css","height","isInViewport","scrollTop","winHeight","uiPosX","offset","top","uiHeight","outerHeight","fitsDown","itemsHeight","fitsAbove","renderAbove","above","detectItemVisibility","Math","min","liHeight","eq","liTop","offsetTop","itemsScrollTop","scrollT","itemsInnerHeight","preventWindowScroll","orgEvent","originalEvent","deltaY","detail","wheelDelta","wheelDeltaY","scrollHeight","change","$filteredLi","hasSelectedIndex","splice","preserveData","remove","removeData","unwrap","callbackName","hookName","onChange"],"mappings":"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","file":"dropdowns-ugh.js","sourcesContent":["(function(factory) {\n /* global define */\n /* istanbul ignore next */\n if ( typeof define === 'function' && define.amd ) {\n define(['jquery'], factory);\n } else if ( typeof module === 'object' && module.exports ) {\n // Node/CommonJS\n module.exports = function( root, jQuery ) {\n if ( jQuery === undefined ) {\n if ( typeof window !== 'undefined' ) {\n jQuery = require('jquery');\n } else {\n jQuery = require('jquery')(root);\n }\n }\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function($) {\n 'use strict';\n\n var $doc = $(document);\n var $win = $(window);\n\n var pluginName = 'selectric';\n var classList = 'Input Items Open Disabled TempShow HideSelect Wrapper Focus Hover Responsive Above Scroll Group GroupLabel';\n var eventNamespaceSuffix = '.sl';\n\n var chars = ['a', 'e', 'i', 'o', 'u', 'n', 'c', 'y'];\n var diacritics = [\n /[\\xE0-\\xE5]/g, // a\n /[\\xE8-\\xEB]/g, // e\n /[\\xEC-\\xEF]/g, // i\n /[\\xF2-\\xF6]/g, // o\n /[\\xF9-\\xFC]/g, // u\n /[\\xF1]/g, // n\n /[\\xE7]/g, // c\n /[\\xFD-\\xFF]/g // y\n ];\n\n /**\n * Create an instance of Selectric\n *\n * @constructor\n * @param {Node} element - The <select> element\n * @param {object} opts - Options\n */\n var Selectric = function(element, opts) {\n var _this = this;\n\n _this.element = element;\n _this.$element = $(element);\n\n _this.state = {\n multiple : !!_this.$element.attr('multiple'),\n enabled : false,\n opened : false,\n currValue : -1,\n selectedIdx : -1,\n highlightedIdx : -1\n };\n\n _this.eventTriggers = {\n open : _this.open,\n close : _this.close,\n destroy : _this.destroy,\n refresh : _this.refresh,\n init : _this.init\n };\n\n _this.init(opts);\n };\n\n Selectric.prototype = {\n utils: {\n /**\n * Detect mobile browser\n *\n * @return {boolean}\n */\n isMobile: function() {\n return /android|ip(hone|od|ad)/i.test(navigator.userAgent);\n },\n\n /**\n * Escape especial characters in string (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\n *\n * @param {string} str - The string to be escaped\n * @return {string} The string with the special characters escaped\n */\n escapeRegExp: function(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n },\n\n /**\n * Replace diacritics\n *\n * @param {string} str - The string to replace the diacritics\n * @return {string} The string with diacritics replaced with ascii characters\n */\n replaceDiacritics: function(str) {\n var k = diacritics.length;\n\n while (k--) {\n str = str.toLowerCase().replace(diacritics[k], chars[k]);\n }\n\n return str;\n },\n\n /**\n * Format string\n * https://gist.github.com/atesgoral/984375\n *\n * @param {string} f - String to be formated\n * @return {string} String formated\n */\n format: function(f) {\n var a = arguments; // store outer arguments\n return ('' + f) // force format specifier to String\n .replace( // replace tokens in format specifier\n /\\{(?:(\\d+)|(\\w+))\\}/g, // match {token} references\n function(\n s, // the matched string (ignored)\n i, // an argument index\n p // a property name\n ) {\n return p && a[1] // if property name and first argument exist\n ? a[1][p] // return property from first argument\n : a[i]; // assume argument index and return i-th argument\n });\n },\n\n /**\n * Get the next enabled item in the options list.\n *\n * @param {object} selectItems - The options object.\n * @param {number} selected - Index of the currently selected option.\n * @return {object} The next enabled item.\n */\n nextEnabledItem: function(selectItems, selected) {\n while ( selectItems[ selected = (selected + 1) % selectItems.length ].disabled ) {\n // empty\n }\n return selected;\n },\n\n /**\n * Get the previous enabled item in the options list.\n *\n * @param {object} selectItems - The options object.\n * @param {number} selected - Index of the currently selected option.\n * @return {object} The previous enabled item.\n */\n previousEnabledItem: function(selectItems, selected) {\n while ( selectItems[ selected = (selected > 0 ? selected : selectItems.length) - 1 ].disabled ) {\n // empty\n }\n return selected;\n },\n\n /**\n * Transform camelCase string to dash-case.\n *\n * @param {string} str - The camelCased string.\n * @return {string} The string transformed to dash-case.\n */\n toDash: function(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n },\n\n /**\n * Calls the events and hooks registered with function name.\n *\n * @param {string} fn - The name of the function.\n * @param {number} scope - Scope that should be set on the function.\n */\n triggerCallback: function(fn, scope) {\n var elm = scope.element;\n var func = scope.options['on' + fn];\n var args = [elm].concat([].slice.call(arguments).slice(1));\n\n if ( $.isFunction(func) ) {\n func.apply(elm, args);\n }\n\n if ( $.fn[pluginName].hooks[fn] ) {\n $.each($.fn[pluginName].hooks[fn], function() {\n this.apply(elm, args);\n });\n }\n\n $(elm).trigger(pluginName + '-' + this.toDash(fn), args);\n },\n\n /**\n * Transform array list to concatenated string and remove empty values\n * @param {array} arr - Class list\n * @return {string} Concatenated string\n */\n arrayToClassname: function(arr) {\n var newArr = $.grep(arr, function(item) {\n return !!item;\n });\n\n return $.trim(newArr.join(' '));\n }\n },\n\n /** Initializes */\n init: function(opts) {\n var _this = this;\n\n // Set options\n _this.options = $.extend(true, {}, $.fn[pluginName].defaults, _this.options, opts);\n\n _this.utils.triggerCallback('BeforeInit', _this);\n\n // Preserve data\n _this.destroy(true);\n\n // Disable on mobile browsers\n if ( _this.options.disableOnMobile && _this.utils.isMobile() ) {\n _this.disableOnMobile = true;\n return;\n }\n\n // Get classes\n _this.classes = _this.getClassNames();\n\n // Create elements\n var input = $('', { 'class': _this.classes.input, 'readonly': _this.utils.isMobile() });\n var items = $('
', { 'class': _this.classes.items, 'tabindex': -1 });\n var itemsScroll = $('', { 'class': _this.classes.scroll });\n var wrapper = $('', { 'class': _this.classes.prefix, 'html': _this.options.arrowButtonMarkup });\n var label = $('', { 'class': 'label' });\n var outerWrapper = _this.$element.wrap('').parent().append(wrapper.prepend(label), items, input);\n var hideSelectWrapper = $('', { 'class': _this.classes.hideselect });\n\n _this.elements = {\n input : input,\n items : items,\n itemsScroll : itemsScroll,\n wrapper : wrapper,\n label : label,\n outerWrapper : outerWrapper\n };\n\n if ( _this.options.nativeOnMobile && _this.utils.isMobile() ) {\n _this.elements.input = undefined;\n hideSelectWrapper.addClass(_this.classes.prefix + '-is-native');\n\n _this.$element.on('change', function() {\n _this.refresh();\n });\n }\n\n _this.$element\n .on(_this.eventTriggers)\n .wrap(hideSelectWrapper);\n\n _this.originalTabindex = _this.$element.prop('tabindex');\n _this.$element.prop('tabindex', false);\n\n _this.populate();\n _this.activate();\n\n _this.utils.triggerCallback('Init', _this);\n },\n\n /** Activates the plugin */\n activate: function() {\n var _this = this;\n var hiddenChildren = _this.elements.items.closest(':visible').children(':hidden').addClass(_this.classes.tempshow);\n var originalWidth = _this.$element.width();\n\n hiddenChildren.removeClass(_this.classes.tempshow);\n\n _this.utils.triggerCallback('BeforeActivate', _this);\n\n _this.elements.outerWrapper.prop('class',\n _this.utils.arrayToClassname([\n _this.classes.wrapper,\n _this.$element.prop('class').replace(/\\S+/g, _this.classes.prefix + '-$&'),\n _this.options.responsive ? _this.classes.responsive : ''\n ])\n );\n\n if ( _this.options.inheritOriginalWidth && originalWidth > 0 ) {\n _this.elements.outerWrapper.width(originalWidth);\n }\n\n _this.unbindEvents();\n\n if ( !_this.$element.prop('disabled') ) {\n _this.state.enabled = true;\n\n // Not disabled, so... Removing disabled class\n _this.elements.outerWrapper.removeClass(_this.classes.disabled);\n\n // Remove styles from items box\n // Fix incorrect height when refreshed is triggered with fewer options\n _this.$li = _this.elements.items.removeAttr('style').find('li');\n\n _this.bindEvents();\n } else {\n _this.elements.outerWrapper.addClass(_this.classes.disabled);\n\n if ( _this.elements.input ) {\n _this.elements.input.prop('disabled', true);\n }\n }\n\n _this.utils.triggerCallback('Activate', _this);\n },\n\n /**\n * Generate classNames for elements\n *\n * @return {object} Classes object\n */\n getClassNames: function() {\n var _this = this;\n var customClass = _this.options.customClass;\n var classesObj = {};\n\n $.each(classList.split(' '), function(i, currClass) {\n var c = customClass.prefix + currClass;\n classesObj[currClass.toLowerCase()] = customClass.camelCase ? c : _this.utils.toDash(c);\n });\n\n classesObj.prefix = customClass.prefix;\n\n return classesObj;\n },\n\n /** Set the label text */\n setLabel: function() {\n var _this = this;\n var labelBuilder = _this.options.labelBuilder;\n\n if ( _this.state.multiple ) {\n // Make sure currentValues is an array\n var currentValues = $.isArray(_this.state.currValue) ? _this.state.currValue : [_this.state.currValue];\n // I'm not happy with this, but currentValues can be an empty\n // array and we need to fallback to the default option.\n currentValues = currentValues.length === 0 ? [0] : currentValues;\n\n var labelMarkup = $.map(currentValues, function(value) {\n return $.grep(_this.lookupItems, function(item) {\n return item.index === value;\n })[0]; // we don't want nested arrays here\n });\n\n labelMarkup = $.grep(labelMarkup, function(item) {\n // Hide default (please choose) if more then one element were selected.\n // If no option value were given value is set to option text by default\n if ( labelMarkup.length > 1 || labelMarkup.length === 0 ) {\n return $.trim(item.value) !== '' && item.value !== item.text;\n }\n return item;\n });\n\n labelMarkup = $.map(labelMarkup, function(item) {\n return $.isFunction(labelBuilder)\n ? labelBuilder(item)\n : _this.utils.format(labelBuilder, item);\n });\n\n // Limit the amount of selected values shown in label\n if ( _this.options.multiple.maxLabelEntries ) {\n if ( labelMarkup.length >= _this.options.multiple.maxLabelEntries + 1 ) {\n labelMarkup = labelMarkup.slice(0, _this.options.multiple.maxLabelEntries);\n labelMarkup.push(\n $.isFunction(labelBuilder)\n ? labelBuilder({ text: '...' })\n : _this.utils.format(labelBuilder, { text: '...' }));\n } else {\n labelMarkup.slice(labelMarkup.length - 1);\n }\n }\n _this.elements.label.html(labelMarkup.join(_this.options.multiple.separator));\n\n } else {\n var currItem = _this.lookupItems[_this.state.currValue];\n\n _this.elements.label.html(\n $.isFunction(labelBuilder)\n ? labelBuilder(currItem)\n : _this.utils.format(labelBuilder, currItem)\n );\n }\n },\n\n /** Get and save the available options */\n populate: function() {\n var _this = this;\n var $options = _this.$element.children();\n var $justOptions = _this.$element.find('option');\n var $selected = $justOptions.filter(':selected');\n var selectedIndex = $justOptions.index($selected);\n var currIndex = 0;\n var emptyValue = (_this.state.multiple ? [] : 0);\n\n if ( $selected.length > 1 && _this.state.multiple ) {\n selectedIndex = [];\n $selected.each(function() {\n selectedIndex.push($(this).index());\n });\n }\n\n _this.state.currValue = (~selectedIndex ? selectedIndex : emptyValue);\n _this.state.selectedIdx = _this.state.currValue;\n _this.state.highlightedIdx = _this.state.currValue;\n _this.items = [];\n _this.lookupItems = [];\n\n if ( $options.length ) {\n // Build options markup\n $options.each(function(i) {\n var $elm = $(this);\n\n if ( $elm.is('optgroup') ) {\n\n var optionsGroup = {\n element : $elm,\n label : $elm.prop('label'),\n groupDisabled : $elm.prop('disabled'),\n items : []\n };\n\n $elm.children().each(function(i) {\n var $elm = $(this);\n\n optionsGroup.items[i] = _this.getItemData(currIndex, $elm, optionsGroup.groupDisabled);\n\n _this.lookupItems[currIndex] = optionsGroup.items[i];\n\n currIndex++;\n });\n\n _this.items[i] = optionsGroup;\n\n } else {\n\n _this.items[i] = _this.getItemData(currIndex, $elm, $elm.prop('disabled'));\n\n _this.lookupItems[currIndex] = _this.items[i];\n\n currIndex++;\n\n }\n });\n\n _this.setLabel();\n _this.elements.items.append( _this.elements.itemsScroll.html( _this.getItemsMarkup(_this.items) ) );\n }\n },\n\n /**\n * Generate items object data\n * @param {integer} index - Current item index\n * @param {node} $elm - Current element node\n * @param {boolean} isDisabled - Current element disabled state\n * @return {object} Item object\n */\n getItemData: function(index, $elm, isDisabled) {\n var _this = this;\n\n return {\n index : index,\n element : $elm,\n value : $elm.val(),\n className : $elm.prop('class'),\n text : $elm.html(),\n slug : $.trim(_this.utils.replaceDiacritics($elm.html())),\n selected : $elm.prop('selected'),\n disabled : isDisabled\n };\n },\n\n /**\n * Generate options markup\n *\n * @param {object} items - Object containing all available options\n * @return {string} HTML for the options box\n */\n getItemsMarkup: function(items) {\n var _this = this;\n var markup = '