ips.templates.set('core.general.loading',"      {{text}}");ips.templates.set('core.general.ajax',"
{{#lang}}loading{{/lang}}...
");ips.templates.set('core.general.flashMsg',"
×
");ips.templates.set('core.hovercard.loading'," ");ips.templates.set('core.posts.spoiler'," {{#lang}}spoilerClickToReveal{{/lang}}");ips.templates.set('core.posts.spoilerOpen'," {{#lang}}spoilerClickToHide{{/lang}}");ips.templates.set('core.posts.multiQuoteOff'," ");ips.templates.set('core.posts.multiQuoteOn'," ");ips.templates.set('core.posts.multiQuoter',"
  
");ips.templates.set('core.menus.menuItem',"
  • {{title}}
  • ");ips.templates.set('core.menus.menuSep',"

  • ");ips.templates.set('core.posts.quotedSpoiler',"

    {{#lang}}quotedSpoiler{{/lang}}

    ");ips.templates.set('core.postNotify.single'," ");ips.templates.set('core.postNotify.multiple'," ");ips.templates.set('core.postNotify.multipleSpillOver'," ");ips.templates.set('core.notification.flashSingle'," ");ips.templates.set('core.notification.flashMultiple'," ");ips.templates.set('core.alert.box'," ");ips.templates.set('core.alert.subText',"
    {{text}}
    ");ips.templates.set('core.alert.subTextHtml',"
    {{{text}}}
    ");ips.templates.set('core.alert.icon'," ");ips.templates.set('core.alert.button',"
  • ");ips.templates.set('core.alert.prompt',"



    ");ips.templates.set('core.lightbox.meta',"{{title}}");ips.templates.set('core.lightbox.toolsMenu'," ");ips.templates.set('core.dialog.main'," ") ips.templates.set('core.tooltip'," ");ips.templates.set('core.search.loadingPanel',"
     
    ");ips.templates.set('core.editor.panelWrapper',"
    {{content}}
    ");ips.templates.set('core.editor.giphy'," ");ips.templates.set('core.editor.giphyThumb',"
    {{title}}
    ");ips.templates.set('core.editor.giphyRow',"
    {{{gifs}}}
    ");ips.templates.set('core.editor.pixabayThumb',`
    `);ips.templates.set('core.editor.emoticons'," ");ips.templates.set('core.editor.emoticonSection',"
    {{{content}}}
    ");ips.templates.set('core.editor.emoticonMenu'," ");ips.templates.set('core.editor.emoticonCategory',"
    {{title}}
    {{{emoticons}}}
    ");ips.templates.set('core.editor.emoticonSearch',"
    {{{emoticons}}}
    ");ips.templates.set('core.editor.emoticonRow',"
    {{{emoticons}}}
    ");ips.templates.set('core.editor.emoticonItem',"
    {{{img}}}
    ");ips.templates.set('core.editor.emoji',"
    {{{display}}}
    ");ips.templates.set('core.editor.emojiNotNative',"
    {{{img}}}
    ");ips.templates.set('core.editor.emoticonBlank',"
     
    ");ips.templates.set('core.editor.emoticonNoResults',"
    {{#lang}}no_results{{/lang}}
    ");ips.templates.set('core.editor.emojiResult',"
  • {{{emoji}}} {{short_code}}
  • ");ips.templates.set('core.editor.quote',"
    {{citation}}
    {{{contents}}}
    ");ips.templates.set('core.editor.legacyQuoteUpcast',"
    {{citation}}
    {{{contents}}}
    ");ips.templates.set('core.editor.citation',"
      {{#contenturl}} {{/contenturl}} {{{citation}}}
    ");ips.templates.set('core.editor.citationLink'," {{username}}");ips.templates.set('core.editor.spoiler',"
    {{#lang}}editorSpoiler{{/lang}}
    ");ips.templates.set('core.editor.legacySpoilerUpcast',"
    {{#lang}}editorSpoiler{{/lang}}
    {{{contents}}}
    ");ips.templates.set('core.editor.spoilerHeader',"   {{#lang}}spoilerClickToReveal{{/lang}} ");ips.templates.set('core.editor.initLoading',"
     
    ");ips.templates.set('core.editor.previewLoading',"
     
    ");ips.templates.set('core.editor.stockReplies'," ");ips.templates.set('core.editor.editorStockRepliesWrap',"
    {{{content}}}
    ");ips.templates.set('core.editor.editorStockRepliesRow',"
    {{{title}}}
    ");ips.templates.set('core.attachments.metaInfo'," {{size}} · {{downloads}}");ips.templates.set('core.attachments.attachmentPreview'," {{title}}{{#lang}}attachmentPending{{/lang}}");ips.templates.set('core.attachments.fileItemWrapper',"
    {{{content}}}
    ");ips.templates.set('core.attachments.fileItem',"
    {{#thumb}} {{{thumb}}} {{/thumb}}

    {{title}}

    {{size}} {{#statusText}}· {{statusText}}{{/statusText}}

    {{#status}}{{/status}}
    {{#supportsDelete}}
    ×
    {{/supportsDelete}} {{^supportsDelete}}
    ×
    {{/supportsDelete}}
    ");ips.templates.set('core.attachments.imageItem',"
    {{#thumb}} {{{thumb}}} {{/thumb}}

    {{title}}

    {{size}} {{#statusText}}· {{statusText}}{{/statusText}}

    {{#status}}{{/status}}
    {{#supportsDelete}}
    ×
    {{/supportsDelete}} {{^supportsDelete}}
    ×
    {{/supportsDelete}}
    ");ips.templates.set('core.attachments.videoItem',"
    {{#thumb}} {{/thumb}}

    {{title}}

    {{size}} {{#statusText}}· {{statusText}}{{/statusText}}

    {{#status}}{{/status}}
    {{#supportsDelete}}
    ×
    {{/supportsDelete}} {{^supportsDelete}}
    ×
    {{/supportsDelete}}
    ");ips.templates.set('core.attachments.audioItem',"
    {{#thumb}} {{/thumb}}

    {{title}}

    {{size}} {{#statusText}}· {{statusText}}{{/statusText}}

    {{#status}}{{/status}}
    {{#supportsDelete}}
    ×
    {{/supportsDelete}} {{^supportsDelete}}
    ×
    {{/supportsDelete}}
    ");ips.templates.set('core.attachments.imageItemWrapper',"
    {{{content}}}
    ");ips.templates.set('core.autocomplete.field',"
    ");ips.templates.set('core.autocomplete.addToken'," {{text}} ");ips.templates.set('core.autocomplete.resultWrapper'," ");ips.templates.set('core.autocomplete.searchTypeAhead'," ");ips.templates.set('core.autocomplete.resultItem',"
  • {{{html}}}
  • ");ips.templates.set('core.autocomplete.tagsResultItem',"
  • {{html}}
    {{#recommended}} {{#lang}}tag_recommended{{/lang}} {{/recommended}}
  • ");ips.templates.set('core.autocomplete.token',"
  • {{{title}}} ×
  • ");ips.templates.set('core.autocomplete.assignmentAddToken'," {{text}} ");ips.templates.set('core.autocomplete.assignmentResultItem',"
  • {{#team}}
    {{{name}}}
    {{#lang}}assignment_team{{/lang}}
    {{/team}} {{^team}}
    {{{name}}}
    {{{extra}}}
    {{/team}}
  • ");ips.templates.set('core.autocomplete.memberItem',"
  • {{{name}}}
    {{{extra}}}
  • ");ips.templates.set('core.autocomplete.optional'," {{langString}}...");ips.templates.set('core.forms.validationWrapper'," ");ips.templates.set('core.forms.validationItem',"
  • {{message}}
  • ");ips.templates.set('core.forms.advicePopup',"

    {{#lang}}password_advice_title{{/lang}}

    {{#min}} {{min}} {{/min}} {{{text}}}

    ");ips.templates.set('core.forms.validateOk'," ");ips.templates.set('core.forms.validateFail'," ");ips.templates.set('core.forms.validateFailText',"

    {{message}}

    ");ips.templates.set('core.truncate.expand'," ");ips.templates.set('core.selectTree.token',"
  • {{title}}
  • ");ips.templates.set('core.accessibility.border',"
    ");ips.templates.set('core.accessibility.arrow',"
    ");ips.templates.set('core.infScroll.loading',"
  • {{#lang}}loading{{/lang}}...
  • ");ips.templates.set('core.infScroll.pageBreak',"
  • {{#lang}}page{{/lang}} {{page}}
  • ");ips.templates.set('core.pageAction.actionMenuItem',"
  • {{#icon}} {{/icon}} {{^icon}} {{title}} {{/icon}}
  • ");ips.templates.set('core.pageAction.actionItem',"
  • {{#icon}} {{/icon}} {{^icon}} {{title}} {{/icon}}
  • ");ips.templates.set('core.pageAction.wrapper',"
    ");ips.templates.set('core.carousel.bulletWrapper'," ");ips.templates.set('core.carousel.bulletItem',"
  • ");ips.templates.set('core.rating.wrapper',"
    {{status}}
    ") ips.templates.set('core.rating.star',"
  • ");ips.templates.set('core.rating.halfStar',"
  • ");ips.templates.set('core.rating.loading'," ");ips.templates.set('core.sidebar.managerWrapper',`\ `);ips.templates.set('core.sidebar.blockManage',"

    {{title}}

    ");ips.templates.set('core.sidebar.blockManageNoConfig',"

    {{title}}

    ");ips.templates.set('core.sidebar.blockIsEmpty',"
    {{text}}
    ");ips.templates.set('core.follow.loading',"
    ");ips.templates.set('core.statuses.loadingComments',"    {{#lang}}loadingComments{{/lang}}");ips.templates.set('core.forms.stack',"
  • ×
    {{{field}}}
  • ");ips.templates.set('core.pollEditor.question',"
    • {{#lang}}choicesTitle{{/lang}}
      {{#showCounts}} {{#lang}}votesTitle{{/lang}} {{/showCounts}}
    • {{{choices}}}
    {{#lang}}addChoice{{/lang}}
    {{#removeQuestion}}{{/removeQuestion}}
    ");ips.templates.set('core.pollEditor.choice',"
  • {{choiceID}}
  • ");ips.templates.set('core.coverPhoto.controls'," ");ips.templates.set('core.editor.preferences',"
    {{#lang}}papt_warning{{/lang}}

    ");ips.templates.set('core.pagination'," ");ips.templates.set('core.selection.quote',"
    {{#lang}}quote_selected_text{{/lang}}
    ");ips.templates.set('core.contentItem.resultItem',"
  • {{{html}}}
  • ");ips.templates.set('core.contentItem.field',"
    ");ips.templates.set('core.contentItem.resultWrapper'," ");ips.templates.set('core.contentItem.item',"
  • × {{{html}}}
  • ");ips.templates.set('promote.imageUpload',"
    {{#thumbnail}}{{/thumbnail}}
    ");ips.templates.set('table.row.loading',`
  • `);ips.templates.set('licenseRenewal.wrapper',"

    {{#lang}}licenseRenewalTitle{{/lang}}

    {{#lang}}licenseRenewalText{{/lang}}

    ");ips.templates.set('core.browserNotification.prompt',"
    ×

    {{#lang}}notificationsCallout{{/lang}}

    {{#lang}}notificationsDefaultBlurb{{/lang}}

    {{#lang}}notificationsAllowPrompt{{/lang}}

    ");ips.templates.set('core.browserNotification.missingSubscription',"
    ×

    {{#lang}}notificationsCalloutPush{{/lang}}

    {{#lang}}notificationsDefaultBlurb{{/lang}}

    {{#lang}}notificationsUpgradeBlurb{{/lang}}

    {{#lang}}notificationsNoThanks{{/lang}}

    {{#lang}}notificationsAllowPrompt{{/lang}}

    ");ips.templates.set('core.notifications.pending'," {{#lang}}notificationsEnabling{{/lang}}");ips.templates.set('core.notifications.success'," {{#lang}}notificationsEnabled{{/lang}}");ips.templates.set('core.notifications.fail'," {{#lang}}notificationsFailed{{/lang}}");ips.templates.set('core.notifications.notSupported'," {{#lang}}notificationsNotSupported{{/lang}}");ips.templates.set('core.notifications.checking'," {{#lang}}notificationsChecking{{/lang}}");ips.templates.set('system.warningpenalty.nomodify'," ");ips.templates.set('core.edittags.default',"
     {{#lang}}loading{{/lang}}
    ");ips.templates.set('core.onlineUser.linked',"
  • {{{formattedName}}}
  • ");ips.templates.set('core.iconpicker.wrap',`
    {{#allowedTypes}} {{/allowedTypes}}
    {{#allowedTypes}} {{/allowedTypes}}
    `) ips.templates.set('core.iconpicker.category',`\

    {{name}} ({{icons.length}})

    {{#icons}} {{/icons}}
    \ `) ips.templates.set('core.iconpicker.selectedicon',`\
  • {{{raw}}}
    {{title}}
  • \ `) ips.templates.set('tableOfContents.linkOptions',`\ {{#canEdit}} {{/canEdit}} `);; ;(function($,_,undefined){"use strict";ips.createModule('ips.loader',function(){var _loadedScripts=[],_loadingScripts=[];var init=function(){var scripts=$('script[src][data-ips]');scripts.each(function(){var scriptInfo=ips.utils.url.getURIObject($(this).attr('src'));if(scriptInfo.queryKey.src){var paths=_getPathScripts(scriptInfo.queryKey.src);_.each(paths,function(value){_loadedScripts.push(value);});}else if(scriptInfo.path.indexOf('interface/')!==-1){var interfaces=_getInterfaceScript(scriptInfo.path);if(interfaces){_loadedScripts.push(interfaces);}}else{var other=_getOtherScript(scriptInfo.source);if(other){_loadedScripts.push(other);}}});},_getOtherScript=function(path){path=path.replace(ips.getSetting('baseURL'),'');if(path.startsWith('/')){path=path.substring(1);} if(path.startsWith('applications/')){path=path.replace(/^applications\//i,'')} return path;},_getInterfaceScript=function(path){var pieces=_.compact(path.split('/').reverse());var path=[];for(var i=0;iinst!==obj));return;}} $(elem).removeData('_controller'+controllerID);$(document).trigger('controllerReady',{controllerID:obj.controllerID,controllerType:obj.controllerType,controllerElem:elem});} function _findSubControllers(controller,node){var results=[];node=(node&&(_.isElement(node)||node.jquery))?node:document;if(controller.indexOf('*')===-1){results=$(node).find('[data-controller*="'+controller+'"]');}else{var pieces=controller.split('.');if(pieces[0]==='*'){pieces.shift();results=$(node).find('[data-controller$="'+pieces.join('.')+'"]');}else if(pieces[pieces.length-1]==='*'){pieces.pop();results=$(node).find('[data-controller^="'+pieces.join('.')+'"]');}} return results;} class BaseController{scope;elem;constructor(scope,type){this.controllerType=type;this.controllerID=getInstanceID();this.scope=$(scope);this.elem=this.scope.get(0);this._eventListeners=[];const adviceFuncs={before:function(baseFn,newFn){return function(){newFn.apply(this,arguments);return baseFn.apply(this,arguments);};},after:function(baseFn,newFn){return function(){const toReturn=baseFn.apply(this,arguments);newFn.apply(this,arguments);return toReturn;}},around:function(baseFn,newFn){return function(...args){args.unshift(baseFn.bind(this));return newFn.apply(this,args);}}};for(const[type,generator]of Object.entries(adviceFuncs)){this[type]=(base,fn)=>{if(!(this[base]instanceof Function)){Debug.log("Method '"+base+'" is not present in controller '+this.controllerID);} this[base]=generator(this[base],fn)}}} _destroy(){Debug.log('Destroyed instance '+this.controllerID+' of '+this.controllerType);if(this._eventListeners.length){for(var i=0;i"[data-ips"+item+"]");const foundWidgets=$(context).find(selector.join(','));for(let elem of foundWidgets){elem=$(elem);for(var i=0;i').addClass('ipsModal').hide().appendTo($('body')).identify();},init=function(){$(document).on('contentChange',function(e,newContent){if(newContent instanceof jQuery){newContent.each(function(){if(Debug.isEnabled){Debug.info("contentChange event, reinitializing widgets in "+$(this).identify().attr('id'));} _initializeWidgets(this);});}else{if(Debug.isEnabled){Debug.info("contentChange event, reinitializing widgets in "+$(newContent).identify().attr('id'));} _initializeWidgets(newContent);}});_initializeWidgets(document);};if(document?.body?.style instanceof CSSStyleDeclaration){zIndex();}else{window.addEventListener('load',()=>{zIndex();})} class BaseWidget{static _defaults={};static instances=new WeakMap();constructor(elem,options){this.options=options;this.elem=$(elem);} _element=undefined;get element(){if(this._element===undefined){this._element=this.elem.get(0);} return this._element;} set element(val){Debug.warn(`The field "element" is not settable`);} destruct(){BaseWidget.instances.delete(this.element);} reset(){} on(...args){const cb=args.pop();if(!(cb instanceof Function)){return;} let base=this.elem;if(typeof args[0]!=='string'){base=$(args.shift());} base.on(...args,(...ev)=>cb.call(this,...ev))} static fixOptions(options){return options} static initializeOnElem(elem,options){elem=elem instanceof Element?elem:$(elem).get(0) if(!(elem instanceof Element)){return;} if(!this.getInstance(elem)){options=this.fixOptions({...this._defaults,...options});const instance=new this(elem,options);this.instances.set(elem,instance);}} static getInstance(elem){elem=elem instanceof Element?elem:$(elem).get(0) if(elem&&this.instances.has(elem)){return this.instances.get(elem);} return undefined;} static buildModuleAndRegisterWidget(name,options=[],widgetOptions=undefined,fnCallback=undefined){if(name){ips.ui.registerWidget(name,ips.ui[name],options,widgetOptions,fnCallback);} return{respond:(elem,options)=>this.initializeOnElem(elem,options),destruct:(elem)=>this.getInstance(elem)?.destruct(),getObj:elem=>this.getInstance(elem),reset:elem=>this.getInstance(elem)?.reset(),finalClass:this}}} return{registerWidget,init,zIndex,getModal,getAcceptedOptions,key,destructAllWidgets,BaseWidget};});}(jQuery,_));; ;(function($,_,undefined){"use strict";ips.createModule('ips.ui.alert',function(){var respond=function(elem,options){alertObj(options,elem);},show=function(options){alertObj(options);};ips.ui.registerWidget('alert',ips.ui.alert,['message','type','icon','focus']);return{respond:respond,show:show};});var alertObj=function(options){var alert=null,modal=null;var _defaults={type:'alert',message:ips.getString('generic_confirm'),buttons:{ok:ips.getString('ok'),cancel:ips.getString('cancel'),yes:ips.getString('yes'),no:ips.getString('no')},icon:'info',showIcon:true,callbacks:{}};var _icons={warn:'fa-solid fa-triangle-exclamation',success:'fa-solid fa-check-circle',info:'fa-solid fa-circle-info',ok:'fa-solid fa-check-circle',question:'fa-solid fa-circle-question'};options=_.defaults(options||{},_defaults);var init=function(){_buildAlert();_setUpEvents();},_setUpEvents=function(){alert.on('click','[data-action]',_clickButton);$(document).on('keydown',function(e){switch(e.keyCode){case ips.ui.key.ESCAPE:if(options.type=='alert'){alert.find('[data-action="ok"]').click();}else{alert.find('[data-action="cancel"], [data-action="no"]').click();} break;case ips.ui.key.ENTER:alert.find('[data-action="ok"], [data-action="yes"]').click();break;}});},_clickButton=function(e){var button=$(e.currentTarget);var action=button.attr('data-action');var value=null;if(options.type=='prompt'){value=alert.find('[data-role="promptValue"]').val();} if(_.isFunction(options.callbacks[action])){options.callbacks[action](value);} _remove();},_remove=function(){modal.remove();ips.utils.anim.go('fadeOutDown fast',alert).done(function(){alert.remove();});},_buildAlert=function(){var parts={},buttons=[];if(options.showIcon){parts.icon=ips.templates.render('core.alert.icon',{icon:_icons[options.icon]||options.icon});} parts.id='alert_'+(Math.round(Math.random()*10000000));parts.text=options.message;if(options.subText){parts.subtext=ips.templates.render('core.alert.subText',{text:options.subText});} if(options.subTextHtml){parts.subtext=ips.templates.render('core.alert.subTextHtml',{text:options.subTextHtml});} switch(options.type){case'alert':buttons.push(ips.templates.render('core.alert.button',{action:'ok',title:options.buttons.ok,extra:'ipsButton--primary'}));break;case'confirm':case'prompt':buttons.push(ips.templates.render('core.alert.button',{action:'ok',title:options.buttons.ok,extra:'ipsButton--primary'}));buttons.push(ips.templates.render('core.alert.button',{action:'cancel',title:options.buttons.cancel,extra:'ipsButton--inherit'}));break;case'verify':buttons.push(ips.templates.render('core.alert.button',{action:'yes',title:options.buttons.yes,extra:'ipsButton--primary'}));if(options.buttons.no){buttons.push(ips.templates.render('core.alert.button',{action:'no',title:options.buttons.no,extra:'ipsButton--inherit'}));} if(options.buttons.cancel){buttons.push(ips.templates.render('core.alert.button',{action:'cancel',title:options.buttons.cancel,extra:'ipsButton--inherit'}));} break;} parts.buttons=buttons.join('');if(options.type=='prompt'){parts.text+=ips.templates.render('core.alert.prompt');} var tmpAlert=$.parseHTML(ips.templates.render('core.alert.box',parts).trim());alert=$(tmpAlert[0]);$('body').append(alert);modal=ips.ui.getModal();modal.css({zIndex:ips.ui.zIndex()}).show();alert.css({zIndex:ips.ui.zIndex()});ips.utils.anim.go('zoomIn fast',alert);if(options.focus){alert.find('[data-action="'+options.focus+'"]').focus();}else{if(options.type=='prompt'){alert.find('[data-role="promptValue"]').val(options.value||'').focus();}else{alert.find('[data-action="ok"], [data-action="yes"]').focus();}}};init();};}(jQuery,_));; ;(function($,_){"use strict";ips.createModule('ips.ui.alertMessage',()=>{class AlertMessage extends ips.ui.BaseWidget{constructor(...args){super(...args);this.form?.addEventListener('submit',this.remoteSubmit.bind(this),{capture:true});this.element.addEventListener('click',this.remoteSubmit.bind(this),{capture:true});this.element.addEventListener('ips:editorUpdated',()=>{this.element.querySelector('[data-role="reply"]').removeAttribute('disabled')},{once:true})} get form(){return this.element?.querySelector('form')||(this.element instanceof HTMLFormElement?this.element:undefined);} get url(){return this.element?.querySelector('[data-role="reply"]')?.getAttribute('href')||this.form?.getAttribute('action');} async remoteSubmit(e){if(e.type==='submit'||e.target.closest('a')){e.preventDefault();if(e.target.closest('[disabled]')){return;} if(e.type==='submit'||e.target.closest('[data-role="reply"]')){const url=this.url;const form=this.form;if(url&&form){const data=Object.fromEntries((new FormData(form)).entries());try{const response=await ips.fetch(url,{method:form.method||'post',data,bypassRedirect:true,});if(typeof response?.redirect==='string'){setTimeout(()=>{ips.ui.alert.show({message:ips.getString('moderator_alert_reply_ready'),type:'confirm',buttons:{ok:ips.getString('moderator_alert_reply_view'),cancel:ips.getString('ok')},callbacks:{ok(){window.location=response.redirect;}}});});}}catch(e){Debug.warn(e);}}}else{const url=e.target.closest('a[href]')?.getAttribute('href');try{if(url){await ips.fetch(url,{method:'get',bypassRedirect:true,});}else{throw new Error(`Failed to get the dismiss ajax url of a notification`);}}catch(e){e.message=`Failed to set the status as dismissed.\n${e.message}`;Debug.warn(e)}} this.destruct();this.element.remove();}}} return AlertMessage.buildModuleAndRegisterWidget('alertMessage');})}(jQuery,_));; ;(function($,_,undefined){"use strict";ips.createModule('ips.ui.autoCheck',function(){var defaults={};var respond=function(elem,options){if(!$(elem).data('_autoCheck')){$(elem).data('_autoCheck',autoCheckObj(elem,_.defaults(options,defaults)));}},destruct=function(elem){var obj=getObj(elem);if(!_.isUndefined(obj)){obj.destruct();}},getObj=function(elem){if($(elem).data('_autoCheck')){return $(elem).data('_autoCheck');} return undefined;};ips.ui.registerWidget('autoCheck',ips.ui.autoCheck,['context']);return{respond:respond,getObj:getObj,destruct:destruct};});var autoCheckObj=function(elem,options){var initialCount=0;var init=function(){if(options.context&&$(options.context).length){elem.on('menuItemSelected',clickedMenu);$(options.context).on('change','input[type="checkbox"][data-state]',_updateCount);} elem.on('refresh.autoCheck',refresh);elem.on('setInitialCount.autoCheck',setInitialCount);elem.find('[data-role="autoCheckCount"]').hide();},destruct=function(){if(options.context){$(options.context).off('change','input[type="checkbox"][data-state]',_updateCount);}},refresh=function(){_updateCount();},setInitialCount=function(e,data){initialCount=data.count;_updateCount();},clickedMenu=function(e,data){if(!_.isUndefined(data.originalEvent)){data.originalEvent.preventDefault();} if(!data.selectedItemID){return;} var checkboxes=$(options.context).find(':checkbox[data-state]');if(data.selectedItemID=='all'){checkboxes.prop('checked',true);}else if(data.selectedItemID=='none'){checkboxes.prop('checked',false);}else{checkboxes.prop('checked',false).filter('[data-state~="'+data.selectedItemID+'"]').prop('checked',true);} checkboxes.trigger('change');var count=_updateCount();elem.trigger('autoChecked',{menu:elem,currentFilter:data.selectedItemID,count:count});},_updateCount=function(){var checkboxes=$(options.context).find(':checkbox[data-state]');var count=$(options.context).find(':checkbox[data-state]:checked');if(count.length==checkboxes.length&&checkboxes.length!==0){elem.find('.cAutoCheckIcon').html('');}else if(count.length===0){elem.find('.cAutoCheckIcon').html('');}else{elem.find('.cAutoCheckIcon').html('');} var countToDisplay=count.length+initialCount;if(countToDisplay){elem.find('[data-role="autoCheckCount"]').text(countToDisplay).show();}else if(elem.find('[data-role="autoCheckCount"]').is(':visible')){setTimeout(function(){if(!initialCount){ips.utils.anim.go('fadeOut',elem.find('[data-role="autoCheckCount"]'));}},300);} return count.length;};init();return{destruct:destruct,refresh:refresh};};}(jQuery,_));; ;(function($,_,undefined){"use strict";ips.createModule('ips.ui.autocomplete',function(){const defaults={multiValues:true,freeChoice:true,itemSep:{chr:',',keycode:188,charcode:44},disallowedCharacters:JSON.stringify(["<",">","'","\""]),unique:false,customValues:true,fieldTemplate:'core.autocomplete.field',resultsTemplate:'core.autocomplete.resultWrapper',resultItemTemplate:'core.autocomplete.resultItem',tokenTemplate:'core.autocomplete.token',addTokenTemplate:'core.autocomplete.addToken',addTokenText:ips.getString('add_tag'),queryParam:'q',forceLower:false,minLength:1,minAjaxLength:1,commaTrigger:true,searchFieldThreshold:10,suggestionsOnly:false};function respond(elem,options){if(!$(elem).data('_autocomplete')){$(elem).data('_autocomplete',autocompleteObj(elem,_.defaults(options,defaults)));}} function destruct(elem){var obj=getObj(elem);if(!_.isUndefined(obj)){obj.destruct();}} function getObj(elem){elem=$(elem);if(elem.data('_autocomplete')){return elem.data('_autocomplete');}else if($('[name="'+elem.attr('name')+'_original'+'"]').length&&$('[name="'+elem.attr('name')+'_original'+'"]').data('_autocomplete')){return $('[name="'+elem.attr('name')+'_original'+'"]').data('_autocomplete');} return undefined;};ips.ui.registerWidget('autocomplete',ips.ui.autocomplete,['multiValues','freeChoice','dataSource','maxItems','itemSep','resultsElem','unique','commaTrigger','fieldTemplate','resultsTemplate','resultItemTemplate','tokenTemplate','addTokenTemplate','addTokenText','queryParam','minLength','maxLength','forceLower','disallowedCharacters','minAjaxLength','suggestionsOnly']);return{respond:respond,destruct:destruct,getObj:getObj};});function autocompleteObj(elem,options,e){let timer,blurTimer,lastValue='',originalTextField,valueField,textField,dataSource,elemID=$(elem).identify().attr('id'),wrapper,inputItem,resultsElem,selectedToken,disabled=false,required=false,tooltip=null,tooltipTimer=null,mouseOverResults=false,hasError=false;function init(){if($(elem).is('textarea, input[type="text"], input[type="search"]')){originalTextField=$(elem);}else{originalTextField=$(elem).find('textarea, input[type="text"], input[type="search"]').first();} try{options.disallowedCharacters=$.parseJSON(options.disallowedCharacters);}catch(err){Debug.error("Couldn't parse disallowed characters option");} _buildWrapper();_getDataSource();originalTextField.removeAttr('list');if(dataSource.type!='none'){_buildResultsList();if(dataSource.type=='local'){_initAutocomplete();}} if(originalTextField.is('[required]')){required=true;originalTextField.removeProp('required').removeAttr('aria-required');} textField.prop('autocomplete','off').prop('spellcheck',false).prop('disabled',disabled).attr('aria-autocomplete','list').attr('aria-haspopup','true').attr('tabindex',originalTextField.attr('tabindex')||'');if(options.maxLength){textField.attr('maxlength',options.maxLength+1);} wrapper.click(function(e){e.stopPropagation();return false;});textField.on('focus',_focusField).on('blur',_blurField).on('keydown',_keydownField).on('keyup',_keyupField).on('input',_expandField).on('keypress',_keypressField);wrapper.on('click',_clickWrapper).on('click','[data-action="addToken"]',_clickAddToken).on('keydown',_keydownWrapper).on('propChanged',_propChanged).toggleClass('ipsField_autocompleteDisabled',disabled);_buildInitialTokens();elem.on('blur',function(){if(textField!==elem){textField.trigger('blur');}}).trigger('autoCompleteReady',{elemID:elemID,elem:elem,currentValues:tokens.getValues()});elem.on('reissueReady',function(){elem.trigger('autoCompleteReady',{elemID:elemID,elem:elem,currentValues:tokens.getValues()});});} function destruct(){$(document).off('click',_documentClick);} function hasErrors(){return hasError;} function _propChanged(e){disabled=originalTextField.is(':disabled');wrapper.toggleClass('ipsField_autocompleteDisabled',disabled);} function _buildInitialTokens(){var value=_getOriginalValue();if(!value){return;} var splitValues=_.without(value.split("\n"),'');var itemCount=0;itemCount=splitValues.length;originalTextField.val('');if(splitValues.length){for(var i=0;ioptions.searchFieldThreshold&&!options.freeChoice){var searchField=ips.templates.render('core.autocomplete.searchTypeAhead',{});$('#'+elemID+'_results').prepend(searchField);$('#'+elemID+'_results').on('input','input[type="search"]',_keyupAutocomplete);}} function _keyupAutocomplete(e){_loadResults($(this).val());return true;} function _buildWrapper(){var existingClasses=elem[0].className;$(elem).after(ips.templates.render(options.fieldTemplate,{id:elemID})).removeClass(existingClasses);wrapper=$('#'+elemID+'_wrapper');inputItem=$('#'+elemID+'_inputItem');if(!options.freeChoice){var insertElem=ips.templates.render(options.addTokenTemplate,{text:options.addTokenText});textField=elem;}else{var insertElem=$('').attr({type:'text',id:elemID+'_dummyInput'}).prop('autocomplete','off');textField=insertElem;} if(options.suggestionsOnly){const form=$(elem).closest('form').get(0) if(form){form.addEventListener('submit',e=>{if(_getCurrentValue()&&!($(elem).get(0).closest('.ipsFieldRow[hidden]'))){e.preventDefault() e.stopPropagation() const warning=$(elem).get(0).closest('.ipsFieldRow__content')?.querySelector(".ipsFieldRow__warning") if(warning){warning.innerHTML=ips.getString('form_autocomplete_bad')}}})}} var name=originalTextField.attr('name');originalTextField.attr('name',originalTextField.attr('name')+'_original');valueField=$('