1"use strict";(self.webpackChunknodebb=self.webpackChunknodebb||[]).push([[4773,25655,10999],{48777:(R,S,l)=>{var h,m;h=[l(32230),l(7927),l(18340),l(85233),l(22568)],m=function(k,p,c,A,y){const o={};o.init=function(){$.ajax({method:"get",url:"https://bootswatch.com/api/5.json"}).done(n=>{A.on("action:settings.sorted-list.loaded",t=>{t.hash==="custom-skins"&&($('.custom-skin-settings [data-type="list"] [data-theme]').each((e,i)=>{$(i).attr("data-theme",y($(i).attr("data-theme")))}),d(app.config.bootswatchSkin))}),c.load("custom-skins",$(".custom-skin-settings")),o.render(n)}),$("#save-custom-skins").on("click",function(){return c.save("custom-skins",$(".custom-skin-settings"),function(){p.success("[[admin/appearance/skins:save-custom-skins-success]]")}),!1}),$("#skins").on("click",function(n){let t=$(n.target);t.attr("data-action")||(t=t.parents("[data-action]"));const e=t.attr("data-action");if(e&&e==="use"){const i=t.parents("[data-theme]"),s=i.attr("data-css"),a=i.attr("data-theme"),f=i.attr("data-theme-name");socket.emit("admin.themes.set",{type:"bootswatch",id:a,src:s},function(r){if(r)return p.error(r);d(a),p.alert({alert_id:"admin:theme",type:"info",title:"[[admin/appearance/skins:skin-updated]]",message:a?"[[admin/appearance/skins:applied-success, "+f+"]]":"[[admin/appearance/skins:revert-success]]",timeout:5e3})})}})},o.render=function(n){const t=$("#bootstrap_themes");app.parseAndTranslate("admin/partials/theme_list",{themes:n.themes.map(function(e){return{type:"bootswatch",id:e.name.toLowerCase(),name:e.name,description:e.description,screenshot_url:e.thumbnail,url:e.preview,css:e.cssCdn,skin:!0}}),showRevert:!0},function(e){t.html(e),d(app.config.bootswatchSkin)})};function d(n){k.translate("[[admin/appearance/skins:select-skin]] || [[admin/appearance/skins:current-skin]]",function(t){t=t.split(" || ");const e=t[0],i=t[1];$("[data-theme]").removeClass("selected").find('[data-action="use"]').each(function(){$(this).parents("[data-theme]").attr("data-theme")&&$(this).html(e).removeClass("btn-success").addClass("btn-primary")}),n&&$('[data-theme="'+n+'"]').addClass("selected").find('[data-action="use"]').html(i).removeClass("btn-primary").addClass("btn-success")})}return o}.apply(S,h),m!==void 0&&(R.exports=m)},18340:(R,S,l)=>{var h,m;h=[l(85233),l(7927)],m=function(k,p){let c,A=[],y=0,o;function d(n,t){typeof n!="string"&&(n=$(n),n=n.data("type")||n.attr("type")||n.prop("tagName"));const e=c.plugins[n.toLowerCase()];if(e==null)return;const i=e[t];return typeof i=="function"?i:null}return o={deepClone:function(n){return typeof n=="object"?JSON.parse(JSON.stringify(n)):n},createElement:function(n,t,e){const i=document.createElement(n);for(const s in t)t.hasOwnProperty(s)&&i.setAttribute(s,t[s]);return e&&i.appendChild(document.createTextNode(e)),i},initElement:function(n){const t=d(n,"init");t?.call(c,$(n))},destructElement:function(n){const t=d(n,"destruct");t?.call(c,$(n))},createElementOfType:function(n,t,e){let i;const s=d(n,"create");return s!=null?i=$(s.call(c,n,t,e)):(e==null&&(e={}),n!=null&&(e.type=n),i=$(o.createElement(t||"input",e))),i.data("type",n),o.initElement(i),i},cleanArray:function(n,t,e){const i=[];if(!t&&e)return n;for(let s=0;s<n.length;s+=1){let a=n[s];t&&(a===!!a?a=+a:a&&typeof a.trim=="function"&&(a=a.trim())),(e||a!=null&&a.length)&&i.push(a)}return i},isTrue:function(n){return n==="true"||+n==1},isFalse:function(n){return n==="false"||+n==0},readValue:function(n){let t=!o.isFalse(n.data("empty"));const e=!o.isFalse(n.data("trim")),i=n.data("split"),s=d(n,"get");let a;if(s!=null)return s.call(c,n,e,t);if(i!=null){t=o.isTrue(n.data("empty")),a=n.val();const f=a!=null&&a.split(i||",")||[];return o.cleanArray(f,e,t)}if(a=n.val(),e&&a!=null&&typeof a.trim=="function"&&(a=a.trim()),t||a!==void 0&&(a==null||a.length!==0))return a},fillField:function(n,t){const e=d(n,"set");let i=n.data("trim");if(i=i!=="false"&&+i!=0,e!=null)return e.call(c,n,t,i);t instanceof Array&&(t=t.join(n.data("split")||(i?", ":","))),i&&t&&typeof t.trim=="function"?(t=t.trim(),typeof t.toString=="function"&&(t=t.toString())):t!=null?(typeof t.toString=="function"&&(t=t.toString()),i&&(t=t.trim())):t="",t!==void 0&&n.val(t)},initFields:function(n){$("[data-key]",n).each(function(t,e){e=$(e);const i=d(e,"init"),s=e.data("key").split(".");let a=c.get();i?.call(c,e);for(let f=0;f<s.length;f+=1){const r=s[f];r&&a!=null&&(a=a[r])}o.fillField(e,a)})},registerReadyJobs:function(n){return y+=n,y},beforeReadyJobsDecreased:function(n){if(n==null&&(n=1),y>0&&(y-=n,y<=0)){for(let t=0;t<A.length;t+=1)A[t]();A=[]}},whenReady:function(n){y<=0?n():A.push(n)}
1,serializeForm:function(n){const t=n.serializeObject();return n.find('input[type="checkbox"]').each(function(e,i){i=$(i),i.is(":checked")||(t[i.attr("name")]="off")}),n.find("select[multiple]").each(function(e,i){i=$(i),t[i.attr("name")]=JSON.stringify(i.val())}),t},persistSettings:function(n,t,e,i){t!=null&&t._!=null&&typeof t._!="string"&&(t=o.deepClone(t),t._=JSON.stringify(t._)),socket.emit("admin.settings.set",{hash:n,values:t},function(s){e&&(s?p.alert({title:"[[admin/admin:changes-not-saved]]",type:"danger",message:`[[admin/admin/changes-not-saved-message, ${s.message}]]`,timeout:5e3}):p.alert({title:"[[admin/admin:changes-saved]]",type:"success",message:"[[admin/admin:changes-saved-message]]",timeout:2500})),typeof i=="function"&&i(s)})},use:function(n){try{n._=JSON.parse(n._)}catch{}c.cfg=n}},c={helper:o,plugins:{},cfg:{},get:function(){return c.cfg!=null&&c.cfg._!==void 0?c.cfg._:c.cfg},registerPlugin:function(n,t){t==null?t=n.types:n.types=t,typeof n.use=="function"&&n.use.call(c);for(let e=0;e<t.length;e+=1){const i=t[e].toLowerCase();c.plugins[i]==null&&(c.plugins[i]=n)}},set:function(n,t,e,i,s){s==null&&(s=!0),o.whenReady(function(){o.use(t),o.initFields(e||"form"),o.persistSettings(n,t,s,i)})},sync:function(n,t,e){socket.emit("admin.settings.get",{hash:n},function(i,s){i?typeof e=="function"&&e(i):o.whenReady(function(){o.use(s),o.initFields(t||"form"),typeof e=="function"&&e()})})},persist:function(n,t,e,i){const s=[],a=$("[data-key]",t||"form").toArray();i==null&&(i=!0);for(let f=0;f<a.length;f+=1){const r=$(a[f]),g=o.readValue(r);let u=c.get();const C=r.data("key").split("."),D=C[C.length-1];if(C.length>1)for(let v=0;v<C.length-1;v+=1){const E=C[v];E&&u!=null&&(u=u[E])}u!=null?g!=null?u[D]=g:delete u[D]:s.push(r.data("key"))}s.length&&p.alert({title:"Attributes Not Saved",message:"'"+s.join(", ")+"' could not be saved. Please contact the plugin-author!",type:"danger",timeout:5e3}),o.persistSettings(n,c.cfg,i,e)},load:function(n,t,e){e=e||function(){};const i=t.attr("data-socket-get");socket.emit(i||"admin.settings.get",{hash:n},function(s,a){if(s)return e(s);$(t).find("select[multiple]").each(function(r,g){const u=$(g).attr("name");if(u&&a.hasOwnProperty(u))try{a[u]=JSON.parse(a[u])}catch{}}),ajaxify.data[i?n:"settings"]=a,o.whenReady(function(){$(t).find("[data-sorted-list]").each(function(r,g){d(g,"get").call(c,$(g),n)})}),$(t).deserialize(a),k.fire("action:admin.settingsLoaded"),$(t).on("change","input, select, textarea",function(){app.flags=app.flags||{},app.flags._unsaved=!0});const f=document.getElementById("save");f&&l.e(42441).then(function(){var r=[l(42441)];(function(g){g.bind("ctrl+s",function(u){f.click(),u.preventDefault()})}).apply(null,r)}).catch(l.oe),e(null,a)})},save:function(n,t,e){t=$(t);const i=t.get(0).elements;if(c.check(i)&&t.length){const a=o.serializeForm(t);o.whenReady(function(){const r=t.find("[data-sorted-list]");r.length&&r.each((g,u)=>{d(u,"set").call(c,$(u),a)})});const f=t.attr("data-socket-set");socket.emit(f||"admin.settings.set",{hash:n,values:a},function(r){if(app.flags._unsaved=!1,ajaxify.data[f?n:"settings"]=a,typeof e=="function")e(r);else if(r)p.alert({title:"[[admin/admin:changes-not-saved]]",message:`[[admin/admin:changes-not-saved-message, ${r.message}]]`,type:"error",timeout:2500});else{const g=document.getElementById("save");g.classList.toggle("saved",!0),setTimeout(()=>{g.classList.toggle("saved",!1)},1500)}})}},check:function(n){const t=e=>{const i=e.target.closest(".form-group");i&&i.classList.add("has-error"),e.target.removeEventListener("invalid",t)};return Array.prototype.map.call(n,e=>{const i=e.closest(".form-group");return i&&i.classList.remove("has-error"),e.addEventListener("invalid",t),e.reportValidity()}).every(Boolean)}},o.registerReadyJobs(1),Promise.all([l.e(66177),l.e(62526),l.e(26069)]).then(function(){var n=[l(16631),l(73143),l(7448),l(15101),l(846),l(88839),l(53411),l(66370)];(function(){for(let t=0;t<arguments.length;t+=1)c.registerPlugin(arguments[t]);o.beforeReadyJobsDecreased()}).apply(null,n)}).catch(l.oe),c}.apply(S,h),m!==void 0&&(R.exports=m)},22568:(R,S,l)=>{var h,m,k;(function(p){m=[l(20648)],h=p,k=typeof h=="function"?h.apply(S,m):h,k!==void 0&&(R.exports=k)})(function(p){const c=p("[^\\p{L}\\s\\d\\-_]","g"),A=/[^\w\s\d\-_]/g,y=/^\s+|\s+$/g,o=/\s+/g,d=/-+/g,n=/-$/g,t=/^-/g,e=/^[\w\d\s.,\-@]+$/;return function(s,a){return s?(s=String(s).replace(y,""),e.test(s)?s=s.replace(A,"-"):s=p.replace(s,c,"-"),s=a?s:s.toLocaleLowerCase(),s=s.replace(o,"-"),s=s.replace(d,"-"),s=s.replace(n,""),s=s.replace(t,""),s):""}})}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.