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

11 lines
48 KiB
JavaScript
Raw Normal View History

/*!
* # 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))
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 loa