blue-twilight/public/semantic-ui/components/dropdown.min.js

11 lines
48 KiB
JavaScript

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