2 lines
9.1 KiB
JavaScript
2 lines
9.1 KiB
JavaScript
"use strict";!function(g,h,v){function f(e,t){var n,i,s,r=this,l=g.extend(!0,{},{options:[],optgroups:[],items:[],placeholder:"",delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,maxItemShow:3,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",disabledField:"disabled",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},t),a=(((t=e[0]).fancySelect=r).order=0,h.getComputedStyle&&h.getComputedStyle(t,null)),t=(a?a.getPropertyValue("direction"):t.currentStyle&&t.currentStyle.direction)||e.parents("[dir]:first").attr("dir")||"",o=(r.computedStyle=a,/android/i.test(h.navigator.userAgent)||v.createElement("input").validity,{}),d={readData:function(e){e=r.dataAttr&&e.attr(r.dataAttr);return"string"==typeof e&&e.length?JSON.parse(e):null},addOption:function(e,t){e=g(e);var n,i=r.hash_key(e.val());(i||l.allowEmptyOption)&&(o.hasOwnProperty(i)?t&&((n=o[i][field_optgroup])?g.isArray(n)?n.push(t):o[i][field_optgroup]=[n,t]:o[i][field_optgroup]=t):((n=d.readData(e)||{})[r.settings.labelField]=n[r.settings.labelField]||e.text(),n[r.settings.valueField]=n[r.settings.valueField]||i,n[r.settings.disabledField]=n[r.settings.disabledField]||e.prop("disabled"),n[r.settings.optgroupField]=n[r.settings.optgroupField]||t,n.$order=++r.order,o[i]=n,r.settings.options.push(n),e.is(":selected")&&r.settings.items.push(n)))},addGroup:function(e){var t,n,i,s,l;for((i=(e=g(e)).attr("label"))&&((s=d.readData(e)||{})[r.settings.optgroupLabelField]=i,s[r.settings.optgroupValueField]=i,s[r.settings.disabledField]=e.prop("disabled"),s.$order=++r.order,r.settings.optgroups.push(s)),t=0,n=(l=g("option",e)).length;t<n;t++)d.addOption(l[t],i)}};g.extend(r,{settings:l,$select:e,tabIndex:e.attr("tabindex")||"",tagType:1,rtl:/rtl/i.test(t),multiple:e.attr("multiple"),eventNS:".FancySelect"+ ++f.count,highlightedValue:null,isBlurring:!1,isOpen:!1,isDisabled:!1,isRequired:e.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isRendered:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:{},renderCache:{},onSearchChange:null===l.loadThrottle?r.onSearchChange:(n=r.onSearchChange,i=l.loadThrottle,function(){var e=this,t=arguments;h.clearTimeout(s),s=h.setTimeout(function(){n.apply(e,t)},i)})}),""===r.settings.placeholder&&(r.settings.placeholder=e.attr("placeholder")||e.attr("data-placeholder"),r.settings.placeholder||r.settings.allowEmptyOption||(r.settings.placeholder=e.children('option[value=""]').text())),r.settings.maxItems=r.multiple?null:1;for(var c=0,p=r.$select.children().length;c<p;c++){var u=r.$select.children()[c].tagName.toLowerCase();"optgroup"===u?d.addGroup(r.$select.children()[c]):"option"===u&&d.addOption(r.$select.children()[c])}r.$wrapper=g('<div class="fancy-picker">').addClass(e.attr("class")),r.computedStyle.hasOwnProperty("width")&&r.$wrapper.css({width:r.computedStyle.width}),r.$outputWrapper=g('<div class="fancy-picker-picked">').appendTo(r.$wrapper),r.originalPlaceholder=g('<span class="fancy-picker-placeholder">').appendTo(r.$outputWrapper),r.dataPlaceholder=g('<span class="fancy-picker-data">').appendTo(r.$outputWrapper),r.dataCountPlaceholder=g('<span class="fancy-picker-count">').appendTo(r.$outputWrapper),r.$dropdown=g('<div class="fancy-picker-ui">').appendTo(r.$wrapper),r.$dropdownContent=g('<div class="fancy-picker-content">').appendTo(r.$dropdown),r.setup()}f.count=0,g.extend(f.prototype,{setup:function(){var i=this;i.revertSettings={$children:i.$select.children().detach(),tabindex:i.$select.attr("tabindex")},i.$select.attr("tabindex",-1).hide().after(i.$wrapper),i.$select.data("FancySelect",i),i.$select.addClass("FancySelectInit"),i.settings.items.sort(function(e,t){return e[i.settings.sortField]-t[i.settings.sortField]}),i.preload&&i.render(),i.updatePlaceholder(),i.updateOriginalInput(),i.$wrapper.on("click"+i.eventNS,".fancy-picker-picked",function(e){i.$select.trigger("show"),i.isRendered||i.render(),i.$wrapper.toggleClass("active"),i.$select.trigger("shown")}),g(v).on("click"+i.eventNS,function(e){g(e.target).closest(i.$wrapper).length||(i.$select.trigger("hide"),i.$wrapper.removeClass("active"),i.$select.trigger("hidden"))}),i.$wrapper.on("click"+i.eventNS,".fancy-picker-option:not(.disabled)",function(e){e.preventDefault();var e=g(this),t=!1,n=i.hash_key(e.data("value"));i.multiple?(e.hasClass("selected")?e.removeClass("selected"):(t=!0,e.addClass("selected")),t?i.settings.items.push(i.getSelectedOptionData(n)):i.settings.items=i.settings.items.filter(function(e){return e[i.settings.valueField]!==n}),i.settings.items.sort(function(e,t){return e[i.settings.sortField]-t[i.settings.sortField]})):(i.$dropdownContent.find(".fancy-picker-option").not(e).removeClass("selected"),e.addClass("selected"),t=!0,i.settings.items=[i.getSelectedOptionData(n)],i.$wrapper.removeClass("active")),i.updatePlaceholder(),i.updateOriginalInput()}),g(h).on("resize"+i.eventNS,function(){var e=h.getComputedStyle&&h.getComputedStyle(i.$select[0],null);e.hasOwnProperty("width")&&i.$wrapper.css({width:e.width})}),i.$select.trigger("initialize")},render:function(){function s(e){return l.isSelected(e)?"fancy-picker-option selected":"fancy-picker-option"}var l=this,r=[],a=l.settings.optgroups,o=l.settings.options;if(a.length)for(var e=0;e<a.length;e++)!function(t){r.push('<div class="fancy-picker-option-group">'),r.push('<div class="fancy-picker-option-group-label">'.concat(a[t][l.settings.labelField],"</div>"));for(var e=o.filter(function(e){return e[l.settings.optgroupField]===a[t][l.settings.valueField]}),n=0;n<e.length;n++){var i=e[t];r.push('<div class="'.concat(s(i[l.settings.valueField]),'" data-value="').concat(i[l.settings.valueField],'">').concat(i[l.settings.labelField],"</div>"))}r.push("</div>")}(e);else for(var t=0;t<o.length;t++){var n=o[t];r.push('<div class="'.concat(s(n[l.settings.valueField]),'" data-value="').concat(n[l.settings.valueField],'">').concat(n[l.settings.labelField],"</div>"))}l.$dropdownContent.html(r.join("")),l.$select.trigger("rendered"),l.isRendered=!0},updatePlaceholder:function(){var t,n=this,i=[],e=n.settings.items,s=e.length>n.settings.maxItemShow?n.settings.maxItemShow-1:n.settings.maxItemShow;return n.originalPlaceholder.text(n.settings.placeholder),e.length?n.originalPlaceholder.hide():n.originalPlaceholder.show(),e.slice(0,s).forEach(function(e){i.push("<span>".concat(e[n.settings.labelField],"</span>"))}),n.dataPlaceholder.html(i.join('<span class="fancy-picker-separator">'.concat(n.settings.delimiter,"</span>"))),e.length>n.settings.maxItemShow?(t=[],e.forEach(function(e){t.push(e[n.settings.labelField])}),n.dataCountPlaceholder.attr("title",t.join(n.settings.delimiter.trim()+" ")),n.dataCountPlaceholder.html("+"+(e.length-s)+" More …")):(n.dataCountPlaceholder.removeAttr("title"),n.dataCountPlaceholder.html("")),n.$select.trigger("placeholderChanged"),n},updateOriginalInput:function(e){for(var t=this,n=[],i=!1,s=(e=!0===e,t.settings.items),l=0;l<s.length;l++)n.push('<option value="'+s[l][t.settings.valueField]+'" selected="selected">'+s[l][t.settings.labelField]||"</option>"),i=!0;return t.$select.html(n.join("")),!e&&i&&t.$select.trigger("change"),t},getSelectedOptionData:function(t){var n=this,e=n.settings.options.filter(function(e){return e[n.settings.valueField]===t});return!!e.length&&e[0]},isSelected:function(t){var n=this;return 0<n.settings.items.filter(function(e){return e[n.settings.valueField]===t}).length},hash_key:function(e){return e+""},destroy:function(){var e=this;e.$select.trigger("destroy"),e.trigger("destroy"),e.off(),e.$select.html("").append(e.revertSettings.$children).removeAttr("tabindex").removeClass("FancySelectInit").attr({tabindex:e.revertSettings.tabindex}).show(),e.$select.removeData("FancySelect"),e.$wrapper.remove(),0==--f.count&&f.$testInput&&(f.$testInput.remove(),f.$testInput=void 0),g(h).off(e.eventNS),g(v).off(e.eventNS),g(v.body).off(e.eventNS),delete e.$select[0].fancySelect}}),g.extend(f.prototype,{bind:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},unbind:function(e,t){this._events=this._events||{},e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)},trigger:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t<this._events[e].length;t++)this._events[e][t].apply(this,Array.prototype.slice.call(arguments,1))}}),g.fn.fancySelect=function(e){return this.each(function(){this.fancySelect||"select"===this.tagName.toLowerCase()&&new f(g(this),e)})}}(jQuery,window,document);
|
|
//# sourceMappingURL=fancy-select.min.js.map
|