diff --git a/js/CustomLoader.js b/js/CustomLoader.js new file mode 100644 index 000000000..5e20bdc08 --- /dev/null +++ b/js/CustomLoader.js @@ -0,0 +1,46 @@ +// Hi early reviewer! I'm a temporary file and +// will be moved to the Flarum webpack config soon! + +const loaderUtils = require('loader-utils'); + +module.exports = function (source) { + // Custom loader logic + + // Exclude asynchronous modules + if (!source.includes('//Flarum Asynchronous Module')) { + + // Get the type of the module to be exported + const location = loaderUtils.interpolateName(this, '[folder]/', { + context: this.rootContext || this.context, + }); + + // Get the name of module to be exported + const moduleName = loaderUtils.interpolateName(this, '[name]', { + context: this.rootContext || this.context, + }); + + // Don't export low level files + if (/.*\/(admin|forum)$/.test(location) || /(index|app|compat|FlarumRegistry)$/.test(moduleName)) { + return source; + } + + let addition = ""; + + // Find the export names + const matches = [...source.matchAll(/export\s+?(?:default\s?|function|abstract\s?|class)+?\s([^(\s<;]*)/gm)]; + matches.map(match => { + let name = match[1] + + if (!name || name === 'interface') { + return; + } + + // Add code at the end of the file to add the file to registry + addition += `\nwindow.flreg.add('${location}${name}', ${name})` + }); + + return source + addition; + } else { + return source; + } +} diff --git a/js/admin.js b/js/admin.js index fd107337a..fb19aeec4 100644 --- a/js/admin.js +++ b/js/admin.js @@ -7,5 +7,7 @@ * file that was distributed with this source code. */ +flarum.exports = []; + export * from './src/common'; export * from './src/admin'; diff --git a/js/dist/admin/flarum-core.js b/js/dist/admin/flarum-core.js index ff4a2f4d9..2d4941230 100644 --- a/js/dist/admin/flarum-core.js +++ b/js/dist/admin/flarum-core.js @@ -1,2 +1,2 @@ -(self.webpackChunkflarum_core=self.webpackChunkflarum_core||[]).push([[703],{5552:(t,n,e)=>{"use strict";e.r(n),e.d(n,{Extend:()=>a.U,app:()=>xt,compat:()=>Et});var a=e(2633),s=e(3349),i=e(1788),r=e(6156),o=e(6366),l=e(7037),p=e(1698),c=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.view=function(){return m("ul",{className:"Header-controls"},(0,p.Z)(this.items().toArray()))},e.config=function(t,n){n.retain=!0},e.items=function(){return new l.Z},n}(o.Z),u=e(7971),d=e(2122),h=e(6149),f=e(3131),g=e(8777),b=e(5462),v=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t),n.initAttrs=function(n){t.initAttrs.call(this,n),n.className="SessionDropdown",n.buttonClassName="Button Button--user Button--flat",n.menuClassName="Dropdown-menu--right"};var e=n.prototype;return e.view=function(n){return t.prototype.view.call(this,(0,d.Z)({},n,{children:this.items().toArray()}))},e.getButtonContent=function(){var t=app.session.user;return[(0,h.Z)(t)," ",m("span",{className:"Button-label"},(0,f.Z)(t))]},e.items=function(){var t=new l.Z;return t.add("logOut",b.Z.component({icon:"fas fa-sign-out-alt",onclick:app.session.logout.bind(app.session)},app.translator.trans("core.admin.header.log_out_button")),-100),t},n}(g.Z),_=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.view=function(){return m("ul",{className:"Header-controls"},(0,p.Z)(this.items().toArray()))},e.items=function(){var t=new l.Z;return t.add("help",m(u.Z,{href:"https://docs.flarum.org/troubleshoot.html",icon:"fas fa-question-circle",external:!0,target:"_blank"},app.translator.trans("core.admin.header.get_help"))),t.add("session",v.component()),t},n}(o.Z),y=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.view=function(){return m("div",{className:"DashboardWidget Widget "+this.className()},this.content())},e.className=function(){return""},e.content=function(){return[]},n}(o.Z),x=e(8292),Z=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"LoadingModal Modal--small"},e.title=function(){return app.translator.trans("core.admin.loading.title")},e.content=function(){return""},n}(x.Z);(0,r.Z)(Z,"isDismissible",!1);var N=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"StatusWidget"},e.content=function(){return m("ul",null,(0,p.Z)(this.items().toArray()))},e.items=function(){var t=new l.Z;return t.add("tools",m(g.Z,{label:app.translator.trans("core.admin.dashboard.tools_button"),icon:"fas fa-cog",buttonClassName:"Button",menuClassName:"Dropdown-menu--right"},m(b.Z,{onclick:this.handleClearCache.bind(this)},app.translator.trans("core.admin.dashboard.clear_cache_button")))),t.add("version-flarum",[m("strong",null,"Flarum"),m("br",null),app.forum.attribute("version")]),t.add("version-php",[m("strong",null,"PHP"),m("br",null),app.data.phpVersion]),t.add("version-mysql",[m("strong",null,"MySQL"),m("br",null),app.data.mysqlVersion]),t},e.handleClearCache=function(t){app.modal.show(Z),app.request({method:"DELETE",url:app.forum.attribute("apiUrl")+"/cache"}).then((function(){return window.location.reload()}))},n}(y);function w(t){return JSON.parse(app.data.settings.extensions_enabled).includes(t)}function E(){var t={};return Object.keys(app.data.extensions).map((function(n){var e=app.data.extensions[n],a=e.extra["flarum-extension"].category;e.extra["flarum-locale"]&&(a="language"),a in app.extensionCategories?(t[a]=t[a]||[],t[a].push(e)):(t.feature=t.feature||[],t.feature.push(e))})),t}var I=e(9236),P=e(5052),D=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.categorizedExtensions=E()},e.className=function(){return"ExtensionsWidget"},e.content=function(){var t=this,n=app.extensionCategories;return m("div",{className:"ExtensionsWidget-list"},Object.keys(n).map((function(n){return t.categorizedExtensions[n]?t.extensionCategory(n):""})))},e.extensionCategory=function(t){var n=this;return m("div",{className:"ExtensionList-Category"},m("h4",{className:"ExtensionList-Label"},app.translator.trans("core.admin.nav.categories."+t)),m("ul",{className:"ExtensionList"},this.categorizedExtensions[t].map((function(t){return n.extensionWidget(t)}))))},e.extensionWidget=function(t){return m("li",{className:"ExtensionListItem "+(w(t.id)?"":"disabled")},m(I.Z,{href:app.route("extension",{id:t.id})},m("div",{className:"ExtensionListItem-content"},m("span",{className:"ExtensionListItem-icon ExtensionIcon",style:t.icon},t.icon?(0,P.Z)(t.icon.name):""),m("span",{className:"ExtensionListItem-title"},t.extra["flarum-extension"].title))))},n}(y),C=e(9756),S=e(3340),k=e(4435),B=e(8112),T=e(1749),A=e(9015);function M(t){var n=JSON.parse(JSON.stringify(app.data.settings));return(0,d.Z)(app.data.settings,t),app.request({method:"POST",url:app.forum.attribute("apiUrl")+"/settings",body:t}).catch((function(t){throw app.data.settings=n,t}))}var O=function(t){function n(){return t.apply(this,arguments)||this}return(0,i.Z)(n,t),n.prototype.view=function(t){return[m("div",{className:(0,T.Z)(["AdminHeader",this.attrs.className])},m("div",{className:"container"},m("h2",null,(0,P.Z)(this.attrs.icon),t.children),m("div",{className:"AdminHeader-description"},this.attrs.description)))]},n}(o.Z),G=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.settings={},this.loading=!1},e.view=function(){var t=(0,T.Z)(["AdminPage",this.headerInfo().className]);return m("div",{className:t},this.header(),m("div",{className:"container"},this.content()))},e.content=function(){return""},e.submitButton=function(){return m(b.Z,{onclick:this.saveSettings.bind(this),className:"Button Button--primary",loading:this.loading,disabled:!this.isChanged()},app.translator.trans("core.admin.settings.submit_button"))},e.header=function(){var t=this.headerInfo();return m(O,{icon:t.icon,description:t.description,className:t.className+"-header"},t.title)},e.headerInfo=function(){return{className:"",icon:"",title:"",description:""}},e.buildSettingComponent=function(t){if("function"==typeof t)return t.call(this);var n=t.setting,e=t.help,a=(0,C.Z)(t,["setting","help"]);delete a.help;var s=this.setting([n])();return["bool","checkbox","switch","boolean"].includes(a.type)?m("div",{className:"Form-group"},m(k.Z,(0,d.Z)({state:!!s&&"0"!==s,onchange:this.settings[n]},a),a.label),m("div",{className:"helpText"},e)):["select","dropdown","selectdropdown"].includes(a.type)?m("div",{className:"Form-group"},m("label",null,a.label),m("div",{className:"helpText"},e),m(B.Z,(0,d.Z)({value:s||a.default,options:a.options,buttonClassName:"Button",onchange:this.settings[n]},a))):(a.className=(0,T.Z)(["FormControl",a.className]),m("div",{className:"Form-group"},a.label?m("label",null,a.label):"",m("div",{className:"helpText"},e),m("input",(0,d.Z)({type:a.type,bidi:this.setting(n)},a))))},e.onsaved=function(){this.loading=!1,app.alerts.show({type:"success"},app.translator.trans("core.admin.settings.saved_message"))},e.setting=function(t,n){return void 0===n&&(n=""),this.settings[t]=this.settings[t]||(0,A.Z)(app.data.settings[t]||n),this.settings[t]},e.dirty=function(){var t=this,n={};return Object.keys(this.settings).forEach((function(e){var a=t.settings[e]();a!==app.data.settings[e]&&(n[e]=a)})),n},e.isChanged=function(){return Object.keys(this.dirty()).length},e.saveSettings=function(t){return t.preventDefault(),app.alerts.clear(),this.loading=!0,M(this.dirty()).then(this.onsaved.bind(this))},n}(S.Z),F=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.headerInfo=function(){return{className:"DashboardPage",icon:"fas fa-chart-bar",title:app.translator.trans("core.admin.dashboard.title"),description:app.translator.trans("core.admin.dashboard.description")}},e.content=function(){return this.availableWidgets().toArray()},e.availableWidgets=function(){var t=new l.Z;return t.add("status",m(N,null),30),t.add("extensions",m(D,null),10),t},n}(G),U=e(9226),H=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){var e=this;t.prototype.oninit.call(this,n),this.localeOptions={};var a=app.data.locales;for(var s in a)this.localeOptions[s]=a[s]+" ("+s+")";this.displayNameOptions={},app.data.displayNameDrivers.forEach((function(t){this.displayNameOptions[t]=t}),this),this.slugDriverOptions={},Object.keys(app.data.slugDrivers).forEach((function(t){e.slugDriverOptions[t]={},app.data.slugDrivers[t].forEach((function(n){e.slugDriverOptions[t][n]=n}))}))},e.headerInfo=function(){return{className:"BasicsPage",icon:"fas fa-pencil-alt",title:app.translator.trans("core.admin.basics.title"),description:app.translator.trans("core.admin.basics.description")}},e.content=function(){var t=this;return[m("div",{className:"Form"},this.buildSettingComponent({type:"text",setting:"forum_title",label:app.translator.trans("core.admin.basics.forum_title_heading")}),this.buildSettingComponent({type:"text",setting:"forum_description",label:app.translator.trans("core.admin.basics.forum_description_heading"),help:app.translator.trans("core.admin.basics.forum_description_text")}),Object.keys(this.localeOptions).length>1?[this.buildSettingComponent({type:"select",setting:"default_locale",options:this.localeOptions,label:app.translator.trans("core.admin.basics.default_language_heading")}),this.buildSettingComponent({type:"switch",setting:"show_language_selector",label:app.translator.trans("core.admin.basics.show_language_selector_label")})]:"",m(U.Z,{className:"BasicsPage-homePage Form-group",label:app.translator.trans("core.admin.basics.home_page_heading")},m("div",{className:"helpText"},app.translator.trans("core.admin.basics.home_page_text")),this.homePageItems().toArray().map((function(n){var e=n.path,a=n.label;return m("label",{className:"checkbox"},m("input",{type:"radio",name:"homePage",value:e,bidi:t.setting("default_route")}),a)}))),m("div",{className:"Form-group BasicsPage-welcomeBanner-input"},m("label",null,app.translator.trans("core.admin.basics.welcome_banner_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.basics.welcome_banner_text")),m("input",{type:"text",className:"FormControl",bidi:this.setting("welcome_title")}),m("textarea",{className:"FormControl",bidi:this.setting("welcome_message")})),Object.keys(this.displayNameOptions).length>1?this.buildSettingComponent({type:"select",setting:"display_name_driver",options:this.displayNameOptions,label:app.translator.trans("core.admin.basics.display_name_heading"),help:app.translator.trans("core.admin.basics.display_name_text")}):"",Object.keys(this.slugDriverOptions).map((function(n){var e=t.slugDriverOptions[n];if(Object.keys(e).length>1)return t.buildSettingComponent({type:"select",setting:"slug_driver_"+n,options:e,label:app.translator.trans("core.admin.basics.slug_driver_heading",{model:n}),help:app.translator.trans("core.admin.basics.slug_driver_text",{model:n})})})),this.submitButton())]},e.homePageItems=function(){var t=new l.Z;return t.add("allDiscussions",{path:"/all",label:app.translator.trans("core.admin.basics.all_discussions_label")}),t},n}(G),L=e(512),R=e(7262),j=e(442),q=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.group=this.attrs.group||app.store.createRecord("groups"),this.nameSingular=(0,A.Z)(this.group.nameSingular()||""),this.namePlural=(0,A.Z)(this.group.namePlural()||""),this.icon=(0,A.Z)(this.group.icon()||""),this.color=(0,A.Z)(this.group.color()||""),this.isHidden=(0,A.Z)(this.group.isHidden()||!1)},e.className=function(){return"EditGroupModal Modal--small"},e.title=function(){return[this.color()||this.icon()?R.Z.component({icon:this.icon(),style:{backgroundColor:this.color()}}):""," ",this.namePlural()||app.translator.trans("core.admin.edit_group.title")]},e.content=function(){return m("div",{className:"Modal-body"},m("div",{className:"Form"},this.fields().toArray()))},e.fields=function(){var t=new l.Z;return t.add("name",m("div",{className:"Form-group"},m("label",null,app.translator.trans("core.admin.edit_group.name_label")),m("div",{className:"EditGroupModal-name-input"},m("input",{className:"FormControl",placeholder:app.translator.trans("core.admin.edit_group.singular_placeholder"),bidi:this.nameSingular}),m("input",{className:"FormControl",placeholder:app.translator.trans("core.admin.edit_group.plural_placeholder"),bidi:this.namePlural}))),30),t.add("color",m("div",{className:"Form-group"},m("label",null,app.translator.trans("core.admin.edit_group.color_label")),m("input",{className:"FormControl",placeholder:"#aaaaaa",bidi:this.color})),20),t.add("icon",m("div",{className:"Form-group"},m("label",null,app.translator.trans("core.admin.edit_group.icon_label")),m("div",{className:"helpText"},app.translator.trans("core.admin.edit_group.icon_text",{a:m("a",{href:"https://fontawesome.com/icons?m=free",tabindex:"-1"})})),m("input",{className:"FormControl",placeholder:"fas fa-bolt",bidi:this.icon})),10),t.add("hidden",m("div",{className:"Form-group"},k.Z.component({state:!!Number(this.isHidden()),onchange:this.isHidden},app.translator.trans("core.admin.edit_group.hide_label"))),10),t.add("submit",m("div",{className:"Form-group"},b.Z.component({type:"submit",className:"Button Button--primary EditGroupModal-save",loading:this.loading},app.translator.trans("core.admin.edit_group.submit_button")),this.group.exists&&this.group.id()!==j.Z.ADMINISTRATOR_ID?m("button",{type:"button",className:"Button EditGroupModal-delete",onclick:this.deleteGroup.bind(this)},app.translator.trans("core.admin.edit_group.delete_button")):""),-10),t},e.submitData=function(){return{nameSingular:this.nameSingular(),namePlural:this.namePlural(),color:this.color(),icon:this.icon(),isHidden:this.isHidden()}},e.onsubmit=function(t){var n=this;t.preventDefault(),this.loading=!0,this.group.save(this.submitData(),{errorHandler:this.onerror.bind(this)}).then(this.hide.bind(this)).catch((function(){n.loading=!1,m.redraw()}))},e.deleteGroup=function(){confirm(app.translator.trans("core.admin.edit_group.delete_confirmation"))&&(this.group.delete().then((function(){return m.redraw()})),this.hide())},n}(x.Z),W=e(2939);function z(t){var n=app.store.getById("groups",t);return n?L.Z.component({group:n,label:null}):""}function V(t,n){return app.getRequiredPermissions(n).forEach((function(n){var e=app.data.permissions[n]||[];-1!==e.indexOf(j.Z.GUEST_ID)||(t=-1!==e.indexOf(j.Z.MEMBER_ID)?t.filter((function(t){return t!==j.Z.GUEST_ID})):-1!==t.indexOf(j.Z.MEMBER_ID)?e:e.filter((function(n){return-1!==t.indexOf(n)}))),t=V(t,n)})),t}var J=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t),n.initAttrs=function(n){t.initAttrs.call(this,n),n.className="PermissionDropdown",n.buttonClassName="Button Button--text"};var e=n.prototype;return e.view=function(n){var e=this,a=[],s=app.data.permissions[this.attrs.permission]||[],i=-1!==(s=V(s,this.attrs.permission)).indexOf(j.Z.GUEST_ID),r=-1!==s.indexOf(j.Z.MEMBER_ID),o=app.store.getById("groups",j.Z.ADMINISTRATOR_ID);return this.attrs.label=i?R.Z.component({icon:"fas fa-globe"}):r?R.Z.component({icon:"fas fa-user"}):[z(j.Z.ADMINISTRATOR_ID),s.map(z)],this.showing&&(this.attrs.allowGuest&&a.push(b.Z.component({icon:!i||"fas fa-check",onclick:function(){return e.save([j.Z.GUEST_ID])},disabled:this.isGroupDisabled(j.Z.GUEST_ID)},[R.Z.component({icon:"fas fa-globe"})," ",app.translator.trans("core.admin.permissions_controls.everyone_button")])),a.push(b.Z.component({icon:!r||"fas fa-check",onclick:function(){return e.save([j.Z.MEMBER_ID])},disabled:this.isGroupDisabled(j.Z.MEMBER_ID)},[R.Z.component({icon:"fas fa-user"})," ",app.translator.trans("core.admin.permissions_controls.members_button")]),W.Z.component(),b.Z.component({icon:!(!i&&!r)||"fas fa-check",disabled:!i&&!r,onclick:function(t){t.shiftKey&&t.stopPropagation(),e.save([])}},[z(o.id())," ",o.namePlural()])),[].push.apply(a,app.store.all("groups").filter((function(t){return-1===[j.Z.ADMINISTRATOR_ID,j.Z.GUEST_ID,j.Z.MEMBER_ID].indexOf(t.id())})).map((function(t){return b.Z.component({icon:-1===s.indexOf(t.id())||"fas fa-check",onclick:function(n){n.shiftKey&&n.stopPropagation(),e.toggle(t.id())},disabled:e.isGroupDisabled(t.id())&&e.isGroupDisabled(j.Z.MEMBER_ID)&&e.isGroupDisabled(j.Z.GUEST_ID)},[z(t.id())," ",t.namePlural()])})))),t.prototype.view.call(this,(0,d.Z)({},n,{children:a}))},e.save=function(t){var n=this.attrs.permission;app.data.permissions[n]=t,app.request({method:"POST",url:app.forum.attribute("apiUrl")+"/permission",body:{permission:n,groupIds:t}})},e.toggle=function(t){var n=this.attrs.permission,e=app.data.permissions[n]||[],a=e.indexOf(t);-1!==a?e.splice(a,1):(e.push(t),e=e.filter((function(t){return-1===[j.Z.GUEST_ID,j.Z.MEMBER_ID].indexOf(t)}))),this.save(e)},e.isGroupDisabled=function(t){return-1===V([t],this.attrs.permission).indexOf(t)},n}(g.Z),K=e(6317),Q=function(t){function n(){return t.apply(this,arguments)||this}return(0,i.Z)(n,t),n.initAttrs=function(n){t.initAttrs.call(this,n),n.className="SettingDropdown",n.buttonClassName="Button Button--text",n.caretIcon="fas fa-caret-down",n.defaultLabel="Custom"},n.prototype.view=function(n){var e=this;return t.prototype.view.call(this,(0,d.Z)({},n,{children:this.attrs.options.map((function(t){var n,a=t.value,s=t.label,i=app.data.settings[e.attrs.key]===a;return b.Z.component({icon:!i||"fas fa-check",onclick:M.bind(e,(n={},n[e.attrs.key]=a,n)),active:i},s)}))}))},n}(K.Z),X=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.view=function(){var t=this.scopeItems().toArray(),n=function(n){return t.map((function(t){return m("td",null,t.render(n))}))};return m("table",{className:"PermissionGrid"},m("thead",null,m("tr",null,m("td",null),t.map((function(t){return m("th",null,t.label," ",t.onremove?b.Z.component({icon:"fas fa-times",className:"Button Button--text PermissionGrid-removeScope",onclick:t.onremove}):"")})),m("th",null,this.scopeControlItems().toArray()))),this.permissionItems().toArray().map((function(t){return m("tbody",null,m("tr",{className:"PermissionGrid-section"},m("th",null,t.label),n(t),m("td",null)),t.children.map((function(t){return m("tr",{className:"PermissionGrid-child"},m("th",null,(0,P.Z)(t.icon),t.label),n(t),m("td",null))})))})))},e.permissionItems=function(){var t=new l.Z;return t.add("view",{label:app.translator.trans("core.admin.permissions.read_heading"),children:this.viewItems().toArray()},100),t.add("start",{label:app.translator.trans("core.admin.permissions.create_heading"),children:this.startItems().toArray()},90),t.add("reply",{label:app.translator.trans("core.admin.permissions.participate_heading"),children:this.replyItems().toArray()},80),t.add("moderate",{label:app.translator.trans("core.admin.permissions.moderate_heading"),children:this.moderateItems().toArray()},70),t},e.viewItems=function(){var t=new l.Z;return t.add("viewDiscussions",{icon:"fas fa-eye",label:app.translator.trans("core.admin.permissions.view_discussions_label"),permission:"viewDiscussions",allowGuest:!0},100),t.add("viewHiddenGroups",{icon:"fas fa-users",label:app.translator.trans("core.admin.permissions.view_hidden_groups_label"),permission:"viewHiddenGroups"},100),t.add("viewUserList",{icon:"fas fa-users",label:app.translator.trans("core.admin.permissions.view_user_list_label"),permission:"viewUserList",allowGuest:!0},100),t.add("signUp",{icon:"fas fa-user-plus",label:app.translator.trans("core.admin.permissions.sign_up_label"),setting:function(){return Q.component({key:"allow_sign_up",options:[{value:"1",label:app.translator.trans("core.admin.permissions_controls.signup_open_button")},{value:"0",label:app.translator.trans("core.admin.permissions_controls.signup_closed_button")}]})}},90),t.add("viewLastSeenAt",{icon:"far fa-clock",label:app.translator.trans("core.admin.permissions.view_last_seen_at_label"),permission:"user.viewLastSeenAt"}),t.merge(app.extensionData.getAllExtensionPermissions("view")),t},e.startItems=function(){var t=new l.Z;return t.add("start",{icon:"fas fa-edit",label:app.translator.trans("core.admin.permissions.start_discussions_label"),permission:"startDiscussion"},100),t.add("allowRenaming",{icon:"fas fa-i-cursor",label:app.translator.trans("core.admin.permissions.allow_renaming_label"),setting:function(){var t=parseInt(app.data.settings.allow_renaming,10);return Q.component({defaultLabel:t?app.translator.transChoice("core.admin.permissions_controls.allow_some_minutes_button",t,{count:t}):app.translator.trans("core.admin.permissions_controls.allow_indefinitely_button"),key:"allow_renaming",options:[{value:"-1",label:app.translator.trans("core.admin.permissions_controls.allow_indefinitely_button")},{value:"10",label:app.translator.trans("core.admin.permissions_controls.allow_ten_minutes_button")},{value:"reply",label:app.translator.trans("core.admin.permissions_controls.allow_until_reply_button")}]})}},90),t.merge(app.extensionData.getAllExtensionPermissions("start")),t},e.replyItems=function(){var t=new l.Z;return t.add("reply",{icon:"fas fa-reply",label:app.translator.trans("core.admin.permissions.reply_to_discussions_label"),permission:"discussion.reply"},100),t.add("allowPostEditing",{icon:"fas fa-pencil-alt",label:app.translator.trans("core.admin.permissions.allow_post_editing_label"),setting:function(){var t=parseInt(app.data.settings.allow_post_editing,10);return Q.component({defaultLabel:t?app.translator.transChoice("core.admin.permissions_controls.allow_some_minutes_button",t,{count:t}):app.translator.trans("core.admin.permissions_controls.allow_indefinitely_button"),key:"allow_post_editing",options:[{value:"-1",label:app.translator.trans("core.admin.permissions_controls.allow_indefinitely_button")},{value:"10",label:app.translator.trans("core.admin.permissions_controls.allow_ten_minutes_button")},{value:"reply",label:app.translator.trans("core.admin.permissions_controls.allow_until_reply_button")}]})}},90),t.merge(app.extensionData.getAllExtensionPermissions("reply")),t},e.moderateItems=function(){var t=new l.Z;return t.add("viewIpsPosts",{icon:"fas fa-bullseye",label:app.translator.trans("core.admin.permissions.view_post_ips_label"),permission:"discussion.viewIpsPosts"},110),t.add("renameDiscussions",{icon:"fas fa-i-cursor",label:app.translator.trans("core.admin.permissions.rename_discussions_label"),permission:"discussion.rename"},100),t.add("hideDiscussions",{icon:"far fa-trash-alt",label:app.translator.trans("core.admin.permissions.delete_discussions_label"),permission:"discussion.hide"},90),t.add("deleteDiscussions",{icon:"fas fa-times",label:app.translator.trans("core.admin.permissions.delete_discussions_forever_label"),permission:"discussion.delete"},80),t.add("postWithoutThrottle",{icon:"fas fa-swimmer",label:app.translator.trans("core.admin.permissions.post_without_throttle_label"),permission:"postWithoutThrottle"},70),t.add("editPosts",{icon:"fas fa-pencil-alt",label:app.translator.trans("core.admin.permissions.edit_posts_label"),permission:"discussion.editPosts"},70),t.add("hidePosts",{icon:"far fa-trash-alt",label:app.translator.trans("core.admin.permissions.delete_posts_label"),permission:"discussion.hidePosts"},60),t.add("deletePosts",{icon:"fas fa-times",label:app.translator.trans("core.admin.permissions.delete_posts_forever_label"),permission:"discussion.deletePosts"},60),t.add("userEditCredentials",{icon:"fas fa-user-cog",label:app.translator.trans("core.admin.permissions.edit_users_credentials_label"),permission:"user.editCredentials"},60),t.add("userEditGroups",{icon:"fas fa-users-cog",label:app.translator.trans("core.admin.permissions.edit_users_groups_label"),permission:"user.editGroups"},60),t.add("userEdit",{icon:"fas fa-address-card",label:app.translator.trans("core.admin.permissions.edit_users_label"),permission:"user.edit"},60),t.merge(app.extensionData.getAllExtensionPermissions("moderate")),t},e.scopeItems=function(){var t=new l.Z;return t.add("global",{label:app.translator.trans("core.admin.permissions.global_heading"),render:function(t){return t.setting?t.setting():t.permission?J.component({permission:t.permission,allowGuest:t.allowGuest}):""}},100),t},e.scopeControlItems=function(){return new l.Z},n}(o.Z),Y=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.headerInfo=function(){return{className:"PermissionsPage",icon:"fas fa-key",title:app.translator.trans("core.admin.permissions.title"),description:app.translator.trans("core.admin.permissions.description")}},e.content=function(){return[m("div",{className:"PermissionsPage-groups"},app.store.all("groups").filter((function(t){return-1===[j.Z.GUEST_ID,j.Z.MEMBER_ID].indexOf(t.id())})).map((function(t){return m("button",{className:"Button Group",onclick:function(){return app.modal.show(q,{group:t})}},L.Z.component({group:t,className:"Group-icon",label:null}),m("span",{className:"Group-name"},t.namePlural()))})),m("button",{className:"Button Group Group--add",onclick:function(){return app.modal.show(q)}},(0,P.Z)("fas fa-plus",{className:"Group-icon"}),m("span",{className:"Group-name"},app.translator.trans("core.admin.permissions.new_group_button")))),m("div",{className:"PermissionsPage-permissions"},X.component())]},n}(G),tt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.settings={},this.loading=!1},e.form=function(){return""},e.content=function(){return m("div",{className:"Modal-body"},m("div",{className:"Form"},this.form(),m("div",{className:"Form-group"},this.submitButton())))},e.submitButton=function(){return m(b.Z,{type:"submit",className:"Button Button--primary",loading:this.loading,disabled:!this.changed()},app.translator.trans("core.admin.settings.submit_button"))},e.setting=function(t,n){return void 0===n&&(n=""),this.settings[t]=this.settings[t]||(0,A.Z)(app.data.settings[t]||n),this.settings[t]},e.dirty=function(){var t=this,n={};return Object.keys(this.settings).forEach((function(e){var a=t.settings[e]();a!==app.data.settings[e]&&(n[e]=a)})),n},e.changed=function(){return Object.keys(this.dirty()).length},e.onsubmit=function(t){t.preventDefault(),this.loading=!0,M(this.dirty()).then(this.onsaved.bind(this),this.loaded.bind(this))},e.onsaved=function(){this.hide()},n}(x.Z),nt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"EditCustomCssModal Modal--large"},e.title=function(){return app.translator.trans("core.admin.edit_css.title")},e.form=function(){return[m("p",null,app.translator.trans("core.admin.edit_css.customize_text",{a:m("a",{href:"https://github.com/flarum/core/tree/master/less",target:"_blank"})})),m("div",{className:"Form-group"},m("textarea",{className:"FormControl",rows:"30",bidi:this.setting("custom_less")}))]},e.onsaved=function(){window.location.reload()},n}(tt),et=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"EditCustomHeaderModal Modal--large"},e.title=function(){return app.translator.trans("core.admin.edit_header.title")},e.form=function(){return[m("p",null,app.translator.trans("core.admin.edit_header.customize_text")),m("div",{className:"Form-group"},m("textarea",{className:"FormControl",rows:"30",bidi:this.setting("custom_header")}))]},e.onsaved=function(){window.location.reload()},n}(tt),at=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"EditCustomFooterModal Modal--large"},e.title=function(){return app.translator.trans("core.admin.edit_footer.title")},e.form=function(){return[m("p",null,app.translator.trans("core.admin.edit_footer.customize_text")),m("div",{className:"Form-group"},m("textarea",{className:"FormControl",rows:"30",bidi:this.setting("custom_footer")}))]},e.onsaved=function(){window.location.reload()},n}(tt),st=function(t){function n(){for(var n,e=arguments.length,a=new Array(e),i=0;i').appendTo("body").hide().click().on("change",(function(n){var e=new FormData;e.append(t.attrs.name,$(n.target)[0].files[0]),t.loading=!0,m.redraw(),app.request({method:"POST",url:t.resourceUrl(),serialize:function(t){return t},body:e}).then(t.success.bind(t),t.failure.bind(t))}))},e.remove=function(){this.loading=!0,m.redraw(),app.request({method:"DELETE",url:this.resourceUrl()}).then(this.success.bind(this),this.failure.bind(this))},e.resourceUrl=function(){return app.forum.attribute("apiUrl")+"/"+this.attrs.name},e.success=function(t){window.location.reload()},e.failure=function(t){this.loading=!1,m.redraw()},n}(b.Z),it=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.headerInfo=function(){return{className:"AppearancePage",icon:"fas fa-paint-brush",title:app.translator.trans("core.admin.appearance.title"),description:app.translator.trans("core.admin.appearance.description")}},e.content=function(){return[m("div",{className:"Form"},m("fieldset",{className:"AppearancePage-colors"},m("legend",null,app.translator.trans("core.admin.appearance.colors_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.colors_text")),m("div",{className:"AppearancePage-colors-input"},this.buildSettingComponent({type:"text",setting:"theme_primary_color",placeholder:"#aaaaaa"}),this.buildSettingComponent({type:"text",setting:"theme_secondary_color",placeholder:"#aaaaaa"})),this.buildSettingComponent({type:"switch",setting:"theme_dark_mode",label:app.translator.trans("core.admin.appearance.dark_mode_label")}),this.buildSettingComponent({type:"switch",setting:"theme_colored_header",label:app.translator.trans("core.admin.appearance.colored_header_label")}),this.submitButton())),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.logo_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.logo_text")),m(st,{name:"logo"})),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.favicon_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.favicon_text")),m(st,{name:"favicon"})),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.custom_header_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.custom_header_text")),b.Z.component({className:"Button",onclick:function(){return app.modal.show(et)}},app.translator.trans("core.admin.appearance.edit_header_button"))),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.custom_footer_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.custom_footer_text")),b.Z.component({className:"Button",onclick:function(){return app.modal.show(at)}},app.translator.trans("core.admin.appearance.edit_footer_button"))),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.custom_styles_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.custom_styles_text")),b.Z.component({className:"Button",onclick:function(){return app.modal.show(nt)}},app.translator.trans("core.admin.appearance.edit_css_button")))]},e.onsaved=function(){window.location.reload()},e.saveSettings=function(n){n.preventDefault();var e=/^#[0-9a-f]{3}([0-9a-f]{3})?$/i;e.test(this.settings.theme_primary_color())&&e.test(this.settings.theme_secondary_color())?t.prototype.saveSettings.call(this,n):alert(app.translator.trans("core.admin.appearance.enter_hex_message"))},n}(G),rt=e(6150),ot=e(2232),lt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.sendingTest=!1,this.refresh()},e.headerInfo=function(){return{className:"MailPage",icon:"fas fa-envelope",title:app.translator.trans("core.admin.email.title"),description:app.translator.trans("core.admin.email.description")}},e.refresh=function(){var t=this;this.loading=!0,this.status={sending:!1,errors:{}},app.request({method:"GET",url:app.forum.attribute("apiUrl")+"/mail/settings"}).then((function(n){t.driverFields=n.data.attributes.fields,t.status.sending=n.data.attributes.sending,t.status.errors=n.data.attributes.errors,t.loading=!1,m.redraw()}))},e.content=function(){var t=this;if(this.loading)return m(ot.Z,null);var n=this.driverFields[this.setting("mail_driver")()],e=Object.keys(n);return m("div",{className:"Form"},this.buildSettingComponent({type:"text",setting:"mail_from",label:app.translator.trans("core.admin.email.addresses_heading"),className:"MailPage-MailSettings"}),this.buildSettingComponent({type:"select",setting:"mail_driver",options:Object.keys(this.driverFields).reduce((function(t,n){var e;return(0,d.Z)({},t,((e={})[n]=n,e))}),{}),label:app.translator.trans("core.admin.email.driver_heading"),className:"MailPage-MailSettings"}),this.status.sending||rt.Z.component({dismissible:!1},app.translator.trans("core.admin.email.not_sending_message")),e.length>0&&m(U.Z,{label:app.translator.trans("core.admin.email."+this.setting("mail_driver")()+"_heading"),className:"MailPage-MailSettings"},m("div",{className:"MailPage-MailSettings-input"},e.map((function(e){var a=n[e];return[t.buildSettingComponent({type:"string"==typeof t.setting(e)()?"text":"select",label:app.translator.trans("core.admin.email."+e+"_label"),setting:e,options:a}),t.status.errors[e]&&m("p",{className:"ValidationError"},t.status.errors[e])]})))),this.submitButton(),m(U.Z,{label:app.translator.trans("core.admin.email.send_test_mail_heading"),className:"MailPage-MailSettings"},m("div",{className:"helpText"},app.translator.trans("core.admin.email.send_test_mail_text",{email:app.session.user.email()})),b.Z.component({className:"Button Button--primary",disabled:this.sendingTest||this.isChanged(),onclick:function(){return t.sendTestEmail()}},app.translator.trans("core.admin.email.send_test_mail_button"))))},e.sendTestEmail=function(){var t=this;this.saving||this.sendingTest||(this.sendingTest=!0,app.alerts.dismiss(this.testEmailSuccessAlert),app.request({method:"POST",url:app.forum.attribute("apiUrl")+"/mail/test"}).then((function(n){t.sendingTest=!1,t.testEmailSuccessAlert=app.alerts.show({type:"success"},app.translator.trans("core.admin.email.send_test_mail_success"))})).catch((function(n){throw t.sendingTest=!1,m.redraw(),n})))},e.saveSettings=function(n){t.prototype.saveSettings.call(this,n).then(this.refresh())},n}(G),pt=e(5589),ct=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.extensionId=this.attrs.extensionId},e.permissionItems=function(){var n=t.prototype.permissionItems.call(this);return n.items=Object.entries(n.items).filter((function(t){return t[0],t[1].content.children.length>0})).reduce((function(t,n){var e=n[0],a=n[1];return t[e]=a,t}),{}),n},e.viewItems=function(){return app.extensionData.getExtensionPermissions(this.extensionId,"view")||new l.Z},e.startItems=function(){return app.extensionData.getExtensionPermissions(this.extensionId,"start")||new l.Z},e.replyItems=function(){return app.extensionData.getExtensionPermissions(this.extensionId,"reply")||new l.Z},e.moderateItems=function(){return app.extensionData.getExtensionPermissions(this.extensionId,"moderate")||new l.Z},e.scopeControlItems=function(){var t=new l.Z;return t.add("configureScopes",m(b.Z,{className:"Button Button--text",onclick:function(){return m.route.set(app.route("permissions"))}},app.translator.trans("core.admin.extension.configure_scopes"))),t},n}(X),ut=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){if(t.prototype.oninit.call(this,n),this.extension=app.data.extensions[this.attrs.id],this.changingState=!1,this.infoFields={discuss:"fas fa-comment-alt",documentation:"fas fa-book",support:"fas fa-life-ring",website:"fas fa-link",donate:"fas fa-donate",source:"fas fa-code"},!this.extension)return m.route.set(app.route("dashboard"))},e.className=function(){return this.extension?this.extension.id+"-Page":""},e.view=function(){return this.extension?m("div",{className:"ExtensionPage "+this.className()},this.header(),this.isEnabled()?m("div",{className:"ExtensionPage-body"},this.sections().toArray()):m("div",{className:"container"},m("h3",{className:"ExtensionPage-subHeader"},app.translator.trans("core.admin.extension.enable_to_see")))):null},e.header=function(){var t=this.isEnabled();return[m("div",{className:"ExtensionPage-header"},m("div",{className:"container"},m("div",{className:"ExtensionTitle"},m("span",{className:"ExtensionIcon",style:this.extension.icon},this.extension.icon?(0,P.Z)(this.extension.icon.name):""),m("div",{className:"ExtensionName"},m("h2",null,this.extension.extra["flarum-extension"].title)),m("div",{className:"ExtensionPage-headerTopItems"},m("ul",null,(0,p.Z)(this.topItems().toArray())))),m("div",{className:"helpText"},this.extension.description),m("div",{className:"ExtensionPage-headerItems"},m(k.Z,{state:this.changingState?!t:t,loading:this.changingState,onchange:this.toggle.bind(this,this.extension.id)},t?app.translator.trans("core.admin.extension.enabled"):app.translator.trans("core.admin.extension.disabled")),m("aside",{className:"ExtensionInfo"},m("ul",null,(0,p.Z)(this.infoItems().toArray()))))))]},e.sections=function(){var t=new l.Z;return t.add("content",this.content()),t.add("permissions",[m("div",{className:"ExtensionPage-permissions"},m("div",{className:"ExtensionPage-permissions-header"},m("div",{className:"container"},m("h2",{className:"ExtensionTitle"},app.translator.trans("core.admin.extension.permissions_title")))),m("div",{className:"container"},app.extensionData.extensionHasPermissions(this.extension.id)?ct.component({extensionId:this.extension.id}):m("h3",{className:"ExtensionPage-subHeader"},app.translator.trans("core.admin.extension.no_permissions"))))]),t},e.content=function(){var t=app.extensionData.getSettings(this.extension.id);return m("div",{className:"ExtensionPage-settings"},m("div",{className:"container"},t?m("div",{className:"Form"},t.map(this.buildSettingComponent.bind(this)),m("div",{className:"Form-group"},this.submitButton())):m("h3",{className:"ExtensionPage-subHeader"},app.translator.trans("core.admin.extension.no_settings"))))},e.topItems=function(){var t=this,n=new l.Z;return n.add("version",m("span",{className:"ExtensionVersion"},this.extension.version)),this.isEnabled()||n.add("uninstall",m(b.Z,{icon:"fas fa-trash-alt",className:"Button Button--primary",onclick:function(){confirm(app.translator.trans("core.admin.extension.confirm_uninstall"))&&(app.request({url:app.forum.attribute("apiUrl")+"/extensions/"+t.extension.id,method:"DELETE"}).then((function(){return window.location.reload()})),app.modal.show(Z))}.bind(this)},app.translator.trans("core.admin.extension.uninstall_button"))),n},e.infoItems=function(){var t=this,n=new l.Z,e=this.extension.links;if(e.authors.length){var a=[];e.authors.map((function(t){a.push(m(I.Z,{href:t.link,external:!0,target:"_blank"},t.name))})),n.add("authors",[(0,P.Z)("fas fa-user"),m("span",null,(0,pt.Z)(a))])}return Object.keys(this.infoFields).map((function(a){e[a]&&n.add(a,m(u.Z,{href:e[a],icon:t.infoFields[a],external:!0,target:"_blank"},app.translator.trans("core.admin.extension.info_links."+a)))})),n},e.toggle=function(){var t=this,n=this.isEnabled();this.changingState=!0,app.request({url:app.forum.attribute("apiUrl")+"/extensions/"+this.extension.id,method:"PATCH",body:{enabled:!n},errorHandler:this.onerror.bind(this)}).then((function(){n||localStorage.setItem("enabledExtension",t.extension.id),window.location.reload()})),app.modal.show(Z)},e.isEnabled=function(){return w(this.extension.id)},e.onerror=function(t){if(setTimeout((function(){app.modal.close()}),300),this.changingState=!1,409!==t.status)throw t;var n=t.response.errors[0];app.alerts.show({type:"error"},app.translator.trans("core.lib.error."+n.code+"_message",{extension:n.extension,extensions:n.extensions.join(", ")}))},n}(G),mt=function(t){function n(){return t.apply(this,arguments)||this}return(0,i.Z)(n,t),n.prototype.onmatch=function(n,e,a){return app.extensionData.getPage(n.id)||t.prototype.onmatch.call(this,n,e,a)},n}(e(4965).Z);function dt(t){t.routes={dashboard:{path:"/",component:F},basics:{path:"/basics",component:H},permissions:{path:"/permissions",component:Y},appearance:{path:"/appearance",component:it},mail:{path:"/mail",component:lt},extension:{path:"/extension/:id",component:ut,resolverClass:mt}}}(0,r.Z)(mt,"extension",null);var ht=e(5873),ft=e(7330),gt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.getButtonContent=function(n){var e=t.prototype.getButtonContent.call(this,n),a=app.data.extensions[this.attrs.extensionId],s=this.statusItems(a.id).toArray();return e.unshift(m("span",{className:"ExtensionListItem-icon ExtensionIcon",style:a.icon},a.icon?(0,P.Z)(a.icon.name):"")),e.push(s),e},e.statusItems=function(t){var n=new l.Z;return n.add("enabled",m("span",{class:"ExtensionListItem-Dot "+(w(t)?"enabled":"disabled")})),n},n}(u.Z),bt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.query=(0,A.Z)("")},e.view=function(){return m(K.Z,{className:"AdminNav App-titleControl AdminNav-Main",buttonClassName:"Button"},this.items().toArray().concat(this.extensionItems().toArray()))},e.oncreate=function(n){t.prototype.oncreate.call(this,n),this.scrollToActive()},e.onupdate=function(){this.scrollToActive()},e.scrollToActive=function(){var t=$(".Dropdown-menu").children(".active"),n=$("#admin-navigation"),e=app.previous.type?250:0;t.length>0&&(t[0].offsetTop>n.scrollTop()+n.outerHeight()||t[0].offsetTop+t[0].offsetHeight{"use strict";function a(t,n,e){return void 0===e&&(e=0),(e>0?"...":"")+t.substring(e,e+n)+(t.length>e+n?"...":"")}function s(t){return t.toLowerCase().replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/-$|^-/g,"")}function i(t){var n=t.replace(/(<\/p>|
)/g,"$1  ").replace(/]*>/gi," "),e=$("
").html(n);return e.find(i.removeSelectors.join(",")).remove(),e.text().replace(/\s+/g," ").trim()}function r(t){return t.substr(0,1).toUpperCase()+t.substr(1)}e.r(n),e.d(n,{truncate:()=>a,slug:()=>s,getPlainContent:()=>i,ucfirst:()=>r}),i.removeSelectors=["blockquote","script"]}},t=>{t.O(0,[516,661],(()=>(5552,t(t.s=5552))));var n=t.O();flarum.core=n}]); +(self.webpackChunk_flarum_core=self.webpackChunk_flarum_core||[]).push([[328],{7540:(t,n,e)=>{"use strict";e.r(n),e.d(n,{Extend:()=>a.U,app:()=>yt});var a=e(6920),s=e(3349),i=e(1788),r=e(6156),o=e(8931),l=e(4594),p=e(7473),c=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.view=function(){return m("ul",{className:"Header-controls"},(0,p.Z)(this.items().toArray()))},e.config=function(t,n){n.retain=!0},e.items=function(){return new l.Z},n}(o.Z);window.flreg.add("components/HeaderPrimary",c);var d=e(2558),u=e(2122),h=e(9908),f=e(507),g=e(9657),v=e(2587),b=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t),n.initAttrs=function(n){t.initAttrs.call(this,n),n.className="SessionDropdown",n.buttonClassName="Button Button--user Button--flat",n.menuClassName="Dropdown-menu--right"};var e=n.prototype;return e.view=function(n){return t.prototype.view.call(this,(0,u.Z)({},n,{children:this.items().toArray()}))},e.getButtonContent=function(){var t=app.session.user;return[(0,h.Z)(t)," ",m("span",{className:"Button-label"},(0,f.Z)(t))]},e.items=function(){var t=new l.Z;return t.add("logOut",v.Z.component({icon:"fas fa-sign-out-alt",onclick:app.session.logout.bind(app.session)},app.translator.trans("core.admin.header.log_out_button")),-100),t},n}(g.Z);window.flreg.add("components/SessionDropdown",b);var _=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.view=function(){return m("ul",{className:"Header-controls"},(0,p.Z)(this.items().toArray()))},e.items=function(){var t=new l.Z;return t.add("help",m(d.Z,{href:"https://docs.flarum.org/troubleshoot.html",icon:"fas fa-question-circle",external:!0,target:"_blank"},app.translator.trans("core.admin.header.get_help"))),t.add("session",b.component()),t},n}(o.Z);window.flreg.add("components/HeaderSecondary",_);var w=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.view=function(){return m("div",{className:"DashboardWidget Widget "+this.className()},this.content())},e.className=function(){return""},e.content=function(){return[]},n}(o.Z);window.flreg.add("components/DashboardWidget",w);var y=e(5556),x=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"LoadingModal Modal--small"},e.title=function(){return app.translator.trans("core.admin.loading.title")},e.content=function(){return""},n}(y.Z);(0,r.Z)(x,"isDismissible",!1),window.flreg.add("components/LoadingModal",x);var Z=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"StatusWidget"},e.content=function(){return m("ul",null,(0,p.Z)(this.items().toArray()))},e.items=function(){var t=new l.Z;return t.add("tools",m(g.Z,{label:app.translator.trans("core.admin.dashboard.tools_button"),icon:"fas fa-cog",buttonClassName:"Button",menuClassName:"Dropdown-menu--right"},m(v.Z,{onclick:this.handleClearCache.bind(this)},app.translator.trans("core.admin.dashboard.clear_cache_button")))),t.add("version-flarum",[m("strong",null,"Flarum"),m("br",null),app.forum.attribute("version")]),t.add("version-php",[m("strong",null,"PHP"),m("br",null),app.data.phpVersion]),t.add("version-mysql",[m("strong",null,"MySQL"),m("br",null),app.data.mysqlVersion]),t},e.handleClearCache=function(t){app.modal.show(x),app.request({method:"DELETE",url:app.forum.attribute("apiUrl")+"/cache"}).then((function(){return window.location.reload()}))},n}(w);function N(t){return JSON.parse(app.data.settings.extensions_enabled).includes(t)}function E(){var t={};return Object.keys(app.data.extensions).map((function(n){var e=app.data.extensions[n],a=e.extra["flarum-extension"].category;e.extra["flarum-locale"]&&(a="language"),a in app.extensionCategories?(t[a]=t[a]||[],t[a].push(e)):(t.feature=t.feature||[],t.feature.push(e))})),t}window.flreg.add("components/StatusWidget",Z),window.flreg.add("utils/isExtensionEnabled",N),window.flreg.add("utils/getCategorizedExtensions",E);var I=e(8046),P=e(9100),D=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.categorizedExtensions=E()},e.className=function(){return"ExtensionsWidget"},e.content=function(){var t=this,n=app.extensionCategories;return m("div",{className:"ExtensionsWidget-list"},Object.keys(n).map((function(n){return t.categorizedExtensions[n]?t.extensionCategory(n):""})))},e.extensionCategory=function(t){var n=this;return m("div",{className:"ExtensionList-Category"},m("h4",{className:"ExtensionList-Label"},app.translator.trans("core.admin.nav.categories."+t)),m("ul",{className:"ExtensionList"},this.categorizedExtensions[t].map((function(t){return n.extensionWidget(t)}))))},e.extensionWidget=function(t){return m("li",{className:"ExtensionListItem "+(N(t.id)?"":"disabled")},m(I.Z,{href:app.route("extension",{id:t.id})},m("div",{className:"ExtensionListItem-content"},m("span",{className:"ExtensionListItem-icon ExtensionIcon",style:t.icon},t.icon?(0,P.Z)(t.icon.name):""),m("span",{className:"ExtensionListItem-title"},t.extra["flarum-extension"].title))))},n}(w);window.flreg.add("components/ExtensionsWidget",D);var S=e(9756),C=e(453),k=e(833),A=e(1017),B=function(t){function n(){return t.apply(this,arguments)||this}return(0,i.Z)(n,t),n.prototype.view=function(){var t=this.attrs,n=t.options,e=t.onchange,a=t.value,s=t.disabled;return m("span",{className:"Select"},m("select",{className:"Select-input FormControl",onchange:e?(0,A.Z)("value",e.bind(this)):void 0,value:a,disabled:s},Object.keys(n).map((function(t){return m("option",{value:t},n[t])}))),(0,P.Z)("fas fa-sort",{className:"Select-caret"}))},n}(o.Z);window.flreg.add("components/Select",B);var T=e(1650),M=e(1024);function O(t){var n=JSON.parse(JSON.stringify(app.data.settings));return(0,u.Z)(app.data.settings,t),app.request({method:"POST",url:app.forum.attribute("apiUrl")+"/settings",body:t}).catch((function(t){throw app.data.settings=n,t}))}window.flreg.add("utils/saveSettings",O);var G=function(t){function n(){return t.apply(this,arguments)||this}return(0,i.Z)(n,t),n.prototype.view=function(t){return[m("div",{className:(0,T.Z)(["AdminHeader",this.attrs.className])},m("div",{className:"container"},m("h2",null,(0,P.Z)(this.attrs.icon),t.children),m("div",{className:"AdminHeader-description"},this.attrs.description)))]},n}(o.Z);window.flreg.add("components/AdminHeader",G);var F=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.settings={},this.loading=!1},e.view=function(){var t=(0,T.Z)(["AdminPage",this.headerInfo().className]);return m("div",{className:t},this.header(),m("div",{className:"container"},this.content()))},e.content=function(){return""},e.submitButton=function(){return m(v.Z,{onclick:this.saveSettings.bind(this),className:"Button Button--primary",loading:this.loading,disabled:!this.isChanged()},app.translator.trans("core.admin.settings.submit_button"))},e.header=function(){var t=this.headerInfo();return m(G,{icon:t.icon,description:t.description,className:t.className+"-header"},t.title)},e.headerInfo=function(){return{className:"",icon:"",title:"",description:""}},e.buildSettingComponent=function(t){if("function"==typeof t)return t.call(this);var n=t.setting,e=t.help,a=(0,S.Z)(t,["setting","help"]);delete a.help;var s=this.setting([n])();return["bool","checkbox","switch","boolean"].includes(a.type)?m("div",{className:"Form-group"},m(k.Z,(0,u.Z)({state:!!s&&"0"!==s,onchange:this.settings[n]},a),a.label),m("div",{className:"helpText"},e)):["select","dropdown","selectdropdown"].includes(a.type)?m("div",{className:"Form-group"},m("label",null,a.label),m("div",{className:"helpText"},e),m(B,(0,u.Z)({value:s||a.default,options:a.options,buttonClassName:"Button",onchange:this.settings[n]},a))):(a.className=(0,T.Z)(["FormControl",a.className]),m("div",{className:"Form-group"},a.label?m("label",null,a.label):"",m("div",{className:"helpText"},e),m("input",(0,u.Z)({type:a.type,bidi:this.setting(n)},a))))},e.onsaved=function(){this.loading=!1,app.alerts.show({type:"success"},app.translator.trans("core.admin.settings.saved_message"))},e.setting=function(t,n){return void 0===n&&(n=""),this.settings[t]=this.settings[t]||(0,M.Z)(app.data.settings[t]||n),this.settings[t]},e.dirty=function(){var t=this,n={};return Object.keys(this.settings).forEach((function(e){var a=t.settings[e]();a!==app.data.settings[e]&&(n[e]=a)})),n},e.isChanged=function(){return Object.keys(this.dirty()).length},e.saveSettings=function(t){return t.preventDefault(),app.alerts.clear(),this.loading=!0,O(this.dirty()).then(this.onsaved.bind(this))},n}(C.Z);window.flreg.add("components/AdminPage",F);var U=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.headerInfo=function(){return{className:"DashboardPage",icon:"fas fa-chart-bar",title:app.translator.trans("core.admin.dashboard.title"),description:app.translator.trans("core.admin.dashboard.description")}},e.content=function(){return this.availableWidgets().toArray()},e.availableWidgets=function(){var t=new l.Z;return t.add("status",m(Z,null),30),t.add("extensions",m(D,null),10),t},n}(F);window.flreg.add("components/DashboardPage",U);var H=e(4926),L=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){var e=this;t.prototype.oninit.call(this,n),this.localeOptions={};var a=app.data.locales;for(var s in a)this.localeOptions[s]=a[s]+" ("+s+")";this.displayNameOptions={},app.data.displayNameDrivers.forEach((function(t){this.displayNameOptions[t]=t}),this),this.slugDriverOptions={},Object.keys(app.data.slugDrivers).forEach((function(t){e.slugDriverOptions[t]={},app.data.slugDrivers[t].forEach((function(n){e.slugDriverOptions[t][n]=n}))}))},e.headerInfo=function(){return{className:"BasicsPage",icon:"fas fa-pencil-alt",title:app.translator.trans("core.admin.basics.title"),description:app.translator.trans("core.admin.basics.description")}},e.content=function(){var t=this;return[m("div",{className:"Form"},this.buildSettingComponent({type:"text",setting:"forum_title",label:app.translator.trans("core.admin.basics.forum_title_heading")}),this.buildSettingComponent({type:"text",setting:"forum_description",label:app.translator.trans("core.admin.basics.forum_description_heading"),help:app.translator.trans("core.admin.basics.forum_description_text")}),Object.keys(this.localeOptions).length>1?[this.buildSettingComponent({type:"select",setting:"default_locale",options:this.localeOptions,label:app.translator.trans("core.admin.basics.default_language_heading")}),this.buildSettingComponent({type:"switch",setting:"show_language_selector",label:app.translator.trans("core.admin.basics.show_language_selector_label")})]:"",m(H.Z,{className:"BasicsPage-homePage Form-group",label:app.translator.trans("core.admin.basics.home_page_heading")},m("div",{className:"helpText"},app.translator.trans("core.admin.basics.home_page_text")),this.homePageItems().toArray().map((function(n){var e=n.path,a=n.label;return m("label",{className:"checkbox"},m("input",{type:"radio",name:"homePage",value:e,bidi:t.setting("default_route")}),a)}))),m("div",{className:"Form-group BasicsPage-welcomeBanner-input"},m("label",null,app.translator.trans("core.admin.basics.welcome_banner_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.basics.welcome_banner_text")),m("input",{type:"text",className:"FormControl",bidi:this.setting("welcome_title")}),m("textarea",{className:"FormControl",bidi:this.setting("welcome_message")})),Object.keys(this.displayNameOptions).length>1?this.buildSettingComponent({type:"select",setting:"display_name_driver",options:this.displayNameOptions,label:app.translator.trans("core.admin.basics.display_name_heading"),help:app.translator.trans("core.admin.basics.display_name_text")}):"",Object.keys(this.slugDriverOptions).map((function(n){var e=t.slugDriverOptions[n];if(Object.keys(e).length>1)return t.buildSettingComponent({type:"select",setting:"slug_driver_"+n,options:e,label:app.translator.trans("core.admin.basics.slug_driver_heading",{model:n}),help:app.translator.trans("core.admin.basics.slug_driver_text",{model:n})})})),this.submitButton())]},e.homePageItems=function(){var t=new l.Z;return t.add("allDiscussions",{path:"/all",label:app.translator.trans("core.admin.basics.all_discussions_label")}),t},n}(F);window.flreg.add("components/BasicsPage",L);var R=e(7880),j=e(9048),q=e(4032),W=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.group=this.attrs.group||app.store.createRecord("groups"),this.nameSingular=(0,M.Z)(this.group.nameSingular()||""),this.namePlural=(0,M.Z)(this.group.namePlural()||""),this.icon=(0,M.Z)(this.group.icon()||""),this.color=(0,M.Z)(this.group.color()||""),this.isHidden=(0,M.Z)(this.group.isHidden()||!1)},e.className=function(){return"EditGroupModal Modal--small"},e.title=function(){return[this.color()||this.icon()?j.Z.component({icon:this.icon(),style:{backgroundColor:this.color()}}):""," ",this.namePlural()||app.translator.trans("core.admin.edit_group.title")]},e.content=function(){return m("div",{className:"Modal-body"},m("div",{className:"Form"},this.fields().toArray()))},e.fields=function(){var t=new l.Z;return t.add("name",m("div",{className:"Form-group"},m("label",null,app.translator.trans("core.admin.edit_group.name_label")),m("div",{className:"EditGroupModal-name-input"},m("input",{className:"FormControl",placeholder:app.translator.trans("core.admin.edit_group.singular_placeholder"),bidi:this.nameSingular}),m("input",{className:"FormControl",placeholder:app.translator.trans("core.admin.edit_group.plural_placeholder"),bidi:this.namePlural}))),30),t.add("color",m("div",{className:"Form-group"},m("label",null,app.translator.trans("core.admin.edit_group.color_label")),m("input",{className:"FormControl",placeholder:"#aaaaaa",bidi:this.color})),20),t.add("icon",m("div",{className:"Form-group"},m("label",null,app.translator.trans("core.admin.edit_group.icon_label")),m("div",{className:"helpText"},app.translator.trans("core.admin.edit_group.icon_text",{a:m("a",{href:"https://fontawesome.com/icons?m=free",tabindex:"-1"})})),m("input",{className:"FormControl",placeholder:"fas fa-bolt",bidi:this.icon})),10),t.add("hidden",m("div",{className:"Form-group"},k.Z.component({state:!!Number(this.isHidden()),onchange:this.isHidden},app.translator.trans("core.admin.edit_group.hide_label"))),10),t.add("submit",m("div",{className:"Form-group"},v.Z.component({type:"submit",className:"Button Button--primary EditGroupModal-save",loading:this.loading},app.translator.trans("core.admin.edit_group.submit_button")),this.group.exists&&this.group.id()!==q.Z.ADMINISTRATOR_ID?m("button",{type:"button",className:"Button EditGroupModal-delete",onclick:this.deleteGroup.bind(this)},app.translator.trans("core.admin.edit_group.delete_button")):""),-10),t},e.submitData=function(){return{nameSingular:this.nameSingular(),namePlural:this.namePlural(),color:this.color(),icon:this.icon(),isHidden:this.isHidden()}},e.onsubmit=function(t){var n=this;t.preventDefault(),this.loading=!0,this.group.save(this.submitData(),{errorHandler:this.onerror.bind(this)}).then(this.hide.bind(this)).catch((function(){n.loading=!1,m.redraw()}))},e.deleteGroup=function(){confirm(app.translator.trans("core.admin.edit_group.delete_confirmation"))&&(this.group.delete().then((function(){return m.redraw()})),this.hide())},n}(y.Z);window.flreg.add("components/EditGroupModal",W);var z=e(5128);function V(t){var n=app.store.getById("groups",t);return n?R.Z.component({group:n,label:null}):""}function J(t,n){return app.getRequiredPermissions(n).forEach((function(n){var e=app.data.permissions[n]||[];-1!==e.indexOf(q.Z.GUEST_ID)||(t=-1!==e.indexOf(q.Z.MEMBER_ID)?t.filter((function(t){return t!==q.Z.GUEST_ID})):-1!==t.indexOf(q.Z.MEMBER_ID)?e:e.filter((function(n){return-1!==t.indexOf(n)}))),t=J(t,n)})),t}var K=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t),n.initAttrs=function(n){t.initAttrs.call(this,n),n.className="PermissionDropdown",n.buttonClassName="Button Button--text"};var e=n.prototype;return e.view=function(n){var e=this,a=[],s=app.data.permissions[this.attrs.permission]||[],i=-1!==(s=J(s,this.attrs.permission)).indexOf(q.Z.GUEST_ID),r=-1!==s.indexOf(q.Z.MEMBER_ID),o=app.store.getById("groups",q.Z.ADMINISTRATOR_ID);return this.attrs.label=i?j.Z.component({icon:"fas fa-globe"}):r?j.Z.component({icon:"fas fa-user"}):[V(q.Z.ADMINISTRATOR_ID),s.map(V)],this.showing&&(this.attrs.allowGuest&&a.push(v.Z.component({icon:!i||"fas fa-check",onclick:function(){return e.save([q.Z.GUEST_ID])},disabled:this.isGroupDisabled(q.Z.GUEST_ID)},[j.Z.component({icon:"fas fa-globe"})," ",app.translator.trans("core.admin.permissions_controls.everyone_button")])),a.push(v.Z.component({icon:!r||"fas fa-check",onclick:function(){return e.save([q.Z.MEMBER_ID])},disabled:this.isGroupDisabled(q.Z.MEMBER_ID)},[j.Z.component({icon:"fas fa-user"})," ",app.translator.trans("core.admin.permissions_controls.members_button")]),z.Z.component(),v.Z.component({icon:!(!i&&!r)||"fas fa-check",disabled:!i&&!r,onclick:function(t){t.shiftKey&&t.stopPropagation(),e.save([])}},[V(o.id())," ",o.namePlural()])),[].push.apply(a,app.store.all("groups").filter((function(t){return-1===[q.Z.ADMINISTRATOR_ID,q.Z.GUEST_ID,q.Z.MEMBER_ID].indexOf(t.id())})).map((function(t){return v.Z.component({icon:-1===s.indexOf(t.id())||"fas fa-check",onclick:function(n){n.shiftKey&&n.stopPropagation(),e.toggle(t.id())},disabled:e.isGroupDisabled(t.id())&&e.isGroupDisabled(q.Z.MEMBER_ID)&&e.isGroupDisabled(q.Z.GUEST_ID)},[V(t.id())," ",t.namePlural()])})))),t.prototype.view.call(this,(0,u.Z)({},n,{children:a}))},e.save=function(t){var n=this.attrs.permission;app.data.permissions[n]=t,app.request({method:"POST",url:app.forum.attribute("apiUrl")+"/permission",body:{permission:n,groupIds:t}})},e.toggle=function(t){var n=this.attrs.permission,e=app.data.permissions[n]||[],a=e.indexOf(t);-1!==a?e.splice(a,1):(e.push(t),e=e.filter((function(t){return-1===[q.Z.GUEST_ID,q.Z.MEMBER_ID].indexOf(t)}))),this.save(e)},e.isGroupDisabled=function(t){return-1===J([t],this.attrs.permission).indexOf(t)},n}(g.Z);window.flreg.add("components/PermissionDropdown",K);var Q=e(9349),X=function(t){function n(){return t.apply(this,arguments)||this}return(0,i.Z)(n,t),n.initAttrs=function(n){t.initAttrs.call(this,n),n.className="SettingDropdown",n.buttonClassName="Button Button--text",n.caretIcon="fas fa-caret-down",n.defaultLabel="Custom"},n.prototype.view=function(n){var e=this;return t.prototype.view.call(this,(0,u.Z)({},n,{children:this.attrs.options.map((function(t){var n,a=t.value,s=t.label,i=app.data.settings[e.attrs.key]===a;return v.Z.component({icon:!i||"fas fa-check",onclick:O.bind(e,(n={},n[e.attrs.key]=a,n)),active:i},s)}))}))},n}(Q.Z);window.flreg.add("components/SettingDropdown",X);var Y=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.view=function(){var t=this.scopeItems().toArray(),n=function(n){return t.map((function(t){return m("td",null,t.render(n))}))};return m("table",{className:"PermissionGrid"},m("thead",null,m("tr",null,m("td",null),t.map((function(t){return m("th",null,t.label," ",t.onremove?v.Z.component({icon:"fas fa-times",className:"Button Button--text PermissionGrid-removeScope",onclick:t.onremove}):"")})),m("th",null,this.scopeControlItems().toArray()))),this.permissionItems().toArray().map((function(t){return m("tbody",null,m("tr",{className:"PermissionGrid-section"},m("th",null,t.label),n(t),m("td",null)),t.children.map((function(t){return m("tr",{className:"PermissionGrid-child"},m("th",null,(0,P.Z)(t.icon),t.label),n(t),m("td",null))})))})))},e.permissionItems=function(){var t=new l.Z;return t.add("view",{label:app.translator.trans("core.admin.permissions.read_heading"),children:this.viewItems().toArray()},100),t.add("start",{label:app.translator.trans("core.admin.permissions.create_heading"),children:this.startItems().toArray()},90),t.add("reply",{label:app.translator.trans("core.admin.permissions.participate_heading"),children:this.replyItems().toArray()},80),t.add("moderate",{label:app.translator.trans("core.admin.permissions.moderate_heading"),children:this.moderateItems().toArray()},70),t},e.viewItems=function(){var t=new l.Z;return t.add("viewDiscussions",{icon:"fas fa-eye",label:app.translator.trans("core.admin.permissions.view_discussions_label"),permission:"viewDiscussions",allowGuest:!0},100),t.add("viewHiddenGroups",{icon:"fas fa-users",label:app.translator.trans("core.admin.permissions.view_hidden_groups_label"),permission:"viewHiddenGroups"},100),t.add("viewUserList",{icon:"fas fa-users",label:app.translator.trans("core.admin.permissions.view_user_list_label"),permission:"viewUserList",allowGuest:!0},100),t.add("signUp",{icon:"fas fa-user-plus",label:app.translator.trans("core.admin.permissions.sign_up_label"),setting:function(){return X.component({key:"allow_sign_up",options:[{value:"1",label:app.translator.trans("core.admin.permissions_controls.signup_open_button")},{value:"0",label:app.translator.trans("core.admin.permissions_controls.signup_closed_button")}]})}},90),t.add("viewLastSeenAt",{icon:"far fa-clock",label:app.translator.trans("core.admin.permissions.view_last_seen_at_label"),permission:"user.viewLastSeenAt"}),t.merge(app.extensionData.getAllExtensionPermissions("view")),t},e.startItems=function(){var t=new l.Z;return t.add("start",{icon:"fas fa-edit",label:app.translator.trans("core.admin.permissions.start_discussions_label"),permission:"startDiscussion"},100),t.add("allowRenaming",{icon:"fas fa-i-cursor",label:app.translator.trans("core.admin.permissions.allow_renaming_label"),setting:function(){var t=parseInt(app.data.settings.allow_renaming,10);return X.component({defaultLabel:t?app.translator.transChoice("core.admin.permissions_controls.allow_some_minutes_button",t,{count:t}):app.translator.trans("core.admin.permissions_controls.allow_indefinitely_button"),key:"allow_renaming",options:[{value:"-1",label:app.translator.trans("core.admin.permissions_controls.allow_indefinitely_button")},{value:"10",label:app.translator.trans("core.admin.permissions_controls.allow_ten_minutes_button")},{value:"reply",label:app.translator.trans("core.admin.permissions_controls.allow_until_reply_button")}]})}},90),t.merge(app.extensionData.getAllExtensionPermissions("start")),t},e.replyItems=function(){var t=new l.Z;return t.add("reply",{icon:"fas fa-reply",label:app.translator.trans("core.admin.permissions.reply_to_discussions_label"),permission:"discussion.reply"},100),t.add("allowPostEditing",{icon:"fas fa-pencil-alt",label:app.translator.trans("core.admin.permissions.allow_post_editing_label"),setting:function(){var t=parseInt(app.data.settings.allow_post_editing,10);return X.component({defaultLabel:t?app.translator.transChoice("core.admin.permissions_controls.allow_some_minutes_button",t,{count:t}):app.translator.trans("core.admin.permissions_controls.allow_indefinitely_button"),key:"allow_post_editing",options:[{value:"-1",label:app.translator.trans("core.admin.permissions_controls.allow_indefinitely_button")},{value:"10",label:app.translator.trans("core.admin.permissions_controls.allow_ten_minutes_button")},{value:"reply",label:app.translator.trans("core.admin.permissions_controls.allow_until_reply_button")}]})}},90),t.merge(app.extensionData.getAllExtensionPermissions("reply")),t},e.moderateItems=function(){var t=new l.Z;return t.add("viewIpsPosts",{icon:"fas fa-bullseye",label:app.translator.trans("core.admin.permissions.view_post_ips_label"),permission:"discussion.viewIpsPosts"},110),t.add("renameDiscussions",{icon:"fas fa-i-cursor",label:app.translator.trans("core.admin.permissions.rename_discussions_label"),permission:"discussion.rename"},100),t.add("hideDiscussions",{icon:"far fa-trash-alt",label:app.translator.trans("core.admin.permissions.delete_discussions_label"),permission:"discussion.hide"},90),t.add("deleteDiscussions",{icon:"fas fa-times",label:app.translator.trans("core.admin.permissions.delete_discussions_forever_label"),permission:"discussion.delete"},80),t.add("postWithoutThrottle",{icon:"fas fa-swimmer",label:app.translator.trans("core.admin.permissions.post_without_throttle_label"),permission:"postWithoutThrottle"},70),t.add("editPosts",{icon:"fas fa-pencil-alt",label:app.translator.trans("core.admin.permissions.edit_posts_label"),permission:"discussion.editPosts"},70),t.add("hidePosts",{icon:"far fa-trash-alt",label:app.translator.trans("core.admin.permissions.delete_posts_label"),permission:"discussion.hidePosts"},60),t.add("deletePosts",{icon:"fas fa-times",label:app.translator.trans("core.admin.permissions.delete_posts_forever_label"),permission:"discussion.deletePosts"},60),t.add("userEditCredentials",{icon:"fas fa-user-cog",label:app.translator.trans("core.admin.permissions.edit_users_credentials_label"),permission:"user.editCredentials"},60),t.add("userEditGroups",{icon:"fas fa-users-cog",label:app.translator.trans("core.admin.permissions.edit_users_groups_label"),permission:"user.editGroups"},60),t.add("userEdit",{icon:"fas fa-address-card",label:app.translator.trans("core.admin.permissions.edit_users_label"),permission:"user.edit"},60),t.merge(app.extensionData.getAllExtensionPermissions("moderate")),t},e.scopeItems=function(){var t=new l.Z;return t.add("global",{label:app.translator.trans("core.admin.permissions.global_heading"),render:function(t){return t.setting?t.setting():t.permission?K.component({permission:t.permission,allowGuest:t.allowGuest}):""}},100),t},e.scopeControlItems=function(){return new l.Z},n}(o.Z);window.flreg.add("components/PermissionGrid",Y);var tt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.headerInfo=function(){return{className:"PermissionsPage",icon:"fas fa-key",title:app.translator.trans("core.admin.permissions.title"),description:app.translator.trans("core.admin.permissions.description")}},e.content=function(){return[m("div",{className:"PermissionsPage-groups"},app.store.all("groups").filter((function(t){return-1===[q.Z.GUEST_ID,q.Z.MEMBER_ID].indexOf(t.id())})).map((function(t){return m("button",{className:"Button Group",onclick:function(){return app.modal.show(W,{group:t})}},R.Z.component({group:t,className:"Group-icon",label:null}),m("span",{className:"Group-name"},t.namePlural()))})),m("button",{className:"Button Group Group--add",onclick:function(){return app.modal.show(W)}},(0,P.Z)("fas fa-plus",{className:"Group-icon"}),m("span",{className:"Group-name"},app.translator.trans("core.admin.permissions.new_group_button")))),m("div",{className:"PermissionsPage-permissions"},Y.component())]},n}(F);window.flreg.add("components/PermissionsPage",tt);var nt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.settings={},this.loading=!1},e.form=function(){return""},e.content=function(){return m("div",{className:"Modal-body"},m("div",{className:"Form"},this.form(),m("div",{className:"Form-group"},this.submitButton())))},e.submitButton=function(){return m(v.Z,{type:"submit",className:"Button Button--primary",loading:this.loading,disabled:!this.changed()},app.translator.trans("core.admin.settings.submit_button"))},e.setting=function(t,n){return void 0===n&&(n=""),this.settings[t]=this.settings[t]||(0,M.Z)(app.data.settings[t]||n),this.settings[t]},e.dirty=function(){var t=this,n={};return Object.keys(this.settings).forEach((function(e){var a=t.settings[e]();a!==app.data.settings[e]&&(n[e]=a)})),n},e.changed=function(){return Object.keys(this.dirty()).length},e.onsubmit=function(t){t.preventDefault(),this.loading=!0,O(this.dirty()).then(this.onsaved.bind(this),this.loaded.bind(this))},e.onsaved=function(){this.hide()},n}(y.Z);window.flreg.add("components/SettingsModal",nt);var et=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"EditCustomCssModal Modal--large"},e.title=function(){return app.translator.trans("core.admin.edit_css.title")},e.form=function(){return[m("p",null,app.translator.trans("core.admin.edit_css.customize_text",{a:m("a",{href:"https://github.com/flarum/core/tree/master/less",target:"_blank"})})),m("div",{className:"Form-group"},m("textarea",{className:"FormControl",rows:"30",bidi:this.setting("custom_less")}))]},e.onsaved=function(){window.location.reload()},n}(nt);window.flreg.add("components/EditCustomCssModal",et);var at=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"EditCustomHeaderModal Modal--large"},e.title=function(){return app.translator.trans("core.admin.edit_header.title")},e.form=function(){return[m("p",null,app.translator.trans("core.admin.edit_header.customize_text")),m("div",{className:"Form-group"},m("textarea",{className:"FormControl",rows:"30",bidi:this.setting("custom_header")}))]},e.onsaved=function(){window.location.reload()},n}(nt);window.flreg.add("components/EditCustomHeaderModal",at);var st=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.className=function(){return"EditCustomFooterModal Modal--large"},e.title=function(){return app.translator.trans("core.admin.edit_footer.title")},e.form=function(){return[m("p",null,app.translator.trans("core.admin.edit_footer.customize_text")),m("div",{className:"Form-group"},m("textarea",{className:"FormControl",rows:"30",bidi:this.setting("custom_footer")}))]},e.onsaved=function(){window.location.reload()},n}(nt);window.flreg.add("components/EditCustomFooterModal",st);var it=function(t){function n(){for(var n,e=arguments.length,a=new Array(e),i=0;i').appendTo("body").hide().click().on("change",(function(n){var e=new FormData;e.append(t.attrs.name,$(n.target)[0].files[0]),t.loading=!0,m.redraw(),app.request({method:"POST",url:t.resourceUrl(),serialize:function(t){return t},body:e}).then(t.success.bind(t),t.failure.bind(t))}))},e.remove=function(){this.loading=!0,m.redraw(),app.request({method:"DELETE",url:this.resourceUrl()}).then(this.success.bind(this),this.failure.bind(this))},e.resourceUrl=function(){return app.forum.attribute("apiUrl")+"/"+this.attrs.name},e.success=function(t){window.location.reload()},e.failure=function(t){this.loading=!1,m.redraw()},n}(v.Z);window.flreg.add("components/UploadImageButton",it);var rt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.headerInfo=function(){return{className:"AppearancePage",icon:"fas fa-paint-brush",title:app.translator.trans("core.admin.appearance.title"),description:app.translator.trans("core.admin.appearance.description")}},e.content=function(){return[m("div",{className:"Form"},m("fieldset",{className:"AppearancePage-colors"},m("legend",null,app.translator.trans("core.admin.appearance.colors_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.colors_text")),m("div",{className:"AppearancePage-colors-input"},this.buildSettingComponent({type:"text",setting:"theme_primary_color",placeholder:"#aaaaaa"}),this.buildSettingComponent({type:"text",setting:"theme_secondary_color",placeholder:"#aaaaaa"})),this.buildSettingComponent({type:"switch",setting:"theme_dark_mode",label:app.translator.trans("core.admin.appearance.dark_mode_label")}),this.buildSettingComponent({type:"switch",setting:"theme_colored_header",label:app.translator.trans("core.admin.appearance.colored_header_label")}),this.submitButton())),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.logo_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.logo_text")),m(it,{name:"logo"})),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.favicon_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.favicon_text")),m(it,{name:"favicon"})),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.custom_header_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.custom_header_text")),v.Z.component({className:"Button",onclick:function(){return app.modal.show(at)}},app.translator.trans("core.admin.appearance.edit_header_button"))),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.custom_footer_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.custom_footer_text")),v.Z.component({className:"Button",onclick:function(){return app.modal.show(st)}},app.translator.trans("core.admin.appearance.edit_footer_button"))),m("fieldset",null,m("legend",null,app.translator.trans("core.admin.appearance.custom_styles_heading")),m("div",{className:"helpText"},app.translator.trans("core.admin.appearance.custom_styles_text")),v.Z.component({className:"Button",onclick:function(){return app.modal.show(et)}},app.translator.trans("core.admin.appearance.edit_css_button")))]},e.onsaved=function(){window.location.reload()},e.saveSettings=function(n){n.preventDefault();var e=/^#[0-9a-f]{3}([0-9a-f]{3})?$/i;e.test(this.settings.theme_primary_color())&&e.test(this.settings.theme_secondary_color())?t.prototype.saveSettings.call(this,n):alert(app.translator.trans("core.admin.appearance.enter_hex_message"))},n}(F);window.flreg.add("components/AppearancePage",rt);var ot=e(7607),lt=e(8726),pt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.sendingTest=!1,this.refresh()},e.headerInfo=function(){return{className:"MailPage",icon:"fas fa-envelope",title:app.translator.trans("core.admin.email.title"),description:app.translator.trans("core.admin.email.description")}},e.refresh=function(){var t=this;this.loading=!0,this.status={sending:!1,errors:{}},app.request({method:"GET",url:app.forum.attribute("apiUrl")+"/mail/settings"}).then((function(n){t.driverFields=n.data.attributes.fields,t.status.sending=n.data.attributes.sending,t.status.errors=n.data.attributes.errors,t.loading=!1,m.redraw()}))},e.content=function(){var t=this;if(this.loading)return m(lt.Z,null);var n=this.driverFields[this.setting("mail_driver")()],e=Object.keys(n);return m("div",{className:"Form"},this.buildSettingComponent({type:"text",setting:"mail_from",label:app.translator.trans("core.admin.email.addresses_heading"),className:"MailPage-MailSettings"}),this.buildSettingComponent({type:"select",setting:"mail_driver",options:Object.keys(this.driverFields).reduce((function(t,n){var e;return(0,u.Z)({},t,((e={})[n]=n,e))}),{}),label:app.translator.trans("core.admin.email.driver_heading"),className:"MailPage-MailSettings"}),this.status.sending||ot.Z.component({dismissible:!1},app.translator.trans("core.admin.email.not_sending_message")),e.length>0&&m(H.Z,{label:app.translator.trans("core.admin.email."+this.setting("mail_driver")()+"_heading"),className:"MailPage-MailSettings"},m("div",{className:"MailPage-MailSettings-input"},e.map((function(e){var a=n[e];return[t.buildSettingComponent({type:"string"==typeof t.setting(e)()?"text":"select",label:app.translator.trans("core.admin.email."+e+"_label"),setting:e,options:a}),t.status.errors[e]&&m("p",{className:"ValidationError"},t.status.errors[e])]})))),this.submitButton(),m(H.Z,{label:app.translator.trans("core.admin.email.send_test_mail_heading"),className:"MailPage-MailSettings"},m("div",{className:"helpText"},app.translator.trans("core.admin.email.send_test_mail_text",{email:app.session.user.email()})),v.Z.component({className:"Button Button--primary",disabled:this.sendingTest||this.isChanged(),onclick:function(){return t.sendTestEmail()}},app.translator.trans("core.admin.email.send_test_mail_button"))))},e.sendTestEmail=function(){var t=this;this.saving||this.sendingTest||(this.sendingTest=!0,app.alerts.dismiss(this.testEmailSuccessAlert),app.request({method:"POST",url:app.forum.attribute("apiUrl")+"/mail/test"}).then((function(n){t.sendingTest=!1,t.testEmailSuccessAlert=app.alerts.show({type:"success"},app.translator.trans("core.admin.email.send_test_mail_success"))})).catch((function(n){throw t.sendingTest=!1,m.redraw(),n})))},e.saveSettings=function(n){t.prototype.saveSettings.call(this,n).then(this.refresh())},n}(F);function ct(t){if(2===t.length)return app.translator.trans("core.lib.series.two_text",{first:t[0],second:t[1]});if(t.length>=3){var n=t.slice(1,t.length-1).reduce((function(t,n){return t.concat([n,app.translator.trans("core.lib.series.glue_text")])}),[]).slice(0,-1);return app.translator.trans("core.lib.series.three_text",{first:t[0],second:n,third:t[t.length-1]})}return t}window.flreg.add("components/MailPage",pt),window.flreg.add("helpers/punctuateSeries",ct);var dt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.extensionId=this.attrs.extensionId},e.permissionItems=function(){var n=t.prototype.permissionItems.call(this);return n.items=Object.entries(n.items).filter((function(t){return t[0],t[1].content.children.length>0})).reduce((function(t,n){var e=n[0],a=n[1];return t[e]=a,t}),{}),n},e.viewItems=function(){return app.extensionData.getExtensionPermissions(this.extensionId,"view")||new l.Z},e.startItems=function(){return app.extensionData.getExtensionPermissions(this.extensionId,"start")||new l.Z},e.replyItems=function(){return app.extensionData.getExtensionPermissions(this.extensionId,"reply")||new l.Z},e.moderateItems=function(){return app.extensionData.getExtensionPermissions(this.extensionId,"moderate")||new l.Z},e.scopeControlItems=function(){var t=new l.Z;return t.add("configureScopes",m(v.Z,{className:"Button Button--text",onclick:function(){return m.route.set(app.route("permissions"))}},app.translator.trans("core.admin.extension.configure_scopes"))),t},n}(Y);window.flreg.add("components/ExtensionPermissionGrid",dt);var ut=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){if(t.prototype.oninit.call(this,n),this.extension=app.data.extensions[this.attrs.id],this.changingState=!1,this.infoFields={discuss:"fas fa-comment-alt",documentation:"fas fa-book",support:"fas fa-life-ring",website:"fas fa-link",donate:"fas fa-donate",source:"fas fa-code"},!this.extension)return m.route.set(app.route("dashboard"))},e.className=function(){return this.extension?this.extension.id+"-Page":""},e.view=function(){return this.extension?m("div",{className:"ExtensionPage "+this.className()},this.header(),this.isEnabled()?m("div",{className:"ExtensionPage-body"},this.sections().toArray()):m("div",{className:"container"},m("h3",{className:"ExtensionPage-subHeader"},app.translator.trans("core.admin.extension.enable_to_see")))):null},e.header=function(){var t=this.isEnabled();return[m("div",{className:"ExtensionPage-header"},m("div",{className:"container"},m("div",{className:"ExtensionTitle"},m("span",{className:"ExtensionIcon",style:this.extension.icon},this.extension.icon?(0,P.Z)(this.extension.icon.name):""),m("div",{className:"ExtensionName"},m("h2",null,this.extension.extra["flarum-extension"].title)),m("div",{className:"ExtensionPage-headerTopItems"},m("ul",null,(0,p.Z)(this.topItems().toArray())))),m("div",{className:"helpText"},this.extension.description),m("div",{className:"ExtensionPage-headerItems"},m(k.Z,{state:this.changingState?!t:t,loading:this.changingState,onchange:this.toggle.bind(this,this.extension.id)},t?app.translator.trans("core.admin.extension.enabled"):app.translator.trans("core.admin.extension.disabled")),m("aside",{className:"ExtensionInfo"},m("ul",null,(0,p.Z)(this.infoItems().toArray()))))))]},e.sections=function(){var t=new l.Z;return t.add("content",this.content()),t.add("permissions",[m("div",{className:"ExtensionPage-permissions"},m("div",{className:"ExtensionPage-permissions-header"},m("div",{className:"container"},m("h2",{className:"ExtensionTitle"},app.translator.trans("core.admin.extension.permissions_title")))),m("div",{className:"container"},app.extensionData.extensionHasPermissions(this.extension.id)?dt.component({extensionId:this.extension.id}):m("h3",{className:"ExtensionPage-subHeader"},app.translator.trans("core.admin.extension.no_permissions"))))]),t},e.content=function(){var t=app.extensionData.getSettings(this.extension.id);return m("div",{className:"ExtensionPage-settings"},m("div",{className:"container"},t?m("div",{className:"Form"},t.map(this.buildSettingComponent.bind(this)),m("div",{className:"Form-group"},this.submitButton())):m("h3",{className:"ExtensionPage-subHeader"},app.translator.trans("core.admin.extension.no_settings"))))},e.topItems=function(){var t=this,n=new l.Z;return n.add("version",m("span",{className:"ExtensionVersion"},this.extension.version)),this.isEnabled()||n.add("uninstall",m(v.Z,{icon:"fas fa-trash-alt",className:"Button Button--primary",onclick:function(){confirm(app.translator.trans("core.admin.extension.confirm_uninstall"))&&(app.request({url:app.forum.attribute("apiUrl")+"/extensions/"+t.extension.id,method:"DELETE"}).then((function(){return window.location.reload()})),app.modal.show(x))}.bind(this)},app.translator.trans("core.admin.extension.uninstall_button"))),n},e.infoItems=function(){var t=this,n=new l.Z,e=this.extension.links;if(e.authors.length){var a=[];e.authors.map((function(t){a.push(m(I.Z,{href:t.link,external:!0,target:"_blank"},t.name))})),n.add("authors",[(0,P.Z)("fas fa-user"),m("span",null,ct(a))])}return Object.keys(this.infoFields).map((function(a){e[a]&&n.add(a,m(d.Z,{href:e[a],icon:t.infoFields[a],external:!0,target:"_blank"},app.translator.trans("core.admin.extension.info_links."+a)))})),n},e.toggle=function(){var t=this,n=this.isEnabled();this.changingState=!0,app.request({url:app.forum.attribute("apiUrl")+"/extensions/"+this.extension.id,method:"PATCH",body:{enabled:!n},errorHandler:this.onerror.bind(this)}).then((function(){n||localStorage.setItem("enabledExtension",t.extension.id),window.location.reload()})),app.modal.show(x)},e.isEnabled=function(){return N(this.extension.id)},e.onerror=function(t){if(setTimeout((function(){app.modal.close()}),300),this.changingState=!1,409!==t.status)throw t;var n=t.response.errors[0];app.alerts.show({type:"error"},app.translator.trans("core.lib.error."+n.code+"_message",{extension:n.extension,extensions:n.extensions.join(", ")}))},n}(F);window.flreg.add("components/ExtensionPage",ut);var mt=function(t){function n(){return t.apply(this,arguments)||this}return(0,i.Z)(n,t),n.prototype.onmatch=function(n,e,a){return app.extensionData.getPage(n.id)||t.prototype.onmatch.call(this,n,e,a)},n}(e(2231).Z);(0,r.Z)(mt,"extension",null),window.flreg.add("resolvers/ExtensionPageResolver",mt);var ht=e(188),ft=e(4807),gt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.getButtonContent=function(n){var e=t.prototype.getButtonContent.call(this,n),a=app.data.extensions[this.attrs.extensionId],s=this.statusItems(a.id).toArray();return e.unshift(m("span",{className:"ExtensionListItem-icon ExtensionIcon",style:a.icon},a.icon?(0,P.Z)(a.icon.name):"")),e.push(s),e},e.statusItems=function(t){var n=new l.Z;return n.add("enabled",m("span",{class:"ExtensionListItem-Dot "+(N(t)?"enabled":"disabled")})),n},n}(d.Z);window.flreg.add("components/ExtensionLinkButton",gt);var vt=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.oninit=function(n){t.prototype.oninit.call(this,n),this.query=(0,M.Z)("")},e.view=function(){return m(Q.Z,{className:"AdminNav App-titleControl AdminNav-Main",buttonClassName:"Button"},this.items().toArray().concat(this.extensionItems().toArray()))},e.oncreate=function(n){t.prototype.oncreate.call(this,n),this.scrollToActive()},e.onupdate=function(){this.scrollToActive()},e.scrollToActive=function(){var t=$(".Dropdown-menu").children(".active"),n=$("#admin-navigation"),e=app.previous.type?250:0;t.length>0&&(t[0].offsetTop>n.scrollTop()+n.outerHeight()||t[0].offsetTop+t[0].offsetHeight{"use strict";e.d(n,{l:()=>s});var a=e(2122);function s(t,n,e){var s=t[n];t[n]=function(){for(var t=arguments.length,n=new Array(t),a=0;a{"use strict";function a(t){var n=t.replace(/(<\/p>|
)/g,"$1  ").replace(/]*>/gi," "),e=$("
").html(n);return e.find(a.removeSelectors.join(",")).remove(),e.text().replace(/\s+/g," ").trim()}e.d(n,{AH:()=>a}),a.removeSelectors=["blockquote","script"],window.flreg.add("utils/truncate",(function(t,n,e){return void 0===e&&(e=0),(e>0?"...":"")+t.substring(e,e+n)+(t.length>e+n?"...":"")})),window.flreg.add("utils/slug",(function(t){return t.toLowerCase().replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/-$|^-/g,"")})),window.flreg.add("utils/getPlainContent",a),window.flreg.add("utils/ucfirst",(function(t){return t.substr(0,1).toUpperCase()+t.substr(1)}))}},t=>{t.O(0,[358,997],(()=>(7540,t(t.s=7540))));var n=t.O();flarum.core=n}]); //# sourceMappingURL=flarum-core.js.map \ No newline at end of file diff --git a/js/dist/admin/flarum-core.js.map b/js/dist/admin/flarum-core.js.map index 0a80b03e6..8f4c90dcc 100644 --- a/js/dist/admin/flarum-core.js.map +++ b/js/dist/admin/flarum-core.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://@flarum/core/./src/admin/components/HeaderPrimary.js","webpack://@flarum/core/./src/admin/components/SessionDropdown.js","webpack://@flarum/core/./src/admin/components/HeaderSecondary.js","webpack://@flarum/core/./src/admin/components/DashboardWidget.js","webpack://@flarum/core/./src/admin/components/LoadingModal.js","webpack://@flarum/core/./src/admin/components/StatusWidget.js","webpack://@flarum/core/./src/admin/utils/isExtensionEnabled.js","webpack://@flarum/core/./src/admin/utils/getCategorizedExtensions.js","webpack://@flarum/core/./src/admin/components/ExtensionsWidget.js","webpack://@flarum/core/./src/admin/utils/saveSettings.js","webpack://@flarum/core/./src/admin/components/AdminHeader.js","webpack://@flarum/core/./src/admin/components/AdminPage.js","webpack://@flarum/core/./src/admin/components/DashboardPage.js","webpack://@flarum/core/./src/admin/components/BasicsPage.js","webpack://@flarum/core/./src/admin/components/EditGroupModal.js","webpack://@flarum/core/./src/admin/components/PermissionDropdown.js","webpack://@flarum/core/./src/admin/components/SettingDropdown.js","webpack://@flarum/core/./src/admin/components/PermissionGrid.js","webpack://@flarum/core/./src/admin/components/PermissionsPage.js","webpack://@flarum/core/./src/admin/components/SettingsModal.js","webpack://@flarum/core/./src/admin/components/EditCustomCssModal.js","webpack://@flarum/core/./src/admin/components/EditCustomHeaderModal.js","webpack://@flarum/core/./src/admin/components/EditCustomFooterModal.js","webpack://@flarum/core/./src/admin/components/UploadImageButton.js","webpack://@flarum/core/./src/admin/components/AppearancePage.js","webpack://@flarum/core/./src/admin/components/MailPage.js","webpack://@flarum/core/./src/admin/components/ExtensionPermissionGrid.js","webpack://@flarum/core/./src/admin/components/ExtensionPage.js","webpack://@flarum/core/./src/admin/resolvers/ExtensionPageResolver.ts","webpack://@flarum/core/./src/admin/routes.js","webpack://@flarum/core/./src/admin/components/ExtensionLinkButton.js","webpack://@flarum/core/./src/admin/components/AdminNav.js","webpack://@flarum/core/./src/admin/utils/ExtensionData.js","webpack://@flarum/core/./src/admin/AdminApplication.js","webpack://@flarum/core/./src/admin/app.ts","webpack://@flarum/core/./src/admin/compat.js","webpack://@flarum/core/./src/admin/index.js","webpack://@flarum/core/./src/common/utils/string.ts"],"names":["HeaderPrimary","view","className","listItems","this","items","toArray","config","isInitialized","context","retain","ItemList","Component","SessionDropdown","initAttrs","attrs","buttonClassName","menuClassName","vnode","children","getButtonContent","user","app","session","avatar","username","add","Button","icon","onclick","logout","bind","translator","trans","Dropdown","HeaderSecondary","LinkButton","href","external","target","component","DashboardWidget","content","LoadingModal","title","Modal","StatusWidget","label","handleClearCache","forum","attribute","data","phpVersion","mysqlVersion","e","modal","show","request","method","url","then","window","location","reload","isExtensionEnabled","name","JSON","parse","settings","extensions_enabled","includes","getCategorizedExtensions","extensions","Object","keys","map","id","extension","category","extra","extensionCategories","push","feature","ExtensionsWidget","oninit","categorizedExtensions","categories","extensionCategory","extensionWidget","Link","route","style","saveSettings","oldSettings","stringify","body","error","AdminHeader","classList","description","AdminPage","loading","headerInfo","header","submitButton","disabled","isChanged","buildSettingComponent","entry","call","setting","help","componentAttrs","value","type","Switch","state","onchange","Select","options","bidi","onsaved","alerts","key","fallback","Stream","dirty","forEach","length","preventDefault","clear","Page","DashboardPage","availableWidgets","BasicsPage","localeOptions","locales","i","displayNameOptions","displayNameDrivers","identifier","slugDriverOptions","slugDrivers","model","option","FieldSet","homePageItems","path","EditGroupModal","group","store","createRecord","nameSingular","namePlural","color","isHidden","Badge","backgroundColor","fields","placeholder","a","tabindex","Number","exists","Group","deleteGroup","submitData","onsubmit","save","errorHandler","onerror","hide","m","redraw","confirm","badgeForId","getById","GroupBadge","filterByRequiredPermissions","groupIds","permission","getRequiredPermissions","required","restrictToGroupIds","permissions","indexOf","filter","PermissionDropdown","everyone","members","adminGroup","showing","allowGuest","isGroupDisabled","Separator","shiftKey","stopPropagation","apply","all","toggle","groupId","index","splice","SettingDropdown","caretIcon","defaultLabel","active","SelectDropdown","PermissionGrid","scopes","scopeItems","permissionCells","scope","render","onremove","scopeControlItems","permissionItems","section","child","viewItems","startItems","replyItems","moderateItems","merge","extensionData","getAllExtensionPermissions","minutes","parseInt","allow_renaming","transChoice","count","allow_post_editing","item","PermissionsPage","SettingsModal","form","changed","loaded","EditCustomCssModal","rows","EditCustomHeaderModal","EditCustomFooterModal","UploadImageButton","remove","src","alt","upload","$","appendTo","click","on","FormData","append","files","resourceUrl","serialize","raw","success","failure","response","AppearancePage","hex","test","alert","MailPage","sendingTest","refresh","status","sending","errors","driverFields","LoadingIndicator","fieldKeys","reduce","memo","val","Alert","dismissible","field","fieldInfo","email","sendTestEmail","saving","dismiss","testEmailSuccessAlert","ExtensionPermissionGrid","extensionId","permissionCategories","entries","obj","info","getExtensionPermissions","set","ExtensionPage","changingState","infoFields","discuss","documentation","support","website","donate","source","isEnabled","sections","topItems","infoItems","extensionHasPermissions","getSettings","version","links","authors","author","link","punctuateSeries","enabled","localStorage","setItem","setTimeout","close","code","join","ExtensionPageResolver","onmatch","args","requestedPath","getPage","DefaultResolver","routes","dashboard","basics","appearance","mail","resolverClass","ExtensionLinkButton","statuses","statusItems","unshift","class","AdminNav","query","concat","extensionItems","oncreate","scrollToActive","onupdate","nav","time","previous","offsetTop","scrollTop","outerHeight","offsetHeight","animate","height","toUpperCase","ExtensionData","currentExtension","registerSetting","priority","Math","random","toString","registerPermission","permissionType","registerPage","page","AdminApplication","theme","language","canGoBack","getPrevious","backUrl","back","mount","document","hash","prefix","getElementById","Navigation","drawer","Application","Admin","compat","compatObj","proxifyCompat","truncate","string","start","substring","slug","toLowerCase","replace","getPlainContent","html","dom","find","removeSelectors","text","trim","ucfirst","substr"],"mappings":"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","file":"/admin/flarum-core.js","sourcesContent":["import Component from '../../common/Component';\nimport ItemList from '../../common/utils/ItemList';\nimport listItems from '../../common/helpers/listItems';\n\n/**\n * The `HeaderPrimary` component displays primary header controls. On the\n * default skin, these are shown just to the right of the forum title.\n */\nexport default class HeaderPrimary extends Component {\n view() {\n return
    {listItems(this.items().toArray())}
;\n }\n\n config(isInitialized, context) {\n // Since this component is 'above' the content of the page (that is, it is a\n // part of the global UI that persists between routes), we will flag the DOM\n // to be retained across route changes.\n context.retain = true;\n }\n\n /**\n * Build an item list for the controls.\n *\n * @return {ItemList}\n */\n items() {\n return new ItemList();\n }\n}\n","import avatar from '../../common/helpers/avatar';\nimport username from '../../common/helpers/username';\nimport Dropdown from '../../common/components/Dropdown';\nimport Button from '../../common/components/Button';\nimport ItemList from '../../common/utils/ItemList';\n\n/**\n * The `SessionDropdown` component shows a button with the current user's\n * avatar/name, with a dropdown of session controls.\n */\nexport default class SessionDropdown extends Dropdown {\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n attrs.className = 'SessionDropdown';\n attrs.buttonClassName = 'Button Button--user Button--flat';\n attrs.menuClassName = 'Dropdown-menu--right';\n }\n\n view(vnode) {\n return super.view({ ...vnode, children: this.items().toArray() });\n }\n\n getButtonContent() {\n const user = app.session.user;\n\n return [avatar(user), ' ', {username(user)}];\n }\n\n /**\n * Build an item list for the contents of the dropdown menu.\n *\n * @return {ItemList}\n */\n items() {\n const items = new ItemList();\n\n items.add(\n 'logOut',\n Button.component(\n {\n icon: 'fas fa-sign-out-alt',\n onclick: app.session.logout.bind(app.session),\n },\n app.translator.trans('core.admin.header.log_out_button')\n ),\n -100\n );\n\n return items;\n }\n}\n","import Component from '../../common/Component';\nimport LinkButton from '../../common/components/LinkButton';\nimport SessionDropdown from './SessionDropdown';\nimport ItemList from '../../common/utils/ItemList';\nimport listItems from '../../common/helpers/listItems';\n\n/**\n * The `HeaderSecondary` component displays secondary header controls.\n */\nexport default class HeaderSecondary extends Component {\n view() {\n return
    {listItems(this.items().toArray())}
;\n }\n\n /**\n * Build an item list for the controls.\n *\n * @return {ItemList}\n */\n items() {\n const items = new ItemList();\n\n items.add(\n 'help',\n \n {app.translator.trans('core.admin.header.get_help')}\n \n );\n\n items.add('session', SessionDropdown.component());\n\n return items;\n }\n}\n","import Component from '../../common/Component';\n\nexport default class DashboardWidget extends Component {\n view() {\n return
{this.content()}
;\n }\n\n /**\n * Get the class name to apply to the widget.\n *\n * @return {String}\n */\n className() {\n return '';\n }\n\n /**\n * Get the content of the widget.\n *\n * @return {VirtualElement}\n */\n content() {\n return [];\n }\n}\n","import Modal from '../../common/components/Modal';\n\nexport default class LoadingModal extends Modal {\n /**\n * @inheritdoc\n */\n static isDismissible = false;\n\n className() {\n return 'LoadingModal Modal--small';\n }\n\n title() {\n return app.translator.trans('core.admin.loading.title');\n }\n\n content() {\n return '';\n }\n}\n","/*\n * This file is part of Flarum.\n *\n * (c) Toby Zerner \n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport DashboardWidget from './DashboardWidget';\nimport listItems from '../../common/helpers/listItems';\nimport ItemList from '../../common/utils/ItemList';\nimport Dropdown from '../../common/components/Dropdown';\nimport Button from '../../common/components/Button';\nimport LoadingModal from './LoadingModal';\n\nexport default class StatusWidget extends DashboardWidget {\n className() {\n return 'StatusWidget';\n }\n\n content() {\n return
    {listItems(this.items().toArray())}
;\n }\n\n items() {\n const items = new ItemList();\n\n items.add(\n 'tools',\n \n \n \n );\n\n items.add('version-flarum', [Flarum,
, app.forum.attribute('version')]);\n items.add('version-php', [PHP,
, app.data.phpVersion]);\n items.add('version-mysql', [MySQL,
, app.data.mysqlVersion]);\n\n return items;\n }\n\n handleClearCache(e) {\n app.modal.show(LoadingModal);\n\n app\n .request({\n method: 'DELETE',\n url: app.forum.attribute('apiUrl') + '/cache',\n })\n .then(() => window.location.reload());\n }\n}\n","export default function isExtensionEnabled(name) {\n const enabled = JSON.parse(app.data.settings.extensions_enabled);\n\n return enabled.includes(name);\n}\n","export default function getCategorizedExtensions() {\n let extensions = {};\n\n Object.keys(app.data.extensions).map((id) => {\n const extension = app.data.extensions[id];\n let category = extension.extra['flarum-extension'].category;\n\n // Wrap languages packs into new system\n if (extension.extra['flarum-locale']) {\n category = 'language';\n }\n\n if (category in app.extensionCategories) {\n extensions[category] = extensions[category] || [];\n\n extensions[category].push(extension);\n } else {\n extensions.feature = extensions.feature || [];\n\n extensions.feature.push(extension);\n }\n });\n\n return extensions;\n}\n","import DashboardWidget from './DashboardWidget';\nimport isExtensionEnabled from '../utils/isExtensionEnabled';\nimport getCategorizedExtensions from '../utils/getCategorizedExtensions';\nimport Link from '../../common/components/Link';\nimport icon from '../../common/helpers/icon';\n\nexport default class ExtensionsWidget extends DashboardWidget {\n oninit(vnode) {\n super.oninit(vnode);\n\n this.categorizedExtensions = getCategorizedExtensions();\n }\n\n className() {\n return 'ExtensionsWidget';\n }\n\n content() {\n const categories = app.extensionCategories;\n\n return (\n
\n {Object.keys(categories).map((category) => (this.categorizedExtensions[category] ? this.extensionCategory(category) : ''))}\n
\n );\n }\n\n extensionCategory(category) {\n return (\n
\n

{app.translator.trans(`core.admin.nav.categories.${category}`)}

\n
    {this.categorizedExtensions[category].map((extension) => this.extensionWidget(extension))}
\n
\n );\n }\n\n extensionWidget(extension) {\n return (\n
  • \n \n
    \n \n {extension.icon ? icon(extension.icon.name) : ''}\n \n {extension.extra['flarum-extension'].title}\n
    \n \n
  • \n );\n }\n}\n","export default function saveSettings(settings) {\n const oldSettings = JSON.parse(JSON.stringify(app.data.settings));\n\n Object.assign(app.data.settings, settings);\n\n return app\n .request({\n method: 'POST',\n url: app.forum.attribute('apiUrl') + '/settings',\n body: settings,\n })\n .catch((error) => {\n app.data.settings = oldSettings;\n throw error;\n });\n}\n","import Component from '../../common/Component';\nimport classList from '../../common/utils/classList';\nimport icon from '../../common/helpers/icon';\n\nexport default class AdminHeader extends Component {\n view(vnode) {\n return [\n
    \n
    \n

    \n {icon(this.attrs.icon)}\n {vnode.children}\n

    \n
    {this.attrs.description}
    \n
    \n
    ,\n ];\n }\n}\n","import Page from '../../common/components/Page';\nimport Button from '../../common/components/Button';\nimport Switch from '../../common/components/Switch';\nimport Select from '../../common/components/Select';\nimport classList from '../../common/utils/classList';\nimport Stream from '../../common/utils/Stream';\nimport saveSettings from '../utils/saveSettings';\nimport AdminHeader from './AdminHeader';\n\nexport default class AdminPage extends Page {\n oninit(vnode) {\n super.oninit(vnode);\n\n this.settings = {};\n\n this.loading = false;\n }\n\n view() {\n const className = classList(['AdminPage', this.headerInfo().className]);\n\n return (\n
    \n {this.header()}\n
    {this.content()}
    \n
    \n );\n }\n\n content() {\n return '';\n }\n\n submitButton() {\n return (\n \n );\n }\n\n header() {\n const headerInfo = this.headerInfo();\n\n return (\n \n {headerInfo.title}\n \n );\n }\n\n headerInfo() {\n return {\n className: '',\n icon: '',\n title: '',\n description: '',\n };\n }\n\n /**\n * buildSettingComponent takes a settings object and turns it into a component.\n * Depending on the type of input, you can set the type to 'bool', 'select', or\n * any standard type. Any values inside the 'extra' object will be added\n * to the component as an attribute.\n *\n * Alternatively, you can pass a callback that will be executed in ExtensionPage's\n * context to include custom JSX elements.\n *\n * @example\n *\n * {\n * setting: 'acme.checkbox',\n * label: app.translator.trans('acme.admin.setting_label'),\n * type: 'bool',\n * help: app.translator.trans('acme.admin.setting_help'),\n * className: 'Setting-item'\n * }\n *\n * @example\n *\n * {\n * setting: 'acme.select',\n * label: app.translator.trans('acme.admin.setting_label'),\n * type: 'select',\n * options: {\n * 'option1': 'Option 1 label',\n * 'option2': 'Option 2 label',\n * },\n * default: 'option1',\n * }\n *\n * @param setting\n * @returns {JSX.Element}\n */\n buildSettingComponent(entry) {\n if (typeof entry === 'function') {\n return entry.call(this);\n }\n\n const { setting, help, ...componentAttrs } = entry;\n\n delete componentAttrs.help;\n\n const value = this.setting([setting])();\n if (['bool', 'checkbox', 'switch', 'boolean'].includes(componentAttrs.type)) {\n return (\n
    \n \n {componentAttrs.label}\n \n
    {help}
    \n
    \n );\n } else if (['select', 'dropdown', 'selectdropdown'].includes(componentAttrs.type)) {\n return (\n
    \n \n
    {help}
    \n \n
    \n );\n } else {\n componentAttrs.className = classList(['FormControl', componentAttrs.className]);\n return (\n
    \n {componentAttrs.label ? : ''}\n
    {help}
    \n \n
    \n );\n }\n }\n\n onsaved() {\n this.loading = false;\n\n app.alerts.show({ type: 'success' }, app.translator.trans('core.admin.settings.saved_message'));\n }\n\n setting(key, fallback = '') {\n this.settings[key] = this.settings[key] || Stream(app.data.settings[key] || fallback);\n\n return this.settings[key];\n }\n\n dirty() {\n const dirty = {};\n\n Object.keys(this.settings).forEach((key) => {\n const value = this.settings[key]();\n\n if (value !== app.data.settings[key]) {\n dirty[key] = value;\n }\n });\n\n return dirty;\n }\n\n isChanged() {\n return Object.keys(this.dirty()).length;\n }\n\n saveSettings(e) {\n e.preventDefault();\n\n app.alerts.clear();\n\n this.loading = true;\n\n return saveSettings(this.dirty()).then(this.onsaved.bind(this));\n }\n}\n","import StatusWidget from './StatusWidget';\nimport ExtensionsWidget from './ExtensionsWidget';\nimport ItemList from '../../common/utils/ItemList';\nimport AdminPage from './AdminPage';\n\nexport default class DashboardPage extends AdminPage {\n headerInfo() {\n return {\n className: 'DashboardPage',\n icon: 'fas fa-chart-bar',\n title: app.translator.trans('core.admin.dashboard.title'),\n description: app.translator.trans('core.admin.dashboard.description'),\n };\n }\n\n content() {\n return this.availableWidgets().toArray();\n }\n\n availableWidgets() {\n const items = new ItemList();\n\n items.add('status', , 30);\n\n items.add('extensions', , 10);\n\n return items;\n }\n}\n","import FieldSet from '../../common/components/FieldSet';\nimport ItemList from '../../common/utils/ItemList';\nimport AdminPage from './AdminPage';\n\nexport default class BasicsPage extends AdminPage {\n oninit(vnode) {\n super.oninit(vnode);\n\n this.localeOptions = {};\n const locales = app.data.locales;\n for (const i in locales) {\n this.localeOptions[i] = `${locales[i]} (${i})`;\n }\n\n this.displayNameOptions = {};\n const displayNameDrivers = app.data.displayNameDrivers;\n displayNameDrivers.forEach(function (identifier) {\n this.displayNameOptions[identifier] = identifier;\n }, this);\n\n this.slugDriverOptions = {};\n Object.keys(app.data.slugDrivers).forEach((model) => {\n this.slugDriverOptions[model] = {};\n\n app.data.slugDrivers[model].forEach((option) => {\n this.slugDriverOptions[model][option] = option;\n });\n });\n }\n\n headerInfo() {\n return {\n className: 'BasicsPage',\n icon: 'fas fa-pencil-alt',\n title: app.translator.trans('core.admin.basics.title'),\n description: app.translator.trans('core.admin.basics.description'),\n };\n }\n\n content() {\n return [\n
    \n {this.buildSettingComponent({\n type: 'text',\n setting: 'forum_title',\n label: app.translator.trans('core.admin.basics.forum_title_heading'),\n })}\n {this.buildSettingComponent({\n type: 'text',\n setting: 'forum_description',\n label: app.translator.trans('core.admin.basics.forum_description_heading'),\n help: app.translator.trans('core.admin.basics.forum_description_text'),\n })}\n\n {Object.keys(this.localeOptions).length > 1\n ? [\n this.buildSettingComponent({\n type: 'select',\n setting: 'default_locale',\n options: this.localeOptions,\n label: app.translator.trans('core.admin.basics.default_language_heading'),\n }),\n this.buildSettingComponent({\n type: 'switch',\n setting: 'show_language_selector',\n label: app.translator.trans('core.admin.basics.show_language_selector_label'),\n }),\n ]\n : ''}\n\n
    \n
    {app.translator.trans('core.admin.basics.home_page_text')}
    \n {this.homePageItems()\n .toArray()\n .map(({ path, label }) => (\n \n ))}\n
    \n\n
    \n \n
    {app.translator.trans('core.admin.basics.welcome_banner_text')}
    \n \n ",m.noCloneChecked=!!ht.cloneNode(!0).lastChild.defaultValue,ht.innerHTML="",m.option=!!ht.lastChild;var bt={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function wt(t,e){var n;return n=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&D(t,e)?S.merge([t],n):n}function xt(t,e){for(var n=0,r=t.length;n",""]);var Tt=/<|&#?\w+;/;function Ct(t,e,n,r,o){for(var i,a,s,l,u,c,f=e.createDocumentFragment(),d=[],p=0,h=t.length;p-1)o&&o.push(i);else if(u=st(i),a=wt(f.appendChild(i),"script"),u&&xt(a),n)for(c=0;i=a[c++];)yt.test(i.type||"")&&n.push(i);return f}var St=/^([^.]*)(?:\.(.+)|)/;function kt(){return!0}function Et(){return!1}function $t(t,e){return t===function(){try{return b.activeElement}catch(t){}}()==("focus"===e)}function At(t,e,n,r,o,i){var a,s;if("object"==typeof e){for(s in"string"!=typeof n&&(r=r||n,n=void 0),e)At(t,s,n,r,e[s],i);return t}if(null==r&&null==o?(o=n,r=n=void 0):null==o&&("string"==typeof n?(o=r,r=void 0):(o=r,r=n,n=void 0)),!1===o)o=Et;else if(!o)return t;return 1===i&&(a=o,(o=function(t){return S().off(t),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),t.each((function(){S.event.add(this,e,o,r,n)}))}function Nt(t,e,n){n?(Q.set(t,e,!1),S.event.add(t,e,{namespace:!1,handler:function(t){var r,o,i=Q.get(this,e);if(1&t.isTrigger&&this[e]){if(i.length)(S.event.special[e]||{}).delegateType&&t.stopPropagation();else if(i=s.call(arguments),Q.set(this,e,i),r=n(this,e),this[e](),i!==(o=Q.get(this,e))||r?Q.set(this,e,!1):o={},i!==o)return t.stopImmediatePropagation(),t.preventDefault(),o&&o.value}else i.length&&(Q.set(this,e,{value:S.event.trigger(S.extend(i[0],S.Event.prototype),i.slice(1),this)}),t.stopImmediatePropagation())}})):void 0===Q.get(t,e)&&S.event.add(t,e,kt)}S.event={global:{},add:function(t,e,n,r,o){var i,a,s,l,u,c,f,d,p,h,g,m=Q.get(t);if(K(t))for(n.handler&&(n=(i=n).handler,o=i.selector),o&&S.find.matchesSelector(at,o),n.guid||(n.guid=S.guid++),(l=m.events)||(l=m.events=Object.create(null)),(a=m.handle)||(a=m.handle=function(e){return void 0!==S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),u=(e=(e||"").match(R)||[""]).length;u--;)p=g=(s=St.exec(e[u])||[])[1],h=(s[2]||"").split(".").sort(),p&&(f=S.event.special[p]||{},p=(o?f.delegateType:f.bindType)||p,f=S.event.special[p]||{},c=S.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:o,needsContext:o&&S.expr.match.needsContext.test(o),namespace:h.join(".")},i),(d=l[p])||((d=l[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(p,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),o?d.splice(d.delegateCount++,0,c):d.push(c),S.event.global[p]=!0)},remove:function(t,e,n,r,o){var i,a,s,l,u,c,f,d,p,h,g,m=Q.hasData(t)&&Q.get(t);if(m&&(l=m.events)){for(u=(e=(e||"").match(R)||[""]).length;u--;)if(p=g=(s=St.exec(e[u])||[])[1],h=(s[2]||"").split(".").sort(),p){for(f=S.event.special[p]||{},d=l[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=i=d.length;i--;)c=d[i],!o&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(i,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(t,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(t,h,m.handle)||S.removeEvent(t,p,m.handle),delete l[p])}else for(p in l)S.event.remove(t,p+e[u],n,r,!0);S.isEmptyObject(l)&&Q.remove(t,"handle events")}},dispatch:function(t){var e,n,r,o,i,a,s=new Array(arguments.length),l=S.event.fix(t),u=(Q.get(this,"events")||Object.create(null))[l.type]||[],c=S.event.special[l.type]||{};for(s[0]=l,e=1;e=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==t.type||!0!==u.disabled)){for(i=[],a={},n=0;n-1:S.find(o,this,null,[u]).length),a[o]&&i.push(r);i.length&&s.push({elem:u,handlers:i})}return u=this,l\s*$/g;function Lt(t,e){return D(t,"table")&&D(11!==e.nodeType?e:e.firstChild,"tr")&&S(t).children("tbody")[0]||t}function Mt(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function It(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function Pt(t,e){var n,r,o,i,a,s;if(1===e.nodeType){if(Q.hasData(t)&&(s=Q.get(t).events))for(o in Q.remove(e,"handle events"),s)for(n=0,r=s[o].length;n1&&"string"==typeof h&&!m.checkClone&&jt.test(h))return t.each((function(o){var i=t.eq(o);g&&(e[0]=h.call(this,o,i.html())),Rt(i,e,n,r)}));if(d&&(i=(o=Ct(e,t[0].ownerDocument,!1,t,r)).firstChild,1===o.childNodes.length&&(o=i),i||r)){for(s=(a=S.map(wt(o,"script"),Mt)).length;f0&&xt(a,!l&&wt(t,"script")),s},cleanData:function(t){for(var e,n,r,o=S.event.special,i=0;void 0!==(n=t[i]);i++)if(K(n)){if(e=n[Q.expando]){if(e.events)for(r in e.events)o[r]?S.event.remove(n,r):S.removeEvent(n,r,e.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),S.fn.extend({detach:function(t){return _t(this,t,!0)},remove:function(t){return _t(this,t)},text:function(t){return U(this,(function(t){return void 0===t?S.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)}))}),null,t,arguments.length)},append:function(){return Rt(this,arguments,(function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Lt(this,t).appendChild(t)}))},prepend:function(){return Rt(this,arguments,(function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=Lt(this,t);e.insertBefore(t,e.firstChild)}}))},before:function(){return Rt(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this)}))},after:function(){return Rt(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)}))},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(S.cleanData(wt(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map((function(){return S.clone(this,t,e)}))},html:function(t){return U(this,(function(t){var e=this[0]||{},n=0,r=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Dt.test(t)&&!bt[(vt.exec(t)||["",""])[1].toLowerCase()]){t=S.htmlPrefilter(t);try{for(;n=0&&(l+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-i-l-s-.5))||0),l}function ne(t,e,n){var r=zt(t),o=(!m.boxSizingReliable()||n)&&"border-box"===S.css(t,"boxSizing",!1,r),i=o,a=Bt(t,e,r),s="offset"+e[0].toUpperCase()+e.slice(1);if(qt.test(a)){if(!n)return a;a="auto"}return(!m.boxSizingReliable()&&o||!m.reliableTrDimensions()&&D(t,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(t,"display",!1,r))&&t.getClientRects().length&&(o="border-box"===S.css(t,"boxSizing",!1,r),(i=s in t)&&(a=t[s])),(a=parseFloat(a)||0)+ee(t,e,n||(o?"border":"content"),i,r,a)+"px"}function re(t,e,n,r,o){return new re.prototype.init(t,e,n,r,o)}S.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=Bt(t,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(t,e,n,r){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var o,i,a,s=X(e),l=Gt.test(e),u=t.style;if(l||(e=Xt(s)),a=S.cssHooks[e]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(o=a.get(t,!1,r))?o:u[e];"string"==(i=typeof n)&&(o=ot.exec(n))&&o[1]&&(n=ct(t,e,o),i="number"),null!=n&&n==n&&("number"!==i||l||(n+=o&&o[3]||(S.cssNumber[s]?"":"px")),m.clearCloneStyle||""!==n||0!==e.indexOf("background")||(u[e]="inherit"),a&&"set"in a&&void 0===(n=a.set(t,n,r))||(l?u.setProperty(e,n):u[e]=n))}},css:function(t,e,n,r){var o,i,a,s=X(e);return Gt.test(e)||(e=Xt(s)),(a=S.cssHooks[e]||S.cssHooks[s])&&"get"in a&&(o=a.get(t,!0,n)),void 0===o&&(o=Bt(t,e,r)),"normal"===o&&e in Jt&&(o=Jt[e]),""===n||n?(i=parseFloat(o),!0===n||isFinite(i)?i||0:o):o}}),S.each(["height","width"],(function(t,e){S.cssHooks[e]={get:function(t,n,r){if(n)return!Kt.test(S.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?ne(t,e,r):Ft(t,Qt,(function(){return ne(t,e,r)}))},set:function(t,n,r){var o,i=zt(t),a=!m.scrollboxSize()&&"absolute"===i.position,s=(a||r)&&"border-box"===S.css(t,"boxSizing",!1,i),l=r?ee(t,e,r,s,i):0;return s&&a&&(l-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(i[e])-ee(t,e,"border",!1,i)-.5)),l&&(o=ot.exec(n))&&"px"!==(o[3]||"px")&&(t.style[e]=n,n=S.css(t,e)),te(0,n,l)}}})),S.cssHooks.marginLeft=Ut(m.reliableMarginLeft,(function(t,e){if(e)return(parseFloat(Bt(t,"marginLeft"))||t.getBoundingClientRect().left-Ft(t,{marginLeft:0},(function(){return t.getBoundingClientRect().left})))+"px"})),S.each({margin:"",padding:"",border:"Width"},(function(t,e){S.cssHooks[t+e]={expand:function(n){for(var r=0,o={},i="string"==typeof n?n.split(" "):[n];r<4;r++)o[t+it[r]+e]=i[r]||i[r-2]||i[0];return o}},"margin"!==t&&(S.cssHooks[t+e].set=te)})),S.fn.extend({css:function(t,e){return U(this,(function(t,e,n){var r,o,i={},a=0;if(Array.isArray(e)){for(r=zt(t),o=e.length;a1)}}),S.Tween=re,re.prototype={constructor:re,init:function(t,e,n,r,o,i){this.elem=t,this.prop=n,this.easing=o||S.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=r,this.unit=i||(S.cssNumber[n]?"":"px")},cur:function(){var t=re.propHooks[this.prop];return t&&t.get?t.get(this):re.propHooks._default.get(this)},run:function(t){var e,n=re.propHooks[this.prop];return this.options.duration?this.pos=e=S.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):re.propHooks._default.set(this),this}},re.prototype.init.prototype=re.prototype,re.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=S.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){S.fx.step[t.prop]?S.fx.step[t.prop](t):1!==t.elem.nodeType||!S.cssHooks[t.prop]&&null==t.elem.style[Xt(t.prop)]?t.elem[t.prop]=t.now:S.style(t.elem,t.prop,t.now+t.unit)}}},re.propHooks.scrollTop=re.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},S.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},S.fx=re.prototype.init,S.fx.step={};var oe,ie,ae=/^(?:toggle|show|hide)$/,se=/queueHooks$/;function le(){ie&&(!1===b.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(le):r.setTimeout(le,S.fx.interval),S.fx.tick())}function ue(){return r.setTimeout((function(){oe=void 0})),oe=Date.now()}function ce(t,e){var n,r=0,o={height:t};for(e=e?1:0;r<4;r+=2-e)o["margin"+(n=it[r])]=o["padding"+n]=t;return e&&(o.opacity=o.width=t),o}function fe(t,e,n){for(var r,o=(de.tweeners[e]||[]).concat(de.tweeners["*"]),i=0,a=o.length;i1)},removeAttr:function(t){return this.each((function(){S.removeAttr(this,t)}))}}),S.extend({attr:function(t,e,n){var r,o,i=t.nodeType;if(3!==i&&8!==i&&2!==i)return void 0===t.getAttribute?S.prop(t,e,n):(1===i&&S.isXMLDoc(t)||(o=S.attrHooks[e.toLowerCase()]||(S.expr.match.bool.test(e)?pe:void 0)),void 0!==n?null===n?void S.removeAttr(t,e):o&&"set"in o&&void 0!==(r=o.set(t,n,e))?r:(t.setAttribute(e,n+""),n):o&&"get"in o&&null!==(r=o.get(t,e))?r:null==(r=S.find.attr(t,e))?void 0:r)},attrHooks:{type:{set:function(t,e){if(!m.radioValue&&"radio"===e&&D(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,r=0,o=e&&e.match(R);if(o&&1===t.nodeType)for(;n=o[r++];)t.removeAttribute(n)}}),pe={set:function(t,e,n){return!1===e?S.removeAttr(t,n):t.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),(function(t,e){var n=he[e]||S.find.attr;he[e]=function(t,e,r){var o,i,a=e.toLowerCase();return r||(i=he[a],he[a]=o,o=null!=n(t,e,r)?a:null,he[a]=i),o}}));var ge=/^(?:input|select|textarea|button)$/i,me=/^(?:a|area)$/i;function ve(t){return(t.match(R)||[]).join(" ")}function ye(t){return t.getAttribute&&t.getAttribute("class")||""}function be(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(R)||[]}S.fn.extend({prop:function(t,e){return U(this,S.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each((function(){delete this[S.propFix[t]||t]}))}}),S.extend({prop:function(t,e,n){var r,o,i=t.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&S.isXMLDoc(t)||(e=S.propFix[e]||e,o=S.propHooks[e]),void 0!==n?o&&"set"in o&&void 0!==(r=o.set(t,n,e))?r:t[e]=n:o&&"get"in o&&null!==(r=o.get(t,e))?r:t[e]},propHooks:{tabIndex:{get:function(t){var e=S.find.attr(t,"tabindex");return e?parseInt(e,10):ge.test(t.nodeName)||me.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),m.optSelected||(S.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){S.propFix[this.toLowerCase()]=this})),S.fn.extend({addClass:function(t){var e,n,r,o,i,a,s,l=0;if(v(t))return this.each((function(e){S(this).addClass(t.call(this,e,ye(this)))}));if((e=be(t)).length)for(;n=this[l++];)if(o=ye(n),r=1===n.nodeType&&" "+ve(o)+" "){for(a=0;i=e[a++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");o!==(s=ve(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,o,i,a,s,l=0;if(v(t))return this.each((function(e){S(this).removeClass(t.call(this,e,ye(this)))}));if(!arguments.length)return this.attr("class","");if((e=be(t)).length)for(;n=this[l++];)if(o=ye(n),r=1===n.nodeType&&" "+ve(o)+" "){for(a=0;i=e[a++];)for(;r.indexOf(" "+i+" ")>-1;)r=r.replace(" "+i+" "," ");o!==(s=ve(r))&&n.setAttribute("class",s)}return this},toggleClass:function(t,e){var n=typeof t,r="string"===n||Array.isArray(t);return"boolean"==typeof e&&r?e?this.addClass(t):this.removeClass(t):v(t)?this.each((function(n){S(this).toggleClass(t.call(this,n,ye(this),e),e)})):this.each((function(){var e,o,i,a;if(r)for(o=0,i=S(this),a=be(t);e=a[o++];)i.hasClass(e)?i.removeClass(e):i.addClass(e);else void 0!==t&&"boolean"!==n||((e=ye(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===t?"":Q.get(this,"__className__")||""))}))},hasClass:function(t){var e,n,r=0;for(e=" "+t+" ";n=this[r++];)if(1===n.nodeType&&(" "+ve(ye(n))+" ").indexOf(e)>-1)return!0;return!1}});var we=/\r/g;S.fn.extend({val:function(t){var e,n,r,o=this[0];return arguments.length?(r=v(t),this.each((function(n){var o;1===this.nodeType&&(null==(o=r?t.call(this,n,S(this).val()):t)?o="":"number"==typeof o?o+="":Array.isArray(o)&&(o=S.map(o,(function(t){return null==t?"":t+""}))),(e=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,o,"value")||(this.value=o))}))):o?(e=S.valHooks[o.type]||S.valHooks[o.nodeName.toLowerCase()])&&"get"in e&&void 0!==(n=e.get(o,"value"))?n:"string"==typeof(n=o.value)?n.replace(we,""):null==n?"":n:void 0}}),S.extend({valHooks:{option:{get:function(t){var e=S.find.attr(t,"value");return null!=e?e:ve(S.text(t))}},select:{get:function(t){var e,n,r,o=t.options,i=t.selectedIndex,a="select-one"===t.type,s=a?null:[],l=a?i+1:o.length;for(r=i<0?l:a?i:0;r-1)&&(n=!0);return n||(t.selectedIndex=-1),i}}}}),S.each(["radio","checkbox"],(function(){S.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=S.inArray(S(t).val(),e)>-1}},m.checkOn||(S.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})})),m.focusin="onfocusin"in r;var xe=/^(?:focusinfocus|focusoutblur)$/,Te=function(t){t.stopPropagation()};S.extend(S.event,{trigger:function(t,e,n,o){var i,a,s,l,u,c,f,d,h=[n||b],g=p.call(t,"type")?t.type:t,m=p.call(t,"namespace")?t.namespace.split("."):[];if(a=d=s=n=n||b,3!==n.nodeType&&8!==n.nodeType&&!xe.test(g+S.event.triggered)&&(g.indexOf(".")>-1&&(m=g.split("."),g=m.shift(),m.sort()),u=g.indexOf(":")<0&&"on"+g,(t=t[S.expando]?t:new S.Event(g,"object"==typeof t&&t)).isTrigger=o?2:3,t.namespace=m.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=n),e=null==e?[t]:S.makeArray(e,[t]),f=S.event.special[g]||{},o||!f.trigger||!1!==f.trigger.apply(n,e))){if(!o&&!f.noBubble&&!y(n)){for(l=f.delegateType||g,xe.test(l+g)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(n.ownerDocument||b)&&h.push(s.defaultView||s.parentWindow||r)}for(i=0;(a=h[i++])&&!t.isPropagationStopped();)d=a,t.type=i>1?l:f.bindType||g,(c=(Q.get(a,"events")||Object.create(null))[t.type]&&Q.get(a,"handle"))&&c.apply(a,e),(c=u&&a[u])&&c.apply&&K(a)&&(t.result=c.apply(a,e),!1===t.result&&t.preventDefault());return t.type=g,o||t.isDefaultPrevented()||f._default&&!1!==f._default.apply(h.pop(),e)||!K(n)||u&&v(n[g])&&!y(n)&&((s=n[u])&&(n[u]=null),S.event.triggered=g,t.isPropagationStopped()&&d.addEventListener(g,Te),n[g](),t.isPropagationStopped()&&d.removeEventListener(g,Te),S.event.triggered=void 0,s&&(n[u]=s)),t.result}},simulate:function(t,e,n){var r=S.extend(new S.Event,n,{type:t,isSimulated:!0});S.event.trigger(r,null,e)}}),S.fn.extend({trigger:function(t,e){return this.each((function(){S.event.trigger(t,e,this)}))},triggerHandler:function(t,e){var n=this[0];if(n)return S.event.trigger(t,e,n,!0)}}),m.focusin||S.each({focus:"focusin",blur:"focusout"},(function(t,e){var n=function(t){S.event.simulate(e,t.target,S.event.fix(t))};S.event.special[e]={setup:function(){var r=this.ownerDocument||this.document||this,o=Q.access(r,e);o||r.addEventListener(t,n,!0),Q.access(r,e,(o||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,o=Q.access(r,e)-1;o?Q.access(r,e,o):(r.removeEventListener(t,n,!0),Q.remove(r,e))}}}));var Ce=r.location,Se={guid:Date.now()},ke=/\?/;S.parseXML=function(t){var e,n;if(!t||"string"!=typeof t)return null;try{e=(new r.DOMParser).parseFromString(t,"text/xml")}catch(t){}return n=e&&e.getElementsByTagName("parsererror")[0],e&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,(function(t){return t.textContent})).join("\n"):t)),e};var Ee=/\[\]$/,$e=/\r?\n/g,Ae=/^(?:submit|button|image|reset|file)$/i,Ne=/^(?:input|select|textarea|keygen)/i;function De(t,e,n,r){var o;if(Array.isArray(e))S.each(e,(function(e,o){n||Ee.test(t)?r(t,o):De(t+"["+("object"==typeof o&&null!=o?e:"")+"]",o,n,r)}));else if(n||"object"!==T(e))r(t,e);else for(o in e)De(t+"["+o+"]",e[o],n,r)}S.param=function(t,e){var n,r=[],o=function(t,e){var n=v(e)?e():e;r[r.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==n?"":n)};if(null==t)return"";if(Array.isArray(t)||t.jquery&&!S.isPlainObject(t))S.each(t,(function(){o(this.name,this.value)}));else for(n in t)De(n,t[n],e,o);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var t=S.prop(this,"elements");return t?S.makeArray(t):this})).filter((function(){var t=this.type;return this.name&&!S(this).is(":disabled")&&Ne.test(this.nodeName)&&!Ae.test(t)&&(this.checked||!mt.test(t))})).map((function(t,e){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,(function(t){return{name:e.name,value:t.replace($e,"\r\n")}})):{name:e.name,value:n.replace($e,"\r\n")}})).get()}});var je=/%20/g,Oe=/#.*$/,Le=/([?&])_=[^&]*/,Me=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ie=/^(?:GET|HEAD)$/,Pe=/^\/\//,He={},Re={},_e="*/".concat("*"),qe=b.createElement("a");function ze(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var r,o=0,i=e.toLowerCase().match(R)||[];if(v(n))for(;r=i[o++];)"+"===r[0]?(r=r.slice(1)||"*",(t[r]=t[r]||[]).unshift(n)):(t[r]=t[r]||[]).push(n)}}function Fe(t,e,n,r){var o={},i=t===Re;function a(s){var l;return o[s]=!0,S.each(t[s]||[],(function(t,s){var u=s(e,n,r);return"string"!=typeof u||i||o[u]?i?!(l=u):void 0:(e.dataTypes.unshift(u),a(u),!1)})),l}return a(e.dataTypes[0])||!o["*"]&&a("*")}function We(t,e){var n,r,o=S.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((o[n]?t:r||(r={}))[n]=e[n]);return r&&S.extend(!0,t,r),t}qe.href=Ce.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ce.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Ce.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":_e,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?We(We(t,S.ajaxSettings),e):We(S.ajaxSettings,t)},ajaxPrefilter:ze(He),ajaxTransport:ze(Re),ajax:function(t,e){"object"==typeof t&&(e=t,t=void 0),e=e||{};var n,o,i,a,s,l,u,c,f,d,p=S.ajaxSetup({},e),h=p.context||p,g=p.context&&(h.nodeType||h.jquery)?S(h):S.event,m=S.Deferred(),v=S.Callbacks("once memory"),y=p.statusCode||{},w={},x={},T="canceled",C={readyState:0,getResponseHeader:function(t){var e;if(u){if(!a)for(a={};e=Me.exec(i);)a[e[1].toLowerCase()+" "]=(a[e[1].toLowerCase()+" "]||[]).concat(e[2]);e=a[t.toLowerCase()+" "]}return null==e?null:e.join(", ")},getAllResponseHeaders:function(){return u?i:null},setRequestHeader:function(t,e){return null==u&&(t=x[t.toLowerCase()]=x[t.toLowerCase()]||t,w[t]=e),this},overrideMimeType:function(t){return null==u&&(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(u)C.always(t[C.status]);else for(e in t)y[e]=[y[e],t[e]];return this},abort:function(t){var e=t||T;return n&&n.abort(e),k(0,e),this}};if(m.promise(C),p.url=((t||p.url||Ce.href)+"").replace(Pe,Ce.protocol+"//"),p.type=e.method||e.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(R)||[""],null==p.crossDomain){l=b.createElement("a");try{l.href=p.url,l.href=l.href,p.crossDomain=qe.protocol+"//"+qe.host!=l.protocol+"//"+l.host}catch(t){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=S.param(p.data,p.traditional)),Fe(He,p,e,C),u)return C;for(f in(c=S.event&&p.global)&&0==S.active++&&S.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Ie.test(p.type),o=p.url.replace(Oe,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(je,"+")):(d=p.url.slice(o.length),p.data&&(p.processData||"string"==typeof p.data)&&(o+=(ke.test(o)?"&":"?")+p.data,delete p.data),!1===p.cache&&(o=o.replace(Le,"$1"),d=(ke.test(o)?"&":"?")+"_="+Se.guid+++d),p.url=o+d),p.ifModified&&(S.lastModified[o]&&C.setRequestHeader("If-Modified-Since",S.lastModified[o]),S.etag[o]&&C.setRequestHeader("If-None-Match",S.etag[o])),(p.data&&p.hasContent&&!1!==p.contentType||e.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+_e+"; q=0.01":""):p.accepts["*"]),p.headers)C.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(!1===p.beforeSend.call(h,C,p)||u))return C.abort();if(T="abort",v.add(p.complete),C.done(p.success),C.fail(p.error),n=Fe(Re,p,e,C)){if(C.readyState=1,c&&g.trigger("ajaxSend",[C,p]),u)return C;p.async&&p.timeout>0&&(s=r.setTimeout((function(){C.abort("timeout")}),p.timeout));try{u=!1,n.send(w,k)}catch(t){if(u)throw t;k(-1,t)}}else k(-1,"No Transport");function k(t,e,a,l){var f,d,b,w,x,T=e;u||(u=!0,s&&r.clearTimeout(s),n=void 0,i=l||"",C.readyState=t>0?4:0,f=t>=200&&t<300||304===t,a&&(w=function(t,e,n){for(var r,o,i,a,s=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=t.mimeType||e.getResponseHeader("Content-Type"));if(r)for(o in s)if(s[o]&&s[o].test(r)){l.unshift(o);break}if(l[0]in n)i=l[0];else{for(o in n){if(!l[0]||t.converters[o+" "+l[0]]){i=o;break}a||(a=o)}i=i||a}if(i)return i!==l[0]&&l.unshift(i),n[i]}(p,C,a)),!f&&S.inArray("script",p.dataTypes)>-1&&S.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),w=function(t,e,n,r){var o,i,a,s,l,u={},c=t.dataTypes.slice();if(c[1])for(a in t.converters)u[a.toLowerCase()]=t.converters[a];for(i=c.shift();i;)if(t.responseFields[i]&&(n[t.responseFields[i]]=e),!l&&r&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=i,i=c.shift())if("*"===i)i=l;else if("*"!==l&&l!==i){if(!(a=u[l+" "+i]||u["* "+i]))for(o in u)if((s=o.split(" "))[1]===i&&(a=u[l+" "+s[0]]||u["* "+s[0]])){!0===a?a=u[o]:!0!==u[o]&&(i=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&t.throws)e=a(e);else try{e=a(e)}catch(t){return{state:"parsererror",error:a?t:"No conversion from "+l+" to "+i}}}return{state:"success",data:e}}(p,w,C,f),f?(p.ifModified&&((x=C.getResponseHeader("Last-Modified"))&&(S.lastModified[o]=x),(x=C.getResponseHeader("etag"))&&(S.etag[o]=x)),204===t||"HEAD"===p.type?T="nocontent":304===t?T="notmodified":(T=w.state,d=w.data,f=!(b=w.error))):(b=T,!t&&T||(T="error",t<0&&(t=0))),C.status=t,C.statusText=(e||T)+"",f?m.resolveWith(h,[d,T,C]):m.rejectWith(h,[C,T,b]),C.statusCode(y),y=void 0,c&&g.trigger(f?"ajaxSuccess":"ajaxError",[C,p,f?d:b]),v.fireWith(h,[C,T]),c&&(g.trigger("ajaxComplete",[C,p]),--S.active||S.event.trigger("ajaxStop")))}return C},getJSON:function(t,e,n){return S.get(t,e,n,"json")},getScript:function(t,e){return S.get(t,void 0,e,"script")}}),S.each(["get","post"],(function(t,e){S[e]=function(t,n,r,o){return v(n)&&(o=o||r,r=n,n=void 0),S.ajax(S.extend({url:t,type:e,dataType:o,data:n,success:r},S.isPlainObject(t)&&t))}})),S.ajaxPrefilter((function(t){var e;for(e in t.headers)"content-type"===e.toLowerCase()&&(t.contentType=t.headers[e]||"")})),S._evalUrl=function(t,e,n){return S.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(t){S.globalEval(t,e,n)}})},S.fn.extend({wrapAll:function(t){var e;return this[0]&&(v(t)&&(t=t.call(this[0])),e=S(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map((function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t})).append(this)),this},wrapInner:function(t){return v(t)?this.each((function(e){S(this).wrapInner(t.call(this,e))})):this.each((function(){var e=S(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)}))},wrap:function(t){var e=v(t);return this.each((function(n){S(this).wrapAll(e?t.call(this,n):t)}))},unwrap:function(t){return this.parent(t).not("body").each((function(){S(this).replaceWith(this.childNodes)})),this}}),S.expr.pseudos.hidden=function(t){return!S.expr.pseudos.visible(t)},S.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(t){}};var Be={0:200,1223:204},Ue=S.ajaxSettings.xhr();m.cors=!!Ue&&"withCredentials"in Ue,m.ajax=Ue=!!Ue,S.ajaxTransport((function(t){var e,n;if(m.cors||Ue&&!t.crossDomain)return{send:function(o,i){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];for(a in t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest"),o)s.setRequestHeader(a,o[a]);e=function(t){return function(){e&&(e=n=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===t?s.abort():"error"===t?"number"!=typeof s.status?i(0,"error"):i(s.status,s.statusText):i(Be[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=e(),n=s.onerror=s.ontimeout=e("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&r.setTimeout((function(){e&&n()}))},e=e("abort");try{s.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}})),S.ajaxPrefilter((function(t){t.crossDomain&&(t.contents.script=!1)})),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return S.globalEval(t),t}}}),S.ajaxPrefilter("script",(function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")})),S.ajaxTransport("script",(function(t){var e,n;if(t.crossDomain||t.scriptAttrs)return{send:function(r,o){e=S("