mirror of
https://github.com/flarum/framework.git
synced 2025-02-23 04:49:37 +08:00
2 lines
59 KiB
JavaScript
Executable File
Generated
2 lines
59 KiB
JavaScript
Executable File
Generated
(()=>{var e={151:function(e){e.exports=function(){"use strict";var e,t,a=1e3,n=6e4,s=36e5,r=864e5,i=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,o=31536e6,l=2628e6,m=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,u={years:o,months:l,days:r,hours:s,minutes:n,seconds:a,milliseconds:1,weeks:6048e5},d=function(e){return e instanceof b},c=function(e,t,a){return new b(e,a,t.$l)},g=function(e){return t.p(e)+"s"},p=function(e){return e<0},h=function(e){return p(e)?Math.ceil(e):Math.floor(e)},f=function(e){return Math.abs(e)},x=function(e,t){return e?p(e)?{negative:!0,format:""+f(e)+t}:{negative:!1,format:""+e+t}:{negative:!1,format:""}},b=function(){function p(e,t,a){var n=this;if(this.$d={},this.$l=a,void 0===e&&(this.$ms=0,this.parseFromMilliseconds()),t)return c(e*u[g(t)],this);if("number"==typeof e)return this.$ms=e,this.parseFromMilliseconds(),this;if("object"==typeof e)return Object.keys(e).forEach((function(t){n.$d[g(t)]=e[t]})),this.calMilliseconds(),this;if("string"==typeof e){var s=e.match(m);if(s){var r=s.slice(2).map((function(e){return null!=e?Number(e):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var f=p.prototype;return f.calMilliseconds=function(){var e=this;this.$ms=Object.keys(this.$d).reduce((function(t,a){return t+(e.$d[a]||0)*u[a]}),0)},f.parseFromMilliseconds=function(){var e=this.$ms;this.$d.years=h(e/o),e%=o,this.$d.months=h(e/l),e%=l,this.$d.days=h(e/r),e%=r,this.$d.hours=h(e/s),e%=s,this.$d.minutes=h(e/n),e%=n,this.$d.seconds=h(e/a),e%=a,this.$d.milliseconds=e},f.toISOString=function(){var e=x(this.$d.years,"Y"),t=x(this.$d.months,"M"),a=+this.$d.days||0;this.$d.weeks&&(a+=7*this.$d.weeks);var n=x(a,"D"),s=x(this.$d.hours,"H"),r=x(this.$d.minutes,"M"),i=this.$d.seconds||0;this.$d.milliseconds&&(i+=this.$d.milliseconds/1e3,i=Math.round(1e3*i)/1e3);var o=x(i,"S"),l=e.negative||t.negative||n.negative||s.negative||r.negative||o.negative,m=s.format||r.format||o.format?"T":"",u=(l?"-":"")+"P"+e.format+t.format+n.format+m+s.format+r.format+o.format;return"P"===u||"-P"===u?"P0D":u},f.toJSON=function(){return this.toISOString()},f.format=function(e){var a=e||"YYYY-MM-DDTHH:mm:ss",n={Y:this.$d.years,YY:t.s(this.$d.years,2,"0"),YYYY:t.s(this.$d.years,4,"0"),M:this.$d.months,MM:t.s(this.$d.months,2,"0"),D:this.$d.days,DD:t.s(this.$d.days,2,"0"),H:this.$d.hours,HH:t.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:t.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:t.s(this.$d.seconds,2,"0"),SSS:t.s(this.$d.milliseconds,3,"0")};return a.replace(i,(function(e,t){return t||String(n[e])}))},f.as=function(e){return this.$ms/u[g(e)]},f.get=function(e){var t=this.$ms,a=g(e);return"milliseconds"===a?t%=1e3:t="weeks"===a?h(t/u[a]):this.$d[a],t||0},f.add=function(e,t,a){var n;return n=t?e*u[g(t)]:d(e)?e.$ms:c(e,this).$ms,c(this.$ms+n*(a?-1:1),this)},f.subtract=function(e,t){return this.add(e,t,!0)},f.locale=function(e){var t=this.clone();return t.$l=e,t},f.clone=function(){return c(this.$ms,this)},f.humanize=function(t){return e().add(this.$ms,"ms").locale(this.$l).fromNow(!t)},f.valueOf=function(){return this.asMilliseconds()},f.milliseconds=function(){return this.get("milliseconds")},f.asMilliseconds=function(){return this.as("milliseconds")},f.seconds=function(){return this.get("seconds")},f.asSeconds=function(){return this.as("seconds")},f.minutes=function(){return this.get("minutes")},f.asMinutes=function(){return this.as("minutes")},f.hours=function(){return this.get("hours")},f.asHours=function(){return this.as("hours")},f.days=function(){return this.get("days")},f.asDays=function(){return this.as("days")},f.weeks=function(){return this.get("weeks")},f.asWeeks=function(){return this.as("weeks")},f.months=function(){return this.get("months")},f.asMonths=function(){return this.as("months")},f.years=function(){return this.get("years")},f.asYears=function(){return this.as("years")},p}(),v=function(e,t,a){return e.add(t.years()*a,"y").add(t.months()*a,"M").add(t.days()*a,"d").add(t.hours()*a,"h").add(t.minutes()*a,"m").add(t.seconds()*a,"s").add(t.milliseconds()*a,"ms")};return function(a,n,s){e=s,t=s().$utils(),s.duration=function(e,t){var a=s.locale();return c(e,{$l:a},t)},s.isDuration=d;var r=n.prototype.add,i=n.prototype.subtract;n.prototype.add=function(e,t){return d(e)?v(this,e,1):r.bind(this)(e,t)},n.prototype.subtract=function(e,t){return d(e)?v(this,e,-1):i.bind(this)(e,t)}}}()}},t={};function a(n){flarum.reg._webpack_runtimes["flarum-extension-manager"]||=a;var s=t[n];if(void 0!==s)return s.exports;var r=t[n]={exports:{}};return e[n].call(r.exports,r,r.exports,a),r.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";a.r(n),a.d(n,{extend:()=>Je});const e=flarum.reg.get("core","common/extend"),t=flarum.reg.get("core","admin/app");var s=a.n(t);const r=flarum.reg.get("core","admin/components/ExtensionPage");var i=a.n(r);const o=flarum.reg.get("core","common/components/Button");var l=a.n(o);const u=flarum.reg.get("core","admin/components/LoadingModal");var d=a.n(u);const c=flarum.reg.get("core","admin/utils/isExtensionEnabled");var g=a.n(c);function p(){s().modal.close(),m.route.set(s().route("extension",{id:"flarum-extension-manager"})),s().extensionManager.queue.load({},!0),setTimeout((()=>{document.getElementById("ExtensionManager-queueSection")?.scrollIntoView({block:"nearest"})}),200)}function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function f(e,t,a){return(t=function(e){var t=function(e){if("object"!=h(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=h(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==h(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}window.jumpToQueue=p,flarum.reg.add("flarum-extension-manager","admin/utils/jumpToQueue",p);class x{constructor(){f(this,"polling",null),f(this,"tasks",null),f(this,"limit",20),f(this,"offset",0),f(this,"total",0),f(this,"loading",!1)}load(e,t){return void 0===t&&(t=!1),this.loading=!0,e={page:{limit:this.limit,offset:this.offset,...e?.page},...e},s().store.find("extension-manager-tasks",e||{}).then((e=>{this.tasks=e,this.total=e.payload.meta?.page?.total||0,m.redraw();const a=e?.find((e=>"pending"===e.status()||"running"===e.status()));return a?this.pollQueue(t):t?(s().extensionManager.control.setLoading(null),window.location.reload()):s().extensionManager.control.isLoading()&&s().extensionManager.control.setLoading(null),this.loading=!1,e}))}isLoading(){return this.loading}getItems(){return this.tasks}getTotalItems(){return this.total}getTotalPages(){return Math.ceil(this.total/this.limit)}pageNumber(){return Math.ceil(this.offset/this.limit)}getPerPage(){return this.limit}hasPrev(){return 0!==this.pageNumber()}hasNext(){return this.offset+this.limit<this.total}prev(){this.hasPrev()&&(this.offset-=this.limit,this.load())}next(){this.hasNext()&&(this.offset+=this.limit,this.load())}goto(e){this.offset=(e-1)*this.limit,this.load()}pollQueue(e){void 0===e&&(e=!1),this.polling&&clearTimeout(this.polling),this.polling=setTimeout((()=>{this.load({},e)}),6e3)}hasPending(){return!!this.tasks?.find((e=>"pending"===e.status()||"running"===e.status()))}}function b(e){s().extensionManager.control.setLoading(null);const t=e.response.errors[0];if(!["composer_command_failure","extension_already_installed","extension_not_installed"].includes(t.code))throw e;switch(s().alerts.clear(),t.code){case"composer_command_failure":t.guessed_cause?(s().alerts.show({type:"error"},s().translator.trans(`flarum-extension-manager.admin.exceptions.guessed_cause.${t.guessed_cause}`)),s().modal.close()):s().alerts.show({type:"error"},s().translator.trans("flarum-extension-manager.admin.exceptions.composer_command_failure"));break;case"extension_already_installed":s().alerts.show({type:"error"},s().translator.trans("flarum-extension-manager.admin.exceptions.extension_already_installed")),s().modal.close();break;case"extension_not_installed":s().alerts.show({type:"error"},s().translator.trans("flarum-extension-manager.admin.exceptions.extension_not_installed")),s().modal.close()}}flarum.reg.add("flarum-extension-manager","admin/states/QueueState",x);const v=flarum.reg.get("core","common/utils/extractText");var y=a.n(v);class _{get lastUpdateRun(){const e=JSON.parse(s().data.settings["flarum-extension-manager.last_update_run"]);return e.limitedPackages=()=>[...e.major.limitedPackages,...e.minor.limitedPackages,...e.global.limitedPackages],e}constructor(){f(this,"loading",null),f(this,"packageUpdates",{}),f(this,"lastUpdateCheck",void 0),f(this,"extensionUpdates",void 0),f(this,"coreUpdate",null),this.lastUpdateCheck=JSON.parse(s().data.settings["flarum-extension-manager.last_update_check"]),this.extensionUpdates=this.formatExtensionUpdates(this.lastUpdateCheck),this.coreUpdate=this.formatCoreUpdate(this.lastUpdateCheck)}isLoading(e){return void 0===e&&(e=null),e&&this.loading===e||!e&&null!==this.loading}hasOperationRunning(){return this.isLoading()||s().extensionManager.queue.hasPending()}setLoading(e){this.loading=e}requirePackage(e){s().extensionManager.control.setLoading("extension-install"),s().modal.show(d()),s().request({method:"POST",url:`${s().forum.attribute("apiUrl")}/extension-manager/extensions`,body:{data:e}}).then((e=>{if(e.processing)p();else{const t=e.id;s().alerts.show({type:"success"},s().translator.trans("flarum-extension-manager.admin.extensions.successful_install",{extension:t})),window.location.href=`${s().forum.attribute("adminUrl")}#/extension/${t}`,window.location.reload()}})).catch(b).finally((()=>{s().modal.close(),m.redraw()}))}checkForUpdates(){this.setLoading("check"),s().request({method:"POST",url:`${s().forum.attribute("apiUrl")}/extension-manager/check-for-updates`}).then((e=>{e.processing?p():(this.lastUpdateCheck=e,this.extensionUpdates=this.formatExtensionUpdates(e),this.coreUpdate=this.formatCoreUpdate(e),this.setLoading(null),m.redraw())})).catch(b).finally((()=>{m.redraw()}))}updateCoreMinor(){confirm(y()(s().translator.trans("flarum-extension-manager.admin.minor_update_confirmation.content")))&&(s().modal.show(d()),this.setLoading("minor-update"),s().request({method:"POST",url:`${s().forum.attribute("apiUrl")}/extension-manager/minor-update`}).then((e=>{e?.processing?p():(s().alerts.show({type:"success"},s().translator.trans("flarum-extension-manager.admin.update_successful")),window.location.reload())})).catch(b).finally((()=>{s().modal.close(),m.redraw()})))}updateExtension(e,t){s().modal.show(d()),this.setLoading("extension-update"),s().request({method:"PATCH",url:`${s().forum.attribute("apiUrl")}/extension-manager/extensions/${e.id}`,body:{data:{updateMode:t}}}).then((t=>{t?.processing?p():(s().alerts.show({type:"success"},s().translator.trans("flarum-extension-manager.admin.extensions.successful_update",{extension:e.extra["flarum-extension"].title})),window.location.reload())})).catch(b).finally((()=>{s().modal.close(),m.redraw()}))}updateGlobally(){s().modal.show(d()),this.setLoading("global-update"),s().request({method:"POST",url:`${s().forum.attribute("apiUrl")}/extension-manager/global-update`}).then((e=>{e?.processing?p():(s().alerts.show({type:"success"},s().translator.trans("flarum-extension-manager.admin.updater.global_update_successful")),window.location.reload())})).catch(b).finally((()=>{s().modal.close(),m.redraw()}))}formatExtensionUpdates(e){return this.packageUpdates={},e?.updates?.installed?.filter((e=>{const t=e.name.replace("/","-").replace(/(flarum-ext-)|(flarum-)/,""),a=s().data.extensions[t],n=["semver-safe-update","update-possible"].includes(e["latest-status"]);return a&&n&&(this.packageUpdates[a.id]=e),a&&n})),Object.values(s().data.extensions).filter((e=>this.packageUpdates[e.id]))}formatCoreUpdate(e){const t=e?.updates?.installed?.filter((e=>"flarum/core"===e.name)).pop();return t?{package:t,extension:{id:"flarum-core",name:"flarum/core",version:s().data.settings.version,icon:{name:"",backgroundImage:`url(${s().data.resources[0].attributes.baseUrl}/assets/extensions/flarum-extension-manager/flarum.svg`},extra:{"flarum-extension":{title:y()(s().translator.trans("flarum-extension-manager.admin.updater.flarum"))}},links:{}}}:null}majorUpdate(e){let{dryRun:t}=e;s().extensionManager.control.setLoading(t?"major-update-dry-run":"major-update"),s().modal.show(d());const a=this.lastUpdateRun.major;s().request({method:"POST",url:`${s().forum.attribute("apiUrl")}/extension-manager/major-update`,body:{data:{dryRun:t}}}).then((e=>{e?.processing?p():(s().alerts.show({type:"success"},s().translator.trans("flarum-extension-manager.admin.update_successful")),window.location.reload())})).catch(b).catch((e=>{s().modal.close(),a.status="failure",a.incompatibleExtensions=e.response?.errors?.pop()?.incompatible_extensions})).finally((()=>{m.redraw()}))}}flarum.reg.add("flarum-extension-manager","admin/states/ControlSectionState",_);const k=flarum.reg.get("core","common/states/PaginatedListState");var N=a.n(k);class M extends(N()){get type(){return"external-extensions"}constructor(){super({sort:"-downloads"},1,12)}sortMap(){return{"-createdAt":{sort:"-createdAt",label:s().translator.trans("flarum-extension-manager.admin.sections.discover.sort.latest",{},!0)},"-downloads":{sort:"-downloads",label:s().translator.trans("flarum-extension-manager.admin.sections.discover.sort.top",{},!0)}}}}flarum.reg.add("flarum-extension-manager","admin/states/ExtensionListState",M);class w{constructor(){f(this,"queue",new x),f(this,"control",new _),f(this,"extensions",new M)}}flarum.reg.add("flarum-extension-manager","admin/states/ExtensionManagerState",w);const E=flarum.reg.get("core","common/extenders");var S=a.n(E);const B=flarum.reg.get("core","common/Component");var U=a.n(B);const $=flarum.reg.get("core","common/components/LoadingIndicator");var C=a.n($);const q=flarum.reg.get("core","common/components/Tooltip");var P=a.n(q);const T=flarum.reg.get("core","common/components/Icon");var j=a.n(T);const F=flarum.reg.get("core","common/utils/ItemList");var L=a.n(F);const I=flarum.reg.get("core","common/components/Link");var A=a.n(I);const D=flarum.reg.get("core","common/components/Pagination");var O=a.n(D);const R=flarum.reg.get("core","common/utils/classList");var Y=a.n(R);class W extends(U()){view(e){const{className:t,type:a,...n}=this.attrs;return m("span",Object.assign({className:Y()(["Label",`Label--${this.attrs.type}`,t])},n),e.children)}}flarum.reg.add("flarum-extension-manager","admin/components/Label",W);const G=flarum.reg.get("core","common/components/Modal");var V=a.n(G);class H extends(V()){className(){return"Modal--large QuickModal"}title(){return s().translator.trans(`flarum-extension-manager.admin.sections.queue.operations.${this.attrs.task.operation()}`)}content(){return m("div",{className:"Modal-body"},m("div",{className:"TaskOutputModal-data"},"failure"===this.attrs.task.status()&&m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.sections.queue.output_modal.guessed_cause")),m("div",{className:"FormControl TaskOutputModal-data-guessed-cause"},this.attrs.task.guessedCause()&&s().translator.trans("flarum-extension-manager.admin.exceptions.guessed_cause."+this.attrs.task.guessedCause())||s().translator.trans("flarum-extension-manager.admin.sections.queue.output_modal.cause_unknown"))),m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.sections.queue.output_modal.command")),m("div",{className:"FormControl TaskOutputModal-data-command"},m("code",null,"$ composer ",this.attrs.task.command()))),m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.sections.queue.output_modal.output")),m("div",{className:"FormControl TaskOutputModal-data-output"},m("code",null,m("pre",null,this.attrs.task.output()))))))}}flarum.reg.add("flarum-extension-manager","admin/components/TaskOutputModal",H);var z=a(151),Q=a.n(z);function J(e,t){dayjs.extend(Q());const a=dayjs(t).diff(e);return dayjs.duration(a).humanize()}flarum.reg.add("flarum-extension-manager","admin/utils/humanDuration",J);class Z extends(U()){oninit(e){super.oninit(e),s().extensionManager.queue.load()}view(){return m("section",{id:"ExtensionManager-queueSection",className:"ExtensionPage-settings ExtensionManager-queueSection"},m("div",{className:"ExtensionPage-permissions-header ExtensionManager-queueSection-header"},m("div",{className:"container"},m("h2",{className:"ExtensionTitle"},s().translator.trans("flarum-extension-manager.admin.sections.queue.title")),m(l(),{className:"Button Button--icon",icon:"fas fa-sync-alt",onclick:()=>s().extensionManager.queue.load(),"aria-label":s().translator.trans("flarum-extension-manager.admin.sections.queue.refresh"),disabled:s().extensionManager.control.isLoading()}))),m("div",{className:"container"},this.queueTable()))}columns(){const e=new(L());return e.add("operation",{label:y()(s().translator.trans("flarum-extension-manager.admin.sections.queue.columns.operation")),content:e=>m("div",{className:"ExtensionManager-queueTable-operation"},m("span",{className:"ExtensionManager-queueTable-operation-icon"},this.operationIcon(e.operation())),m("span",{className:"ExtensionManager-queueTable-operation-name"},s().translator.trans(`flarum-extension-manager.admin.sections.queue.operations.${e.operation()}`)))},80),e.add("package",{label:y()(s().translator.trans("flarum-extension-manager.admin.sections.queue.columns.package")),content:e=>{const t=s().data.extensions[e.package()?.replace(/(\/flarum-|\/flarum-ext-|\/)/g,"-")];return t?m(A(),{className:"ExtensionManager-queueTable-package",href:s().route("extension",{id:t.id})},m("div",{className:"ExtensionManager-queueTable-package-icon ExtensionIcon",style:t.icon},!!t.icon&&m(j(),{name:t.icon.name})),m("div",{className:"ExtensionManager-queueTable-package-details"},m("span",{className:"ExtensionManager-queueTable-package-title"},t.extra["flarum-extension"].title),m("span",{className:"ExtensionManager-queueTable-package-name"},e.package()))):e.package()}},75),e.add("status",{label:y()(s().translator.trans("flarum-extension-manager.admin.sections.queue.columns.status")),content:e=>m("[",null,m(W,{className:"ExtensionManager-queueTable-status",type:{running:"neutral",failure:"error",pending:"warning",success:"success"}[e.status()]},s().translator.trans(`flarum-extension-manager.admin.sections.queue.statuses.${e.status()}`)),["pending","running"].includes(e.status())&&m(C(),{size:"small",display:"inline"}))},70),e.add("elapsedTime",{label:y()(s().translator.trans("flarum-extension-manager.admin.sections.queue.columns.elapsed_time")),content:e=>e.startedAt()&&e.finishedAt()?m(P(),{text:`${dayjs(e.startedAt()).format("LL LTS")} ${dayjs(e.finishedAt()).format("LL LTS")}`},m("span",null,J(e.startedAt(),e.finishedAt()))):s().translator.trans("flarum-extension-manager.admin.sections.queue.task_just_started")},65),e.add("memoryUsed",{label:y()(s().translator.trans("flarum-extension-manager.admin.sections.queue.columns.peak_memory_used")),content:e=>m("span",null,e.peakMemoryUsed())},60),e.add("details",{label:y()(s().translator.trans("flarum-extension-manager.admin.sections.queue.columns.details")),content:e=>m(l(),{className:"Button Button--icon Table-controls-item",icon:"fas fa-file-alt","aria-label":s().translator.trans("flarum-extension-manager.admin.sections.queue.columns.details"),onclick:()=>s().modal.show(H,{task:e}),disabled:["pending","running"].includes(e.status())}),className:"Table-controls"},55),e}queueTable(){const e=s().extensionManager.queue.getItems();if(!e)return m(C(),null);if(e&&!e.length)return m("h3",{className:"ExtensionPage-subHeader"},s().translator.trans("flarum-extension-manager.admin.sections.queue.none"));const t=this.columns();return m("[",null,m("div",{className:Y()("Table-container",{"loading-container":e&&s().extensionManager.queue.isLoading()})},m("table",{className:"Table ExtensionManager-queueTable"},m("thead",null,m("tr",null,t.toArray().map(((e,t)=>m("th",{key:t},e.label))))),m("tbody",null,e.map(((e,a)=>m("tr",{key:a},t.toArray().map(((t,a)=>{const{label:n,content:s,...r}=t;return m("td",Object.assign({key:a},r),s(e))}))))))),e&&s().extensionManager.queue.isLoading()&&m(C(),{size:"large"})),m(O(),{total:s().extensionManager.queue.getTotalItems(),currentPage:s().extensionManager.queue.pageNumber()+1,perPage:s().extensionManager.queue.getPerPage(),onChange:e=>s().extensionManager.queue.goto(e)}))}operationIcon(e){return m(j(),{name:{update_check:"fas fa-sync-alt",update_major:"fas fa-play",update_minor:"fas fa-play",update_global:"fas fa-play",extension_install:"fas fa-download",extension_remove:"fas fa-times",extension_update:"fas fa-arrow-alt-circle-up",why_not:"fas fa-exclamation-circle"}[e]})}}flarum.reg.add("flarum-extension-manager","admin/components/QueueSection",Z);const K=flarum.reg.get("core","common/utils/Stream");var X=a.n(K);class ee extends(U()){constructor(){super(...arguments),f(this,"packageName",void 0)}oninit(e){super.oninit(e),this.packageName=X()("")}view(){return m("div",{className:"Form-group ExtensionManager-installer"},m("label",{htmlFor:"install-extension"},s().translator.trans("flarum-extension-manager.admin.extensions.install")),m("div",{className:"helpText"},s().translator.trans("flarum-extension-manager.admin.extensions.install_help",{link:m("a",{href:"https://flarum.org/extensions"},"flarum.org"),semantic_link:m("a",{href:"https://devhints.io/semver"}),code:m("code",null)})),m("div",{className:"FormControl-container"},m("input",{className:"FormControl",id:"install-extension",placeholder:"vendor/package-name",bidi:this.packageName}),m(l(),{className:"Button",icon:"fas fa-download",onclick:this.onsubmit.bind(this),loading:s().extensionManager.control.isLoading("extension-install"),disabled:s().extensionManager.control.hasOperationRunning()},s().translator.trans("flarum-extension-manager.admin.extensions.proceed"))))}data(){return{package:this.packageName()}}onsubmit(){s().extensionManager.control.requirePackage(this.data())}}flarum.reg.add("flarum-extension-manager","admin/components/Installer",ee);const te=flarum.reg.get("core","common/helpers/humanTime");var ae=a.n(te);const ne=flarum.reg.get("core","common/components/Alert");var se=a.n(ne);class re extends(V()){constructor(){super(...arguments),f(this,"loading",!0),f(this,"whyNot",null)}className(){return"Modal--large WhyNotModal"}title(){return s().translator.trans("flarum-extension-manager.admin.why_not_modal.title")}oncreate(e){super.oncreate(e),this.requestWhyNot()}content(){return m("div",{className:"Modal-body"},this.loading?m(C(),null):m("pre",{className:"WhyNotModal-contents"},this.whyNot))}requestWhyNot(){s().request({method:"POST",url:`${s().forum.attribute("apiUrl")}/extension-manager/why-not`,body:{data:{package:this.attrs.package}}}).then((e=>{this.loading=!1,this.whyNot=e.data.reason,m.redraw()})).catch(b)}}flarum.reg.add("flarum-extension-manager","admin/components/WhyNotModal",re);const ie=flarum.reg.get("core","common/components/Badge");var oe=a.n(ie);const le=flarum.reg.get("core","common/utils/formatAmount");var me=a.n(le);const ue=flarum.reg.get("core","common/Model");var de=a.n(ue);let ce=function(e){return e.Stable="stable",e.Alpha="alpha",e.Beta="beta",e.RC="rc",e.Dev="dev",e}({});function ge(e){return[ce.Stable].includes(pe(e))}function pe(e){const t=e.split("-");if(1===t.length)return ce.Stable;switch(t[1].split(".")[0].toLowerCase()){case"alpha":return ce.Alpha;case"beta":return ce.Beta;case"rc":return ce.RC;default:return ce.Dev}}flarum.reg.add("flarum-extension-manager","admin/utils/versions",{VersionStability:ce,isProductionReady:ge,stability:pe});class he extends(de()){constructor(){super(...arguments),f(this,"extensionId",de().attribute("extensionId")),f(this,"name",de().attribute("name")),f(this,"title",de().attribute("title")),f(this,"description",de().attribute("description")),f(this,"iconUrl",de().attribute("iconUrl")),f(this,"icon",de().attribute("icon")),f(this,"highestVersion",de().attribute("highestVersion")),f(this,"httpUri",de().attribute("httpUri")),f(this,"discussUri",de().attribute("discussUri")),f(this,"vendor",de().attribute("vendor")),f(this,"isPremium",de().attribute("isPremium")),f(this,"isLocale",de().attribute("isLocale")),f(this,"locale",de().attribute("locale")),f(this,"latestFlarumVersionSupported",de().attribute("latestFlarumVersionSupported")),f(this,"downloads",de().attribute("downloads")),f(this,"installed",!1)}isSupported(){const e=s().data.settings.version,t=this.latestFlarumVersionSupported();return e.split("-")[1]===t.split("-")[1]&&e.split(".")[0]===t.split(".")[0]}isProductionReady(){return ge(this.highestVersion())}toLocalExtension(){return{id:this.extensionId(),name:this.name(),version:this.highestVersion(),description:this.description(),icon:this.icon()||{name:"fas fa-box-open",backgroundColor:"#117187",color:"#fff"},links:{discuss:this.discussUri(),website:this.httpUri()},extra:{"flarum-extension":{title:this.title()}}}}}flarum.reg.add("flarum-extension-manager","admin/models/ExternalExtension",he);const fe=flarum.reg.get("core","common/components/Dropdown");var xe=a.n(fe);const be=flarum.reg.get("core","common/components/LinkButton");var ve=a.n(be);class ye extends(U()){getExtension(){return this.attrs.extension instanceof he?this.attrs.extension.toLocalExtension():this.attrs.extension}view(){const e=this.getExtension(),{isCore:t,isDanger:a}=this.attrs;return m("div",{className:Y()("ExtensionCard",{"ExtensionCard--core":t,"ExtensionCard--danger":a})},m("div",{className:"ExtensionCard-header"},this.icon(),m(P(),{text:e.name},m("h4",null,e.extra["flarum-extension"].title)),this.attrs.extension instanceof he&&m("div",{className:"ExtensionCard-badges"},this.badges().toArray()),m("div",{className:"ExtensionCard-actions"},this.actionItems().toArray())),m("div",{className:"ExtensionCard-body"},m("p",null,e.description)),m("div",{className:"ExtensionCard-footer"},m("div",{className:"ExtensionCard-meta"},this.metaItems().toArray())))}icon(){const e=this.getExtension();this.attrs.extension instanceof he&&e.id in s().data.extensions&&(e.icon=s().data.extensions[e.id].icon);const t=e.icon||{};return!e.icon?.name&&this.attrs.extension instanceof he&&!(e.id in s().data.extensions)&&this.attrs.extension.iconUrl()&&(t.backgroundImage=`url(${this.attrs.extension.iconUrl()})`),m("span",{className:"ExtensionIcon",style:e.icon},e.icon?.name?m(j(),{name:e.icon.name}):null)}badges(){const e=new(L()),t=this.attrs.extension;return t.isSupported()?e.add("compatible",m(oe(),{icon:"fas fa-check",type:"success",label:s().translator.trans("flarum-extension-manager.admin.sections.discover.extension.badges.compatible"),className:"Badge--flat Badge--square"})):e.add("incompatible",m(oe(),{icon:"fas fa-times",type:"danger",label:s().translator.trans("flarum-extension-manager.admin.sections.discover.extension.badges.incompatible"),className:"Badge--flat Badge--square"})),t.isPremium()&&e.add("premium",m(oe(),{icon:"fas fa-dollar-sign",label:s().translator.trans("flarum-extension-manager.admin.sections.discover.extension.badges.premium"),className:"ExtensionCard-badge--premium Badge--flat Badge--square"})),t.isProductionReady()||e.add("unstable",m(oe(),{icon:"fas fa-flask",label:s().translator.trans("flarum-extension-manager.admin.sections.discover.extension.badges.unstable"),className:"Badge--flat Badge--square Badge--danger"})),"fof"===t.name().split("/")[0]&&e.add("fof",m(oe(),{icon:"fas fa-users",label:s().translator.trans("flarum-extension-manager.admin.sections.discover.extension.badges.fof"),className:"Badge--flat Badge--square"})),"flarum"===t.name().split("/")[0]&&e.add("flarum",m(oe(),{icon:"fab fa-flarum",label:s().translator.trans("flarum-extension-manager.admin.sections.discover.extension.badges.flarum"),className:"ExtensionCard-badge--flarum Badge--flat Badge--square"})),e}metaItems(){const e=new(L()),{updates:t,isCore:a}=this.attrs,n=t?t["latest-minor"]??(t["latest-major"]&&!a?t["latest-major"]:null):null;return this.attrs.extension instanceof he?e.add("downloads",m("span",null,m(j(),{name:"fas fa-circle-down"}),s().translator.trans("flarum-extension-manager.admin.sections.discover.extension.downloads",{count:this.attrs.extension.downloads(),formattedCount:me()(this.attrs.extension.downloads())}))):e.add("version",m("div",{className:"ExtensionCard-version"},m("span",{className:"ExtensionCard-version-current"},this.version(t.version)),n?m("[",null,m(j(),{name:"fas fa-arrow-right"}),m(W,{className:"ExtensionCard-version-latest",type:t["latest-minor"]?"success":"warning"},this.version(n))):null)),this.attrs.extension instanceof he&&(e.add("version",m("div",{className:"ExtensionCard-version"},"v",this.version(this.attrs.extension.highestVersion()))),e.add("link",m(ve(),{className:"Button Button--ua-reset Button--link Button--icon",href:this.attrs.extension.httpUri(),target:"_blank",icon:"fas fa-external-link-alt",external:!0}))),e}actionItems(){const e=new(L()),{updates:t,extension:a,onClickUpdate:n,whyNotWarning:r}=this.attrs;return a instanceof he?a.extensionId()in s().data.extensions?e.add("installed",m(l(),{className:"Button Button--icon Button--flat Button--success",icon:"fas fa-check-circle",disabled:!0})):e.add("install",m(l(),{className:"Button Button--icon Button--flat",icon:"fas fa-cloud-arrow-down",onclick:()=>{s().extensionManager.control.requirePackage({package:a.name()})}})):(n&&"function"==typeof n?e.add("update",m(P(),{text:s().translator.trans("flarum-extension-manager.admin.extensions.update")},m(l(),{icon:"fas fa-cloud-arrow-down",className:"Button Button--icon Button--flat",onclick:n,"aria-label":s().translator.trans("flarum-extension-manager.admin.extensions.update")}))):n&&e.add("update",m(xe(),{buttonClassName:"Button Button--icon Button--flat",icon:"fas fa-ellipsis",label:s().translator.trans("flarum-extension-manager.admin.extensions.update")},m(l(),{icon:"fas fa-cloud-arrow-down",onclick:n.soft},s().translator.trans("flarum-extension-manager.admin.extensions.update_soft_label")),m(l(),{icon:"fas fa-rotate",onclick:n.hard,disabled:!t["direct-dependency"]},s().translator.trans("flarum-extension-manager.admin.extensions.update_hard_label")))),r&&e.add("whyNot",m(P(),{text:s().translator.trans("flarum-extension-manager.admin.extensions.check_why_it_failed_updating")},m(l(),{icon:"fas fa-exclamation-circle",className:"Button Button--icon Button--flat Button--danger",onclick:()=>s().modal.show(re,{package:a.name}),"aria-label":s().translator.trans("flarum-extension-manager.admin.extensions.check_why_it_failed_updating")})))),e}version(e){return"v"===e.charAt(0)?e.substring(1):e}}flarum.reg.add("flarum-extension-manager","admin/components/ExtensionCard",ye);class _e extends(U()){constructor(){super(...arguments),f(this,"updateState",void 0)}oninit(e){super.oninit(e),this.updateState=this.attrs.updateState}view(){return m("div",{className:Y()("Form-group Form-group--danger ExtensionManager-majorUpdate",{"ExtensionManager-majorUpdate--failed":"failure"===this.updateState.status,"ExtensionManager-majorUpdate--incompatibleExtensions":this.updateState.incompatibleExtensions.length})},m("img",{alt:"flarum logo",src:s().forum.attribute("baseUrl")+"/assets/extensions/flarum-extension-manager/flarum.svg"}),m("label",null,s().translator.trans("flarum-extension-manager.admin.major_updater.title",{version:this.attrs.coreUpdate["latest-major"]})),m("p",{className:"helpText"},s().translator.trans("flarum-extension-manager.admin.major_updater.description")),m("div",{className:"ExtensionManager-updaterControls"},m(P(),{text:s().translator.trans("flarum-extension-manager.admin.major_updater.dry_run_help")},m(l(),{className:"Button",icon:"fas fa-vial",onclick:this.update.bind(this,!0),disabled:s().extensionManager.control.hasOperationRunning()},s().translator.trans("flarum-extension-manager.admin.major_updater.dry_run"))),m(l(),{className:"Button Button--danger",icon:"fas fa-play",onclick:this.update.bind(this,!1),disabled:s().extensionManager.control.hasOperationRunning()},s().translator.trans("flarum-extension-manager.admin.major_updater.update"))),this.updateState.incompatibleExtensions.length?m("div",{className:"ExtensionManager-majorUpdate-incompatibleExtensions ExtensionManager-extensions-grid"},this.updateState.incompatibleExtensions.map((e=>m(ye,{extension:s().data.extensions[e.replace("flarum-","").replace("flarum-ext-","").replace("/","-")],updates:{},onClickUpdate:null,isDanger:!0})))):null,"failure"===this.updateState.status?m(se(),{type:"error",className:"ExtensionManager-majorUpdate-failure",dismissible:!1,controls:[m(l(),{className:"Button Button--text ExtensionManager-majorUpdate-failure-details",icon:"fas fa-question-circle",onclick:()=>s().modal.show(re,{package:"flarum/core"})},s().translator.trans("flarum-extension-manager.admin.major_updater.failure.why"))]},m("p",{className:"ExtensionManager-majorUpdate-failure-desc"},s().translator.trans("flarum-extension-manager.admin.major_updater.failure.desc"))):null)}update(e){s().extensionManager.control.majorUpdate({dryRun:e})}}flarum.reg.add("flarum-extension-manager","admin/components/MajorUpdater",_e);const ke=flarum.reg.get("core","common/components/InfoTile");var Ne=a.n(ke);class Me extends(U()){view(){const e=s().extensionManager.control.coreUpdate;return[m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.updater.updater_title")),m("div",{className:"helpText"},s().translator.trans("flarum-extension-manager.admin.updater.updater_help")),this.lastUpdateCheckView(),m("div",{className:"ExtensionManager-updaterControls"},this.controlItems().toArray()),this.availableUpdatesView()),e&&e.package["latest-major"]&&ge(e.package["latest-major"])?m(_e,{coreUpdate:e.package,updateState:s().extensionManager.control.lastUpdateRun.major}):null]}lastUpdateCheckView(){return s().extensionManager.control.lastUpdateCheck?.checkedAt&&m("p",{className:"ExtensionManager-lastUpdatedAt"},m("span",{className:"ExtensionManager-lastUpdatedAt-label"},s().translator.trans("flarum-extension-manager.admin.updater.last_update_checked_at")),m("span",{className:"ExtensionManager-lastUpdatedAt-value"},ae()(s().extensionManager.control.lastUpdateCheck.checkedAt)))||null}availableUpdatesView(){const e=s().extensionManager.control;if(s().extensionManager.control.isLoading("check")||s().extensionManager.control.isLoading("global-update"))return m("div",{className:"ExtensionManager-extensions"},m(C(),null));const t=e.coreUpdate&&e.coreUpdate.package["latest-minor"];return e.extensionUpdates.length||t?m("div",{className:"ExtensionManager-extensions"},m("div",{className:"ExtensionManager-extensions-grid"},t?m(ye,{extension:e.coreUpdate.extension,updates:e.coreUpdate.package,isCore:!0,onClickUpdate:()=>e.updateCoreMinor(),whyNotWarning:e.lastUpdateRun.limitedPackages().includes("flarum/core")}):null,e.extensionUpdates.map((t=>m(ye,{extension:t,updates:e.packageUpdates[t.id],onClickUpdate:{soft:()=>e.updateExtension(t,"soft"),hard:()=>e.updateExtension(t,"hard")},whyNotWarning:e.lastUpdateRun.limitedPackages().includes(t.name)}))))):m("div",{className:"ExtensionManager-extensions ExtensionManager-extensions--empty"},m(Ne(),{icon:"fas fa-plug-circle-check"},s().translator.trans("flarum-extension-manager.admin.updater.up_to_date")))}controlItems(){const e=new(L());return e.add("updateCheck",m(l(),{className:"Button",icon:"fas fa-sync-alt",onclick:()=>s().extensionManager.control.checkForUpdates(),loading:s().extensionManager.control.isLoading("check"),disabled:s().extensionManager.control.hasOperationRunning()},s().translator.trans("flarum-extension-manager.admin.updater.check_for_updates")),100),e.add("globalUpdate",m(l(),{className:"Button",icon:"fas fa-play",onclick:()=>s().extensionManager.control.updateGlobally(),loading:s().extensionManager.control.isLoading("global-update"),disabled:s().extensionManager.control.hasOperationRunning()},s().translator.trans("flarum-extension-manager.admin.updater.run_global_update"))),e}}flarum.reg.add("flarum-extension-manager","admin/components/Updater",Me);const we=flarum.reg.get("core","common/components/Form");var Ee=a.n(we);class Se extends(U()){oninit(e){super.oninit(e)}view(){return m("div",{className:"ExtensionPage-settings ExtensionManager-controlSection"},m("div",{className:"container"},m(Ee(),null,m(ee,null),m(Me,null))))}}flarum.reg.add("flarum-extension-manager","admin/components/ControlSection",Se);const Be=flarum.reg.get("core","common/components/FormGroup");var Ue=a.n(Be);class $e extends(U()){constructor(){super(...arguments),f(this,"settings",{}),f(this,"initialSettings",null),f(this,"loading",!1),f(this,"type",void 0)}oninit(e){super.oninit(e),this.submit(!0)}className(){return""}view(){return m("div",{className:Y()("FormSection",this.className())},m("label",null,this.title()),this.content(),m("div",{className:"Form-group Form-controls"},this.submitButton()))}submitButton(){return[m(l(),{className:"Button Button--primary",loading:this.loading,onclick:()=>this.submit(!1),disabled:!this.isDirty()},s().translator.trans("core.admin.settings.submit_button"))]}customSettingComponents(){return Ue().prototype.customFieldComponents()}setting(e){return this.settings[e]??(this.settings[e]=X()())}submit(e){this.loading=!0;const t={};Object.keys(this.settings).forEach((e=>{t[e]=this.settings[e]()})),s().request({method:"POST",url:s().forum.attribute("apiUrl")+"/extension-manager/composer",body:{type:this.type,data:e?null:t}}).then((e=>{let{data:t}=e;Object.keys(t).forEach((e=>{this.settings[e]=X()(t[e])})),this.initialSettings=Array.isArray(t)?{}:t})).finally((()=>{this.loading=!1,m.redraw()}))}isDirty(){return JSON.stringify(this.initialSettings)!==JSON.stringify(this.settings)}}flarum.reg.add("flarum-extension-manager","admin/components/ConfigureJson",$e);const Ce=flarum.reg.get("core","common/components/Select");var qe=a.n(Ce);class Pe extends(V()){constructor(){super(...arguments),f(this,"name",void 0),f(this,"repository",void 0)}oninit(e){super.oninit(e),this.name=X()(this.attrs.name||""),this.repository=X()(this.attrs.repository||{type:"composer",url:""})}className(){return"RepositoryModal Modal--small"}title(){const e=this.attrs.repository?"edit":"add";return s().translator.trans(`flarum-extension-manager.admin.composer.${e}_repository_label`)}content(){const e={composer:s().translator.trans("flarum-extension-manager.admin.composer.repositories.types.composer"),vcs:s().translator.trans("flarum-extension-manager.admin.composer.repositories.types.vcs"),path:s().translator.trans("flarum-extension-manager.admin.composer.repositories.types.path")};return m("div",{className:"Modal-body"},m(Ee(),null,m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.composer.repositories.add_modal.name_label")),m("input",{className:"FormControl",bidi:this.name})),m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.composer.repositories.add_modal.type_label")),m(qe(),{options:e,value:this.repository().type,onchange:e=>this.repository({...this.repository(),type:e})})),m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.composer.repositories.add_modal.url")),m("input",{className:"FormControl",onchange:e=>this.repository({...this.repository(),url:e.target.value}),value:this.repository().url})),m("div",{className:"Form-group"},m(l(),{className:"Button Button--primary",onclick:this.submit.bind(this)},s().translator.trans("flarum-extension-manager.admin.composer.repositories.add_modal.submit_button")))))}submit(){this.attrs.onsubmit(this.repository(),this.name()),this.hide()}}flarum.reg.add("flarum-extension-manager","admin/components/RepositoryModal",Pe);class Te extends $e{constructor(){super(...arguments),f(this,"type","composer")}title(){return s().translator.trans("flarum-extension-manager.admin.composer.title")}className(){return"ConfigureComposer"}content(){return m("div",{className:"Form ExtensionManager-SettingsGroups-content"},this.attrs.buildSettingComponent.call(this,{setting:"minimum-stability",label:s().translator.trans("flarum-extension-manager.admin.composer.minimum_stability.label"),help:s().translator.trans("flarum-extension-manager.admin.composer.minimum_stability.help"),type:"select",options:{stable:s().translator.trans("flarum-extension-manager.admin.composer.minimum_stability.options.stable"),RC:s().translator.trans("flarum-extension-manager.admin.composer.minimum_stability.options.rc"),beta:s().translator.trans("flarum-extension-manager.admin.composer.minimum_stability.options.beta"),alpha:s().translator.trans("flarum-extension-manager.admin.composer.minimum_stability.options.alpha"),dev:s().translator.trans("flarum-extension-manager.admin.composer.minimum_stability.options.dev")}}),m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.composer.repositories.label")),m("div",{className:"helpText"},s().translator.trans("flarum-extension-manager.admin.composer.repositories.help")),m("div",{className:"ConfigureComposer-repositories"},Object.keys(this.setting("repositories")()||{}).map((e=>{const t=this.setting("repositories")()[e];return m("div",{className:"ButtonGroup ButtonGroup--full"},m(l(),{className:"Button",icon:{composer:"fas fa-cubes",vcs:"fas fa-code-branch",path:"fas fa-folder"}[t.type],onclick:()=>s().modal.show(Pe,{name:e,repository:t,onsubmit:(t,a)=>{const n=this.setting("repositories")();delete n[e],this.setting("repositories")(n),this.onchange(t,a)}})},e," (",t.type,")"),m(l(),{className:"Button Button--icon",icon:"fas fa-trash","aria-label":s().translator.trans("flarum-extension-manager.admin.composer.delete_repository_label"),onclick:()=>{if(confirm(y()(s().translator.trans("flarum-extension-manager.admin.composer.delete_repository_confirmation")))){const t={...this.setting("repositories")()};delete t[e],this.setting("repositories")(t)}}}))})))))}submitButton(){const e=super.submitButton();return e.push(m(l(),{className:"Button",onclick:()=>s().modal.show(Pe,{onsubmit:this.onchange.bind(this)})},s().translator.trans("flarum-extension-manager.admin.composer.add_repository_label"))),e}onchange(e,t){this.setting("repositories")({...this.setting("repositories")(),[t]:e})}}flarum.reg.add("flarum-extension-manager","admin/components/ConfigureComposer",Te);class je extends(V()){constructor(){super(...arguments),f(this,"type",void 0),f(this,"host",void 0),f(this,"token",void 0)}oninit(e){super.oninit(e),this.type=X()(this.attrs.type||"bearer"),this.host=X()(this.attrs.host||""),this.token=X()(this.attrs.token||"")}className(){return"AuthMethodModal Modal--small"}title(){const e=this.attrs.host?"edit":"add";return s().translator.trans(`flarum-extension-manager.admin.auth_config.${e}_label`)}content(){const e={"github-oauth":s().translator.trans("flarum-extension-manager.admin.auth_config.types.github-oauth"),"gitlab-oauth":s().translator.trans("flarum-extension-manager.admin.auth_config.types.gitlab-oauth"),"gitlab-token":s().translator.trans("flarum-extension-manager.admin.auth_config.types.gitlab-token"),bearer:s().translator.trans("flarum-extension-manager.admin.auth_config.types.bearer")};return m("div",{className:"Modal-body"},m(Ee(),null,m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.auth_config.add_modal.type_label")),m(qe(),{options:e,value:this.type(),onchange:this.type})),m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.auth_config.add_modal.host_label")),m("input",{className:"FormControl",bidi:this.host,placeholder:s().translator.trans("flarum-extension-manager.admin.auth_config.add_modal.host_placeholder")})),m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.auth_config.add_modal.token_label")),m("textarea",{className:"FormControl",oninput:e=>this.token(e.target.value),rows:"6",placeholder:this.token().startsWith("unchanged:")?y()(s().translator.trans("flarum-extension-manager.admin.auth_config.add_modal.unchanged_token_placeholder")):""},this.token().startsWith("unchanged:")?"":this.token())),m("div",{className:"Form-group"},m(l(),{className:"Button Button--primary",onclick:this.submit.bind(this)},s().translator.trans("flarum-extension-manager.admin.auth_config.add_modal.submit_button")))))}submit(){this.attrs.onsubmit(this.type(),this.host(),this.token()),this.hide()}}flarum.reg.add("flarum-extension-manager","admin/components/AuthMethodModal",je);class Fe extends $e{constructor(){super(...arguments),f(this,"type","auth")}title(){return s().translator.trans("flarum-extension-manager.admin.auth_config.title")}className(){return"ConfigureAuth"}content(){const e=Object.keys(this.settings),t=e.length&&e.every((e=>{const t=this.settings[e]();return Array.isArray(t)?t.length:Object.keys(t).length}));return m("div",{className:"ExtensionManager-SettingsGroups-content"},t?e.map((e=>{const t=this.settings[e]();return m("div",{className:"Form-group"},m("label",null,s().translator.trans(`flarum-extension-manager.admin.auth_config.types.${e}`)),m("div",{className:"ConfigureAuth-hosts"},Object.keys(t).map((a=>{const n=t[a];return m("div",{className:"ButtonGroup ButtonGroup--full"},m(l(),{className:"Button",icon:"fas fa-key",onclick:()=>s().modal.show(je,{type:e,host:a,token:n,onsubmit:this.onchange.bind(this,a)})},a),m(l(),{className:"Button Button--icon",icon:"fas fa-trash","aria-label":s().translator.trans("flarum-extension-manager.admin.auth_config.delete_label"),onclick:()=>{if(confirm(y()(s().translator.trans("flarum-extension-manager.admin.auth_config.delete_confirmation")))){const t={...this.setting(e)()};delete t[a],Object.keys(t).length?this.setting(e)(t):delete this.settings[e]}}}))}))))})):m("span",{className:"helpText"},s().translator.trans("flarum-extension-manager.admin.auth_config.no_auth_methods_configured")))}submitButton(){const e=super.submitButton();return e.push(m(l(),{className:"Button",loading:this.loading,onclick:()=>s().modal.show(je,{onsubmit:this.onchange.bind(this,null)})},s().translator.trans("flarum-extension-manager.admin.auth_config.add_label"))),e}onchange(e,t,a,n){const s={...this.setting(t)()};e&&delete s[e],s[a]=n,this.setting(t)(s)}}flarum.reg.add("flarum-extension-manager","admin/components/ConfigureAuth",Fe);const Le=flarum.reg.get("core","common/components/Input");var Ie=a.n(Le);const Ae=flarum.reg.get("core","common/helpers/listItems");var De=a.n(Ae);const Oe=flarum.reg.get("core","common/utils/throttleDebounce");class Re extends(U()){constructor(){super(...arguments),f(this,"search",X()("")),f(this,"warningsDismissed",X()(!1)),f(this,"applySearch",(0,Oe.throttle)(1200,(e=>{const t=s().extensionManager.extensions.getParams();s().extensionManager.extensions.refreshParams({...t,filter:{...t.filter,q:e}},1)})))}oninit(e){super.oninit(e),s().extensionManager.extensions.goto(1),this.warningsDismissed("true"===localStorage.getItem("flarum-extension-manager.warningsDismissed"))}load(e){void 0===e&&(e=1),s().extensionManager.extensions.goto(e)}view(){return m("div",{className:"ExtensionPage-settings ExtensionManager-DiscoverSection"},m("div",{className:"container"},m(Ee(),null,m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.sections.discover.title")),m("div",{className:"helpText"},s().translator.trans("flarum-extension-manager.admin.sections.discover.description"),this.warningsDismissed()&&m(l(),{className:"Button Button--text Button--warning Button--more",icon:"fas fa-exclamation-triangle",onclick:()=>this.setWarningDismissed(!1)}))),!this.warningsDismissed()&&m("div",{className:"ExtensionManager-warnings Form-group"},m(se(),{className:"ExtensionManager-primaryWarning",type:"warning",dismissible:!0,ondismiss:()=>this.setWarningDismissed(!0)},m("ul",null,De()(this.warningItems().toArray())))),m("div",{className:"Tabs"},m("div",{className:"Tabs-nav"},this.tabItems().toArray()),m("div",{className:"Tabs-content"},m("hr",{className:"Tabs-divider"}),m("div",{className:"ExtensionManager-DiscoverSection-toolbar"},m("div",{className:"ExtensionManager-DiscoverSection-toolbar-primary"},this.toolbarPrimaryItems().toArray()),m("div",{className:"ExtensionManager-DiscoverSection-toolbar-secondary"},this.toolbarSecondaryItems().toArray())),this.extensionList(),m("div",{className:"ExtensionManager-DiscoverSection-footer"},this.footerItems().toArray()))))))}tabFilters(){return{"":{label:s().translator.trans("flarum-extension-manager.admin.sections.discover.tabs.discover"),active:()=>!s().extensionManager.extensions.getParams().filter?.type},extension:{label:s().translator.trans("flarum-extension-manager.admin.sections.discover.tabs.extensions"),active:()=>"extension"===s().extensionManager.extensions.getParams().filter?.type},locale:{label:s().translator.trans("flarum-extension-manager.admin.sections.discover.tabs.languages"),active:()=>"locale"===s().extensionManager.extensions.getParams().filter?.type},theme:{label:s().translator.trans("flarum-extension-manager.admin.sections.discover.tabs.themes"),active:()=>"theme"===s().extensionManager.extensions.getParams().filter?.type}}}tabItems(){const e=new(L()),t=this.tabFilters();return Object.keys(t).forEach((a=>{const n=t[a];e.add(a,m(l(),{className:"Button Button--link",active:n.active(),onclick:()=>{s().extensionManager.extensions.changeFilter("type",a)}},n.label))})),e}warningItems(){const e=new(L());return e.add("accessWarning",s().translator.trans("flarum-extension-manager.admin.settings.access_warning")),s().data.debugEnabled&&e.add("devModeWarning",s().translator.trans("flarum-extension-manager.admin.settings.debug_mode_warning")),e}toolbarPrimaryItems(){const e=new(L());return e.add("search",m(Ie(),{value:this.search(),onchange:e=>{this.search(e),this.applySearch(e)},inputAttrs:{className:"FormControl-alt"},clearable:!0,placeholder:s().translator.trans("flarum-extension-manager.admin.sections.discover.search"),prefixIcon:"fas fa-search"})),e}toolbarSecondaryItems(){const e=new(L()),t=s().extensionManager.extensions.sortMap(),a=Object.keys(t).reduce(((e,a)=>{const n=t[a];return e[a]="string"!=typeof n?n.label:n,e}),{});e.add("sort",m(xe(),{buttonClassName:"Button",label:a[s().extensionManager.extensions.getParams().sort]||Object.keys(t).map((e=>a[e]))[0],accessibleToggleLabel:s().translator.trans("flarum-extension-manager.admin.sections.discover.sort.toggle_dropdown_accessible_label")},Object.keys(a).map((e=>{const t=a[e],n=s().extensionManager.extensions.getParams().sort===e;return m(l(),{icon:!n||"fas fa-check",onclick:()=>s().extensionManager.extensions.changeSort(e),active:n},t)}))));const n=(s().extensionManager.extensions.getParams().filter?.is?.[0]??null)||"all";return e.add("party",m(xe(),{buttonClassName:"Button",label:s().translator.trans("flarum-extension-manager.admin.sections.discover.party_filter."+n),accessibleToggleLabel:s().translator.trans("flarum-extension-manager.admin.sections.discover.party_filter.toggle_dropdown_accessible_label")},["all","premium"].map((e=>m(l(),{icon:n!==e||"fas fa-check",onclick:()=>{s().extensionManager.extensions.changeFilter("is","all"===e?void 0:[e])},active:n===e},s().translator.trans("flarum-extension-manager.admin.sections.discover.party_filter."+e)))))),e}extensionList(){return!s().extensionManager.extensions.hasItems()&&s().extensionManager.extensions.isLoading()?m(C(),{display:"block"}):s().extensionManager.extensions.hasItems()?m("div",{className:Y()("ExtensionManager-DiscoverSection-list",{"loading-container":s().extensionManager.extensions.isLoading()})},m("div",{className:"ExtensionManager-DiscoverSection-list-inner"},s().extensionManager.extensions.getPages().map((e=>e.items.map((e=>m(ye,{extension:e,key:e.name()})))))),s().extensionManager.extensions.hasItems()&&s().extensionManager.extensions.isLoading()&&m(C(),{size:"large"})):m("div",{className:"ExtensionManager-DiscoverSection-list ExtensionManager-DiscoverSection-list--empty"},m(Ne(),{icon:"fas fa-plug-circle-exclamation"},s().translator.trans("flarum-extension-manager.admin.sections.discover.empty_results")))}footerItems(){const e=new(L());return e.add("pagination",m(O(),{total:s().extensionManager.extensions.totalItems,perPage:s().extensionManager.extensions.pageSize,currentPage:s().extensionManager.extensions.getLocation().page,onChange:e=>{s().extensionManager.extensions.getLocation().page!==e&&this.load(e)}})),e.add("premiumTermsLink",m(ve(),{className:"Button Button--link",href:"https://flarum.org/terms/premium-extensions",external:!0,target:"_blank",icon:"fas fa-circle-info"},s().translator.trans("flarum-extension-manager.admin.sections.discover.premium_extension_terms"))),e}setWarningDismissed(e){this.warningsDismissed(e),localStorage.setItem("flarum-extension-manager.warningsDismissed",e?"true":"false")}}flarum.reg.add("flarum-extension-manager","admin/components/DiscoverSection",Re);class Ye extends(i()){content(){const e=s().registry.getSettings(this.extension.id);return m("div",{className:"ExtensionPage-settings"},m("div",{className:"container"},e?[m("div",{className:"Form-group"},m("label",null,s().translator.trans("flarum-extension-manager.admin.sections.settings.title")),m("div",{className:"helpText"},s().translator.trans("flarum-extension-manager.admin.sections.settings.description"))),m("div",{className:"FormSectionGroup ExtensionManager-SettingsGroups"},m("div",{className:"FormSection"},m("label",null,s().translator.trans("flarum-extension-manager.admin.settings.title")),m("div",{className:"Form"},e.map(this.buildSettingComponent.bind(this))),m("div",{className:"Form-group Form--controls"},this.submitButton())),m(Te,{buildSettingComponent:this.buildSettingComponent}),m(Fe,{buildSettingComponent:this.buildSettingComponent}))]:m("h3",{className:"ExtensionPage-subHeader"},s().translator.trans("core.admin.extension.no_settings"))))}sections(e){const t=super.sections(e),a=s().data["flarum-extension-manager.writable_dirs"],n=s().data["flarum-extension-manager.missing_functions"];return!a||n&&0!==n.length?t.add("warning",m("div",{className:"ExtensionPage-settings"},m("div",{className:"container"},m("div",{className:"Form-group"},m(se(),{type:"error",dismissible:!1},s().data["flarum-extension-manager.writable_dirs"]?s().translator.trans("flarum-extension-manager.admin.required_php_functions",{functions:s().data["flarum-extension-manager.missing_functions"].join(", ")}):s().translator.trans("flarum-extension-manager.admin.file_permissions"))))),10):(t.add("discover",m(Re,null),15),t.add("control",m(Se,null),10)),t.setPriority("content",8),"0"!==s().data.settings["flarum-extension-manager.queue_jobs"]&&s().data.settings["flarum-extension-manager.queue_jobs"]&&t.add("queue",m(Z,null),5),t.remove("permissions"),t}onsaved(){super.onsaved(),m.redraw()}}flarum.reg.add("flarum-extension-manager","admin/components/SettingsPage",Ye);const We=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],Ge=["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],Ve=["b","kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],He=["b","kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],ze=(e,t,a)=>{let n=e;return"string"==typeof t||Array.isArray(t)?n=e.toLocaleString(t,a):!0!==t&&void 0===a||(n=e.toLocaleString(void 0,a)),n};class Qe extends(de()){status(){return de().attribute("status").call(this)}operation(){return de().attribute("operation").call(this)}command(){return de().attribute("command").call(this)}package(){return de().attribute("package").call(this)}output(){return de().attribute("output").call(this)}guessedCause(){return de().attribute("guessedCause").call(this)}createdAt(){return de().attribute("createdAt",de().transformDate).call(this)}startedAt(){return de().attribute("startedAt",de().transformDate).call(this)}finishedAt(){return de().attribute("finishedAt",de().transformDate).call(this)}peakMemoryUsed(){return function(e,t){if(!Number.isFinite(e))throw new TypeError(`Expected a finite number, got ${typeof e}: ${e}`);const a=(t={bits:!1,binary:!1,space:!0,...t}).bits?t.binary?He:Ve:t.binary?Ge:We,n=t.space?" ":"";if(t.signed&&0===e)return` 0${n}${a[0]}`;const s=e<0,r=s?"-":t.signed?"+":"";let i;if(s&&(e=-e),void 0!==t.minimumFractionDigits&&(i={minimumFractionDigits:t.minimumFractionDigits}),void 0!==t.maximumFractionDigits&&(i={maximumFractionDigits:t.maximumFractionDigits,...i}),e<1)return r+ze(e,t.locale,i)+n+a[0];const o=Math.min(Math.floor(t.binary?Math.log(e)/Math.log(1024):Math.log10(e)/3),a.length-1);return e/=(t.binary?1024:1e3)**o,i||(e=e.toPrecision(3)),r+ze(Number(e),t.locale,i)+n+a[o]}(1024*de().attribute("peakMemoryUsed").call(this))}}flarum.reg.add("flarum-extension-manager","admin/models/Task",Qe);const Je=[(new(S().Store)).add("extension-manager-tasks",Qe).add("external-extensions",he),(new(S().Admin)).setting((()=>({setting:"flarum-extension-manager.queue_jobs",label:s().translator.trans("flarum-extension-manager.admin.settings.queue_jobs"),help:s().translator.trans("flarum-extension-manager.admin.settings.queue_jobs_help",{basic_impl_link:m("a",{href:"https://discuss.flarum.org/d/28151-database-queue-the-simplest-queue-even-for-shared-hosting"}),adv_impl_link:m("a",{href:"https://discuss.flarum.org/d/21873-redis-sessions-cache-queues"}),php_version:m("strong",null,s().data.phpVersion),folder_perms_link:m("a",{href:"https://docs.flarum.org/install#folder-ownership"})}),type:"boolean",disabled:s().data["flarum-extension-manager.using_sync_queue"]}))).setting((()=>({setting:"flarum-extension-manager.task_retention_days",label:s().translator.trans("flarum-extension-manager.admin.settings.task_retention_days"),help:s().translator.trans("flarum-extension-manager.admin.settings.task_retention_days_help"),type:"number"}))).page(Ye).generalIndexItems("settings",(()=>[{id:"minimum-stability",label:s().translator.trans("flarum-extension-manager.admin.composer.minimum_stability.label",{},!0),help:s().translator.trans("flarum-extension-manager.admin.composer.minimum_stability.help",{},!0)},{id:"repositories",label:s().translator.trans("flarum-extension-manager.admin.composer.repositories.label",{},!0),help:s().translator.trans("flarum-extension-manager.admin.composer.repositories.help",{},!0)},{id:"composer-auth",label:s().translator.trans("flarum-extension-manager.admin.auth_config.title",{},!0)},{id:"updates",label:s().translator.trans("flarum-extension-manager.admin.updater.updater_title",{},!0),help:s().translator.trans("flarum-extension-manager.admin.updater.updater_help",{},!0)}]))];s().initializers.add("flarum-extension-manager",(t=>{t.extensionManager=new w,t.data["flarum-extension-manager.using_sync_queue"]&&(t.data.settings["flarum-extension-manager.queue_jobs"]="0"),(0,e.extend)(i().prototype,"topItems",(function(e){"flarum-extension-manager"===this.extension.id||g()(this.extension.id)||e.add("remove",m(l(),{className:"Button Button--danger",icon:"fas fa-times",onclick:()=>{t.modal.show(d()),t.request({url:`${t.forum.attribute("apiUrl")}/extension-manager/extensions/${this.extension.id}`,method:"DELETE"}).then((e=>{e?.processing?p():(t.alerts.show({type:"success"},t.translator.trans("flarum-extension-manager.admin.extensions.successful_remove")),window.location=t.forum.attribute("adminUrl"))})).finally((()=>{t.modal.close()}))}},t.translator.trans("flarum-extension-manager.admin.extensions.remove")))}))}))})(),module.exports=n})();
|
|
//# sourceMappingURL=admin.js.map
|