From 239d21870b00a3336549806773a25d888039fba4 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 4 Mar 2024 15:55:01 -0500 Subject: [PATCH] Closes #14871: Complete work on UI cleanup (#15341) * Fix left padding of login button in top menu * Relocate "add" buttons for embedded object tables * Remove unused data template block & getNetboxData() utility function * Remove bottom margin from last

element in rendered Markdown inside a table cell * Prevent TomSelect from initializing on ',copyClassesToDropdown:!1,placeholder:null,hidePlaceholder:null,shouldLoad:function(di){return di.length>0},render:{}};let _n=di=>typeof di=="undefined"||di===null?null:Os(di),Os=di=>typeof di=="boolean"?di?"1":"0":di+"",Ms=di=>(di+"").replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),kl=(di,oi)=>oi>0?setTimeout(di,oi):(di.call(null),null),_o=(di,oi)=>{var li;return function(ui,mi){var yi=this;li&&(yi.loading=Math.max(yi.loading-1,0),clearTimeout(li)),li=setTimeout(function(){li=null,yi.loadedSearches[ui]=!0,di.call(yi,ui,mi)},oi)}},yo=(di,oi,li)=>{var ui,mi=di.trigger,yi={};di.trigger=function(){var _i=arguments[0];if(oi.indexOf(_i)!==-1)yi[_i]=arguments;else return mi.apply(di,arguments)},li.apply(di,[]),di.trigger=mi;for(ui of oi)ui in yi&&mi.apply(di,yi[ui])},Jr=di=>({start:di.selectionStart||0,length:(di.selectionEnd||0)-(di.selectionStart||0)}),xn=(di,oi=!1)=>{di&&(di.preventDefault(),oi&&di.stopPropagation())},Sn=(di,oi,li,ui)=>{di.addEventListener(oi,li,ui)},pi=(di,oi)=>{if(!oi||!oi[di])return!1;var li=(oi.altKey?1:0)+(oi.ctrlKey?1:0)+(oi.shiftKey?1:0)+(oi.metaKey?1:0);return li===1},gi=(di,oi)=>{let li=di.getAttribute("id");return li||(di.setAttribute("id",oi),oi)},Ei=di=>di.replace(/[\\"']/g,"\\$&"),xi=(di,oi)=>{oi&&di.append(oi)};function Ni(di,oi){var li=Object.assign({},Da,oi),ui=li.dataAttr,mi=li.labelField,yi=li.valueField,_i=li.disabledField,Si=li.optgroupField,Ai=li.optgroupLabelField,Ci=li.optgroupValueField,zi=di.tagName.toLowerCase(),Hi=di.getAttribute("placeholder")||di.getAttribute("data-placeholder");if(!Hi&&!li.allowEmptyOption){let bn=di.querySelector('option[value=""]');bn&&(Hi=bn.textContent)}var Zi={placeholder:Hi,options:[],optgroups:[],items:[],maxItems:null},Pn=()=>{var bn,Hn=Zi.options,Ln={},an=1;let Fn=0;var rs=yn=>{var An=Object.assign({},yn.dataset),mn=ui&&An[ui];return typeof mn=="string"&&mn.length&&(An=Object.assign(An,JSON.parse(mn))),An},Ca=(yn,An)=>{var mn=_n(yn.value);if(mn!=null&&!(!mn&&!li.allowEmptyOption)){if(Ln.hasOwnProperty(mn)){if(An){var wr=Ln[mn][Si];wr?Array.isArray(wr)?wr.push(An):Ln[mn][Si]=[wr,An]:Ln[mn][Si]=An}}else{var Nn=rs(yn);Nn[mi]=Nn[mi]||yn.textContent,Nn[yi]=Nn[yi]||mn,Nn[_i]=Nn[_i]||yn.disabled,Nn[Si]=Nn[Si]||An,Nn.$option=yn,Nn.$order=Nn.$order||++Fn,Ln[mn]=Nn,Hn.push(Nn)}yn.selected&&Zi.items.push(mn)}},bo=yn=>{var An,mn;mn=rs(yn),mn[Ai]=mn[Ai]||yn.getAttribute("label")||"",mn[Ci]=mn[Ci]||an++,mn[_i]=mn[_i]||yn.disabled,mn.$order=mn.$order||++Fn,Zi.optgroups.push(mn),An=mn[Ci],Ii(yn.children,wr=>{Ca(wr,An)})};Zi.maxItems=di.hasAttribute("multiple")?null:1,Ii(di.children,yn=>{bn=yn.tagName.toLowerCase(),bn==="optgroup"?bo(yn):bn==="option"&&Ca(yn)})},Xi=()=>{let bn=di.getAttribute(ui);if(bn)Zi.options=JSON.parse(bn),Ii(Zi.options,Ln=>{Zi.items.push(Ln[yi])});else{var Hn=di.value.trim()||"";if(!li.allowEmptyOption&&!Hn.length)return;let Ln=Hn.split(li.delimiter);Ii(Ln,an=>{let Fn={};Fn[mi]=an,Fn[yi]=an,Zi.options.push(Fn)}),Zi.items=Ln}};return zi==="select"?Pn():Xi(),Object.assign({},Da,Zi,oi)}var Vi=0;class tn extends ei(ti){constructor(oi,li){super();this.control_input=void 0,this.wrapper=void 0,this.dropdown=void 0,this.control=void 0,this.dropdown_content=void 0,this.focus_node=void 0,this.order=0,this.settings=void 0,this.input=void 0,this.tabIndex=void 0,this.is_select_tag=void 0,this.rtl=void 0,this.inputId=void 0,this._destroy=void 0,this.sifter=void 0,this.isOpen=!1,this.isDisabled=!1,this.isReadOnly=!1,this.isRequired=void 0,this.isInvalid=!1,this.isValid=!0,this.isLocked=!1,this.isFocused=!1,this.isInputHidden=!1,this.isSetup=!1,this.ignoreFocus=!1,this.ignoreHover=!1,this.hasOptions=!1,this.currentResults=void 0,this.lastValue="",this.caretPos=0,this.loading=0,this.loadedSearches={},this.activeOption=null,this.activeItems=[],this.optgroups={},this.options={},this.userOptions={},this.items=[],this.refreshTimeout=null,Vi++;var ui,mi=Ri(oi);if(mi.tomselect)throw new Error("Tom Select already initialized on this element");mi.tomselect=this;var yi=window.getComputedStyle&&window.getComputedStyle(mi,null);ui=yi.getPropertyValue("direction");let _i=Ni(mi,li);this.settings=_i,this.input=mi,this.tabIndex=mi.tabIndex||0,this.is_select_tag=mi.tagName.toLowerCase()==="select",this.rtl=/rtl/i.test(ui),this.inputId=gi(mi,"tomselect-"+Vi),this.isRequired=mi.required,this.sifter=new en(this.options,{diacritics:_i.diacritics}),_i.mode=_i.mode||(_i.maxItems===1?"single":"multi"),typeof _i.hideSelected!="boolean"&&(_i.hideSelected=_i.mode==="multi"),typeof _i.hidePlaceholder!="boolean"&&(_i.hidePlaceholder=_i.mode!=="multi");var Si=_i.createFilter;typeof Si!="function"&&(typeof Si=="string"&&(Si=new RegExp(Si)),Si instanceof RegExp?_i.createFilter=Hn=>Si.test(Hn):_i.createFilter=Hn=>this.settings.duplicates||!this.options[Hn]),this.initializePlugins(_i.plugins),this.setupCallbacks(),this.setupTemplates();let Ai=Ri("

"),Ci=Ri("
"),zi=this._render("dropdown"),Hi=Ri('
'),Zi=this.input.getAttribute("class")||"",Pn=_i.mode;var Xi;if(Xn(Ai,_i.wrapperClass,Zi,Pn),Xn(Ci,_i.controlClass),xi(Ai,Ci),Xn(zi,_i.dropdownClass,Pn),_i.copyClassesToDropdown&&Xn(zi,Zi),Xn(Hi,_i.dropdownContentClass),xi(zi,Hi),Ri(_i.dropdownParent||Ai).appendChild(zi),fn(_i.controlInput)){Xi=Ri(_i.controlInput);var bn=["autocorrect","autocapitalize","autocomplete","spellcheck"];Mi(bn,Hn=>{mi.getAttribute(Hn)&&Cn(Xi,{[Hn]:mi.getAttribute(Hn)})}),Xi.tabIndex=-1,Ci.appendChild(Xi),this.focus_node=Xi}else _i.controlInput?(Xi=Ri(_i.controlInput),this.focus_node=Xi):(Xi=Ri(""),this.focus_node=Ci);this.wrapper=Ai,this.dropdown=zi,this.dropdown_content=Hi,this.control=Ci,this.control_input=Xi,this.setup()}setup(){let oi=this,li=oi.settings,ui=oi.control_input,mi=oi.dropdown,yi=oi.dropdown_content,_i=oi.wrapper,Si=oi.control,Ai=oi.input,Ci=oi.focus_node,zi={passive:!0},Hi=oi.inputId+"-ts-dropdown";Cn(yi,{id:Hi}),Cn(Ci,{role:"combobox","aria-haspopup":"listbox","aria-expanded":"false","aria-controls":Hi});let Zi=gi(Ci,oi.inputId+"-ts-control"),Pn="label[for='"+On(oi.inputId)+"']",Xi=document.querySelector(Pn),bn=oi.focus.bind(oi);if(Xi){Sn(Xi,"click",bn),Cn(Xi,{for:Zi});let an=gi(Xi,oi.inputId+"-ts-label");Cn(Ci,{"aria-labelledby":an}),Cn(yi,{"aria-labelledby":an})}if(_i.style.width=Ai.style.width,oi.plugins.names.length){let an="plugin-"+oi.plugins.names.join(" plugin-");Xn([_i,mi],an)}(li.maxItems===null||li.maxItems>1)&&oi.is_select_tag&&Cn(Ai,{multiple:"multiple"}),li.placeholder&&Cn(ui,{placeholder:li.placeholder}),!li.splitOn&&li.delimiter&&(li.splitOn=new RegExp("\\s*"+ci(li.delimiter)+"+\\s*")),li.load&&li.loadThrottle&&(li.load=_o(li.load,li.loadThrottle)),Sn(mi,"mousemove",()=>{oi.ignoreHover=!1}),Sn(mi,"mouseenter",an=>{var Fn=Ts(an.target,"[data-selectable]",mi);Fn&&oi.onOptionHover(an,Fn)},{capture:!0}),Sn(mi,"click",an=>{let Fn=Ts(an.target,"[data-selectable]");Fn&&(oi.onOptionSelect(an,Fn),xn(an,!0))}),Sn(Si,"click",an=>{var Fn=Ts(an.target,"[data-ts-item]",Si);if(Fn&&oi.onItemSelect(an,Fn)){xn(an,!0);return}ui.value==""&&(oi.onClick(),xn(an,!0))}),Sn(Ci,"keydown",an=>oi.onKeyDown(an)),Sn(ui,"keypress",an=>oi.onKeyPress(an)),Sn(ui,"input",an=>oi.onInput(an)),Sn(Ci,"blur",an=>oi.onBlur(an)),Sn(Ci,"focus",an=>oi.onFocus(an)),Sn(ui,"paste",an=>oi.onPaste(an));let Hn=an=>{let Fn=an.composedPath()[0];if(!_i.contains(Fn)&&!mi.contains(Fn)){oi.isFocused&&oi.blur(),oi.inputState();return}Fn==ui&&oi.isOpen?an.stopPropagation():xn(an,!0)},Ln=()=>{oi.isOpen&&oi.positionDropdown()};Sn(document,"mousedown",Hn),Sn(window,"scroll",Ln,zi),Sn(window,"resize",Ln,zi),this._destroy=()=>{document.removeEventListener("mousedown",Hn),window.removeEventListener("scroll",Ln),window.removeEventListener("resize",Ln),Xi&&Xi.removeEventListener("click",bn)},this.revertSettings={innerHTML:Ai.innerHTML,tabIndex:Ai.tabIndex},Ai.tabIndex=-1,Ai.insertAdjacentElement("afterend",oi.wrapper),oi.sync(!1),li.items=[],delete li.optgroups,delete li.options,Sn(Ai,"invalid",()=>{oi.isValid&&(oi.isValid=!1,oi.isInvalid=!0,oi.refreshState())}),oi.updateOriginalInput(),oi.refreshItems(),oi.close(!1),oi.inputState(),oi.isSetup=!0,Ai.disabled?oi.disable():Ai.readOnly?oi.setReadOnly(!0):oi.enable(),oi.on("change",this.onChange),Xn(Ai,"tomselected","ts-hidden-accessible"),oi.trigger("initialize"),li.preload===!0&&oi.preload()}setupOptions(oi=[],li=[]){this.addOptions(oi),Mi(li,ui=>{this.registerOptionGroup(ui)})}setupTemplates(){var oi=this,li=oi.settings.labelField,ui=oi.settings.optgroupLabelField,mi={optgroup:yi=>{let _i=document.createElement("div");return _i.className="optgroup",_i.appendChild(yi.options),_i},optgroup_header:(yi,_i)=>'
'+_i(yi[ui])+"
",option:(yi,_i)=>"
"+_i(yi[li])+"
",item:(yi,_i)=>"
"+_i(yi[li])+"
",option_create:(yi,_i)=>'
Add '+_i(yi.input)+"
",no_results:()=>'
No results found
',loading:()=>'
',not_loading:()=>{},dropdown:()=>"
"};oi.settings.render=Object.assign({},mi,oi.settings.render)}setupCallbacks(){var oi,li,ui={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",item_select:"onItemSelect",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(oi in ui)li=this.settings[ui[oi]],li&&this.on(oi,li)}sync(oi=!0){let li=this,ui=oi?Ni(li.input,{delimiter:li.settings.delimiter}):li.settings;li.setupOptions(ui.options,ui.optgroups),li.setValue(ui.items||[],!0),li.lastQuery=null}onClick(){var oi=this;if(oi.activeItems.length>0){oi.clearActiveItems(),oi.focus();return}oi.isFocused&&oi.isOpen?oi.blur():oi.focus()}onMouseDown(){}onChange(){In(this.input,"input"),In(this.input,"change")}onPaste(oi){var li=this;if(li.isInputHidden||li.isLocked){xn(oi);return}!li.settings.splitOn||setTimeout(()=>{var ui=li.inputValue();if(!!ui.match(li.settings.splitOn)){var mi=ui.trim().split(li.settings.splitOn);Mi(mi,yi=>{_n(yi)&&(this.options[yi]?li.addItem(yi):li.createItem(yi))})}},0)}onKeyPress(oi){var li=this;if(li.isLocked){xn(oi);return}var ui=String.fromCharCode(oi.keyCode||oi.which);if(li.settings.create&&li.settings.mode==="multi"&&ui===li.settings.delimiter){li.createItem(),xn(oi);return}}onKeyDown(oi){var li=this;if(li.ignoreHover=!0,li.isLocked){oi.keyCode!==Xo&&xn(oi);return}switch(oi.keyCode){case Ys:if(pi(vo,oi)&&li.control_input.value==""){xn(oi),li.selectAll();return}break;case ds:li.isOpen&&(xn(oi,!0),li.close()),li.clearActiveItems();return;case go:if(!li.isOpen&&li.hasOptions)li.open();else if(li.activeOption){let ui=li.getAdjacent(li.activeOption,1);ui&&li.setActiveOption(ui)}xn(oi);return;case mo:if(li.activeOption){let ui=li.getAdjacent(li.activeOption,-1);ui&&li.setActiveOption(ui)}xn(oi);return;case Cs:li.canSelect(li.activeOption)?(li.onOptionSelect(oi,li.activeOption),xn(oi)):(li.settings.create&&li.createItem()||document.activeElement==li.control_input&&li.isOpen)&&xn(oi);return;case Xr:li.advanceSelection(-1,oi);return;case As:li.advanceSelection(1,oi);return;case Xo:li.settings.selectOnTab&&(li.canSelect(li.activeOption)&&(li.onOptionSelect(oi,li.activeOption),xn(oi)),li.settings.create&&li.createItem()&&xn(oi));return;case Ko:case Ll:li.deleteSelection(oi);return}li.isInputHidden&&!pi(vo,oi)&&xn(oi)}onInput(oi){if(this.isLocked)return;let li=this.inputValue();if(this.lastValue!==li){if(this.lastValue=li,li==""){this._onInput();return}this.refreshTimeout&&clearTimeout(this.refreshTimeout),this.refreshTimeout=kl(()=>{this.refreshTimeout=null,this._onInput()},this.settings.refreshThrottle)}}_onInput(){let oi=this.lastValue;this.settings.shouldLoad.call(this,oi)&&this.load(oi),this.refreshOptions(),this.trigger("type",oi)}onOptionHover(oi,li){this.ignoreHover||this.setActiveOption(li,!1)}onFocus(oi){var li=this,ui=li.isFocused;if(li.isDisabled||li.isReadOnly){li.blur(),xn(oi);return}li.ignoreFocus||(li.isFocused=!0,li.settings.preload==="focus"&&li.preload(),ui||li.trigger("focus"),li.activeItems.length||(li.inputState(),li.refreshOptions(!!li.settings.openOnFocus)),li.refreshState())}onBlur(oi){if(document.hasFocus()!==!1){var li=this;if(!!li.isFocused){li.isFocused=!1,li.ignoreFocus=!1;var ui=()=>{li.close(),li.setActiveItem(),li.setCaret(li.items.length),li.trigger("blur")};li.settings.create&&li.settings.createOnBlur?li.createItem(null,ui):ui()}}}onOptionSelect(oi,li){var ui,mi=this;li.parentElement&&li.parentElement.matches("[data-disabled]")||(li.classList.contains("create")?mi.createItem(null,()=>{mi.settings.closeAfterSelect&&mi.close()}):(ui=li.dataset.value,typeof ui!="undefined"&&(mi.lastQuery=null,mi.addItem(ui),mi.settings.closeAfterSelect&&mi.close(),!mi.settings.hideSelected&&oi.type&&/click/.test(oi.type)&&mi.setActiveOption(li))))}canSelect(oi){return!!(this.isOpen&&oi&&this.dropdown_content.contains(oi))}onItemSelect(oi,li){var ui=this;return!ui.isLocked&&ui.settings.mode==="multi"?(xn(oi),ui.setActiveItem(li,oi),!0):!1}canLoad(oi){return!(!this.settings.load||this.loadedSearches.hasOwnProperty(oi))}load(oi){let li=this;if(!li.canLoad(oi))return;Xn(li.wrapper,li.settings.loadingClass),li.loading++;let ui=li.loadCallback.bind(li);li.settings.load.call(li,oi,ui)}loadCallback(oi,li){let ui=this;ui.loading=Math.max(ui.loading-1,0),ui.lastQuery=null,ui.clearActiveOption(),ui.setupOptions(oi,li),ui.refreshOptions(ui.isFocused&&!ui.isInputHidden),ui.loading||Er(ui.wrapper,ui.settings.loadingClass),ui.trigger("load",oi,li)}preload(){var oi=this.wrapper.classList;oi.contains("preloaded")||(oi.add("preloaded"),this.load(""))}setTextboxValue(oi=""){var li=this.control_input,ui=li.value!==oi;ui&&(li.value=oi,In(li,"update"),this.lastValue=oi)}getValue(){return this.is_select_tag&&this.input.hasAttribute("multiple")?this.items:this.items.join(this.settings.delimiter)}setValue(oi,li){var ui=li?[]:["change"];yo(this,ui,()=>{this.clear(li),this.addItems(oi,li)})}setMaxItems(oi){oi===0&&(oi=null),this.settings.maxItems=oi,this.refreshState()}setActiveItem(oi,li){var ui=this,mi,yi,_i,Si,Ai,Ci;if(ui.settings.mode!=="single"){if(!oi){ui.clearActiveItems(),ui.isFocused&&ui.inputState();return}if(mi=li&&li.type.toLowerCase(),mi==="click"&&pi("shiftKey",li)&&ui.activeItems.length){for(Ci=ui.getLastActive(),_i=Array.prototype.indexOf.call(ui.control.children,Ci),Si=Array.prototype.indexOf.call(ui.control.children,oi),_i>Si&&(Ai=_i,_i=Si,Si=Ai),yi=_i;yi<=Si;yi++)oi=ui.control.children[yi],ui.activeItems.indexOf(oi)===-1&&ui.setActiveItemClass(oi);xn(li)}else mi==="click"&&pi(vo,li)||mi==="keydown"&&pi("shiftKey",li)?oi.classList.contains("active")?ui.removeActiveItem(oi):ui.setActiveItemClass(oi):(ui.clearActiveItems(),ui.setActiveItemClass(oi));ui.inputState(),ui.isFocused||ui.focus()}}setActiveItemClass(oi){let li=this,ui=li.control.querySelector(".last-active");ui&&Er(ui,"last-active"),Xn(oi,"active last-active"),li.trigger("item_select",oi),li.activeItems.indexOf(oi)==-1&&li.activeItems.push(oi)}removeActiveItem(oi){var li=this.activeItems.indexOf(oi);this.activeItems.splice(li,1),Er(oi,"active")}clearActiveItems(){Er(this.activeItems,"active"),this.activeItems=[]}setActiveOption(oi,li=!0){oi!==this.activeOption&&(this.clearActiveOption(),!!oi&&(this.activeOption=oi,Cn(this.focus_node,{"aria-activedescendant":oi.getAttribute("id")}),Cn(oi,{"aria-selected":"true"}),Xn(oi,"active"),li&&this.scrollToOption(oi)))}scrollToOption(oi,li){if(!oi)return;let ui=this.dropdown_content,mi=ui.clientHeight,yi=ui.scrollTop||0,_i=oi.offsetHeight,Si=oi.getBoundingClientRect().top-ui.getBoundingClientRect().top+yi;Si+_i>mi+yi?this.scroll(Si-mi+_i,li):Si{oi.setActiveItemClass(ui)}))}inputState(){var oi=this;!oi.control.contains(oi.control_input)||(Cn(oi.control_input,{placeholder:oi.settings.placeholder}),oi.activeItems.length>0||!oi.isFocused&&oi.settings.hidePlaceholder&&oi.items.length>0?(oi.setTextboxValue(),oi.isInputHidden=!0):(oi.settings.hidePlaceholder&&oi.items.length>0&&Cn(oi.control_input,{placeholder:""}),oi.isInputHidden=!1),oi.wrapper.classList.toggle("input-hidden",oi.isInputHidden))}inputValue(){return this.control_input.value.trim()}focus(){var oi=this;oi.isDisabled||oi.isReadOnly||(oi.ignoreFocus=!0,oi.control_input.offsetWidth?oi.control_input.focus():oi.focus_node.focus(),setTimeout(()=>{oi.ignoreFocus=!1,oi.onFocus()},0))}blur(){this.focus_node.blur(),this.onBlur()}getScoreFunction(oi){return this.sifter.getScoreFunction(oi,this.getSearchOptions())}getSearchOptions(){var oi=this.settings,li=oi.sortField;return typeof oi.sortField=="string"&&(li=[{field:oi.sortField}]),{fields:oi.searchField,conjunction:oi.searchConjunction,sort:li,nesting:oi.nesting}}search(oi){var li,ui,mi=this,yi=this.getSearchOptions();if(mi.settings.score&&(ui=mi.settings.score.call(mi,oi),typeof ui!="function"))throw new Error('Tom Select "score" setting must be a function that returns a function');return oi!==mi.lastQuery?(mi.lastQuery=oi,li=mi.sifter.search(oi,Object.assign(yi,{score:ui})),mi.currentResults=li):li=Object.assign({},mi.currentResults),mi.settings.hideSelected&&(li.items=li.items.filter(_i=>{let Si=_n(_i.id);return!(Si&&mi.items.indexOf(Si)!==-1)})),li}refreshOptions(oi=!0){var li,ui,mi,yi,_i,Si,Ai,Ci,zi,Hi;let Zi={},Pn=[];var Xi=this,bn=Xi.inputValue();let Hn=bn===Xi.lastQuery||bn==""&&Xi.lastQuery==null;var Ln=Xi.search(bn),an=null,Fn=Xi.settings.shouldOpen||!1,rs=Xi.dropdown_content;Hn&&(an=Xi.activeOption,an&&(zi=an.closest("[data-group]"))),yi=Ln.items.length,typeof Xi.settings.maxOptions=="number"&&(yi=Math.min(yi,Xi.settings.maxOptions)),yi>0&&(Fn=!0);let Ca=(yn,An)=>{let mn=Zi[yn];if(mn!==void 0){let Nn=Pn[mn];if(Nn!==void 0)return[mn,Nn.fragment]}let wr=document.createDocumentFragment();return mn=Pn.length,Pn.push({fragment:wr,order:An,optgroup:yn}),[mn,wr]};for(li=0;li0&&(Nn=Nn.cloneNode(!0),Cn(Nn,{id:mn.$id+"-clone-"+ui,"aria-selected":null}),Nn.classList.add("ts-cloned"),Er(Nn,"active"),Xi.activeOption&&Xi.activeOption.dataset.value==An&&zi&&zi.dataset.group===_i.toString()&&(an=Nn)),dh.appendChild(Nn),_i!=""&&(Zi[_i]=uh)}}Xi.settings.lockOptgroupOrder&&Pn.sort((yn,An)=>yn.order-An.order),Ai=document.createDocumentFragment(),Mi(Pn,yn=>{let An=yn.fragment,mn=yn.optgroup;if(!An||!An.children.length)return;let wr=Xi.optgroups[mn];if(wr!==void 0){let Nn=document.createDocumentFragment(),Aa=Xi.render("optgroup_header",wr);xi(Nn,Aa),xi(Nn,An);let Oa=Xi.render("optgroup",{group:wr,options:Nn});xi(Ai,Oa)}else xi(Ai,An)}),rs.innerHTML="",xi(rs,Ai),Xi.settings.highlight&&(Ds(rs),Ln.query.length&&Ln.tokens.length&&Mi(Ln.tokens,yn=>{Kr(rs,yn.regex)}));var bo=yn=>{let An=Xi.render(yn,{input:bn});return An&&(Fn=!0,rs.insertBefore(An,rs.firstChild)),An};if(Xi.loading?bo("loading"):Xi.settings.shouldLoad.call(Xi,bn)?Ln.items.length===0&&bo("no_results"):bo("not_loading"),Ci=Xi.canCreate(bn),Ci&&(Hi=bo("option_create")),Xi.hasOptions=Ln.items.length>0||Ci,Fn){if(Ln.items.length>0){if(!an&&Xi.settings.mode==="single"&&Xi.items[0]!=null&&(an=Xi.getOption(Xi.items[0])),!rs.contains(an)){let yn=0;Hi&&!Xi.settings.addPrecedence&&(yn=1),an=Xi.selectable()[yn]}}else Hi&&(an=Hi);oi&&!Xi.isOpen&&(Xi.open(),Xi.scrollToOption(an,"auto")),Xi.setActiveOption(an)}else Xi.clearActiveOption(),oi&&Xi.isOpen&&Xi.close(!1)}selectable(){return this.dropdown_content.querySelectorAll("[data-selectable]")}addOption(oi,li=!1){let ui=this;if(Array.isArray(oi))return ui.addOptions(oi,li),!1;let mi=_n(oi[ui.settings.valueField]);return mi===null||ui.options.hasOwnProperty(mi)?!1:(oi.$order=oi.$order||++ui.order,oi.$id=ui.inputId+"-opt-"+oi.$order,ui.options[mi]=oi,ui.lastQuery=null,li&&(ui.userOptions[mi]=li,ui.trigger("option_add",mi,oi)),mi)}addOptions(oi,li=!1){Mi(oi,ui=>{this.addOption(ui,li)})}registerOption(oi){return this.addOption(oi)}registerOptionGroup(oi){var li=_n(oi[this.settings.optgroupValueField]);return li===null?!1:(oi.$order=oi.$order||++this.order,this.optgroups[li]=oi,li)}addOptionGroup(oi,li){var ui;li[this.settings.optgroupValueField]=oi,(ui=this.registerOptionGroup(li))&&this.trigger("optgroup_add",ui,li)}removeOptionGroup(oi){this.optgroups.hasOwnProperty(oi)&&(delete this.optgroups[oi],this.clearCache(),this.trigger("optgroup_remove",oi))}clearOptionGroups(){this.optgroups={},this.clearCache(),this.trigger("optgroup_clear")}updateOption(oi,li){let ui=this;var mi,yi;let _i=_n(oi),Si=_n(li[ui.settings.valueField]);if(_i===null)return;let Ai=ui.options[_i];if(Ai==null)return;if(typeof Si!="string")throw new Error("Value must be set in option data");let Ci=ui.getOption(_i),zi=ui.getItem(_i);if(li.$order=li.$order||Ai.$order,delete ui.options[_i],ui.uncacheValue(Si),ui.options[Si]=li,Ci){if(ui.dropdown_content.contains(Ci)){let Hi=ui._render("option",li);ns(Ci,Hi),ui.activeOption===Ci&&ui.setActiveOption(Hi)}Ci.remove()}zi&&(yi=ui.items.indexOf(_i),yi!==-1&&ui.items.splice(yi,1,Si),mi=ui._render("item",li),zi.classList.contains("active")&&Xn(mi,"active"),ns(zi,mi)),ui.lastQuery=null}removeOption(oi,li){let ui=this;oi=Os(oi),ui.uncacheValue(oi),delete ui.userOptions[oi],delete ui.options[oi],ui.lastQuery=null,ui.trigger("option_remove",oi),ui.removeItem(oi,li)}clearOptions(oi){let li=(oi||this.clearFilter).bind(this);this.loadedSearches={},this.userOptions={},this.clearCache();let ui={};Mi(this.options,(mi,yi)=>{li(mi,yi)&&(ui[yi]=mi)}),this.options=this.sifter.items=ui,this.lastQuery=null,this.trigger("option_clear")}clearFilter(oi,li){return this.items.indexOf(li)>=0}getOption(oi,li=!1){let ui=_n(oi);if(ui===null)return null;let mi=this.options[ui];if(mi!=null){if(mi.$div)return mi.$div;if(li)return this._render("option",mi)}return null}getAdjacent(oi,li,ui="option"){var mi=this,yi;if(!oi)return null;ui=="item"?yi=mi.controlChildren():yi=mi.dropdown_content.querySelectorAll("[data-selectable]");for(let _i=0;_i0?yi[_i+1]:yi[_i-1];return null}getItem(oi){if(typeof oi=="object")return oi;var li=_n(oi);return li!==null?this.control.querySelector(`[data-value="${Ei(li)}"]`):null}addItems(oi,li){var ui=this,mi=Array.isArray(oi)?oi:[oi];mi=mi.filter(_i=>ui.items.indexOf(_i)===-1);let yi=mi[mi.length-1];mi.forEach(_i=>{ui.isPending=_i!==yi,ui.addItem(_i,li)})}addItem(oi,li){var ui=li?[]:["change","dropdown_close"];yo(this,ui,()=>{var mi,yi;let _i=this,Si=_i.settings.mode,Ai=_n(oi);if(!(Ai&&_i.items.indexOf(Ai)!==-1&&(Si==="single"&&_i.close(),Si==="single"||!_i.settings.duplicates))&&!(Ai===null||!_i.options.hasOwnProperty(Ai))&&(Si==="single"&&_i.clear(li),!(Si==="multi"&&_i.isFull()))){if(mi=_i._render("item",_i.options[Ai]),_i.control.contains(mi)&&(mi=mi.cloneNode(!0)),yi=_i.isFull(),_i.items.splice(_i.caretPos,0,Ai),_i.insertAtCaret(mi),_i.isSetup){if(!_i.isPending&&_i.settings.hideSelected){let Ci=_i.getOption(Ai),zi=_i.getAdjacent(Ci,1);zi&&_i.setActiveOption(zi)}!_i.isPending&&!_i.settings.closeAfterSelect&&_i.refreshOptions(_i.isFocused&&Si!=="single"),_i.settings.closeAfterSelect!=!1&&_i.isFull()?_i.close():_i.isPending||_i.positionDropdown(),_i.trigger("item_add",Ai,mi),_i.isPending||_i.updateOriginalInput({silent:li})}(!_i.isPending||!yi&&_i.isFull())&&(_i.inputState(),_i.refreshState())}})}removeItem(oi=null,li){let ui=this;if(oi=ui.getItem(oi),!oi)return;var mi,yi;let _i=oi.dataset.value;mi=is(oi),oi.remove(),oi.classList.contains("active")&&(yi=ui.activeItems.indexOf(oi),ui.activeItems.splice(yi,1),Er(oi,"active")),ui.items.splice(mi,1),ui.lastQuery=null,!ui.settings.persist&&ui.userOptions.hasOwnProperty(_i)&&ui.removeOption(_i,li),mi{}){arguments.length===3&&(li=arguments[2]),typeof li!="function"&&(li=()=>{});var ui=this,mi=ui.caretPos,yi;if(oi=oi||ui.inputValue(),!ui.canCreate(oi))return li(),!1;ui.lock();var _i=!1,Si=Ai=>{if(ui.unlock(),!Ai||typeof Ai!="object")return li();var Ci=_n(Ai[ui.settings.valueField]);if(typeof Ci!="string")return li();ui.setTextboxValue(),ui.addOption(Ai,!0),ui.setCaret(mi),ui.addItem(Ci),li(Ai),_i=!0};return typeof ui.settings.create=="function"?yi=ui.settings.create.call(this,oi,Si):yi={[ui.settings.labelField]:oi,[ui.settings.valueField]:oi},_i||Si(yi),!0}refreshItems(){var oi=this;oi.lastQuery=null,oi.isSetup&&oi.addItems(oi.items),oi.updateOriginalInput(),oi.refreshState()}refreshState(){let oi=this;oi.refreshValidityState();let li=oi.isFull(),ui=oi.isLocked;oi.wrapper.classList.toggle("rtl",oi.rtl);let mi=oi.wrapper.classList;mi.toggle("focus",oi.isFocused),mi.toggle("disabled",oi.isDisabled),mi.toggle("readonly",oi.isReadOnly),mi.toggle("required",oi.isRequired),mi.toggle("invalid",!oi.isValid),mi.toggle("locked",ui),mi.toggle("full",li),mi.toggle("input-active",oi.isFocused&&!oi.isInputHidden),mi.toggle("dropdown-active",oi.isOpen),mi.toggle("has-options",po(oi.options)),mi.toggle("has-items",oi.items.length>0)}refreshValidityState(){var oi=this;!oi.input.validity||(oi.isValid=oi.input.validity.valid,oi.isInvalid=!oi.isValid)}isFull(){return this.settings.maxItems!==null&&this.items.length>=this.settings.maxItems}updateOriginalInput(oi={}){let li=this;var ui,mi;let yi=li.input.querySelector('option[value=""]');if(li.is_select_tag){let Ai=function(Ci,zi,Hi){return Ci||(Ci=Ri('")),Ci!=yi&&li.input.append(Ci),_i.push(Ci),(Ci!=yi||Si>0)&&(Ci.selected=!0),Ci},_i=[],Si=li.input.querySelectorAll("option:checked").length;li.input.querySelectorAll("option:checked").forEach(Ci=>{Ci.selected=!1}),li.items.length==0&&li.settings.mode=="single"?Ai(yi,"",""):li.items.forEach(Ci=>{if(ui=li.options[Ci],mi=ui[li.settings.labelField]||"",_i.includes(ui.$option)){let zi=li.input.querySelector(`option[value="${Ei(Ci)}"]:not(:checked)`);Ai(zi,Ci,mi)}else ui.$option=Ai(ui.$option,Ci,mi)})}else li.input.value=li.getValue();li.isSetup&&(oi.silent||li.trigger("change",li.getValue()))}open(){var oi=this;oi.isLocked||oi.isOpen||oi.settings.mode==="multi"&&oi.isFull()||(oi.isOpen=!0,Cn(oi.focus_node,{"aria-expanded":"true"}),oi.refreshState(),br(oi.dropdown,{visibility:"hidden",display:"block"}),oi.positionDropdown(),br(oi.dropdown,{visibility:"visible",display:"block"}),oi.focus(),oi.trigger("dropdown_open",oi.dropdown))}close(oi=!0){var li=this,ui=li.isOpen;oi&&(li.setTextboxValue(),li.settings.mode==="single"&&li.items.length&&li.inputState()),li.isOpen=!1,Cn(li.focus_node,{"aria-expanded":"false"}),br(li.dropdown,{display:"none"}),li.settings.hideSelected&&li.clearActiveOption(),li.refreshState(),ui&&li.trigger("dropdown_close",li.dropdown)}positionDropdown(){if(this.settings.dropdownParent==="body"){var oi=this.control,li=oi.getBoundingClientRect(),ui=oi.offsetHeight+li.top+window.scrollY,mi=li.left+window.scrollX;br(this.dropdown,{width:li.width+"px",top:ui+"px",left:mi+"px"})}}clear(oi){var li=this;if(!!li.items.length){var ui=li.controlChildren();Mi(ui,mi=>{li.removeItem(mi,!0)}),li.inputState(),oi||li.updateOriginalInput(),li.trigger("clear")}}insertAtCaret(oi){let li=this,ui=li.caretPos,mi=li.control;mi.insertBefore(oi,mi.children[ui]||null),li.setCaret(ui+1)}deleteSelection(oi){var li,ui,mi,yi,_i=this;li=oi&&oi.keyCode===Ko?-1:1,ui=Jr(_i.control_input);let Si=[];if(_i.activeItems.length)yi=Ws(_i.activeItems,li),mi=is(yi),li>0&&mi++,Mi(_i.activeItems,Ai=>Si.push(Ai));else if((_i.isFocused||_i.settings.mode==="single")&&_i.items.length){let Ai=_i.controlChildren(),Ci;li<0&&ui.start===0&&ui.length===0?Ci=Ai[_i.caretPos-1]:li>0&&ui.start===_i.inputValue().length&&(Ci=Ai[_i.caretPos]),Ci!==void 0&&Si.push(Ci)}if(!_i.shouldDelete(Si,oi))return!1;for(xn(oi,!0),typeof mi!="undefined"&&_i.setCaret(mi);Si.length;)_i.removeItem(Si.pop());return _i.inputState(),_i.positionDropdown(),_i.refreshOptions(!1),!0}shouldDelete(oi,li){let ui=oi.map(mi=>mi.dataset.value);return!(!ui.length||typeof this.settings.onDelete=="function"&&this.settings.onDelete(ui,li)===!1)}advanceSelection(oi,li){var ui,mi,yi=this;yi.rtl&&(oi*=-1),!yi.inputValue().length&&(pi(vo,li)||pi("shiftKey",li)?(ui=yi.getLastActive(oi),ui?ui.classList.contains("active")?mi=yi.getAdjacent(ui,oi,"item"):mi=ui:oi>0?mi=yi.control_input.nextElementSibling:mi=yi.control_input.previousElementSibling,mi&&(mi.classList.contains("active")&&yi.removeActiveItem(ui),yi.setActiveItemClass(mi))):yi.moveCaret(oi))}moveCaret(oi){}getLastActive(oi){let li=this.control.querySelector(".last-active");if(li)return li;var ui=this.control.querySelectorAll(".active");if(ui)return Ws(ui,oi)}setCaret(oi){this.caretPos=this.items.length}controlChildren(){return Array.from(this.control.querySelectorAll("[data-ts-item]"))}lock(){this.setLocked(!0)}unlock(){this.setLocked(!1)}setLocked(oi=this.isReadOnly||this.isDisabled){this.isLocked=oi,this.refreshState()}disable(){this.setDisabled(!0),this.close()}enable(){this.setDisabled(!1)}setDisabled(oi){this.focus_node.tabIndex=oi?-1:this.tabIndex,this.isDisabled=oi,this.input.disabled=oi,this.control_input.disabled=oi,this.setLocked()}setReadOnly(oi){this.isReadOnly=oi,this.input.readOnly=oi,this.control_input.readOnly=oi,this.setLocked()}destroy(){var oi=this,li=oi.revertSettings;oi.trigger("destroy"),oi.off(),oi.wrapper.remove(),oi.dropdown.remove(),oi.input.innerHTML=li.innerHTML,oi.input.tabIndex=li.tabIndex,Er(oi.input,"tomselected","ts-hidden-accessible"),oi._destroy(),delete oi.input.tomselect}render(oi,li){var ui,mi;let yi=this;if(typeof this.settings.render[oi]!="function"||(mi=yi.settings.render[oi].call(this,li,Ms),!mi))return null;if(mi=Ri(mi),oi==="option"||oi==="option_create"?li[yi.settings.disabledField]?Cn(mi,{"aria-disabled":"true"}):Cn(mi,{"data-selectable":""}):oi==="optgroup"&&(ui=li.group[yi.settings.optgroupValueField],Cn(mi,{"data-group":ui}),li.group[yi.settings.disabledField]&&Cn(mi,{"data-disabled":""})),oi==="option"||oi==="item"){let _i=Os(li[yi.settings.valueField]);Cn(mi,{"data-value":_i}),oi==="item"?(Xn(mi,yi.settings.itemClass),Cn(mi,{"data-ts-item":""})):(Xn(mi,yi.settings.optionClass),Cn(mi,{role:"option",id:li.$id}),li.$div=mi,yi.options[_i]=li)}return mi}_render(oi,li){let ui=this.render(oi,li);if(ui==null)throw"HTMLElement expected";return ui}clearCache(){Mi(this.options,oi=>{oi.$div&&(oi.$div.remove(),delete oi.$div)})}uncacheValue(oi){let li=this.getOption(oi);li&&li.remove()}canCreate(oi){return this.settings.create&&oi.length>0&&this.settings.createFilter.call(this,oi)}hook(oi,li,ui){var mi=this,yi=mi[li];mi[li]=function(){var _i,Si;return oi==="after"&&(_i=yi.apply(mi,arguments)),Si=ui.apply(mi,arguments),oi==="instead"?Si:(oi==="before"&&(_i=yi.apply(mi,arguments)),_i)}}}function Qi(){Sn(this.input,"change",()=>{this.sync()})}function hn(di){var oi=this,li=oi.onOptionSelect;oi.settings.hideSelected=!1;let ui=Object.assign({className:"tomselect-checkbox",checkedClassNames:void 0,uncheckedClassNames:void 0},di);var mi=function(Si,Ai){Ai?(Si.checked=!0,ui.uncheckedClassNames&&Si.classList.remove(...ui.uncheckedClassNames),ui.checkedClassNames&&Si.classList.add(...ui.checkedClassNames)):(Si.checked=!1,ui.checkedClassNames&&Si.classList.remove(...ui.checkedClassNames),ui.uncheckedClassNames&&Si.classList.add(...ui.uncheckedClassNames))},yi=function(Si){setTimeout(()=>{var Ai=Si.querySelector("input."+ui.className);Ai instanceof HTMLInputElement&&mi(Ai,Si.classList.contains("selected"))},1)};oi.hook("after","setupTemplates",()=>{var _i=oi.settings.render.option;oi.settings.render.option=(Si,Ai)=>{var Ci=Ri(_i.call(oi,Si,Ai)),zi=document.createElement("input");ui.className&&zi.classList.add(ui.className),zi.addEventListener("click",function(Zi){xn(Zi)}),zi.type="checkbox";let Hi=_n(Si[oi.settings.valueField]);return mi(zi,!!(Hi&&oi.items.indexOf(Hi)>-1)),Ci.prepend(zi),Ci}}),oi.on("item_remove",_i=>{var Si=oi.getOption(_i);Si&&(Si.classList.remove("selected"),yi(Si))}),oi.on("item_add",_i=>{var Si=oi.getOption(_i);Si&&yi(Si)}),oi.hook("instead","onOptionSelect",(_i,Si)=>{if(Si.classList.contains("selected")){Si.classList.remove("selected"),oi.removeItem(Si.dataset.value),oi.refreshOptions(),xn(_i,!0);return}li.call(oi,_i,Si),yi(Si)})}function Ki(di){let oi=this,li=Object.assign({className:"clear-button",title:"Clear All",html:ui=>`
`},di);oi.on("initialize",()=>{var ui=Ri(li.html(li));ui.addEventListener("click",mi=>{oi.isLocked||(oi.clear(),oi.settings.mode==="single"&&oi.settings.allowEmptyOption&&oi.addItem(""),mi.preventDefault(),mi.stopPropagation())}),oi.control.appendChild(ui)})}let cn=(di,oi)=>{var li;(li=di.parentNode)==null||li.insertBefore(oi,di.nextSibling)},Mn=(di,oi)=>{var li;(li=di.parentNode)==null||li.insertBefore(oi,di)},Hr=(di,oi)=>{do{var li;if(oi=(li=oi)==null?void 0:li.previousElementSibling,di==oi)return!0}while(oi&&oi.previousElementSibling);return!1};function Cr(){var di=this;if(di.settings.mode!=="multi")return;var oi=di.lock,li=di.unlock;let ui=!0,mi;di.hook("after","setupTemplates",()=>{var yi=di.settings.render.item;di.settings.render.item=(_i,Si)=>{let Ai=Ri(yi.call(di,_i,Si));Cn(Ai,{draggable:"true"});let Ci=bn=>{ui||xn(bn),bn.stopPropagation()},zi=bn=>{mi=Ai,setTimeout(()=>{Ai.classList.add("ts-dragging")},0)},Hi=bn=>{bn.preventDefault(),Ai.classList.add("ts-drag-over"),Pn(Ai,mi)},Zi=()=>{Ai.classList.remove("ts-drag-over")},Pn=(bn,Hn)=>{Hn!==void 0&&(Hr(Hn,Ai)?cn(bn,Hn):Mn(bn,Hn))},Xi=()=>{var bn;document.querySelectorAll(".ts-drag-over").forEach(Ln=>Ln.classList.remove("ts-drag-over")),(bn=mi)==null||bn.classList.remove("ts-dragging"),mi=void 0;var Hn=[];di.control.querySelectorAll("[data-value]").forEach(Ln=>{if(Ln.dataset.value){let an=Ln.dataset.value;an&&Hn.push(an)}}),di.setValue(Hn)};return Sn(Ai,"mousedown",Ci),Sn(Ai,"dragstart",zi),Sn(Ai,"dragenter",Hi),Sn(Ai,"dragover",Hi),Sn(Ai,"dragleave",Zi),Sn(Ai,"dragend",Xi),Ai}}),di.hook("instead","lock",()=>(ui=!1,oi.call(di))),di.hook("instead","unlock",()=>(ui=!0,li.call(di)))}function Gs(di){let oi=this,li=Object.assign({title:"Untitled",headerClass:"dropdown-header",titleRowClass:"dropdown-header-title",labelClass:"dropdown-header-label",closeClass:"dropdown-header-close",html:ui=>'
'+ui.title+'×
'},di);oi.on("initialize",()=>{var ui=Ri(li.html(li)),mi=ui.querySelector("."+li.closeClass);mi&&mi.addEventListener("click",yi=>{xn(yi,!0),oi.close()}),oi.dropdown.insertBefore(ui,oi.dropdown.firstChild)})}function Ls(){var di=this;di.hook("instead","setCaret",oi=>{di.settings.mode==="single"||!di.control.contains(di.control_input)?oi=di.items.length:(oi=Math.max(0,Math.min(di.items.length,oi)),oi!=di.caretPos&&!di.isPending&&di.controlChildren().forEach((li,ui)=>{ui{if(!di.isFocused)return;let li=di.getLastActive(oi);if(li){let ui=is(li);di.setCaret(oi>0?ui+1:ui),di.setActiveItem(),Er(li,"last-active")}else di.setCaret(di.caretPos+oi)})}function Il(){let di=this;di.settings.shouldOpen=!0,di.hook("before","setup",()=>{di.focus_node=di.control,Xn(di.control_input,"dropdown-input");let oi=Ri('