/
dropdown.min.js
11 lines (11 loc) · 54.3 KB
/
dropdown.min.js
1
2
3
4
5
6
7
8
9
10
11
/*
* # Fomantic UI - 2.7.8
* https://github.com/fomantic/Fomantic-UI
* http://fomantic-ui.com/
*
* Copyright 2014 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
!function(Z,_,ee,te){"use strict";Z.isFunction=Z.isFunction||function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},_=void 0!==_&&_.Math==Math?_:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),Z.fn.dropdown=function(j){var U,B=Z(this),K=Z(ee),W=B.selector||"",Q="ontouchstart"in ee.documentElement,Y=(new Date).getTime(),$=[],X=j,G="string"==typeof X,J=[].slice.call(arguments,1);return B.each(function(n){var c,e,t,i,a,o,s,r,h,f=Z.isPlainObject(j)?Z.extend(!0,{},Z.fn.dropdown.settings,j):Z.extend({},Z.fn.dropdown.settings),g=f.className,u=f.message,l=f.fields,p=f.keys,b=f.metadata,d=f.namespace,v=f.regExp,w=f.selector,m=f.error,C=f.templates,x="."+d,y="module-"+d,S=Z(this),A=Z(f.context),T=S.find(w.text),L=S.find(w.search),k=S.find(w.sizer),I=S.find(w.input),D=S.find(w.icon),q=S.find(w.clearIcon),R=0<S.prev().find(w.text).length?S.prev().find(w.text):S.prev(),O=S.children(w.menu),E=O.find(w.item),V=f.hideDividers?E.parent().children(w.divider):Z(),M=!1,F=!1,z=!1,P=!1,N=this,H=S.data(y);h={initialize:function(){h.debug("Initializing dropdown",f),h.is.alreadySetup()?h.setup.reference():(f.ignoreDiacritics&&!String.prototype.normalize&&(f.ignoreDiacritics=!1,h.error(m.noNormalize,N)),h.setup.layout(),f.values&&h.change.values(f.values),h.refreshData(),h.save.defaults(),h.restore.selected(),h.create.id(),h.bind.events(),h.observeChanges(),h.instantiate())},instantiate:function(){h.verbose("Storing instance of dropdown",h),H=h,S.data(y,h)},destroy:function(){h.verbose("Destroying previous dropdown",S),h.remove.tabbable(),h.remove.active(),O.transition("stop all"),O.removeClass(g.visible).addClass(g.hidden),S.off(x).removeData(y),O.off(x),K.off(a),h.disconnect.menuObserver(),h.disconnect.selectObserver()},observeChanges:function(){"MutationObserver"in _&&(s=new MutationObserver(h.event.select.mutation),r=new MutationObserver(h.event.menu.mutation),h.debug("Setting up mutation observer",s,r),h.observe.select(),h.observe.menu())},disconnect:{menuObserver:function(){r&&r.disconnect()},selectObserver:function(){s&&s.disconnect()}},observe:{select:function(){h.has.input()&&s&&s.observe(S[0],{childList:!0,subtree:!0})},menu:function(){h.has.menu()&&r&&r.observe(O[0],{childList:!0,subtree:!0})}},create:{id:function(){o=(Math.random().toString(16)+"000000000").substr(2,8),a="."+o,h.verbose("Creating unique id for element",o)},userChoice:function(e){var n,i,a;return!!(e=e||h.get.userValues())&&(e=Array.isArray(e)?e:[e],Z.each(e,function(e,t){!1===h.get.item(t)&&(a=f.templates.addition(h.add.variables(u.addResult,t)),i=Z("<div />").html(a).attr("data-"+b.value,t).attr("data-"+b.text,t).addClass(g.addition).addClass(g.item),f.hideAdditions&&i.addClass(g.hidden),n=n===te?i:n.add(i),h.verbose("Creating user choices for value",t,i))}),n)},userLabels:function(e){var t=h.get.userValues();t&&(h.debug("Adding user labels",t),Z.each(t,function(e,t){h.verbose("Adding custom user value"),h.add.label(t,t)}))},menu:function(){O=Z("<div />").addClass(g.menu).appendTo(S)},sizer:function(){k=Z("<span />").addClass(g.sizer).insertAfter(L)}},search:function(e){e=e!==te?e:h.get.query(),h.verbose("Searching for query",e),h.has.minCharacters(e)?h.filter(e):h.hide()},select:{firstUnfiltered:function(){h.verbose("Selecting first non-filtered element"),h.remove.selectedItem(),E.not(w.unselectable).not(w.addition+w.hidden).eq(0).addClass(g.selected)},nextAvailable:function(e){var t=(e=e.eq(0)).nextAll(w.item).not(w.unselectable).eq(0),n=e.prevAll(w.item).not(w.unselectable).eq(0);0<t.length?(h.verbose("Moving selection to",t),t.addClass(g.selected)):(h.verbose("Moving selection to",n),n.addClass(g.selected))}},setup:{api:function(){var e={debug:f.debug,urlData:{value:h.get.value(),query:h.get.query()},on:!1};h.verbose("First request, initializing API"),S.api(e)},layout:function(){S.is("select")&&(h.setup.select(),h.setup.returnedObject()),h.has.menu()||h.create.menu(),h.is.selection()&&h.is.clearable()&&!h.has.clearItem()&&(h.verbose("Adding clear icon"),q=Z("<i />").addClass("remove icon").insertBefore(T)),h.is.search()&&!h.has.search()&&(h.verbose("Adding search input"),L=Z("<input />").addClass(g.search).prop("autocomplete","off").insertBefore(T)),h.is.multiple()&&h.is.searchSelection()&&!h.has.sizer()&&h.create.sizer(),f.allowTab&&h.set.tabbable()},select:function(){var e=h.get.selectValues();h.debug("Dropdown initialized on a select",e),S.is("select")&&(I=S),0<I.parent(w.dropdown).length?(h.debug("UI dropdown already exists. Creating dropdown menu only"),S=I.closest(w.dropdown),h.has.menu()||h.create.menu(),O=S.children(w.menu),h.setup.menu(e)):(h.debug("Creating entire dropdown from select"),S=Z("<div />").attr("class",I.attr("class")).addClass(g.selection).addClass(g.dropdown).html(C.dropdown(e,l,f.preserveHTML,f.className)).insertBefore(I),I.hasClass(g.multiple)&&!1===I.prop("multiple")&&(h.error(m.missingMultiple),I.prop("multiple",!0)),I.is("[multiple]")&&h.set.multiple(),I.prop("disabled")&&(h.debug("Disabling dropdown"),S.addClass(g.disabled)),I.removeAttr("class").detach().prependTo(S)),h.refresh()},menu:function(e){O.html(C.menu(e,l,f.preserveHTML,f.className)),E=O.find(w.item),V=f.hideDividers?E.parent().children(w.divider):Z()},reference:function(){h.debug("Dropdown behavior was called on select, replacing with closest dropdown"),S=S.parent(w.dropdown),H=S.data(y),N=S.get(0),h.refresh(),h.setup.returnedObject()},returnedObject:function(){var e=B.slice(0,n),t=B.slice(n+1);B=e.add(S).add(t)}},refresh:function(){h.refreshSelectors(),h.refreshData()},refreshItems:function(){E=O.find(w.item),V=f.hideDividers?E.parent().children(w.divider):Z()},refreshSelectors:function(){h.verbose("Refreshing selector cache"),T=S.find(w.text),L=S.find(w.search),I=S.find(w.input),D=S.find(w.icon),R=0<S.prev().find(w.text).length?S.prev().find(w.text):S.prev(),O=S.children(w.menu),E=O.find(w.item),V=f.hideDividers?E.parent().children(w.divider):Z()},refreshData:function(){h.verbose("Refreshing cached metadata"),E.removeData(b.text).removeData(b.value)},clearData:function(){h.verbose("Clearing metadata"),E.removeData(b.text).removeData(b.value),S.removeData(b.defaultText).removeData(b.defaultValue).removeData(b.placeholderText)},toggle:function(){h.verbose("Toggling menu visibility"),h.is.active()?h.hide():h.show()},show:function(e){if(e=Z.isFunction(e)?e:function(){},!h.can.show()&&h.is.remote()&&(h.debug("No API results retrieved, searching before show"),h.queryRemote(h.get.query(),h.show)),h.can.show()&&!h.is.active()){if(h.debug("Showing dropdown"),!h.has.message()||h.has.maxSelections()||h.has.allResultsFiltered()||h.remove.message(),h.is.allFiltered())return!0;!1!==f.onShow.call(N)&&h.animate.show(function(){h.can.click()&&h.bind.intent(),h.has.search()&&h.focusSearch(),h.set.visible(),e.call(N)})}},hide:function(e){e=Z.isFunction(e)?e:function(){},h.is.active()&&!h.is.animatingOutward()?(h.debug("Hiding dropdown"),!1!==f.onHide.call(N)&&h.animate.hide(function(){h.remove.visible(),h.is.focusedOnSearch()&&L.blur(),e.call(N)})):h.can.click()&&h.unbind.intent()},hideOthers:function(){h.verbose("Finding other dropdowns to hide"),B.not(S).has(w.menu+"."+g.visible).dropdown("hide")},hideMenu:function(){h.verbose("Hiding menu instantaneously"),h.remove.active(),h.remove.visible(),O.transition("hide")},hideSubMenus:function(){var e=O.children(w.item).find(w.menu);h.verbose("Hiding sub menus",e),e.transition("hide")},bind:{events:function(){Q&&h.bind.touchEvents(),h.bind.keyboardEvents(),h.bind.inputEvents(),h.bind.mouseEvents()},touchEvents:function(){h.debug("Touch device detected binding additional touch events"),h.is.searchSelection()||h.is.single()&&S.on("touchstart"+x,h.event.test.toggle),O.on("touchstart"+x,w.item,h.event.item.mouseenter)},keyboardEvents:function(){h.verbose("Binding keyboard events"),S.on("keydown"+x,h.event.keydown),h.has.search()&&S.on(h.get.inputEvent()+x,w.search,h.event.input),h.is.multiple()&&K.on("keydown"+a,h.event.document.keydown)},inputEvents:function(){h.verbose("Binding input change events"),S.on("change"+x,w.input,h.event.change)},mouseEvents:function(){h.verbose("Binding mouse events"),h.is.multiple()&&S.on("click"+x,w.label,h.event.label.click).on("click"+x,w.remove,h.event.remove.click),h.is.searchSelection()?(S.on("mousedown"+x,h.event.mousedown).on("mouseup"+x,h.event.mouseup).on("mousedown"+x,w.menu,h.event.menu.mousedown).on("mouseup"+x,w.menu,h.event.menu.mouseup).on("click"+x,w.icon,h.event.icon.click).on("click"+x,w.clearIcon,h.event.clearIcon.click).on("focus"+x,w.search,h.event.search.focus).on("click"+x,w.search,h.event.search.focus).on("blur"+x,w.search,h.event.search.blur).on("click"+x,w.text,h.event.text.focus),h.is.multiple()&&S.on("click"+x,h.event.click)):("click"==f.on?S.on("click"+x,w.icon,h.event.icon.click).on("click"+x,h.event.test.toggle):"hover"==f.on?S.on("mouseenter"+x,h.delay.show).on("mouseleave"+x,h.delay.hide):S.on(f.on+x,h.toggle),S.on("mousedown"+x,h.event.mousedown).on("mouseup"+x,h.event.mouseup).on("focus"+x,h.event.focus).on("click"+x,w.clearIcon,h.event.clearIcon.click),h.has.menuSearch()?S.on("blur"+x,w.search,h.event.search.blur):S.on("blur"+x,h.event.blur)),O.on("mouseenter"+x,w.item,h.event.item.mouseenter).on("mouseleave"+x,w.item,h.event.item.mouseleave).on("click"+x,w.item,h.event.item.click)},intent:function(){h.verbose("Binding hide intent event to document"),Q&&K.on("touchstart"+a,h.event.test.touch).on("touchmove"+a,h.event.test.touch),K.on("click"+a,h.event.test.hide)}},unbind:{intent:function(){h.verbose("Removing hide intent event from document"),Q&&K.off("touchstart"+a).off("touchmove"+a),K.off("click"+a)}},filter:function(e){function t(){h.is.multiple()&&h.filterActive(),(e||!e&&0==h.get.activeItem().length)&&h.select.firstUnfiltered(),h.has.allResultsFiltered()?f.onNoResults.call(N,n)?f.allowAdditions?f.hideAdditions&&(h.verbose("User addition with no menu, setting empty style"),h.set.empty(),h.hideMenu()):(h.verbose("All items filtered, showing message",n),h.add.message(u.noResults)):(h.verbose("All items filtered, hiding dropdown",n),h.hideMenu()):(h.remove.empty(),h.remove.message()),f.allowAdditions&&h.add.userSuggestion(h.escape.htmlEntities(e)),h.is.searchSelection()&&h.can.show()&&h.is.focusedOnSearch()&&h.show()}var n=e!==te?e:h.get.query();f.useLabels&&h.has.maxSelections()||(f.apiSettings?h.can.useAPI()?h.queryRemote(n,function(){f.filterRemoteData&&h.filterItems(n);var e=I.val();Array.isArray(e)||(e=e&&""!==e?e.split(f.delimiter):[]),Z.each(e,function(e,t){E.filter('[data-value="'+t+'"]').addClass(g.filtered)}),t()}):h.error(m.noAPI):(h.filterItems(n),t()))},queryRemote:function(e,n){var t={errorDuration:!1,cache:"local",throttle:f.throttle,urlData:{query:e},onError:function(){h.add.message(u.serverError),n()},onFailure:function(){h.add.message(u.serverError),n()},onSuccess:function(e){var t=e[l.remoteValues];Array.isArray(t)||(t=[]),h.remove.message(),h.setup.menu({values:t}),0!==t.length||f.allowAdditions||h.add.message(u.noResults),n()}};S.api("get request")||h.setup.api(),t=Z.extend(!0,{},t,f.apiSettings),S.api("setting",t).api("query")},filterItems:function(e){var i=h.remove.diacritics(e!==te?e:h.get.query()),a=null,t=h.escape.string(i),o=new RegExp("^"+t,"igm");h.has.query()&&(a=[],h.verbose("Searching for matching values",i),E.each(function(){var e,t,n=Z(this);if("both"===f.match||"text"===f.match){if(-1!==(e=h.remove.diacritics(String(h.get.choiceText(n,!1)))).search(o))return a.push(this),!0;if("exact"===f.fullTextSearch&&h.exactSearch(i,e))return a.push(this),!0;if(!0===f.fullTextSearch&&h.fuzzySearch(i,e))return a.push(this),!0}if("both"===f.match||"value"===f.match){if(-1!==(t=h.remove.diacritics(String(h.get.choiceValue(n,e)))).search(o))return a.push(this),!0;if("exact"===f.fullTextSearch&&h.exactSearch(i,t))return a.push(this),!0;if(!0===f.fullTextSearch&&h.fuzzySearch(i,t))return a.push(this),!0}})),h.debug("Showing only matched items",i),h.remove.filteredItem(),a&&E.not(a).addClass(g.filtered),h.has.query()?!0===f.hideDividers?V.addClass(g.hidden):"empty"===f.hideDividers&&V.removeClass(g.hidden).filter(function(){var e=Z(this).nextUntil(w.item);return 0===(e.length?e:Z(this)).nextUntil(w.divider).filter(w.item+":not(."+g.filtered+")").length}).addClass(g.hidden):V.removeClass(g.hidden)},fuzzySearch:function(e,t){var n=t.length,i=e.length;if(e=e.toLowerCase(),t=t.toLowerCase(),n<i)return!1;if(i===n)return e===t;e:for(var a=0,o=0;a<i;a++){for(var s=e.charCodeAt(a);o<n;)if(t.charCodeAt(o++)===s)continue e;return!1}return!0},exactSearch:function(e,t){return e=e.toLowerCase(),-1<(t=t.toLowerCase()).indexOf(e)},filterActive:function(){f.useLabels&&E.filter("."+g.active).addClass(g.filtered)},focusSearch:function(e){h.has.search()&&!h.is.focusedOnSearch()&&(e?(S.off("focus"+x,w.search),L.focus(),S.on("focus"+x,w.search,h.event.search.focus)):L.focus())},blurSearch:function(){h.has.search()&&L.blur()},forceSelection:function(){var e=E.not(g.filtered).filter("."+g.selected).eq(0),t=E.not(g.filtered).filter("."+g.active).eq(0),n=0<e.length?e:t;0<n.length&&!h.is.multiple()?(h.debug("Forcing partial selection to selected item",n),h.event.item.click.call(n,{},!0)):(f.allowAdditions&&h.set.selected(h.get.query()),h.remove.searchTerm())},change:{values:function(e){f.allowAdditions||h.clear(),h.debug("Creating dropdown with specified values",e),h.setup.menu({values:e}),Z.each(e,function(e,t){if(1==t.selected&&(h.debug("Setting initial selection to",t[l.value]),h.set.selected(t[l.value]),!h.is.multiple()))return!1})}},event:{change:function(){z||(h.debug("Input changed, updating selection"),h.set.selected())},focus:function(){f.showOnFocus&&!M&&h.is.hidden()&&!t&&h.show()},blur:function(e){t=ee.activeElement===this,M||t||(h.remove.activeLabel(),h.hide())},mousedown:function(){h.is.searchSelection()?i=!0:M=!0},mouseup:function(){h.is.searchSelection()?i=!1:M=!1},click:function(e){Z(e.target).is(S)&&(h.is.focusedOnSearch()?h.show():h.focusSearch())},search:{focus:function(e){M=!0,h.is.multiple()&&h.remove.activeLabel(),(f.showOnFocus||"focus"!==e.type&&"focusin"!==e.type)&&h.search()},blur:function(e){t=ee.activeElement===this,h.is.searchSelection()&&!i&&(F||t||(f.forceSelection&&h.forceSelection(),h.hide())),i=!1}},clearIcon:{click:function(e){h.clear(),h.is.searchSelection()&&h.remove.searchTerm(),h.hide(),e.stopPropagation()}},icon:{click:function(e){P=!0,h.has.search()?h.is.active()?h.blurSearch():f.showOnFocus?h.focusSearch():h.toggle():h.toggle()}},text:{focus:function(e){M=!0,h.focusSearch()}},input:function(e){(h.is.multiple()||h.is.searchSelection())&&h.set.filtered(),clearTimeout(h.timer),h.timer=setTimeout(h.search,f.delay.search)},label:{click:function(e){var t=Z(this),n=S.find(w.label),i=n.filter("."+g.active),a=t.nextAll("."+g.active),o=t.prevAll("."+g.active),s=0<a.length?t.nextUntil(a).add(i).add(t):t.prevUntil(o).add(i).add(t);e.shiftKey?(i.removeClass(g.active),s.addClass(g.active)):e.ctrlKey?t.toggleClass(g.active):(i.removeClass(g.active),t.addClass(g.active)),f.onLabelSelect.apply(this,n.filter("."+g.active))}},remove:{click:function(){var e=Z(this).parent();e.hasClass(g.active)?h.remove.activeLabels():h.remove.activeLabels(e)}},test:{toggle:function(e){var t=h.is.multiple()?h.show:h.toggle;h.is.bubbledLabelClick(e)||h.is.bubbledIconClick(e)||h.determine.eventOnElement(e,t)&&e.preventDefault()},touch:function(e){h.determine.eventOnElement(e,function(){"touchstart"==e.type?h.timer=setTimeout(function(){h.hide()},f.delay.touch):"touchmove"==e.type&&clearTimeout(h.timer)}),e.stopPropagation()},hide:function(e){h.determine.eventInModule(e,h.hide)&&N.id&&Z(e.target).attr("for")===N.id&&e.preventDefault()}},select:{mutation:function(e){h.debug("<select> modified, recreating menu"),h.is.selectMutation(e)&&(h.disconnect.selectObserver(),h.refresh(),h.setup.select(),h.set.selected(),h.observe.select())}},menu:{mutation:function(e){var t=e[0],n=t.addedNodes?Z(t.addedNodes[0]):Z(!1),i=t.removedNodes?Z(t.removedNodes[0]):Z(!1),a=n.add(i),o=a.is(w.addition)||0<a.closest(w.addition).length,s=a.is(w.message)||0<a.closest(w.message).length;o||s?(h.debug("Updating item selector cache"),h.refreshItems()):(h.debug("Menu modified, updating selector cache"),h.refresh())},mousedown:function(){F=!0},mouseup:function(){F=!1}},item:{mouseenter:function(e){var t=Z(e.target),n=Z(this),i=n.children(w.menu),a=n.siblings(w.item).children(w.menu),o=0<i.length;0<i.find(t).length||!o||(clearTimeout(h.itemTimer),h.itemTimer=setTimeout(function(){h.verbose("Showing sub-menu",i),Z.each(a,function(){h.animate.hide(!1,Z(this))}),h.animate.show(!1,i)},f.delay.show),e.preventDefault())},mouseleave:function(e){var t=Z(this).children(w.menu);0<t.length&&(clearTimeout(h.itemTimer),h.itemTimer=setTimeout(function(){h.verbose("Hiding sub-menu",t),h.animate.hide(!1,t)},f.delay.hide))},click:function(e,t){var n=Z(this),i=Z(e?e.target:""),a=n.find(w.menu),o=h.get.choiceText(n),s=h.get.choiceValue(n,o),r=0<a.length,l=0<a.find(i).length;"input"!==ee.activeElement.tagName.toLowerCase()&&Z(ee.activeElement).blur(),l||r&&!f.allowCategorySelection||(h.is.searchSelection()&&(f.allowAdditions&&h.remove.userAddition(),h.remove.searchTerm(),h.is.focusedOnSearch()||1==t||h.focusSearch(!0)),f.useLabels||(h.remove.filteredItem(),h.set.scrollPosition(n)),h.determine.selectAction.call(this,o,s))}},document:{keydown:function(e){var t=e.which;if(h.is.inObject(t,p)){var n=S.find(w.label),i=n.filter("."+g.active),a=(i.data(b.value),n.index(i)),o=n.length,s=0<i.length,r=1<i.length,l=0===a,c=a+1==o,u=h.is.searchSelection(),d=h.is.focusedOnSearch(),v=h.is.focused(),m=d&&0===h.get.caretPosition(!1),f=m&&0!==h.get.caretPosition(!0);if(u&&!s&&!d)return;t==p.leftArrow?!v&&!m||s?s&&(e.shiftKey?h.verbose("Adding previous label to selection"):(h.verbose("Selecting previous label"),n.removeClass(g.active)),l&&!r?i.addClass(g.active):i.prev(w.siblingLabel).addClass(g.active).end(),e.preventDefault()):(h.verbose("Selecting previous label"),n.last().addClass(g.active)):t==p.rightArrow?(v&&!s&&n.first().addClass(g.active),s&&(e.shiftKey?h.verbose("Adding next label to selection"):(h.verbose("Selecting next label"),n.removeClass(g.active)),c?u?d?n.removeClass(g.active):h.focusSearch():r?i.next(w.siblingLabel).addClass(g.active):i.addClass(g.active):i.next(w.siblingLabel).addClass(g.active),e.preventDefault())):t==p.deleteKey||t==p.backspace?s?(h.verbose("Removing active labels"),c&&u&&!d&&h.focusSearch(),i.last().next(w.siblingLabel).addClass(g.active),h.remove.activeLabels(i),e.preventDefault()):!m||f||s||t!=p.backspace||(h.verbose("Removing last label on input backspace"),i=n.last().addClass(g.active),h.remove.activeLabels(i)):i.removeClass(g.active)}}},keydown:function(e){var t=e.which;if(h.is.inObject(t,p)){var n,i=E.not(w.unselectable).filter("."+g.selected).eq(0),a=O.children("."+g.active).eq(0),o=0<i.length?i:a,s=0<o.length?o.siblings(":not(."+g.filtered+")").addBack():O.children(":not(."+g.filtered+")"),r=o.children(w.menu),l=o.closest(w.menu),c=l.hasClass(g.visible)||l.hasClass(g.animating)||0<l.parent(w.menu).length,u=0<r.length,d=0<o.length,v=0<o.not(w.unselectable).length,m=t==p.delimiter&&f.allowAdditions&&h.is.multiple();if(f.allowAdditions&&f.hideAdditions&&(t==p.enter||m)&&v&&(h.verbose("Selecting item from keyboard shortcut",o),h.event.item.click.call(o,e),h.is.searchSelection()&&h.remove.searchTerm(),h.is.multiple()&&e.preventDefault()),h.is.visible()){if(t!=p.enter&&!m||(t==p.enter&&d&&u&&!f.allowCategorySelection?(h.verbose("Pressed enter on unselectable category, opening sub menu"),t=p.rightArrow):v&&(h.verbose("Selecting item from keyboard shortcut",o),h.event.item.click.call(o,e),h.is.searchSelection()&&(h.remove.searchTerm(),h.is.multiple()&&L.focus())),e.preventDefault()),d&&(t==p.leftArrow&&l[0]!==O[0]&&(h.verbose("Left key pressed, closing sub-menu"),h.animate.hide(!1,l),o.removeClass(g.selected),l.closest(w.item).addClass(g.selected),e.preventDefault()),t==p.rightArrow&&u&&(h.verbose("Right key pressed, opening sub-menu"),h.animate.show(!1,r),o.removeClass(g.selected),r.find(w.item).eq(0).addClass(g.selected),e.preventDefault())),t==p.upArrow){if(n=d&&c?o.prevAll(w.item+":not("+w.unselectable+")").eq(0):E.eq(0),s.index(n)<0)return h.verbose("Up key pressed but reached top of current menu"),void e.preventDefault();h.verbose("Up key pressed, changing active item"),o.removeClass(g.selected),n.addClass(g.selected),h.set.scrollPosition(n),f.selectOnKeydown&&h.is.single()&&h.set.selectedItem(n),e.preventDefault()}if(t==p.downArrow){if(0===(n=d&&c?n=o.nextAll(w.item+":not("+w.unselectable+")").eq(0):E.eq(0)).length)return h.verbose("Down key pressed but reached bottom of current menu"),void e.preventDefault();h.verbose("Down key pressed, changing active item"),E.removeClass(g.selected),n.addClass(g.selected),h.set.scrollPosition(n),f.selectOnKeydown&&h.is.single()&&h.set.selectedItem(n),e.preventDefault()}t==p.pageUp&&(h.scrollPage("up"),e.preventDefault()),t==p.pageDown&&(h.scrollPage("down"),e.preventDefault()),t==p.escape&&(h.verbose("Escape key pressed, closing dropdown"),h.hide())}else m&&e.preventDefault(),t!=p.downArrow||h.is.visible()||(h.verbose("Down key pressed, showing dropdown"),h.show(),e.preventDefault())}else h.has.search()||h.set.selectedLetter(String.fromCharCode(t))}},trigger:{change:function(){var e=ee.createEvent("HTMLEvents"),t=I[0];t&&(h.verbose("Triggering native change event"),e.initEvent("change",!0,!1),t.dispatchEvent(e))}},determine:{selectAction:function(e,t){c=!0,h.verbose("Determining action",f.action),Z.isFunction(h.action[f.action])?(h.verbose("Triggering preset action",f.action,e,t),h.action[f.action].call(N,e,t,this)):Z.isFunction(f.action)?(h.verbose("Triggering user action",f.action,e,t),f.action.call(N,e,t,this)):h.error(m.action,f.action),c=!1},eventInModule:function(e,t){var n=Z(e.target),i=0<n.closest(ee.documentElement).length,a=0<n.closest(S).length;return t=Z.isFunction(t)?t:function(){},i&&!a?(h.verbose("Triggering event",t),t(),!0):(h.verbose("Event occurred in dropdown, canceling callback"),!1)},eventOnElement:function(e,t){var n=Z(e.target),i=n.closest(w.siblingLabel),a=ee.body.contains(e.target),o=0===S.find(i).length||!(h.is.multiple()&&f.useLabels),s=0===n.closest(O).length;return t=Z.isFunction(t)?t:function(){},a&&o&&s?(h.verbose("Triggering event",t),t(),!0):(h.verbose("Event occurred in dropdown menu, canceling callback"),!1)}},action:{nothing:function(){},activate:function(e,t,n){t=t!==te?t:e,h.can.activate(Z(n))&&(h.set.selected(t,Z(n)),h.is.multiple()||h.hideAndClear())},select:function(e,t,n){t=t!==te?t:e,h.can.activate(Z(n))&&(h.set.value(t,e,Z(n)),h.is.multiple()||h.hideAndClear())},combo:function(e,t,n){t=t!==te?t:e,h.set.selected(t,Z(n)),h.hideAndClear()},hide:function(e,t,n){h.set.value(t,e,Z(n)),h.hideAndClear()}},get:{id:function(){return o},defaultText:function(){return S.data(b.defaultText)},defaultValue:function(){return S.data(b.defaultValue)},placeholderText:function(){return"auto"!=f.placeholder&&"string"==typeof f.placeholder?f.placeholder:S.data(b.placeholderText)||""},text:function(){return T.text()},query:function(){return Z.trim(L.val())},searchWidth:function(e){return e=e!==te?e:L.val(),k.text(e),Math.ceil(k.width()+1)},selectionCount:function(){var e=h.get.values();return h.is.multiple()?Array.isArray(e)?e.length:0:""!==h.get.value()?1:0},transition:function(e){return"auto"==f.transition?h.is.upward(e)?"slide up":"slide down":f.transition},userValues:function(){var e=h.get.values();return!!e&&(e=Array.isArray(e)?e:[e],Z.grep(e,function(e){return!1===h.get.item(e)}))},uniqueArray:function(n){return Z.grep(n,function(e,t){return Z.inArray(e,n)===t})},caretPosition:function(e){var t,n,i=L.get(0);return e&&"selectionEnd"in i?i.selectionEnd:!e&&"selectionStart"in i?i.selectionStart:ee.selection?(i.focus(),n=(t=ee.selection.createRange()).text.length,e?n:(t.moveStart("character",-i.value.length),t.text.length-n)):void 0},value:function(){var e=0<I.length?I.val():S.data(b.value),t=Array.isArray(e)&&1===e.length&&""===e[0];return e===te||t?"":e},values:function(){var e=h.get.value();return""===e?"":!h.has.selectInput()&&h.is.multiple()?"string"==typeof e?h.escape.htmlEntities(e).split(f.delimiter):"":e},remoteValues:function(){var e=h.get.values(),i=!1;return e&&("string"==typeof e&&(e=[e]),Z.each(e,function(e,t){var n=h.read.remoteData(t);h.verbose("Restoring value from session data",n,t),n&&((i=i||{})[t]=n)})),i},choiceText:function(e,t){if(t=t!==te?t:f.preserveHTML,e)return 0<e.find(w.menu).length&&(h.verbose("Retrieving text of element with sub-menu"),(e=e.clone()).find(w.menu).remove(),e.find(w.menuIcon).remove()),e.data(b.text)!==te?e.data(b.text):t?Z.trim(e.html()):Z.trim(e.text())},choiceValue:function(e,t){return t=t||h.get.choiceText(e),!!e&&(e.data(b.value)!==te?String(e.data(b.value)):"string"==typeof t?Z.trim(t.toLowerCase()):String(t))},inputEvent:function(){var e=L[0];return!!e&&(e.oninput!==te?"input":e.onpropertychange!==te?"propertychange":"keyup")},selectValues:function(){var o={},s=[];return o.values=[],S.find("option").each(function(){var e=Z(this),t=e.html(),n=e.attr("disabled"),i=e.attr("value")!==te?e.attr("value"):t,a=e.parent("optgroup");"auto"===f.placeholder&&""===i?o.placeholder=t:(a.length===s.length&&a[0]===s[0]||(o.values.push({type:"header",divider:f.headerDivider,name:a.attr("label")||""}),s=a),o.values.push({name:t,value:i,disabled:n}))}),f.placeholder&&"auto"!==f.placeholder&&(h.debug("Setting placeholder value to",f.placeholder),o.placeholder=f.placeholder),f.sortSelect?(!0===f.sortSelect?o.values.sort(function(e,t){return e.name.localeCompare(t.name)}):"natural"===f.sortSelect?o.values.sort(function(e,t){return e.name.toLowerCase().localeCompare(t.name.toLowerCase())}):Z.isFunction(f.sortSelect)&&o.values.sort(f.sortSelect),h.debug("Retrieved and sorted values from select",o)):h.debug("Retrieved values from select",o),o},activeItem:function(){return E.filter("."+g.active)},selectedItem:function(){var e=E.not(w.unselectable).filter("."+g.selected);return 0<e.length?e:E.eq(0)},itemWithAdditions:function(e){var t=h.get.item(e),n=h.create.userChoice(e);return n&&0<n.length&&(t=0<t.length?t.add(n):n),t},item:function(i,a){var e,o,s=!1;return i=i!==te?i:h.get.values()!==te?h.get.values():h.get.text(),e=(o=h.is.multiple()&&Array.isArray(i))?0<i.length:i!==te&&null!==i,a=""===i||!1===i||!0===i||(a||!1),e&&E.each(function(){var e=Z(this),t=h.get.choiceText(e),n=h.get.choiceValue(e,t);if(null!==n&&n!==te)if(o)-1!==Z.inArray(String(n),i)&&(s=s?s.add(e):e);else if(a){if(h.verbose("Ambiguous dropdown value using strict type check",e,i),n===i)return s=e,!0}else if(String(n)==String(i))return h.verbose("Found select item by value",n,i),s=e,!0}),s}},check:{maxSelections:function(e){return!f.maxSelections||((e=e!==te?e:h.get.selectionCount())>=f.maxSelections?(h.debug("Maximum selection count reached"),f.useLabels&&(E.addClass(g.filtered),h.add.message(u.maxSelections)),!0):(h.verbose("No longer at maximum selection count"),h.remove.message(),h.remove.filteredItem(),h.is.searchSelection()&&h.filterItems(),!1))}},restore:{defaults:function(){h.clear(),h.restore.defaultText(),h.restore.defaultValue()},defaultText:function(){var e=h.get.defaultText();e===h.get.placeholderText?(h.debug("Restoring default placeholder text",e),h.set.placeholderText(e)):(h.debug("Restoring default text",e),h.set.text(e))},placeholderText:function(){h.set.placeholderText()},defaultValue:function(){var e=h.get.defaultValue();e!==te&&(h.debug("Restoring default value",e),""!==e?(h.set.value(e),h.set.selected()):(h.remove.activeItem(),h.remove.selectedItem()))},labels:function(){f.allowAdditions&&(f.useLabels||(h.error(m.labels),f.useLabels=!0),h.debug("Restoring selected values"),h.create.userLabels()),h.check.maxSelections()},selected:function(){h.restore.values(),h.is.multiple()?(h.debug("Restoring previously selected values and labels"),h.restore.labels()):h.debug("Restoring previously selected values")},values:function(){h.set.initialLoad(),f.apiSettings&&f.saveRemoteData&&h.get.remoteValues()?h.restore.remoteValues():h.set.selected();var e=h.get.value();!e||""===e||Array.isArray(e)&&0===e.length?I.addClass(g.noselection):I.removeClass(g.noselection),h.remove.initialLoad()},remoteValues:function(){var e=h.get.remoteValues();h.debug("Recreating selected from session data",e),e&&(h.is.single()?Z.each(e,function(e,t){h.set.text(t)}):Z.each(e,function(e,t){h.add.label(e,t)}))}},read:{remoteData:function(e){var t;if(_.Storage!==te)return(t=sessionStorage.getItem(e))!==te&&t;h.error(m.noStorage)}},save:{defaults:function(){h.save.defaultText(),h.save.placeholderText(),h.save.defaultValue()},defaultValue:function(){var e=h.get.value();h.verbose("Saving default value as",e),S.data(b.defaultValue,e)},defaultText:function(){var e=h.get.text();h.verbose("Saving default text as",e),S.data(b.defaultText,e)},placeholderText:function(){var e;!1!==f.placeholder&&T.hasClass(g.placeholder)&&(e=h.get.text(),h.verbose("Saving placeholder text as",e),S.data(b.placeholderText,e))},remoteData:function(e,t){_.Storage!==te?(h.verbose("Saving remote data to session storage",t,e),sessionStorage.setItem(t,e)):h.error(m.noStorage)}},clear:function(){h.is.multiple()&&f.useLabels?h.remove.labels():(h.remove.activeItem(),h.remove.selectedItem(),h.remove.filteredItem()),h.set.placeholderText(),h.clearValue()},clearValue:function(){h.set.value("")},scrollPage:function(e,t){var n,i,a=t||h.get.selectedItem(),o=a.closest(w.menu),s=o.outerHeight(),r=o.scrollTop(),l=E.eq(0).outerHeight(),c=Math.floor(s/l),u=(o.prop("scrollHeight"),"up"==e?r-l*c:r+l*c),d=E.not(w.unselectable);i="up"==e?d.index(a)-c:d.index(a)+c,0<(n=("up"==e?0<=i:i<d.length)?d.eq(i):"up"==e?d.first():d.last()).length&&(h.debug("Scrolling page",e,n),a.removeClass(g.selected),n.addClass(g.selected),f.selectOnKeydown&&h.is.single()&&h.set.selectedItem(n),o.scrollTop(u))},set:{filtered:function(){var e=h.is.multiple(),t=h.is.searchSelection(),n=e&&t,i=t?h.get.query():"",a="string"==typeof i&&0<i.length,o=h.get.searchWidth(),s=""!==i;e&&a&&(h.verbose("Adjusting input width",o,f.glyphWidth),L.css("width",o)),a||n&&s?(h.verbose("Hiding placeholder text"),T.addClass(g.filtered)):e&&(!n||s)||(h.verbose("Showing placeholder text"),T.removeClass(g.filtered))},empty:function(){S.addClass(g.empty)},loading:function(){S.addClass(g.loading)},placeholderText:function(e){e=e||h.get.placeholderText(),h.debug("Setting placeholder text",e),h.set.text(e),T.addClass(g.placeholder)},tabbable:function(){h.is.searchSelection()?(h.debug("Added tabindex to searchable dropdown"),L.val("").attr("tabindex",0),O.attr("tabindex",-1)):(h.debug("Added tabindex to dropdown"),S.attr("tabindex")===te&&(S.attr("tabindex",0),O.attr("tabindex",-1)))},initialLoad:function(){h.verbose("Setting initial load"),e=!0},activeItem:function(e){f.allowAdditions&&0<e.filter(w.addition).length?e.addClass(g.filtered):e.addClass(g.active)},partialSearch:function(e){var t=h.get.query().length;L.val(e.substr(0,t))},scrollPosition:function(e,t){var n,i,a,o,s,r;n=(e=e||h.get.selectedItem()).closest(w.menu),i=e&&0<e.length,t=t!==te&&t,0===h.get.activeItem().length&&(t=!1),e&&0<n.length&&i&&(e.position().top,n.addClass(g.loading),a=(o=n.scrollTop())-n.offset().top+e.offset().top,t||(r=o+n.height()<a+5,s=a-5<o),h.debug("Scrolling to active item",a),(t||s||r)&&n.scrollTop(a),n.removeClass(g.loading))},text:function(e){"combo"===f.action?(h.debug("Changing combo button text",e,R),f.preserveHTML?R.html(e):R.text(e)):"activate"===f.action&&(e!==h.get.placeholderText()&&T.removeClass(g.placeholder),h.debug("Changing text",e,T),T.removeClass(g.filtered),f.preserveHTML?T.html(e):T.text(e))},selectedItem:function(e){var t=h.get.choiceValue(e),n=h.get.choiceText(e,!1),i=h.get.choiceText(e,!0);h.debug("Setting user selection to item",e),h.remove.activeItem(),h.set.partialSearch(n),h.set.activeItem(e),h.set.selected(t,e),h.set.text(i)},selectedLetter:function(e){var t,n=E.filter("."+g.selected),i=0<n.length&&h.has.firstLetter(n,e),a=!1;i&&(t=n.nextAll(E).eq(0),h.has.firstLetter(t,e)&&(a=t)),a||E.each(function(){if(h.has.firstLetter(Z(this),e))return a=Z(this),!1}),a&&(h.verbose("Scrolling to next value with letter",e),h.set.scrollPosition(a),n.removeClass(g.selected),a.addClass(g.selected),f.selectOnKeydown&&h.is.single()&&h.set.selectedItem(a))},direction:function(e){"auto"==f.direction?(e?h.is.upward(e)&&h.remove.upward(e):h.remove.upward(),h.can.openDownward(e)?h.remove.upward(e):h.set.upward(e),h.is.leftward(e)||h.can.openRightward(e)||h.set.leftward(e)):"upward"==f.direction&&h.set.upward(e)},upward:function(e){(e||S).addClass(g.upward)},leftward:function(e){(e||O).addClass(g.leftward)},value:function(e,t,n){e===te||""===e||Array.isArray(e)&&0===e.length?I.addClass(g.noselection):I.removeClass(g.noselection);var i=h.escape.value(e),a=0<I.length,o=h.get.values(),s=e!==te?String(e):e;if(a){if(!f.allowReselection&&s==o&&(h.verbose("Skipping value update already same value",e,o),!h.is.initialLoad()))return;h.is.single()&&h.has.selectInput()&&h.can.extendSelect()&&(h.debug("Adding user option",e),h.add.optionValue(e)),h.debug("Updating input value",i,o),z=!0,I.val(i),!1===f.fireOnInit&&h.is.initialLoad()?h.debug("Input native change event ignored on initial load"):h.trigger.change(),z=!1}else h.verbose("Storing value in metadata",i,I),i!==o&&S.data(b.value,s);!1===f.fireOnInit&&h.is.initialLoad()?h.verbose("No callback on initial load",f.onChange):f.onChange.call(N,e,t,n)},active:function(){S.addClass(g.active)},multiple:function(){S.addClass(g.multiple)},visible:function(){S.addClass(g.visible)},exactly:function(e,t){h.debug("Setting selected to exact values"),h.clear(),h.set.selected(e,t)},selected:function(e,r){var l=h.is.multiple();(r=f.allowAdditions?r||h.get.itemWithAdditions(e):r||h.get.item(e))&&(h.debug("Setting selected menu item to",r),h.is.multiple()&&h.remove.searchWidth(),h.is.single()?(h.remove.activeItem(),h.remove.selectedItem()):f.useLabels&&h.remove.selectedItem(),r.each(function(){var e=Z(this),t=h.get.choiceText(e),n=h.get.choiceValue(e,t),i=e.hasClass(g.filtered),a=e.hasClass(g.active),o=e.hasClass(g.addition),s=l&&1==r.length;l?!a||o?(f.apiSettings&&f.saveRemoteData&&h.save.remoteData(t,n),f.useLabels?(h.add.label(n,t,s),h.add.value(n,t,e),h.set.activeItem(e),h.filterActive(),h.select.nextAvailable(r)):(h.add.value(n,t,e),h.set.text(h.add.variables(u.count)),h.set.activeItem(e))):i||!f.useLabels&&!c||(h.debug("Selected active value, removing label"),h.remove.selected(n)):(f.apiSettings&&f.saveRemoteData&&h.save.remoteData(t,n),h.set.text(t),h.set.value(n,t,e),e.addClass(g.active).addClass(g.selected))}))}},add:{label:function(e,t,n){var i,a=h.is.searchSelection()?L:T,o=h.escape.value(e);f.ignoreCase&&(o=o.toLowerCase()),i=Z("<a />").addClass(g.label).attr("data-"+b.value,o).html(C.label(o,t,f.preserveHTML,f.className)),i=f.onLabelCreate.call(i,o,t),h.has.label(e)?h.debug("User selection already exists, skipping",o):(f.label.variation&&i.addClass(f.label.variation),!0===n?(h.debug("Animating in label",i),i.addClass(g.hidden).insertBefore(a).transition({animation:f.label.transition,debug:f.debug,verbose:f.verbose,duration:f.label.duration})):(h.debug("Adding selection label",i),i.insertBefore(a)))},message:function(e){var t=O.children(w.message),n=f.templates.message(h.add.variables(e));0<t.length?t.html(n):t=Z("<div/>").html(n).addClass(g.message).appendTo(O)},optionValue:function(e){var t=h.escape.value(e);0<I.find('option[value="'+h.escape.string(t)+'"]').length||(h.disconnect.selectObserver(),h.is.single()&&(h.verbose("Removing previous user addition"),I.find("option."+g.addition).remove()),Z("<option/>").prop("value",t).addClass(g.addition).html(e).appendTo(I),h.verbose("Adding user addition as an <option>",e),h.observe.select())},userSuggestion:function(e){var t,n=O.children(w.addition),i=h.get.item(e),a=i&&i.not(w.addition).length,o=0<n.length;f.useLabels&&h.has.maxSelections()||(""===e||a?n.remove():(o?(n.data(b.value,e).data(b.text,e).attr("data-"+b.value,e).attr("data-"+b.text,e).removeClass(g.filtered),f.hideAdditions||(t=f.templates.addition(h.add.variables(u.addResult,e)),n.html(t)),h.verbose("Replacing user suggestion with new value",n)):((n=h.create.userChoice(e)).prependTo(O),h.verbose("Adding item choice to menu corresponding with user choice addition",n)),f.hideAdditions&&!h.is.allFiltered()||n.addClass(g.selected).siblings().removeClass(g.selected),h.refreshItems()))},variables:function(e,t){var n,i,a=-1!==e.search("{count}"),o=-1!==e.search("{maxCount}"),s=-1!==e.search("{term}");return h.verbose("Adding templated variables to message",e),a&&(n=h.get.selectionCount(),e=e.replace("{count}",n)),o&&(n=h.get.selectionCount(),e=e.replace("{maxCount}",f.maxSelections)),s&&(i=t||h.get.query(),e=e.replace("{term}",i)),e},value:function(e,t,n){var i,a=h.get.values();h.has.value(e)?h.debug("Value already selected"):""!==e?(i=Array.isArray(a)?(i=a.concat([e]),h.get.uniqueArray(i)):[e],h.has.selectInput()?h.can.extendSelect()&&(h.debug("Adding value to select",e,i,I),h.add.optionValue(e)):(i=i.join(f.delimiter),h.debug("Setting hidden input to delimited value",i,I)),!1===f.fireOnInit&&h.is.initialLoad()?h.verbose("Skipping onadd callback on initial load",f.onAdd):f.onAdd.call(N,e,t,n),h.set.value(i,e,t,n),h.check.maxSelections()):h.debug("Cannot select blank values from multiselect")}},remove:{active:function(){S.removeClass(g.active)},activeLabel:function(){S.find(w.label).removeClass(g.active)},empty:function(){S.removeClass(g.empty)},loading:function(){S.removeClass(g.loading)},initialLoad:function(){e=!1},upward:function(e){(e||S).removeClass(g.upward)},leftward:function(e){(e||O).removeClass(g.leftward)},visible:function(){S.removeClass(g.visible)},activeItem:function(){E.removeClass(g.active)},filteredItem:function(){f.useLabels&&h.has.maxSelections()||(f.useLabels&&h.is.multiple()?E.not("."+g.active).removeClass(g.filtered):E.removeClass(g.filtered),f.hideDividers&&V.removeClass(g.hidden),h.remove.empty())},optionValue:function(e){var t=h.escape.value(e),n=I.find('option[value="'+h.escape.string(t)+'"]');0<n.length&&n.hasClass(g.addition)&&(s&&(s.disconnect(),h.verbose("Temporarily disconnecting mutation observer")),n.remove(),h.verbose("Removing user addition as an <option>",t),s&&s.observe(I[0],{childList:!0,subtree:!0}))},message:function(){O.children(w.message).remove()},searchWidth:function(){L.css("width","")},searchTerm:function(){h.verbose("Cleared search term"),L.val(""),h.set.filtered()},userAddition:function(){E.filter(w.addition).remove()},selected:function(e,t){if(!(t=f.allowAdditions?t||h.get.itemWithAdditions(e):t||h.get.item(e)))return!1;t.each(function(){var e=Z(this),t=h.get.choiceText(e),n=h.get.choiceValue(e,t);h.is.multiple()?f.useLabels?(h.remove.value(n,t,e),h.remove.label(n)):(h.remove.value(n,t,e),0===h.get.selectionCount()?h.set.placeholderText():h.set.text(h.add.variables(u.count))):h.remove.value(n,t,e),e.removeClass(g.filtered).removeClass(g.active),f.useLabels&&e.removeClass(g.selected)})},selectedItem:function(){E.removeClass(g.selected)},value:function(e,t,n){var i,a=h.get.values();h.has.selectInput()?(h.verbose("Input is <select> removing selected option",e),i=h.remove.arrayValue(e,a),h.remove.optionValue(e)):(h.verbose("Removing from delimited values",e),i=(i=h.remove.arrayValue(e,a)).join(f.delimiter)),!1===f.fireOnInit&&h.is.initialLoad()?h.verbose("No callback on initial load",f.onRemove):f.onRemove.call(N,e,t,n),h.set.value(i,t,n),h.check.maxSelections()},arrayValue:function(t,e){return Array.isArray(e)||(e=[e]),e=Z.grep(e,function(e){return t!=e}),h.verbose("Removed value from delimited string",t,e),e},label:function(e,t){var n=S.find(w.label).filter("[data-"+b.value+'="'+h.escape.string(e)+'"]');h.verbose("Removing label",n),n.remove()},activeLabels:function(e){e=e||S.find(w.label).filter("."+g.active),h.verbose("Removing active label selections",e),h.remove.labels(e)},labels:function(e){e=e||S.find(w.label),h.verbose("Removing labels",e),e.each(function(){var e=Z(this),t=e.data(b.value),n=t!==te?String(t):t,i=h.is.userValue(n);!1!==f.onLabelRemove.call(e,t)?(h.remove.message(),i?(h.remove.value(n),h.remove.label(n)):h.remove.selected(n)):h.debug("Label remove callback cancelled removal")})},tabbable:function(){h.is.searchSelection()?(h.debug("Searchable dropdown initialized"),L.removeAttr("tabindex")):(h.debug("Simple selection dropdown initialized"),S.removeAttr("tabindex")),O.removeAttr("tabindex")},diacritics:function(e){return f.ignoreDiacritics?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}},has:{menuSearch:function(){return h.has.search()&&0<L.closest(O).length},clearItem:function(){return 0<q.length},search:function(){return 0<L.length},sizer:function(){return 0<k.length},selectInput:function(){return I.is("select")},minCharacters:function(e){return f.minCharacters&&!P?(e=e!==te?String(e):String(h.get.query())).length>=f.minCharacters:!(P=!1)},firstLetter:function(e,t){var n;return!(!e||0===e.length||"string"!=typeof t)&&(n=h.get.choiceText(e,!1),(t=t.toLowerCase())==String(n).charAt(0).toLowerCase())},input:function(){return 0<I.length},items:function(){return 0<E.length},menu:function(){return 0<O.length},message:function(){return 0!==O.children(w.message).length},label:function(e){var t=h.escape.value(e),n=S.find(w.label);return f.ignoreCase&&(t=t.toLowerCase()),0<n.filter("[data-"+b.value+'="'+h.escape.string(t)+'"]').length},maxSelections:function(){return f.maxSelections&&h.get.selectionCount()>=f.maxSelections},allResultsFiltered:function(){var e=E.not(w.addition);return e.filter(w.unselectable).length===e.length},userSuggestion:function(){return 0<O.children(w.addition).length},query:function(){return""!==h.get.query()},value:function(e){return f.ignoreCase?h.has.valueIgnoringCase(e):h.has.valueMatchingCase(e)},valueMatchingCase:function(e){var t=h.get.values();return!!(Array.isArray(t)?t&&-1!==Z.inArray(e,t):t==e)},valueIgnoringCase:function(n){var e=h.get.values(),i=!1;return Array.isArray(e)||(e=[e]),Z.each(e,function(e,t){if(String(n).toLowerCase()==String(t).toLowerCase())return!(i=!0)}),i}},is:{active:function(){return S.hasClass(g.active)},animatingInward:function(){return O.transition("is inward")},animatingOutward:function(){return O.transition("is outward")},bubbledLabelClick:function(e){return Z(e.target).is("select, input")&&0<S.closest("label").length},bubbledIconClick:function(e){return 0<Z(e.target).closest(D).length},alreadySetup:function(){return S.is("select")&&S.parent(w.dropdown).data(y)!==te&&0===S.prev().length},animating:function(e){return e?e.transition&&e.transition("is animating"):O.transition&&O.transition("is animating")},leftward:function(e){return(e||O).hasClass(g.leftward)},clearable:function(){return S.hasClass(g.clearable)||f.clearable},disabled:function(){return S.hasClass(g.disabled)},focused:function(){return ee.activeElement===S[0]},focusedOnSearch:function(){return ee.activeElement===L[0]},allFiltered:function(){return(h.is.multiple()||h.has.search())&&!(0==f.hideAdditions&&h.has.userSuggestion())&&!h.has.message()&&h.has.allResultsFiltered()},hidden:function(e){return!h.is.visible(e)},initialLoad:function(){return e},inObject:function(n,e){var i=!1;return Z.each(e,function(e,t){if(t==n)return i=!0}),i},multiple:function(){return S.hasClass(g.multiple)},remote:function(){return f.apiSettings&&h.can.useAPI()},single:function(){return!h.is.multiple()},selectMutation:function(e){var n=!1;return Z.each(e,function(e,t){if(Z(t.target).is("select")||Z(t.addedNodes).is("select"))return!(n=!0)}),n},search:function(){return S.hasClass(g.search)},searchSelection:function(){return h.has.search()&&1===L.parent(w.dropdown).length},selection:function(){return S.hasClass(g.selection)},userValue:function(e){return-1!==Z.inArray(e,h.get.userValues())},upward:function(e){return(e||S).hasClass(g.upward)},visible:function(e){return e?e.hasClass(g.visible):O.hasClass(g.visible)},verticallyScrollableContext:function(){var e=A.get(0)!==_&&A.css("overflow-y");return"auto"==e||"scroll"==e},horizontallyScrollableContext:function(){var e=A.get(0)!==_&&A.css("overflow-X");return"auto"==e||"scroll"==e}},can:{activate:function(e){return!!f.useLabels||(!h.has.maxSelections()||!(!h.has.maxSelections()||!e.hasClass(g.active)))},openDownward:function(e){var t,n,i=e||O,a=!0;return i.addClass(g.loading),n={context:{offset:A.get(0)===_?{top:0,left:0}:A.offset(),scrollTop:A.scrollTop(),height:A.outerHeight()},menu:{offset:i.offset(),height:i.outerHeight()}},h.is.verticallyScrollableContext()&&(n.menu.offset.top+=n.context.scrollTop),a=(t={above:n.context.scrollTop<=n.menu.offset.top-n.context.offset.top-n.menu.height,below:n.context.scrollTop+n.context.height>=n.menu.offset.top-n.context.offset.top+n.menu.height}).below?(h.verbose("Dropdown can fit in context downward",t),!0):t.below||t.above?(h.verbose("Dropdown cannot fit below, opening upward",t),!1):(h.verbose("Dropdown cannot fit in either direction, favoring downward",t),!0),i.removeClass(g.loading),a},openRightward:function(e){var t,n,i=e||O,a=!0;return i.addClass(g.loading),n={context:{offset:A.get(0)===_?{top:0,left:0}:A.offset(),scrollLeft:A.scrollLeft(),width:A.outerWidth()},menu:{offset:i.offset(),width:i.outerWidth()}},h.is.horizontallyScrollableContext()&&(n.menu.offset.left+=n.context.scrollLeft),(t=n.menu.offset.left-n.context.offset.left+n.menu.width>=n.context.scrollLeft+n.context.width)&&(h.verbose("Dropdown cannot fit in context rightward",t),a=!1),i.removeClass(g.loading),a},click:function(){return Q||"click"==f.on},extendSelect:function(){return f.allowAdditions||f.apiSettings},show:function(){return!h.is.disabled()&&(h.has.items()||h.has.message())},useAPI:function(){return Z.fn.api!==te}},animate:{show:function(e,t){var n,i=t||O,a=t?function(){}:function(){h.hideSubMenus(),h.hideOthers(),h.set.active()};e=Z.isFunction(e)?e:function(){},h.verbose("Doing menu show animation",i),h.set.direction(t),n=h.get.transition(t),h.is.selection()&&h.set.scrollPosition(h.get.selectedItem(),!0),(h.is.hidden(i)||h.is.animating(i))&&("none"==n?(a(),i.transition("show"),e.call(N)):Z.fn.transition!==te&&S.transition("is supported")?i.transition({animation:n+" in",debug:f.debug,verbose:f.verbose,duration:f.duration,queue:!0,onStart:a,onComplete:function(){e.call(N)}}):h.error(m.noTransition,n))},hide:function(e,t){var n=t||O,i=t?function(){}:function(){h.can.click()&&h.unbind.intent(),h.remove.active()},a=h.get.transition(t);e=Z.isFunction(e)?e:function(){},(h.is.visible(n)||h.is.animating(n))&&(h.verbose("Doing menu hide animation",n),"none"==a?(i(),n.transition("hide"),e.call(N)):Z.fn.transition!==te&&S.transition("is supported")?n.transition({animation:a+" out",duration:f.duration,debug:f.debug,verbose:f.verbose,queue:!1,onStart:i,onComplete:function(){e.call(N)}}):h.error(m.transition))}},hideAndClear:function(){h.remove.searchTerm(),h.has.maxSelections()||(h.has.search()?h.hide(function(){h.remove.filteredItem()}):h.hide())},delay:{show:function(){h.verbose("Delaying show event to ensure user intent"),clearTimeout(h.timer),h.timer=setTimeout(h.show,f.delay.show)},hide:function(){h.verbose("Delaying hide event to ensure user intent"),clearTimeout(h.timer),h.timer=setTimeout(h.hide,f.delay.hide)}},escape:{value:function(e){var t=Array.isArray(e),n="string"==typeof e,i=!n&&!t,a=n&&-1!==e.search(v.quote),o=[];return i||!a?e:(h.debug("Encoding quote values for use in select",e),t?(Z.each(e,function(e,t){o.push(t.replace(v.quote,"""))}),o):e.replace(v.quote,"""))},string:function(e){return(e=String(e)).replace(v.escape,"\\$&")},htmlEntities:function(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};return/[&<>"'`]/.test(e)?e.replace(/[&<>"'`]/g,function(e){return t[e]}):e}},setting:function(e,t){if(h.debug("Changing setting",e,t),Z.isPlainObject(e))Z.extend(!0,f,e);else{if(t===te)return f[e];Z.isPlainObject(f[e])?Z.extend(!0,f[e],t):f[e]=t}},internal:function(e,t){if(Z.isPlainObject(e))Z.extend(!0,h,e);else{if(t===te)return h[e];h[e]=t}},debug:function(){!f.silent&&f.debug&&(f.performance?h.performance.log(arguments):(h.debug=Function.prototype.bind.call(console.info,console,f.name+":"),h.debug.apply(console,arguments)))},verbose:function(){!f.silent&&f.verbose&&f.debug&&(f.performance?h.performance.log(arguments):(h.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),h.verbose.apply(console,arguments)))},error:function(){f.silent||(h.error=Function.prototype.bind.call(console.error,console,f.name+":"),h.error.apply(console,arguments))},performance:{log:function(e){var t,n;f.performance&&(n=(t=(new Date).getTime())-(Y||t),Y=t,$.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:N,"Execution Time":n})),clearTimeout(h.performance.timer),h.performance.timer=setTimeout(h.performance.display,500)},display:function(){var e=f.name+":",n=0;Y=!1,clearTimeout(h.performance.timer),Z.each($,function(e,t){n+=t["Execution Time"]}),e+=" "+n+"ms",W&&(e+=" '"+W+"'"),(console.group!==te||console.table!==te)&&0<$.length&&(console.groupCollapsed(e),console.table?console.table($):Z.each($,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),$=[]}},invoke:function(i,e,t){var a,o,n,s=H;return e=e||J,t=N||t,"string"==typeof i&&s!==te&&(i=i.split(/[\. ]/),a=i.length-1,Z.each(i,function(e,t){var n=e!=a?t+i[e+1].charAt(0).toUpperCase()+i[e+1].slice(1):i;if(Z.isPlainObject(s[n])&&e!=a)s=s[n];else{if(s[n]!==te)return o=s[n],!1;if(!Z.isPlainObject(s[t])||e==a)return s[t]!==te?o=s[t]:h.error(m.method,i),!1;s=s[t]}})),Z.isFunction(o)?n=o.apply(t,e):o!==te&&(n=o),Array.isArray(U)?U.push(n):U!==te?U=[U,n]:n!==te&&(U=n),o}},G?(H===te&&h.initialize(),h.invoke(X)):(H!==te&&H.invoke("destroy"),h.initialize())}),U!==te?U:B},Z.fn.dropdown.settings={silent:!1,debug:!1,verbose:!1,performance:!0,on:"click",action:"activate",values:!1,clearable:!1,apiSettings:!1,selectOnKeydown:!0,minCharacters:0,filterRemoteData:!1,saveRemoteData:!0,throttle:200,context:_,direction:"auto",keepOnScreen:!0,match:"both",fullTextSearch:!1,ignoreDiacritics:!1,hideDividers:!1,placeholder:"auto",preserveHTML:!0,sortSelect:!1,forceSelection:!0,allowAdditions:!1,ignoreCase:!1,hideAdditions:!0,maxSelections:!1,useLabels:!0,delimiter:",",showOnFocus:!0,allowReselection:!1,allowTab:!0,allowCategorySelection:!1,fireOnInit:!1,transition:"auto",duration:200,glyphWidth:1.037,headerDivider:!0,label:{transition:"scale",duration:200,variation:!1},delay:{hide:300,show:200,search:20,touch:50},onChange:function(e,t,n){},onAdd:function(e,t,n){},onRemove:function(e,t,n){},onLabelSelect:function(e){},onLabelCreate:function(e,t){return Z(this)},onLabelRemove:function(e){return!0},onNoResults:function(e){return!0},onShow:function(){},onHide:function(){},name:"Dropdown",namespace:"dropdown",message:{addResult:"Add <b>{term}</b>",count:"{count} selected",maxSelections:"Max {maxCount} selections",noResults:"No results found.",serverError:"There was an error contacting the server"},error:{action:"You called a dropdown action that was not defined",alreadySetup:"Once a select has been initialized behaviors must be called on the created ui dropdown",labels:"Allowing user additions currently requires the use of labels.",missingMultiple:"<select> requires multiple property to be set to correctly preserve multiple values",method:"The method you called is not defined.",noAPI:"The API module is required to load resources remotely",noStorage:"Saving remote data requires session storage",noTransition:"This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>",noNormalize:'"ignoreDiacritics" setting will be ignored. Browser does not support String().normalize(). You may consider including <https://cdn.jsdelivr.net/npm/unorm@1.4.1/lib/unorm.min.js> as a polyfill.'},regExp:{escape:/[-[\]{}()*+?.,\\^$|#\s:=@]/g,quote:/"/g},metadata:{defaultText:"defaultText",defaultValue:"defaultValue",placeholderText:"placeholder",text:"text",value:"value"},fields:{remoteValues:"results",values:"values",disabled:"disabled",name:"name",value:"value",text:"text",type:"type",image:"image",imageClass:"imageClass",icon:"icon",iconClass:"iconClass",class:"class",divider:"divider"},keys:{backspace:8,delimiter:188,deleteKey:46,enter:13,escape:27,pageUp:33,pageDown:34,leftArrow:37,upArrow:38,rightArrow:39,downArrow:40},selector:{addition:".addition",divider:".divider, .header",dropdown:".ui.dropdown",hidden:".hidden",icon:"> .dropdown.icon",input:'> input[type="hidden"], > select',item:".item",label:"> .label",remove:"> .label > .delete.icon",siblingLabel:".label",menu:".menu",message:".message",menuIcon:".dropdown.icon",search:"input.search, .menu > .search > input, .menu input.search",sizer:"> input.sizer",text:"> .text:not(.icon)",unselectable:".disabled, .filtered",clearIcon:"> .remove.icon"},className:{active:"active",addition:"addition",animating:"animating",disabled:"disabled",empty:"empty",dropdown:"ui dropdown",filtered:"filtered",hidden:"hidden transition",icon:"icon",image:"image",item:"item",label:"ui label",loading:"loading",menu:"menu",message:"message",multiple:"multiple",placeholder:"default",sizer:"sizer",search:"search",selected:"selected",selection:"selection",upward:"upward",leftward:"left",visible:"visible",clearable:"clearable",noselection:"noselection",delete:"delete",header:"header",divider:"divider",groupIcon:""}},Z.fn.dropdown.settings.templates={deQuote:function(e){return String(e).replace(/"/g,"")},escape:function(e,t){if(t)return e;var n={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};return/[&<>"'`]/.test(e)?e.replace(/[&<>"'`]/g,function(e){return n[e]}):e},dropdown:function(e,t,n,i){var a=e.placeholder||!1,o="",s=Z.fn.dropdown.settings.templates.escape;return o+='<i class="dropdown icon"></i>',o+=a?'<div class="default text">'+s(a,n)+"</div>":'<div class="text"></div>',o+='<div class="'+i.menu+'">',o+=Z.fn.dropdown.settings.templates.menu(e,t,n,i),o+="</div>"},menu:function(e,r,l,c){var t=e[r.values]||[],u="",d=Z.fn.dropdown.settings.templates.escape,v=Z.fn.dropdown.settings.templates.deQuote;return Z.each(t,function(e,t){var n=t[r.type]?t[r.type]:"item";if("item"===n){var i=t[r.text]?' data-text="'+v(t[r.text])+'"':"",a=t[r.disabled]?c.disabled+" ":"";u+='<div class="'+a+(t[r.class]?v(t[r.class]):c.item)+'" data-value="'+v(t[r.value])+'"'+i+">",t[r.image]&&(u+='<img class="'+(t[r.imageClass]?v(t[r.imageClass]):c.image)+'" src="'+v(t[r.image])+'">'),t[r.icon]&&(u+='<i class="'+v(t[r.icon])+" "+(t[r.iconClass]?v(t[r.iconClass]):c.icon)+'"></i>'),u+=d(t[r.name],l),u+="</div>"}else if("header"===n){var o=d(t[r.name],l),s=t[r.icon]?v(t[r.icon]):c.groupIcon;""===o&&""===s||(u+='<div class="'+(t[r.class]?v(t[r.class]):c.header)+'">',""!==s&&(u+='<i class="'+s+" "+(t[r.iconClass]?v(t[r.iconClass]):c.icon)+'"></i>'),u+=o,u+="</div>"),t[r.divider]&&(u+='<div class="'+c.divider+'"></div>')}}),u},label:function(e,t,n,i){return(0,Z.fn.dropdown.settings.templates.escape)(t,n)+'<i class="'+i.delete+' icon"></i>'},message:function(e){return e},addition:function(e){return e}}}(jQuery,window,document);