diff --git a/extensions/package-manager/js/dist/admin.js b/extensions/package-manager/js/dist/admin.js index cdecab05f..38f89ba4f 100755 --- a/extensions/package-manager/js/dist/admin.js +++ b/extensions/package-manager/js/dist/admin.js @@ -1,2 +1,2 @@ -(()=>{var a={3:function(a){a.exports=function(){"use strict";var a,t,e=1e3,n=6e4,r=36e5,s=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,c=2592e6,l=/^(-|\+)?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:c,days:s,hours:r,minutes:n,seconds:e,milliseconds:1,weeks:6048e5},m=function(a){return a instanceof v},d=function(a,t,e){return new v(a,e,t.$l)},p=function(a){return t.p(a)+"s"},g=function(a){return a<0},f=function(a){return g(a)?Math.ceil(a):Math.floor(a)},h=function(a){return Math.abs(a)},k=function(a,t){return a?g(a)?{negative:!0,format:""+h(a)+t}:{negative:!1,format:""+a+t}:{negative:!1,format:""}},v=function(){function g(a,t,e){var n=this;if(this.$d={},this.$l=e,void 0===a&&(this.$ms=0,this.parseFromMilliseconds()),t)return d(a*u[p(t)],this);if("number"==typeof a)return this.$ms=a,this.parseFromMilliseconds(),this;if("object"==typeof a)return Object.keys(a).forEach((function(t){n.$d[p(t)]=a[t]})),this.calMilliseconds(),this;if("string"==typeof a){var r=a.match(l);if(r){var s=r.slice(2).map((function(a){return null!=a?Number(a):0}));return this.$d.years=s[0],this.$d.months=s[1],this.$d.weeks=s[2],this.$d.days=s[3],this.$d.hours=s[4],this.$d.minutes=s[5],this.$d.seconds=s[6],this.calMilliseconds(),this}}return this}var h=g.prototype;return h.calMilliseconds=function(){var a=this;this.$ms=Object.keys(this.$d).reduce((function(t,e){return t+(a.$d[e]||0)*u[e]}),0)},h.parseFromMilliseconds=function(){var a=this.$ms;this.$d.years=f(a/o),a%=o,this.$d.months=f(a/c),a%=c,this.$d.days=f(a/s),a%=s,this.$d.hours=f(a/r),a%=r,this.$d.minutes=f(a/n),a%=n,this.$d.seconds=f(a/e),a%=e,this.$d.milliseconds=a},h.toISOString=function(){var a=k(this.$d.years,"Y"),t=k(this.$d.months,"M"),e=+this.$d.days||0;this.$d.weeks&&(e+=7*this.$d.weeks);var n=k(e,"D"),r=k(this.$d.hours,"H"),s=k(this.$d.minutes,"M"),i=this.$d.seconds||0;this.$d.milliseconds&&(i+=this.$d.milliseconds/1e3);var o=k(i,"S"),c=a.negative||t.negative||n.negative||r.negative||s.negative||o.negative,l=r.format||s.format||o.format?"T":"",u=(c?"-":"")+"P"+a.format+t.format+n.format+l+r.format+s.format+o.format;return"P"===u||"-P"===u?"P0D":u},h.toJSON=function(){return this.toISOString()},h.format=function(a){var e=a||"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 e.replace(i,(function(a,t){return t||String(n[a])}))},h.as=function(a){return this.$ms/u[p(a)]},h.get=function(a){var t=this.$ms,e=p(a);return"milliseconds"===e?t%=1e3:t="weeks"===e?f(t/u[e]):this.$d[e],0===t?0:t},h.add=function(a,t,e){var n;return n=t?a*u[p(t)]:m(a)?a.$ms:d(a,this).$ms,d(this.$ms+n*(e?-1:1),this)},h.subtract=function(a,t){return this.add(a,t,!0)},h.locale=function(a){var t=this.clone();return t.$l=a,t},h.clone=function(){return d(this.$ms,this)},h.humanize=function(t){return a().add(this.$ms,"ms").locale(this.$l).fromNow(!t)},h.milliseconds=function(){return this.get("milliseconds")},h.asMilliseconds=function(){return this.as("milliseconds")},h.seconds=function(){return this.get("seconds")},h.asSeconds=function(){return this.as("seconds")},h.minutes=function(){return this.get("minutes")},h.asMinutes=function(){return this.as("minutes")},h.hours=function(){return this.get("hours")},h.asHours=function(){return this.as("hours")},h.days=function(){return this.get("days")},h.asDays=function(){return this.as("days")},h.weeks=function(){return this.get("weeks")},h.asWeeks=function(){return this.as("weeks")},h.months=function(){return this.get("months")},h.asMonths=function(){return this.as("months")},h.years=function(){return this.get("years")},h.asYears=function(){return this.as("years")},g}();return function(e,n,r){a=r,t=r().$utils(),r.duration=function(a,t){var e=r.locale();return d(a,{$l:e},t)},r.isDuration=m;var s=n.prototype.add,i=n.prototype.subtract;n.prototype.add=function(a,t){return m(a)&&(a=a.asMilliseconds()),s.bind(this)(a,t)},n.prototype.subtract=function(a,t){return m(a)&&(a=a.asMilliseconds()),i.bind(this)(a,t)}}}()}},t={};function e(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return a[n].call(s.exports,s,s.exports,e),s.exports}e.n=a=>{var t=a&&a.__esModule?()=>a.default:()=>a;return e.d(t,{a:t}),t},e.d=(a,t)=>{for(var n in t)e.o(t,n)&&!e.o(a,n)&&Object.defineProperty(a,n,{enumerable:!0,get:t[n]})},e.o=(a,t)=>Object.prototype.hasOwnProperty.call(a,t),e.r=a=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var n={};(()=>{"use strict";e.r(n);const a=flarum.core.compat["common/extend"],t=flarum.core.compat["admin/app"];var r=e.n(t);const s=flarum.core.compat["admin/components/ExtensionPage"];var i=e.n(s);const o=flarum.core.compat["common/components/Button"];var c=e.n(o);const l=flarum.core.compat["admin/components/LoadingModal"];var u=e.n(l);const d=flarum.core.compat["admin/utils/isExtensionEnabled"];var p=e.n(d);const g=flarum.core.compat["common/components/Alert"];var f=e.n(g);function h(a,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,t){return a.__proto__=t,a},h(a,t)}function k(a,t){a.prototype=Object.create(t.prototype),a.prototype.constructor=a,h(a,t)}function v(a,t){if(null==a)return{};var e,n,r={},s=Object.keys(a);for(n=0;n=0||(r[e]=a[e]);return r}const y=flarum.core.compat["common/Component"];var b=e.n(y);const x=flarum.core.compat["common/components/LoadingIndicator"];var _=e.n(x);const M=flarum.core.compat["common/components/Tooltip"];var w=e.n(M);const N=flarum.core.compat["common/helpers/icon"];var P=e.n(N);const U=flarum.core.compat["common/utils/ItemList"];var j=e.n(U);const $=flarum.core.compat["common/utils/extractText"];var q=e.n($);const T=flarum.core.compat["common/utils/classList"];var O=e.n(T),S=["className","type"],B=function(a){function t(){return a.apply(this,arguments)||this}return k(t,a),t.prototype.view=function(a){var t=this.attrs,e=t.className,n=(t.type,v(t,S));return m("span",Object.assign({className:O()(["Label","Label--"+this.attrs.type,e])},n),a.children)},t}(b());const L=flarum.core.compat["common/components/Modal"];var E=e.n(L),C=function(a){function t(){return a.apply(this,arguments)||this}k(t,a);var e=t.prototype;return e.className=function(){return"Modal--large QuickModal"},e.title=function(){return r().translator.trans("flarum-package-manager.admin.sections.queue.operations."+this.attrs.task.operation())},e.content=function(){return m("div",{className:"Modal-body"},m("div",{className:"TaskOutputModal-data"},m("div",{className:"Form-group"},m("label",null,r().translator.trans("flarum-package-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,r().translator.trans("flarum-package-manager.admin.sections.queue.output_modal.output")),m("div",{className:"FormControl TaskOutputModal-data-output"},m("code",null,m("pre",null,this.attrs.task.output()))))))},t}(E()),A=e(3),F=e.n(A),D=function(a){function t(){return a.apply(this,arguments)||this}return k(t,a),t.prototype.view=function(){var a=this;return m("nav",{class:"Pagination UserListPage-gridPagination"},m(c(),{disabled:!this.attrs.list.hasPrev(),title:r().translator.trans("core.admin.users.pagination.back_button"),onclick:function(){return a.attrs.list.prev()},icon:"fas fa-chevron-left",className:"Button Button--icon UserListPage-backBtn"}),m("span",{class:"UserListPage-pageNumber"},r().translator.trans("core.admin.users.pagination.page_counter",{current:this.attrs.list.pageNumber()+1,total:this.attrs.list.getTotalPages()})),m(c(),{disabled:!this.attrs.list.hasNext(),title:r().translator.trans("core.admin.users.pagination.next_button"),onclick:function(){return a.attrs.list.next()},icon:"fas fa-chevron-right",className:"Button Button--icon UserListPage-nextBtn"}))},t}(b()),I=["label","content"],Y=function(a){function t(){return a.apply(this,arguments)||this}k(t,a);var e=t.prototype;return e.oninit=function(t){a.prototype.oninit.call(this,t),r().packageManager.queue.load()},e.view=function(){return m("section",{id:"PackageManager-queueSection",className:"ExtensionPage-permissions PackageManager-queueSection"},m("div",{className:"ExtensionPage-permissions-header PackageManager-queueSection-header"},m("div",{className:"container"},m("h2",{className:"ExtensionTitle"},r().translator.trans("flarum-package-manager.admin.sections.queue.title")),m(c(),{className:"Button Button--icon",icon:"fas fa-sync-alt",onclick:function(){return r().packageManager.queue.load()},"aria-label":r().translator.trans("flarum-package-manager.admin.sections.queue.refresh")}))),m("div",{className:"container"},this.queueTable()))},e.columns=function(){var a=this,t=new(j());return t.add("operation",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.operation")),content:function(t){return m("div",{className:"PackageManager-queueTable-operation"},m("span",{className:"PackageManager-queueTable-operation-icon"},a.operationIcon(t.operation())),m("span",{className:"PackageManager-queueTable-operation-name"},r().translator.trans("flarum-package-manager.admin.sections.queue.operations."+t.operation())))}},80),t.add("package",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.package")),content:function(a){var t,e=r().data.extensions[null==(t=a.package())?void 0:t.replace(/(\/flarum-|\/flarum-ext-|\/)/g,"-")];return e?m("div",{className:"PackageManager-queueTable-package"},m("div",{className:"PackageManager-queueTable-package-icon ExtensionIcon",style:e.icon},e.icon?P()(e.icon.name):""),m("div",{className:"PackageManager-queueTable-package-details"},m("span",{className:"PackageManager-queueTable-package-title"},e.extra["flarum-extension"].title),m("span",{className:"PackageManager-queueTable-package-name"},a.package()))):a.package()}},75),t.add("status",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.status")),content:function(a){return m(B,{className:"PackageManager-queueTable-status",type:{running:"neutral",failure:"error",pending:"warning",success:"success"}[a.status()]},r().translator.trans("flarum-package-manager.admin.sections.queue.statuses."+a.status()))}},70),t.add("elapsedTime",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.elapsed_time")),content:function(a){return a.startedAt()?m(w(),{text:dayjs(a.startedAt()).format("LL LTS")+" "+dayjs(a.finishedAt()).format("LL LTS")},m("span",null,function(a,t){dayjs.extend(F());var e=dayjs(t).diff(a);return dayjs.duration(e).humanize()}(a.startedAt(),a.finishedAt()))):r().translator.trans("flarum-package-manager.admin.sections.queue.task_just_started")}},65),t.add("memoryUsed",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.peak_memory_used")),content:function(a){return m("span",null,a.peakMemoryUsed())}},60),t.add("details",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.details")),content:function(a){return m(c(),{className:"Button Button--icon Table-controls-item",icon:"fas fa-file-alt","aria-label":r().translator.trans("flarum-package-manager.admin.sections.queue.columns.details"),onclick:function(){return r().modal.show(C,{task:a})}})},className:"Table-controls"},55),t},e.queueTable=function(){var a=r().packageManager.queue.getItems();if(!a)return m(_(),null);if(a&&!a.length)return m("h3",{className:"ExtensionPage-subHeader"},r().translator.trans("flarum-package-manager.admin.sections.queue.none"));var t=this.columns();return m("[",null,m("table",{className:"Table PackageManager-queueTable"},m("thead",null,m("tr",null,t.toArray().map((function(a,t){return m("th",{key:t},a.label)})))),m("tbody",null,a.map((function(a,e){return m("tr",{key:e},t.toArray().map((function(t,e){t.label;var n=t.content,r=v(t,I);return m("td",Object.assign({key:e},r),n(a))})))})))),m(D,{list:r().packageManager.queue}))},e.operationIcon=function(a){return P()({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"}[a])},t}(b());const H=flarum.core.compat["common/utils/Stream"];var W=e.n(H);function R(a){var t=a.response.errors[0];if(!["composer_command_failure","extension_already_installed","extension_not_installed"].includes(t.code))throw a;switch(t.code){case"composer_command_failure":t.guessed_cause?(r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.guessed_cause."+t.guessed_cause)),r().modal.close()):r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.composer_command_failure"));break;case"extension_already_installed":r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.extension_already_installed")),r().modal.close();break;case"extension_not_installed":r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.extension_not_installed")),r().modal.close()}}function G(){r().modal.close(),m.route.set(r().route("extension",{id:"flarum-package-manager"})),r().packageManager.queue.load(),setTimeout((function(){var a;null==(a=document.getElementById("PackageManager-queueSection"))||a.scrollIntoView({block:"nearest"})}),200)}window.jumpToQueue=G;var V=function(a){function t(){for(var t,e=arguments.length,n=new Array(e),r=0;r"+t.data.phpVersion+"",folder_perms_link:"https://docs.flarum.org/install#folder-ownership"}))),default:!1,type:"boolean",disabled:t.data["flarum-package-manager.using_sync_queue"]}).registerPage(oa),(0,a.extend)(i().prototype,"topItems",(function(a){var e=this;"flarum-package-manager"===this.extension.id||p()(this.extension.id)||a.add("remove",m(c(),{className:"Button Button--danger",icon:"fas fa-times",onclick:function(){t.modal.show(u()),t.request({url:t.forum.attribute("apiUrl")+"/package-manager/extensions/"+e.extension.id,method:"DELETE"}).then((function(a){null!=a&&a.processing?G():(t.alerts.show({type:"success"},t.translator.trans("flarum-package-manager.admin.extensions.successful_remove")),window.location=t.forum.attribute("adminUrl"))})).finally((function(){t.modal.close()}))}},"Remove"))}))}))})(),module.exports=n})(); +(()=>{var a={3:function(a){a.exports=function(){"use strict";var a,t,e=1e3,n=6e4,r=36e5,s=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,c=2592e6,l=/^(-|\+)?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:c,days:s,hours:r,minutes:n,seconds:e,milliseconds:1,weeks:6048e5},m=function(a){return a instanceof v},d=function(a,t,e){return new v(a,e,t.$l)},p=function(a){return t.p(a)+"s"},g=function(a){return a<0},f=function(a){return g(a)?Math.ceil(a):Math.floor(a)},h=function(a){return Math.abs(a)},k=function(a,t){return a?g(a)?{negative:!0,format:""+h(a)+t}:{negative:!1,format:""+a+t}:{negative:!1,format:""}},v=function(){function g(a,t,e){var n=this;if(this.$d={},this.$l=e,void 0===a&&(this.$ms=0,this.parseFromMilliseconds()),t)return d(a*u[p(t)],this);if("number"==typeof a)return this.$ms=a,this.parseFromMilliseconds(),this;if("object"==typeof a)return Object.keys(a).forEach((function(t){n.$d[p(t)]=a[t]})),this.calMilliseconds(),this;if("string"==typeof a){var r=a.match(l);if(r){var s=r.slice(2).map((function(a){return null!=a?Number(a):0}));return this.$d.years=s[0],this.$d.months=s[1],this.$d.weeks=s[2],this.$d.days=s[3],this.$d.hours=s[4],this.$d.minutes=s[5],this.$d.seconds=s[6],this.calMilliseconds(),this}}return this}var h=g.prototype;return h.calMilliseconds=function(){var a=this;this.$ms=Object.keys(this.$d).reduce((function(t,e){return t+(a.$d[e]||0)*u[e]}),0)},h.parseFromMilliseconds=function(){var a=this.$ms;this.$d.years=f(a/o),a%=o,this.$d.months=f(a/c),a%=c,this.$d.days=f(a/s),a%=s,this.$d.hours=f(a/r),a%=r,this.$d.minutes=f(a/n),a%=n,this.$d.seconds=f(a/e),a%=e,this.$d.milliseconds=a},h.toISOString=function(){var a=k(this.$d.years,"Y"),t=k(this.$d.months,"M"),e=+this.$d.days||0;this.$d.weeks&&(e+=7*this.$d.weeks);var n=k(e,"D"),r=k(this.$d.hours,"H"),s=k(this.$d.minutes,"M"),i=this.$d.seconds||0;this.$d.milliseconds&&(i+=this.$d.milliseconds/1e3);var o=k(i,"S"),c=a.negative||t.negative||n.negative||r.negative||s.negative||o.negative,l=r.format||s.format||o.format?"T":"",u=(c?"-":"")+"P"+a.format+t.format+n.format+l+r.format+s.format+o.format;return"P"===u||"-P"===u?"P0D":u},h.toJSON=function(){return this.toISOString()},h.format=function(a){var e=a||"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 e.replace(i,(function(a,t){return t||String(n[a])}))},h.as=function(a){return this.$ms/u[p(a)]},h.get=function(a){var t=this.$ms,e=p(a);return"milliseconds"===e?t%=1e3:t="weeks"===e?f(t/u[e]):this.$d[e],0===t?0:t},h.add=function(a,t,e){var n;return n=t?a*u[p(t)]:m(a)?a.$ms:d(a,this).$ms,d(this.$ms+n*(e?-1:1),this)},h.subtract=function(a,t){return this.add(a,t,!0)},h.locale=function(a){var t=this.clone();return t.$l=a,t},h.clone=function(){return d(this.$ms,this)},h.humanize=function(t){return a().add(this.$ms,"ms").locale(this.$l).fromNow(!t)},h.milliseconds=function(){return this.get("milliseconds")},h.asMilliseconds=function(){return this.as("milliseconds")},h.seconds=function(){return this.get("seconds")},h.asSeconds=function(){return this.as("seconds")},h.minutes=function(){return this.get("minutes")},h.asMinutes=function(){return this.as("minutes")},h.hours=function(){return this.get("hours")},h.asHours=function(){return this.as("hours")},h.days=function(){return this.get("days")},h.asDays=function(){return this.as("days")},h.weeks=function(){return this.get("weeks")},h.asWeeks=function(){return this.as("weeks")},h.months=function(){return this.get("months")},h.asMonths=function(){return this.as("months")},h.years=function(){return this.get("years")},h.asYears=function(){return this.as("years")},g}();return function(e,n,r){a=r,t=r().$utils(),r.duration=function(a,t){var e=r.locale();return d(a,{$l:e},t)},r.isDuration=m;var s=n.prototype.add,i=n.prototype.subtract;n.prototype.add=function(a,t){return m(a)&&(a=a.asMilliseconds()),s.bind(this)(a,t)},n.prototype.subtract=function(a,t){return m(a)&&(a=a.asMilliseconds()),i.bind(this)(a,t)}}}()}},t={};function e(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return a[n].call(s.exports,s,s.exports,e),s.exports}e.n=a=>{var t=a&&a.__esModule?()=>a.default:()=>a;return e.d(t,{a:t}),t},e.d=(a,t)=>{for(var n in t)e.o(t,n)&&!e.o(a,n)&&Object.defineProperty(a,n,{enumerable:!0,get:t[n]})},e.o=(a,t)=>Object.prototype.hasOwnProperty.call(a,t),e.r=a=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var n={};(()=>{"use strict";e.r(n);const a=flarum.core.compat["common/extend"],t=flarum.core.compat["admin/app"];var r=e.n(t);const s=flarum.core.compat["admin/components/ExtensionPage"];var i=e.n(s);const o=flarum.core.compat["common/components/Button"];var c=e.n(o);const l=flarum.core.compat["admin/components/LoadingModal"];var u=e.n(l);const d=flarum.core.compat["admin/utils/isExtensionEnabled"];var p=e.n(d);const g=flarum.core.compat["common/components/Alert"];var f=e.n(g);function h(a,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,t){return a.__proto__=t,a},h(a,t)}function k(a,t){a.prototype=Object.create(t.prototype),a.prototype.constructor=a,h(a,t)}function v(a,t){if(null==a)return{};var e,n,r={},s=Object.keys(a);for(n=0;n=0||(r[e]=a[e]);return r}const y=flarum.core.compat["common/Component"];var b=e.n(y);const x=flarum.core.compat["common/components/LoadingIndicator"];var _=e.n(x);const M=flarum.core.compat["common/components/Tooltip"];var w=e.n(M);const N=flarum.core.compat["common/helpers/icon"];var P=e.n(N);const U=flarum.core.compat["common/utils/ItemList"];var j=e.n(U);const $=flarum.core.compat["common/utils/extractText"];var q=e.n($);const T=flarum.core.compat["common/utils/classList"];var O=e.n(T),S=["className","type"],B=function(a){function t(){return a.apply(this,arguments)||this}return k(t,a),t.prototype.view=function(a){var t=this.attrs,e=t.className,n=(t.type,v(t,S));return m("span",Object.assign({className:O()(["Label","Label--"+this.attrs.type,e])},n),a.children)},t}(b());const L=flarum.core.compat["common/components/Modal"];var E=e.n(L),C=function(a){function t(){return a.apply(this,arguments)||this}k(t,a);var e=t.prototype;return e.className=function(){return"Modal--large QuickModal"},e.title=function(){return r().translator.trans("flarum-package-manager.admin.sections.queue.operations."+this.attrs.task.operation())},e.content=function(){return m("div",{className:"Modal-body"},m("div",{className:"TaskOutputModal-data"},m("div",{className:"Form-group"},m("label",null,r().translator.trans("flarum-package-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,r().translator.trans("flarum-package-manager.admin.sections.queue.output_modal.output")),m("div",{className:"FormControl TaskOutputModal-data-output"},m("code",null,m("pre",null,this.attrs.task.output()))))))},t}(E()),A=e(3),F=e.n(A),D=function(a){function t(){return a.apply(this,arguments)||this}return k(t,a),t.prototype.view=function(){var a=this;return m("nav",{class:"Pagination UserListPage-gridPagination"},m(c(),{disabled:!this.attrs.list.hasPrev(),title:r().translator.trans("core.admin.users.pagination.back_button"),onclick:function(){return a.attrs.list.prev()},icon:"fas fa-chevron-left",className:"Button Button--icon UserListPage-backBtn"}),m("span",{class:"UserListPage-pageNumber"},r().translator.trans("core.admin.users.pagination.page_counter",{current:this.attrs.list.pageNumber()+1,total:this.attrs.list.getTotalPages()})),m(c(),{disabled:!this.attrs.list.hasNext(),title:r().translator.trans("core.admin.users.pagination.next_button"),onclick:function(){return a.attrs.list.next()},icon:"fas fa-chevron-right",className:"Button Button--icon UserListPage-nextBtn"}))},t}(b()),I=["label","content"],Y=function(a){function t(){return a.apply(this,arguments)||this}k(t,a);var e=t.prototype;return e.oninit=function(t){a.prototype.oninit.call(this,t),r().packageManager.queue.load()},e.view=function(){return m("section",{id:"PackageManager-queueSection",className:"ExtensionPage-permissions PackageManager-queueSection"},m("div",{className:"ExtensionPage-permissions-header PackageManager-queueSection-header"},m("div",{className:"container"},m("h1",{className:"ExtensionTitle"},r().translator.trans("flarum-package-manager.admin.sections.queue.title")),m(c(),{className:"Button Button--icon",icon:"fas fa-sync-alt",onclick:function(){return r().packageManager.queue.load()},"aria-label":r().translator.trans("flarum-package-manager.admin.sections.queue.refresh")}))),m("div",{className:"container"},this.queueTable()))},e.columns=function(){var a=this,t=new(j());return t.add("operation",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.operation")),content:function(t){return m("div",{className:"PackageManager-queueTable-operation"},m("span",{className:"PackageManager-queueTable-operation-icon"},a.operationIcon(t.operation())),m("span",{className:"PackageManager-queueTable-operation-name"},r().translator.trans("flarum-package-manager.admin.sections.queue.operations."+t.operation())))}},80),t.add("package",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.package")),content:function(a){var t,e=r().data.extensions[null==(t=a.package())?void 0:t.replace(/(\/flarum-|\/flarum-ext-|\/)/g,"-")];return e?m("div",{className:"PackageManager-queueTable-package"},m("div",{className:"PackageManager-queueTable-package-icon ExtensionIcon",style:e.icon},e.icon?P()(e.icon.name):""),m("div",{className:"PackageManager-queueTable-package-details"},m("span",{className:"PackageManager-queueTable-package-title"},e.extra["flarum-extension"].title),m("span",{className:"PackageManager-queueTable-package-name"},a.package()))):a.package()}},75),t.add("status",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.status")),content:function(a){return m(B,{className:"PackageManager-queueTable-status",type:{running:"neutral",failure:"error",pending:"warning",success:"success"}[a.status()]},r().translator.trans("flarum-package-manager.admin.sections.queue.statuses."+a.status()))}},70),t.add("elapsedTime",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.elapsed_time")),content:function(a){return a.startedAt()?m(w(),{text:dayjs(a.startedAt()).format("LL LTS")+" "+dayjs(a.finishedAt()).format("LL LTS")},m("span",null,function(a,t){dayjs.extend(F());var e=dayjs(t).diff(a);return dayjs.duration(e).humanize()}(a.startedAt(),a.finishedAt()))):r().translator.trans("flarum-package-manager.admin.sections.queue.task_just_started")}},65),t.add("memoryUsed",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.peak_memory_used")),content:function(a){return m("span",null,a.peakMemoryUsed())}},60),t.add("details",{label:q()(r().translator.trans("flarum-package-manager.admin.sections.queue.columns.details")),content:function(a){return m(c(),{className:"Button Button--icon Table-controls-item",icon:"fas fa-file-alt","aria-label":r().translator.trans("flarum-package-manager.admin.sections.queue.columns.details"),onclick:function(){return r().modal.show(C,{task:a})}})},className:"Table-controls"},55),t},e.queueTable=function(){var a=r().packageManager.queue.getItems();if(!a)return m(_(),null);if(a&&!a.length)return m("h3",{className:"ExtensionPage-subHeader"},r().translator.trans("flarum-package-manager.admin.sections.queue.none"));var t=this.columns();return m("[",null,m("table",{className:"Table PackageManager-queueTable"},m("thead",null,m("tr",null,t.toArray().map((function(a,t){return m("th",{key:t},a.label)})))),m("tbody",null,a.map((function(a,e){return m("tr",{key:e},t.toArray().map((function(t,e){t.label;var n=t.content,r=v(t,I);return m("td",Object.assign({key:e},r),n(a))})))})))),m(D,{list:r().packageManager.queue}))},e.operationIcon=function(a){return P()({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"}[a])},t}(b());const H=flarum.core.compat["common/utils/Stream"];var W=e.n(H);function R(a){var t=a.response.errors[0];if(!["composer_command_failure","extension_already_installed","extension_not_installed"].includes(t.code))throw a;switch(t.code){case"composer_command_failure":t.guessed_cause?(r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.guessed_cause."+t.guessed_cause)),r().modal.close()):r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.composer_command_failure"));break;case"extension_already_installed":r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.extension_already_installed")),r().modal.close();break;case"extension_not_installed":r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.extension_not_installed")),r().modal.close()}}function G(){r().modal.close(),m.route.set(r().route("extension",{id:"flarum-package-manager"})),r().packageManager.queue.load(),setTimeout((function(){var a;null==(a=document.getElementById("PackageManager-queueSection"))||a.scrollIntoView({block:"nearest"})}),200)}window.jumpToQueue=G;var V=function(a){function t(){for(var t,e=arguments.length,n=new Array(e),r=0;r"+t.data.phpVersion+"",folder_perms_link:"https://docs.flarum.org/install#folder-ownership"}))),default:!1,type:"boolean",disabled:t.data["flarum-package-manager.using_sync_queue"]}).registerPage(oa),(0,a.extend)(i().prototype,"topItems",(function(a){var e=this;"flarum-package-manager"===this.extension.id||p()(this.extension.id)||a.add("remove",m(c(),{className:"Button Button--danger",icon:"fas fa-times",onclick:function(){t.modal.show(u()),t.request({url:t.forum.attribute("apiUrl")+"/package-manager/extensions/"+e.extension.id,method:"DELETE"}).then((function(a){null!=a&&a.processing?G():(t.alerts.show({type:"success"},t.translator.trans("flarum-package-manager.admin.extensions.successful_remove")),window.location=t.forum.attribute("adminUrl"))})).finally((function(){t.modal.close()}))}},"Remove"))}))}))})(),module.exports=n})(); //# sourceMappingURL=admin.js.map \ No newline at end of file diff --git a/extensions/package-manager/js/dist/admin.js.map b/extensions/package-manager/js/dist/admin.js.map index 3fc2b4d33..8cf41a75f 100755 --- a/extensions/package-manager/js/dist/admin.js.map +++ b/extensions/package-manager/js/dist/admin.js.map @@ -1 +1 @@ -{"version":3,"file":"admin.js","mappings":"2BAAoEA,EAAOC,QAAmJ,WAAW,aAAa,IAAIC,EAAEC,EAAEC,EAAE,IAAIC,EAAE,IAAIC,EAAE,KAAKC,EAAE,MAAMC,EAAE,sFAAsFC,EAAE,QAAQC,EAAE,OAAOC,EAAE,sKAAsKC,EAAE,CAACC,MAAMJ,EAAEK,OAAOJ,EAAEK,KAAKR,EAAES,MAAMV,EAAEW,QAAQZ,EAAEa,QAAQd,EAAEe,aAAa,EAAEC,MAAM,QAAQC,EAAE,SAASnB,GAAG,OAAOA,aAAaoB,CAAC,EAAEC,EAAE,SAASrB,EAAEC,EAAEC,GAAG,OAAO,IAAIkB,EAAEpB,EAAEE,EAAED,EAAEqB,GAAG,EAAEC,EAAE,SAASvB,GAAG,OAAOC,EAAEmB,EAAEpB,GAAG,GAAG,EAAEwB,EAAE,SAASxB,GAAG,OAAOA,EAAE,CAAC,EAAEyB,EAAE,SAASzB,GAAG,OAAOwB,EAAExB,GAAG0B,KAAKC,KAAK3B,GAAG0B,KAAKE,MAAM5B,EAAE,EAAE6B,EAAE,SAAS7B,GAAG,OAAO0B,KAAKI,IAAI9B,EAAE,EAAE+B,EAAE,SAAS/B,EAAEC,GAAG,OAAOD,EAAEwB,EAAExB,GAAG,CAACgC,UAAS,EAAGC,OAAO,GAAGJ,EAAE7B,GAAGC,GAAG,CAAC+B,UAAS,EAAGC,OAAO,GAAGjC,EAAEC,GAAG,CAAC+B,UAAS,EAAGC,OAAO,GAAG,EAAEb,EAAE,WAAW,SAASI,EAAExB,EAAEC,EAAEC,GAAG,IAAIC,EAAE+B,KAAK,GAAGA,KAAKC,GAAG,CAAC,EAAED,KAAKZ,GAAGpB,OAAE,IAASF,IAAIkC,KAAKE,IAAI,EAAEF,KAAKG,yBAAyBpC,EAAE,OAAOoB,EAAErB,EAAEU,EAAEa,EAAEtB,IAAIiC,MAAM,GAAG,iBAAiBlC,EAAE,OAAOkC,KAAKE,IAAIpC,EAAEkC,KAAKG,wBAAwBH,KAAK,GAAG,iBAAiBlC,EAAE,OAAOsC,OAAOC,KAAKvC,GAAGwC,SAAS,SAASvC,GAAGE,EAAEgC,GAAGZ,EAAEtB,IAAID,EAAEC,EAAE,IAAIiC,KAAKO,kBAAkBP,KAAK,GAAG,iBAAiBlC,EAAE,CAAC,IAAII,EAAEJ,EAAE0C,MAAMjC,GAAG,GAAGL,EAAE,CAAC,IAAIC,EAAED,EAAEuC,MAAM,GAAGC,KAAK,SAAS5C,GAAG,OAAO,MAAMA,EAAE6C,OAAO7C,GAAG,CAAC,IAAI,OAAOkC,KAAKC,GAAGxB,MAAMN,EAAE,GAAG6B,KAAKC,GAAGvB,OAAOP,EAAE,GAAG6B,KAAKC,GAAGjB,MAAMb,EAAE,GAAG6B,KAAKC,GAAGtB,KAAKR,EAAE,GAAG6B,KAAKC,GAAGrB,MAAMT,EAAE,GAAG6B,KAAKC,GAAGpB,QAAQV,EAAE,GAAG6B,KAAKC,GAAGnB,QAAQX,EAAE,GAAG6B,KAAKO,kBAAkBP,IAAI,CAAC,CAAC,OAAOA,IAAI,CAAC,IAAIL,EAAEL,EAAEsB,UAAU,OAAOjB,EAAEY,gBAAgB,WAAW,IAAIzC,EAAEkC,KAAKA,KAAKE,IAAIE,OAAOC,KAAKL,KAAKC,IAAIY,QAAQ,SAAS9C,EAAEC,GAAG,OAAOD,GAAGD,EAAEmC,GAAGjC,IAAI,GAAGQ,EAAER,EAAE,GAAG,EAAE,EAAE2B,EAAEQ,sBAAsB,WAAW,IAAIrC,EAAEkC,KAAKE,IAAIF,KAAKC,GAAGxB,MAAMc,EAAEzB,EAAEO,GAAGP,GAAGO,EAAE2B,KAAKC,GAAGvB,OAAOa,EAAEzB,EAAEQ,GAAGR,GAAGQ,EAAE0B,KAAKC,GAAGtB,KAAKY,EAAEzB,EAAEK,GAAGL,GAAGK,EAAE6B,KAAKC,GAAGrB,MAAMW,EAAEzB,EAAEI,GAAGJ,GAAGI,EAAE8B,KAAKC,GAAGpB,QAAQU,EAAEzB,EAAEG,GAAGH,GAAGG,EAAE+B,KAAKC,GAAGnB,QAAQS,EAAEzB,EAAEE,GAAGF,GAAGE,EAAEgC,KAAKC,GAAGlB,aAAajB,CAAC,EAAE6B,EAAEmB,YAAY,WAAW,IAAIhD,EAAE+B,EAAEG,KAAKC,GAAGxB,MAAM,KAAKV,EAAE8B,EAAEG,KAAKC,GAAGvB,OAAO,KAAKV,GAAGgC,KAAKC,GAAGtB,MAAM,EAAEqB,KAAKC,GAAGjB,QAAQhB,GAAG,EAAEgC,KAAKC,GAAGjB,OAAO,IAAIf,EAAE4B,EAAE7B,EAAE,KAAKE,EAAE2B,EAAEG,KAAKC,GAAGrB,MAAM,KAAKT,EAAE0B,EAAEG,KAAKC,GAAGpB,QAAQ,KAAKT,EAAE4B,KAAKC,GAAGnB,SAAS,EAAEkB,KAAKC,GAAGlB,eAAeX,GAAG4B,KAAKC,GAAGlB,aAAa,KAAK,IAAIV,EAAEwB,EAAEzB,EAAE,KAAKE,EAAER,EAAEgC,UAAU/B,EAAE+B,UAAU7B,EAAE6B,UAAU5B,EAAE4B,UAAU3B,EAAE2B,UAAUzB,EAAEyB,SAASvB,EAAEL,EAAE6B,QAAQ5B,EAAE4B,QAAQ1B,EAAE0B,OAAO,IAAI,GAAGvB,GAAGF,EAAE,IAAI,IAAI,IAAIR,EAAEiC,OAAOhC,EAAEgC,OAAO9B,EAAE8B,OAAOxB,EAAEL,EAAE6B,OAAO5B,EAAE4B,OAAO1B,EAAE0B,OAAO,MAAM,MAAMvB,GAAG,OAAOA,EAAE,MAAMA,CAAC,EAAEmB,EAAEoB,OAAO,WAAW,OAAOf,KAAKc,aAAa,EAAEnB,EAAEI,OAAO,SAASjC,GAAG,IAAIE,EAAEF,GAAG,sBAAsBG,EAAE,CAAC+C,EAAEhB,KAAKC,GAAGxB,MAAMwC,GAAGlD,EAAEA,EAAEiC,KAAKC,GAAGxB,MAAM,EAAE,KAAKyC,KAAKnD,EAAEA,EAAEiC,KAAKC,GAAGxB,MAAM,EAAE,KAAK0C,EAAEnB,KAAKC,GAAGvB,OAAO0C,GAAGrD,EAAEA,EAAEiC,KAAKC,GAAGvB,OAAO,EAAE,KAAK2C,EAAErB,KAAKC,GAAGtB,KAAK2C,GAAGvD,EAAEA,EAAEiC,KAAKC,GAAGtB,KAAK,EAAE,KAAK4C,EAAEvB,KAAKC,GAAGrB,MAAM4C,GAAGzD,EAAEA,EAAEiC,KAAKC,GAAGrB,MAAM,EAAE,KAAKS,EAAEW,KAAKC,GAAGpB,QAAQ4C,GAAG1D,EAAEA,EAAEiC,KAAKC,GAAGpB,QAAQ,EAAE,KAAKd,EAAEiC,KAAKC,GAAGnB,QAAQ4C,GAAG3D,EAAEA,EAAEiC,KAAKC,GAAGnB,QAAQ,EAAE,KAAK6C,IAAI5D,EAAEA,EAAEiC,KAAKC,GAAGlB,aAAa,EAAE,MAAM,OAAOf,EAAE4D,QAAQxD,GAAG,SAASN,EAAEC,GAAG,OAAOA,GAAG8D,OAAO5D,EAAEH,GAAG,GAAG,EAAE6B,EAAEmC,GAAG,SAAShE,GAAG,OAAOkC,KAAKE,IAAI1B,EAAEa,EAAEvB,GAAG,EAAE6B,EAAEoC,IAAI,SAASjE,GAAG,IAAIC,EAAEiC,KAAKE,IAAIlC,EAAEqB,EAAEvB,GAAG,MAAM,iBAAiBE,EAAED,GAAG,IAAIA,EAAE,UAAUC,EAAEuB,EAAExB,EAAES,EAAER,IAAIgC,KAAKC,GAAGjC,GAAG,IAAID,EAAE,EAAEA,CAAC,EAAE4B,EAAEqC,IAAI,SAASlE,EAAEC,EAAEC,GAAG,IAAIC,EAAE,OAAOA,EAAEF,EAAED,EAAEU,EAAEa,EAAEtB,IAAIkB,EAAEnB,GAAGA,EAAEoC,IAAIf,EAAErB,EAAEkC,MAAME,IAAIf,EAAEa,KAAKE,IAAIjC,GAAGD,GAAG,EAAE,GAAGgC,KAAK,EAAEL,EAAEsC,SAAS,SAASnE,EAAEC,GAAG,OAAOiC,KAAKgC,IAAIlE,EAAEC,GAAE,EAAG,EAAE4B,EAAEuC,OAAO,SAASpE,GAAG,IAAIC,EAAEiC,KAAKmC,QAAQ,OAAOpE,EAAEqB,GAAGtB,EAAEC,CAAC,EAAE4B,EAAEwC,MAAM,WAAW,OAAOhD,EAAEa,KAAKE,IAAIF,KAAK,EAAEL,EAAEyC,SAAS,SAASrE,GAAG,OAAOD,IAAIkE,IAAIhC,KAAKE,IAAI,MAAMgC,OAAOlC,KAAKZ,IAAIiD,SAAStE,EAAE,EAAE4B,EAAEZ,aAAa,WAAW,OAAOiB,KAAK+B,IAAI,eAAe,EAAEpC,EAAE2C,eAAe,WAAW,OAAOtC,KAAK8B,GAAG,eAAe,EAAEnC,EAAEb,QAAQ,WAAW,OAAOkB,KAAK+B,IAAI,UAAU,EAAEpC,EAAE4C,UAAU,WAAW,OAAOvC,KAAK8B,GAAG,UAAU,EAAEnC,EAAEd,QAAQ,WAAW,OAAOmB,KAAK+B,IAAI,UAAU,EAAEpC,EAAE6C,UAAU,WAAW,OAAOxC,KAAK8B,GAAG,UAAU,EAAEnC,EAAEf,MAAM,WAAW,OAAOoB,KAAK+B,IAAI,QAAQ,EAAEpC,EAAE8C,QAAQ,WAAW,OAAOzC,KAAK8B,GAAG,QAAQ,EAAEnC,EAAEhB,KAAK,WAAW,OAAOqB,KAAK+B,IAAI,OAAO,EAAEpC,EAAE+C,OAAO,WAAW,OAAO1C,KAAK8B,GAAG,OAAO,EAAEnC,EAAEX,MAAM,WAAW,OAAOgB,KAAK+B,IAAI,QAAQ,EAAEpC,EAAEgD,QAAQ,WAAW,OAAO3C,KAAK8B,GAAG,QAAQ,EAAEnC,EAAEjB,OAAO,WAAW,OAAOsB,KAAK+B,IAAI,SAAS,EAAEpC,EAAEiD,SAAS,WAAW,OAAO5C,KAAK8B,GAAG,SAAS,EAAEnC,EAAElB,MAAM,WAAW,OAAOuB,KAAK+B,IAAI,QAAQ,EAAEpC,EAAEkD,QAAQ,WAAW,OAAO7C,KAAK8B,GAAG,QAAQ,EAAExC,CAAC,CAAhtG,GAAotG,OAAO,SAAStB,EAAEC,EAAEC,GAAGJ,EAAEI,EAAEH,EAAEG,IAAI4E,SAAS5E,EAAE6E,SAAS,SAASjF,EAAEC,GAAG,IAAIC,EAAEE,EAAEgE,SAAS,OAAO/C,EAAErB,EAAE,CAACsB,GAAGpB,GAAGD,EAAE,EAAEG,EAAE8E,WAAW/D,EAAE,IAAId,EAAEF,EAAE2C,UAAUoB,IAAI5D,EAAEH,EAAE2C,UAAUqB,SAAShE,EAAE2C,UAAUoB,IAAI,SAASlE,EAAEC,GAAG,OAAOkB,EAAEnB,KAAKA,EAAEA,EAAEwE,kBAAkBnE,EAAE8E,KAAKjD,KAAP7B,CAAaL,EAAEC,EAAE,EAAEE,EAAE2C,UAAUqB,SAAS,SAASnE,EAAEC,GAAG,OAAOkB,EAAEnB,KAAKA,EAAEA,EAAEwE,kBAAkBlE,EAAE6E,KAAKjD,KAAP5B,CAAaN,EAAEC,EAAE,CAAC,CAAC,CAA56IA,E,GCC/EmF,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaxF,QAGrB,IAAID,EAASsF,EAAyBE,GAAY,CAGjDvF,QAAS,CAAC,GAOX,OAHA0F,EAAoBH,GAAUI,KAAK5F,EAAOC,QAASD,EAAQA,EAAOC,QAASsF,GAGpEvF,EAAOC,OACf,CCrBAsF,EAAoBnF,EAAKJ,IACxB,IAAI6F,EAAS7F,GAAUA,EAAO8F,WAC7B,IAAO9F,EAAiB,QACxB,IAAM,EAEP,OADAuF,EAAoB3E,EAAEiF,EAAQ,CAAElF,EAAGkF,IAC5BA,CAAM,ECLdN,EAAoB3E,EAAI,CAACX,EAAS8F,KACjC,IAAI,IAAIC,KAAOD,EACXR,EAAoB/E,EAAEuF,EAAYC,KAAST,EAAoB/E,EAAEP,EAAS+F,IAC5ExD,OAAOyD,eAAehG,EAAS+F,EAAK,CAAEE,YAAY,EAAM/B,IAAK4B,EAAWC,IAE1E,ECNDT,EAAoB/E,EAAI,CAAC2F,EAAKC,IAAU5D,OAAOQ,UAAUqD,eAAeT,KAAKO,EAAKC,GCClFb,EAAoBhF,EAAKN,IACH,oBAAXqG,QAA0BA,OAAOC,aAC1C/D,OAAOyD,eAAehG,EAASqG,OAAOC,YAAa,CAAEC,MAAO,WAE7DhE,OAAOyD,eAAehG,EAAS,aAAc,CAAEuG,OAAO,GAAO,E,mCCL9D,MAAM,EAA+BC,OAAOC,KAAKC,OAAO,iBCAlD,EAA+BF,OAAOC,KAAKC,OAAO,a,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,kC,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,4B,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,iC,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,kC,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,2B,aCAzC,SAASC,EAAgBpG,EAAGc,GAKzC,OAJAsF,EAAkBpE,OAAOqE,eAAiBrE,OAAOqE,eAAexB,OAAS,SAAyB7E,EAAGc,GAEnG,OADAd,EAAEsG,UAAYxF,EACPd,CACT,EACOoG,EAAgBpG,EAAGc,EAC5B,CCLe,SAASyF,EAAeC,EAAUC,GAC/CD,EAAShE,UAAYR,OAAO0E,OAAOD,EAAWjE,WAC9CgE,EAAShE,UAAUmE,YAAcH,EACjCH,EAAeG,EAAUC,EAC3B,CCLe,SAASG,EAA8BC,EAAQC,GAC5D,GAAc,MAAVD,EAAgB,MAAO,CAAC,EAC5B,IAEIrB,EAAK3F,EAFLkH,EAAS,CAAC,EACVC,EAAahF,OAAOC,KAAK4E,GAE7B,IAAKhH,EAAI,EAAGA,EAAImH,EAAWC,OAAQpH,IACjC2F,EAAMwB,EAAWnH,GACbiH,EAASI,QAAQ1B,IAAQ,IAC7BuB,EAAOvB,GAAOqB,EAAOrB,IAEvB,OAAOuB,CACT,CCXA,MAAM,EAA+Bd,OAAOC,KAAKC,OAAO,oB,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,sC,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,6B,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,uB,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,yB,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,4B,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,0B,oCCQnCgB,EAAK,8DASvB,OATuB,mBACxBC,KAAA,SAAKC,GACH,MAAsCzF,KAAK0F,MAAnCC,EAAS,EAATA,UAAoBD,GAAL,EAAJE,KAAc,QAEjC,OACE,wBAAMD,UAAWE,IAAU,CAAC,QAAS,UAAU7F,KAAK0F,MAAME,KAAQD,KAAiBD,GAChFD,EAAMK,SAGb,EAAC,EATuB,CAASC,KCRnC,MAAM,EAA+B1B,OAAOC,KAAKC,OAAO,2B,aCQnCyB,EAAe,uFA8BjC,OA9BiC,EAClCL,UAAA,WACE,MAAO,yBACT,EAAC,EAEDM,MAAA,WACE,OAAOC,IAAAA,WAAAA,MAAqB,0DAA0DlG,KAAK0F,MAAMS,KAAKC,YACxG,EAAC,EAEDC,QAAA,WACE,OACE,SAAKV,UAAU,cACb,SAAKA,UAAU,wBACb,SAAKA,UAAU,cACb,eAAQO,IAAAA,WAAAA,MAAqB,qEAC7B,SAAKP,UAAU,4CACb,4BAAkB3F,KAAK0F,MAAMS,KAAKG,aAGtC,SAAKX,UAAU,cACb,eAAQO,IAAAA,WAAAA,MAAqB,oEAC7B,SAAKP,UAAU,2CACb,cACE,aAAM3F,KAAK0F,MAAMS,KAAKI,cAOpC,EAAC,EA9BiC,CAA0EC,K,gBCIzFC,EAAU,8DA0B5B,OA1B4B,mBAC7BjB,KAAA,WAAO,WACL,OACE,SAAKkB,MAAM,0CACT,EAAC,IAAM,CACLC,UAAW3G,KAAK0F,MAAMkB,KAAKC,UAC3BZ,MAAOC,IAAAA,WAAAA,MAAqB,2CAC5BY,QAAS,kBAAM,EAAKpB,MAAMkB,KAAKG,MAAM,EACrCC,KAAK,sBACLrB,UAAU,6CAEZ,UAAMe,MAAM,2BACTR,IAAAA,WAAAA,MAAqB,2CAA4C,CAChEe,QAASjH,KAAK0F,MAAMkB,KAAKM,aAAe,EACxCC,MAAOnH,KAAK0F,MAAMkB,KAAKQ,mBAG3B,EAAC,IAAM,CACLT,UAAW3G,KAAK0F,MAAMkB,KAAKS,UAC3BpB,MAAOC,IAAAA,WAAAA,MAAqB,2CAC5BY,QAAS,kBAAM,EAAKpB,MAAMkB,KAAKU,MAAM,EACrCN,KAAK,uBACLrB,UAAU,6CAIlB,EAAC,EA1B4B,CAASI,K,sBCUnBwB,EAAY,uFA+L9B,OA/L8B,EAC/BC,OAAA,SAAO/B,GACL,YAAM+B,OAAM,UAAC/B,GAEbS,IAAAA,eAAAA,MAAAA,MACF,EAAC,EAEDV,KAAA,WACE,OACE,aAASiC,GAAG,8BAA8B9B,UAAU,yDAClD,SAAKA,UAAU,uEACb,SAAKA,UAAU,aACb,QAAIA,UAAU,kBAAkBO,IAAAA,WAAAA,MAAqB,sDACrD,EAAC,IAAM,CACLP,UAAU,sBACVqB,KAAK,kBACLF,QAAS,kBAAMZ,IAAAA,eAAAA,MAAAA,MAA+B,EAC9C,aAAYA,IAAAA,WAAAA,MAAqB,2DAIvC,SAAKP,UAAU,aAAa3F,KAAK0H,cAGvC,EAAC,EAEDC,QAAA,WAAU,WACFC,EAAQ,IAAIC,KAuGlB,OArGAD,EAAM5F,IACJ,YACA,CACE8F,MAAOC,IAAY7B,IAAAA,WAAAA,MAAqB,kEACxCG,QAAS,SAACF,GAAI,OACZ,SAAKR,UAAU,uCACb,UAAMA,UAAU,4CAA4C,EAAKqC,cAAc7B,EAAKC,cACpF,UAAMT,UAAU,4CACbO,IAAAA,WAAAA,MAAqB,0DAA0DC,EAAKC,cAEnF,GAGV,IAGFwB,EAAM5F,IACJ,UACA,CACE8F,MAAOC,IAAY7B,IAAAA,WAAAA,MAAqB,gEACxCG,QAAS,SAACF,GAAS,MACX8B,EAA8B/B,IAAAA,KAAAA,WAAkC,OAAf,EAACC,EAAI,gBAAU,EAAd,EAAgBvE,QAAQ,gCAAiC,MAEjH,OAAOqG,EACL,SAAKtC,UAAU,qCACb,SAAKA,UAAU,uDAAuDuC,MAAOD,EAAUjB,MACpFiB,EAAUjB,KAAOA,IAAKiB,EAAUjB,KAAKmB,MAAQ,IAEhD,SAAKxC,UAAU,6CACb,UAAMA,UAAU,2CAA2CsC,EAAUG,MAAM,oBAAoBnC,OAC/F,UAAMN,UAAU,0CAA0CQ,EAAI,aAIlEA,EAAI,SAER,GAEF,IAGFyB,EAAM5F,IACJ,SACA,CACE8F,MAAOC,IAAY7B,IAAAA,WAAAA,MAAqB,+DACxCG,QAAS,SAACF,GAAI,OACZ,EAACZ,EAAK,CACJI,UAAU,mCACVC,KAAM,CAAEyC,QAAS,UAAWC,QAAS,QAASC,QAAS,UAAWC,QAAS,WAAYrC,EAAKsC,WAE3FvC,IAAAA,WAAAA,MAAqB,wDAAwDC,EAAKsC,UAC7E,GAGZ,IAGFb,EAAM5F,IACJ,cACA,CACE8F,MAAOC,IAAY7B,IAAAA,WAAAA,MAAqB,qEACxCG,QAAS,SAACF,GAAI,OACXA,EAAKuC,YAGJ,EAAC,IAAO,CAACC,KAASC,MAAMzC,EAAKuC,aAAa3I,OAAO,UAAS,KAAK6I,MAAMzC,EAAK0C,cAAc9I,OAAO,WAC7F,cCnHC,SAAuB+I,EAAaC,GACjDH,MAAMI,OAAOjG,KAEb,IAAMkG,EAAeL,MAAMG,GAAKG,KAAKJ,GAErC,OAAOF,MAAM7F,SAASkG,GAAc7G,UACtC,CD6GqB+G,CAAchD,EAAKuC,YAAavC,EAAK0C,gBAH9C3C,IAAAA,WAAAA,MAAqB,gEAKtB,GAEL,IAGF0B,EAAM5F,IACJ,aACA,CACE8F,MAAOC,IAAY7B,IAAAA,WAAAA,MAAqB,yEACxCG,QAAS,SAACF,GAAI,OAAK,cAAOA,EAAKiD,iBAAwB,GAEzD,IAGFxB,EAAM5F,IACJ,UACA,CACE8F,MAAOC,IAAY7B,IAAAA,WAAAA,MAAqB,gEACxCG,QAAS,SAACF,GAAI,OACZ,EAAC,IAAM,CACLR,UAAU,0CACVqB,KAAK,kBACL,aAAYd,IAAAA,WAAAA,MAAqB,+DAGjCY,QAAS,kBAAMZ,IAAAA,MAAAA,KAAeF,EAAiB,CAAEG,KAAAA,GAAO,GACxD,EAEJR,UAAW,kBAEb,IAGKiC,CACT,EAAC,EAEDF,WAAA,WACE,IAAM2B,EAAQnD,IAAAA,eAAAA,MAAAA,WAEd,IAAKmD,EACH,OAAO,EAAC,IAAgB,MAG1B,GAAIA,IAAUA,EAAMhE,OAClB,OAAO,QAAIM,UAAU,2BAA2BO,IAAAA,WAAAA,MAAqB,qDAGvE,IAAMyB,EAAU3H,KAAK2H,UAErB,OACE,WACE,WAAOhC,UAAU,mCACf,eACE,YACGgC,EAAQ2B,UAAU5I,KAAI,SAAC6I,EAAMC,GAAK,OACjC,QAAI5F,IAAK4F,GAAQD,EAAKzB,MAAW,MAIvC,eACGuB,EAAM3I,KAAI,SAACyF,EAAMqD,GAAK,OACrB,QAAI5F,IAAK4F,GACN7B,EAAQ2B,UAAU5I,KAAI,SAAC6I,EAAMC,GACSD,EAA7BzB,MAAR,IAAezB,EAAsBkD,EAAtBlD,QAAYX,EAAK,EAAK6D,EAAI,GAEzC,OACE,sBAAI3F,IAAK4F,GAAW9D,GACjBW,EAAQF,GAGf,IACG,MAKX,EAACM,EAAU,CAACG,KAAMV,IAAAA,eAAAA,QAGxB,EAAC,EAED8B,cAAA,SAAc5B,GACZ,OAAOY,IACL,CACEyC,aAAc,kBACdC,aAAc,cACdC,aAAc,cACdC,cAAe,cACfC,kBAAmB,kBACnBC,iBAAkB,eAClBC,iBAAkB,6BAClBC,QAAS,6BACT5D,GAEN,EAAC,EA/L8B,CAASL,KEtB1C,MAAM,EAA+B1B,OAAOC,KAAKC,OAAO,uB,aCEzC,SAAS,EAACrG,GACvB,IAAM+L,EAAQ/L,EAAEgM,SAASC,OAAO,GAEhC,IAAK,CAAC,2BAA4B,8BAA+B,2BAA2BC,SAASH,EAAMI,MACzG,MAAMnM,EAGR,OAAQ+L,EAAMI,MACZ,IAAK,2BACCJ,EAAMK,eACRpE,IAAAA,OAAAA,KAAgB,CAAEN,KAAM,SAAWM,IAAAA,WAAAA,MAAqB,yDAAyD+D,EAAMK,gBACvHpE,IAAAA,MAAAA,SAEAA,IAAAA,OAAAA,KAAgB,CAAEN,KAAM,SAAWM,IAAAA,WAAAA,MAAqB,qEAE1D,MAEF,IAAK,8BACHA,IAAAA,OAAAA,KAAgB,CAAEN,KAAM,SAAWM,IAAAA,WAAAA,MAAqB,wEACxDA,IAAAA,MAAAA,QACA,MAEF,IAAK,0BACHA,IAAAA,OAAAA,KAAgB,CAAEN,KAAM,SAAWM,IAAAA,WAAAA,MAAqB,oEACxDA,IAAAA,MAAAA,QAEN,CCvBe,SAASqE,IACtBrE,IAAAA,MAAAA,QACA7G,EAAEmL,MAAMC,IAAIvE,IAAAA,MAAU,YAAa,CAAEuB,GAAI,4BACzCvB,IAAAA,eAAAA,MAAAA,OACAwE,YAAW,WAAM,MACuC,OAAtD,EAAAC,SAASC,eAAe,iCAAxB,EAAwDC,eAAe,CAAEC,MAAO,WAClF,GAAG,IACL,CATAC,OAAOR,YAAcA,ECK0B,IAO1BS,EAAS,mGACjB,OADiB,0CAC5BC,iBAAW,IADiB,OACjB,kBAsEV,OAtEU,EAEXzD,OAAA,SAAO/B,GACL,YAAM+B,OAAM,UAAC/B,GAEbzF,KAAKiL,YAAcC,IAAO,GAC5B,EAAC,EAED1F,KAAA,WACE,OACE,SAAKG,UAAU,uCACb,WAAOwF,QAAQ,qBAAqBjF,IAAAA,WAAAA,MAAqB,oDACzD,OAAGP,UAAU,YACVO,IAAAA,WAAAA,MAAqB,uDAAwD,CAC5EkF,UAAW,OAAGC,KAAK,yBAAuB,oBAG9C,SAAK1F,UAAU,yBACb,WAAOA,UAAU,cAAc8B,GAAG,oBAAoB6D,YAAY,sBAAsBC,KAAMvL,KAAKiL,cACnG,EAAC,IAAM,CACLtF,UAAU,SACVqB,KAAK,kBACLF,QAAS9G,KAAKwL,SAASvI,KAAKjD,MAC5ByL,QAASvF,IAAAA,eAAAA,QAAAA,UAAqC,qBAC9CS,SAAUT,IAAAA,eAAAA,QAAAA,mBAA8C,sBAEvDA,IAAAA,WAAAA,MAAqB,qDAKhC,EAAC,EAEDwF,KAAA,WACE,MAAO,CACLC,QAAS3L,KAAKiL,cAElB,EAAC,EAEDO,SAAA,WACEtF,IAAAA,eAAAA,QAAAA,WAAsC,qBACtCA,IAAAA,MAAAA,KAAe0F,KAEf1F,IAAAA,QACkD,CAC9C2F,OAAQ,OACRC,IAAQ5F,IAAAA,MAAAA,UAAoB,UAAS,8BACrC6F,KAAM,CACJL,KAAM1L,KAAK0L,UAGdM,MAAK,SAAC9B,GACL,GAAIA,EAAS+B,WACX1B,QACK,CACL,IAAM2B,EAAchC,EAASzC,GAC7BvB,IAAAA,OAAAA,KACE,CAAEN,KAAM,WACRM,IAAAA,WAAAA,MAAqB,6DAA8D,CAAE+B,UAAWiE,KAElGnB,OAAOoB,SAASd,KAAUnF,IAAAA,MAAAA,UAAoB,YAAW,eAAegG,EACxEnB,OAAOoB,SAASC,QAClB,CACF,IAAE,MACKC,GAAa,SACX,WACPnG,IAAAA,eAAAA,QAAAA,WAAsC,MACtCA,IAAAA,MAAAA,QACA7G,EAAEiN,QACJ,GACJ,EAAC,EAvE2B,CAASvG,KCfvC,MAAM,EAA+B1B,OAAOC,KAAKC,OAAO,4B,aCiBnCgI,EAAW,mGAEF,OAFE,0CAC9Bd,SAAmB,EAAI,EACvBe,OAAwB,KAAI,EAFE,OAEF,kBAqC3B,OArC2B,EAE5B7G,UAAA,WACE,MAAO,0BACT,EAAC,EAEDM,MAAA,WACE,OAAOC,IAAAA,WAAAA,MAAqB,mDAC9B,EAAC,EAEDuG,SAAA,SAAShH,GACP,YAAMgH,SAAQ,UAAChH,GAEfzF,KAAK0M,eACP,EAAC,EAEDrG,QAAA,WACE,OAAO,SAAKV,UAAU,cAAc3F,KAAKyL,QAAU,EAAC,IAAgB,MAAM,SAAK9F,UAAU,wBAAwB3F,KAAKwM,QACxH,EAAC,EAEDE,cAAA,WAAsB,WACpBxG,IAAAA,QAC2B,CACvB2F,OAAQ,OACRC,IAAQ5F,IAAAA,MAAAA,UAAoB,UAAS,2BACrC6F,KAAM,CACJL,KAAM,CACJC,QAAS3L,KAAK0F,MAAK,YAIxBsG,MAAK,SAAC9B,GACL,EAAKuB,SAAU,EACf,EAAKe,OAAStC,EAASwB,KAAKiB,OAC5BtN,EAAEiN,QACJ,IAAE,MACKD,EACX,EAAC,EAvC6B,CAAkE7F,KCM7EoG,EAAa,uFAuD/B,OAvD+B,EAChCpH,KAAA,SAAKC,GAAqD,MACxD,EAA+EzF,KAAK0F,MAA5EuC,EAAS,EAATA,UAAW4E,EAAO,EAAPA,QAASC,EAAa,EAAbA,cAAeC,EAAa,EAAbA,cAAeC,EAAM,EAANA,OAAQC,EAAQ,EAARA,SAC5DC,EAAuC,OAA1B,EAAGL,EAAQ,iBAAe,EAAKA,EAAQ,kBAAoBG,EAASH,EAAQ,gBAAkB,KAEjH,OACE,SACElH,UAAWE,IAAU,CACnB,4BAA4B,EAC5B,iCAAkCmH,EAClC,mCAAoCC,KAGtC,SAAKtH,UAAU,8CAA8CuC,MAAOD,EAAUjB,MAC3EiB,EAAUjB,KAAOA,IAAKiB,EAAUjB,KAAKmB,MAAQ,IAEhD,SAAKxC,UAAU,iCACb,SAAKA,UAAU,iCAAiCsC,EAAUG,MAAM,oBAAoBnC,OACpF,SAAKN,UAAU,oCACb,UAAMA,UAAU,4CAA4C3F,KAAKmN,QAAQN,EAAiB,UACzFK,EACC,EAAC3H,EAAK,CAACI,UAAU,0CAA0CC,KAAMiH,EAAQ,gBAAkB,UAAY,WACpG7M,KAAKmN,QAAQD,IAEd,OAGR,SAAKvH,UAAU,qCACZmH,EACC,EAAC,IAAO,CAACnE,KAAMzC,IAAAA,WAAAA,MAAqB,mDAClC,EAAC,IAAM,CACLc,KAAK,6BACLrB,UAAU,mCACVmB,QAASgG,EACT,aAAY5G,IAAAA,WAAAA,MAAqB,qDAGnC,KACH6G,EACC,EAAC,IAAO,CAACpE,KAAMzC,IAAAA,WAAAA,MAAqB,yEAClC,EAAC,IAAM,CACLc,KAAK,4BACLrB,UAAU,kDACVmB,QAAS,kBAAMZ,IAAAA,MAAAA,KAAeqG,EAAa,CAAEZ,QAAS1D,EAAUE,MAAO,EACvE,aAAYjC,IAAAA,WAAAA,MAAqB,2EAGnC,MAIZ,EAAC,EAEDiH,QAAA,SAAQC,GACN,MAAO,IAAMA,EAAExL,QAAQ,IAAK,GAC9B,EAAC,EAvD+B,CAAgEmE,KCA7EsH,EAAY,mGACpB,OADoB,0CAC/BC,iBAAW,IADoB,OACpB,kBAqGV,OArGU,EAEX9F,OAAA,SAAO/B,GACL,YAAM+B,OAAM,UAAC/B,GAEbzF,KAAKsN,YAActN,KAAK0F,MAAM4H,WAChC,EAAC,EAED9H,KAAA,WAEE,OACE,SAAKG,UAAU,4DACb,SAAK4H,IAAI,cAAcC,IAAKtH,IAAAA,MAAAA,UAAoB,WAAa,yDAC7D,eAAQA,IAAAA,WAAAA,MAAqB,mDAAoD,CAAEiH,QAASnN,KAAK0F,MAAM+H,WAAW,mBAClH,OAAG9H,UAAU,YAAYO,IAAAA,WAAAA,MAAqB,2DAC9C,SAAKP,UAAU,kCACb,EAAC,IAAO,CAACgD,KAAMzC,IAAAA,WAAAA,MAAqB,4DAClC,EAAC,IAAM,CACLP,UAAU,SACVqB,KAAK,cACLF,QAAS9G,KAAK0N,OAAOzK,KAAKjD,MAAM,GAChC2G,SAAUT,IAAAA,eAAAA,QAAAA,mBAA8C,yBAEvDA,IAAAA,WAAAA,MAAqB,wDAG1B,EAAC,IAAM,CACLP,UAAU,wBACVqB,KAAK,cACLF,QAAS9G,KAAK0N,OAAOzK,KAAKjD,MAAM,GAChC2G,SAAUT,IAAAA,eAAAA,QAAAA,mBAA8C,iBAEvDA,IAAAA,WAAAA,MAAqB,uDAGzBlG,KAAKsN,YAAYK,uBAAuBtI,OACvC,SAAKM,UAAU,oFACZ3F,KAAKsN,YAAYK,uBAAuBjN,KAAI,SAACuH,GAAiB,OAC7D,EAAC2E,EAAa,CACZ3E,UAAW/B,IAAAA,KAAAA,WAAoB+B,EAAUrG,QAAQ,UAAW,IAAIA,QAAQ,cAAe,IAAIA,QAAQ,IAAK,MACxGiL,QAAS,CAAC,EACVC,cAAe,KACfG,UAAU,GACV,KAGJ,KACyB,YAA5BjN,KAAKsN,YAAY7E,OAChB,EAAC,IAAK,CACJ7C,KAAK,QACLD,UAAU,qCACViI,aAAa,EACbC,SAAU,CACR,EAAC,IAAM,CACLlI,UAAU,iEACVqB,KAAK,yBACLF,QAAS,kBAAMZ,IAAAA,MAAAA,KAAeqG,EAAa,CAAEZ,QAAS,eAAgB,GAErEzF,IAAAA,WAAAA,MAAqB,6DAI1B,OAAGP,UAAU,2CACVO,IAAAA,WAAAA,MAAqB,6DAGxB,KAGV,EAAC,EAEDwH,OAAA,SAAOI,GAAiB,WACtB5H,IAAAA,eAAAA,QAAAA,WAAsC4H,EAAS,uBAAyB,gBACxE5H,IAAAA,MAAAA,KAAe0F,KAEf1F,IAAAA,QACwC,CACpC2F,OAAQ,OACRC,IAAQ5F,IAAAA,MAAAA,UAAoB,UAAS,gCACrC6F,KAAM,CACJL,KAAM,CAAEoC,OAAAA,MAGX9B,MAAK,SAAC9B,GACO,MAARA,GAAAA,EAAU+B,WACZ1B,KAEArE,IAAAA,OAAAA,KAAgB,CAAEN,KAAM,WAAaM,IAAAA,WAAAA,MAAqB,mDAC1D6E,OAAOoB,SAASC,SAEpB,IAAE,MACKC,GAAa,OACb,SAACnO,GAAoB,UAC1BgI,IAAAA,MAAAA,QACA,EAAKoH,YAAY7E,OAAS,UAC1B,EAAK6E,YAAYK,uBAAmC,OAAb,EAAGzP,EAAEgM,WAAgB,OAAR,EAAV,EAAYC,SAAa,OAAP,EAAlB,EAAoB4D,YAAV,EAAV,EAA2BC,uBACvE,IAAE,SACO,WACP9H,IAAAA,eAAAA,QAAAA,WAAsC,MACtC7G,EAAEiN,QACJ,GACJ,EAAC,EAtG8B,CAA0DvG,KCvB5E,SAASkI,IAYtB,OAXAA,EAAW7N,OAAO8N,OAAS9N,OAAO8N,OAAOjL,OAAS,SAAUkC,GAC1D,IAAK,IAAIlH,EAAI,EAAGA,EAAIkQ,UAAU9I,OAAQpH,IAAK,CACzC,IAAIgH,EAASkJ,UAAUlQ,GACvB,IAAK,IAAI2F,KAAOqB,EACV7E,OAAOQ,UAAUqD,eAAeT,KAAKyB,EAAQrB,KAC/CuB,EAAOvB,GAAOqB,EAAOrB,GAG3B,CACA,OAAOuB,CACT,EACO8I,EAASG,MAAMpO,KAAMmO,UAC9B,CCbA,SAASE,GAAkBlJ,EAAQmJ,GACjC,IAAK,IAAIrQ,EAAI,EAAGA,EAAIqQ,EAAMjJ,OAAQpH,IAAK,CACrC,IAAIsQ,EAAaD,EAAMrQ,GACvBsQ,EAAWzK,WAAayK,EAAWzK,aAAc,EACjDyK,EAAWC,cAAe,EACtB,UAAWD,IAAYA,EAAWE,UAAW,GACjDrO,OAAOyD,eAAesB,EAAQoJ,EAAW3K,IAAK2K,EAChD,CACF,CACe,SAASG,GAAaC,EAAaC,EAAYC,GAM5D,OALID,GAAYP,GAAkBM,EAAY/N,UAAWgO,GACrDC,GAAaR,GAAkBM,EAAaE,GAChDzO,OAAOyD,eAAe8K,EAAa,YAAa,CAC9CF,UAAU,IAELE,CACT,CCOe,SAASG,GAAS/K,GAC/B,IAAM6B,SAAc7B,EACpB,MAAgB,aAAT6B,GAAiC,WAATA,KAAuB7B,CACxD,CC1BkC,IAQ5BgL,GAIJ,SAAY1I,EAAY2I,GAAkB,KAH1C3I,aAAO,OACP2I,cAAQ,EAGNhP,KAAKqG,QAAUA,EACfrG,KAAKgP,SAAWA,CAClB,EAOmBnH,GAAQ,6BAIjBoH,OAAkC,CAAC,CAAC,mBAkB7C,OAED,EAGAC,QAAA,WACE,OAA2C,IAApC9O,OAAOC,KAAKL,KAAKiP,QAAQ5J,MAClC,EAEA,EAGA8J,IAAA,SAAIvL,GACF,OAAOxD,OAAOC,KAAKL,KAAKiP,QAAQ7E,SAASxG,EAC3C,EAEA,EAGA7B,IAAA,SAAI6B,GACF,OAAO5D,KAAKiP,OAAOrL,GAAKyC,OAC1B,EAEA,EAGA+I,YAAA,SAAYxL,GACV,OAAO5D,KAAKiP,OAAOrL,GAAKoL,QAC1B,EAEA,EAQAhN,IAAA,SAAI4B,EAAayC,EAAY2I,GAG3B,YAH2C,IAAhBA,IAAAA,EAAmB,GAC9ChP,KAAKiP,OAAOrL,GAAO,IAAImL,GAAK1I,EAAS2I,GAE9BhP,IACT,EAGA,EAuBA4B,QAAA,SAAQgC,EAAayC,EAA0B2I,GAC7C,YADoC,IAAjB3I,IAAAA,EAAoB,WAA6B,IAAvB2I,IAAAA,EAA0B,MAClEhP,KAAKmP,IAAIvL,IAEE,OAAZyC,IACFrG,KAAKiP,OAAOrL,GAAKyC,QAAUA,GAGZ,OAAb2I,IACFhP,KAAKiP,OAAOrL,GAAKoL,SAAWA,GAGvBhP,MAVoBA,IAW7B,EAEA,EAkBAqP,WAAA,SAAWzL,EAAayC,GACtB,IAAKrG,KAAKmP,IAAIvL,GACZ,MAAM,IAAI0L,MAAM,+CAAgD1L,EAAG,qBAIrE,OAAO5D,KAAK4B,QAAQgC,EAAKyC,EAC3B,EAEA,EAkBAkJ,YAAA,SAAY3L,EAAaoL,GACvB,IAAKhP,KAAKmP,IAAIvL,GACZ,MAAM,IAAI0L,MAAM,gDAAiD1L,EAAG,qBAKtE,OAFA5D,KAAKiP,OAAOrL,GAAKoL,SAAWA,EAErBhP,IACT,EAEA,EAKAwP,OAAA,SAAO5L,GAGL,cAFO5D,KAAKiP,OAAOrL,GAEZ5D,IACT,EAEA,EAMAyP,MAAA,SAAMC,GAAqC,WASzC,OARAtP,OAAOC,KAAKqP,EAAUT,QAAQ3O,SAAQ,SAACsD,GACrC,IAAM+L,EAAMD,EAAUT,OAAOrL,GAEzB+L,aAAeZ,KACjB,EAAKE,OAAOrL,GAAO+L,EAEvB,IAEO3P,IACT,EAEA,EAkCAsJ,QAAA,SAAQsG,GAA+E,WAgBrF,YAhB6B,IAAvBA,IAAAA,GAA0B,GACPxP,OAAOC,KAAKL,KAAKiP,QAAQvO,KAAI,SAACkD,EAAK3F,GAC1D,IAAMsL,EAAO,EAAK0F,OAAOrL,GAEzB,OAAKgM,GAAkBd,GAASvF,EAAKlD,SAE5B,KACFkD,EAAI,CACPlD,QAAS,EAAKwJ,uBAAuBf,GAASvF,EAAKlD,SAAWkD,EAAKlD,QAAUjG,OAAOmJ,EAAKlD,SAAUzC,KAI9F,KAAK2F,EAEhB,IAEauG,MAAK,SAACvR,EAAGwR,GAAC,OAAKA,EAAEf,SAAWzQ,EAAEyQ,QAAQ,IAAEtO,KAAI,SAAC6I,GAAI,OAAKA,EAAKlD,OAAO,GACjF,EAEA,EAqBA2J,SAAA,WAAyD,WACvD,OAAO5P,OAAOC,KAAKL,KAAKiP,QAAQpO,QAAO,SAACH,EAAKkD,GAC3C,IAAMG,EAAM,CACVsC,QAAS,EAAKtE,IAAI6B,GAClBqM,SAAUrM,EACVoL,SAAU,EAAKI,YAAYxL,IAK7B,OAFAlD,EAAIkD,GAAOG,EAEJrD,CACT,GAAG,CAAC,EACN,EAEA,EAaQmP,uBAAR,SAAiDxJ,EAAYzC,GAC3D,OAAO,IAAIsM,MAAM7J,EAAS,CACxBtE,IAAG,SAACoD,EAAQgL,EAAUC,GACpB,MAAiB,aAAbD,EAAgCvM,EAE7ByM,QAAQtO,IAAIoD,EAAQgL,EAAUC,EACvC,EACA3F,IAAG,SAACtF,EAAQgL,EAAU/L,EAAOgM,GAC3B,GAAY,OAARxM,GAA6B,aAAbuM,EAClB,MAAM,IAAIb,MAAM,oCAGlB,OAAOe,QAAQ5F,IAAItF,EAAQgL,EAAU/L,EAAOgM,EAC9C,GAEJ,EAAC,uBAjSD,WACE,OAAO,IAAIF,MAAMlQ,KAAKiP,OAAQ,CAC5BxE,IAAG,WAED,OADA6F,QAAQC,KAAK,+CACN,CACT,GAEJ,KAAC,EAtB0B,GCPRC,GAAO,uFA6GzB,OA7GyB,EAC1BhL,KAAA,WACE,IAAMlB,EAAO4B,IAAAA,eAAAA,QAAAA,WAEb,MAAO,CACL,SAAKP,UAAU,cACb,eAAQO,IAAAA,WAAAA,MAAqB,uDAC7B,OAAGP,UAAU,YAAYO,IAAAA,WAAAA,MAAqB,sDAC7ClG,KAAKyQ,sBACN,SAAK9K,UAAU,kCAAkC3F,KAAK0Q,eAAepH,WACpEtJ,KAAK2Q,wBAERrM,GAAQA,EAAI,QAAS,gBACnB,EAAC+I,EAAY,CAACI,WAAYnJ,EAAI,QAAUgJ,YAAapH,IAAAA,eAAAA,QAAAA,cAAAA,QACnD,KAER,EAAC,EAEDuK,oBAAA,WAAsB,MACpB,OAC6C,OAA1C,EAAAvK,IAAAA,eAAAA,QAAAA,sBAA0C,EAA1C,EAA4C0K,YAC3C,OAAGjL,UAAU,gCACX,UAAMA,UAAU,sCACbO,IAAAA,WAAAA,MAAqB,gEAExB,UAAMP,UAAU,sCAAsCkL,IAAU3K,IAAAA,eAAAA,QAAAA,gBAAAA,cAGpE,IAEJ,EAAC,EAEDyK,qBAAA,WACE,IAAMG,EAAQ5K,IAAAA,eAAAA,QAEd,OAAIA,IAAAA,eAAAA,QAAAA,YAEA,SAAKP,UAAU,6BACb,EAAC,IAAgB,OAKjBmL,EAAMC,iBAAiB1L,QAAUyL,EAAMrD,WAW3C,SAAK9H,UAAU,6BACb,SAAKA,UAAU,kCACZmL,EAAMrD,WACL,EAACb,EAAa,CACZ3E,UAAW6I,EAAMrD,WAAWxF,UAC5B4E,QAASiE,EAAMrD,WAAU,QACzBT,QAAQ,EACRF,cAAe,kBAAMgE,EAAME,iBAAiB,EAC5CjE,cAAe+D,EAAMG,cAAcC,kBAAkB9G,SAAS,iBAE9D,KACH0G,EAAMC,iBAAiBrQ,KAAI,SAACuH,GAAoB,OAC/C,EAAC2E,EAAa,CACZ3E,UAAWA,EACX4E,QAASiE,EAAMK,eAAelJ,EAAUR,IACxCqF,cAAe,kBAAMgE,EAAMM,gBAAgBnJ,EAAU,EACrD8E,cAAe+D,EAAMG,cAAcC,kBAAkB9G,SAASnC,EAAUE,OACxE,MA1BN,SAAKxC,UAAU,6BACb,EAAC,IAAK,CAACC,KAAK,UAAUgI,aAAa,GAChC1H,IAAAA,WAAAA,MAAqB,oDA6BhC,EAAC,EAEDwK,aAAA,WACE,IAAM9I,EAAQ,IAAIC,GA6BlB,OA3BAD,EAAM5F,IACJ,cACA,EAAC,IAAM,CACL2D,UAAU,SACVqB,KAAK,kBACLF,QAAS,kBAAMZ,IAAAA,eAAAA,QAAAA,iBAA4C,EAC3DuF,QAASvF,IAAAA,eAAAA,QAAAA,UAAqC,SAC9CS,SAAUT,IAAAA,eAAAA,QAAAA,mBAA8C,UAEvDA,IAAAA,WAAAA,MAAqB,2DAExB,KAGF0B,EAAM5F,IACJ,eACA,EAAC,IAAM,CACL2D,UAAU,SACVqB,KAAK,cACLF,QAAS,kBAAMZ,IAAAA,eAAAA,QAAAA,gBAA2C,EAC1DuF,QAASvF,IAAAA,eAAAA,QAAAA,UAAqC,iBAC9CS,SAAUT,IAAAA,eAAAA,QAAAA,mBAA8C,kBAEvDA,IAAAA,WAAAA,MAAqB,4DAInB0B,CACT,EAAC,EA7GyB,CAAS7B,KCNhBsL,GAAc,uFA6BhC,OA7BgC,EACjC7J,OAAA,SAAO/B,GACL,YAAM+B,OAAM,UAAC/B,EACf,EAAC,EAEDD,KAAA,WACE,OACE,SAAKG,UAAU,2DACb,SAAKA,UAAU,oCACb,SAAKA,UAAU,aACb,QAAIA,UAAU,kBAAkBO,IAAAA,WAAAA,MAAqB,0DAGzD,SAAKP,UAAU,aACZO,IAAAA,KAAAA,wCACC,WACE,EAAC8E,EAAS,MACV,EAACwF,GAAO,OAGV,SAAK7K,UAAU,cACb,EAAC,IAAK,CAACC,KAAK,UAAUgI,aAAa,GAChC1H,IAAAA,WAAAA,MAAqB,oDAOpC,EAAC,EA7BgC,CAASH,KCDvBuL,GAAY,8DAe9B,OAf8B,mBAC/BC,SAAA,SAAS9L,GACP,IAAMmC,EAAQ,EAAH,UAAS2J,SAAQ,UAAC9L,GAY7B,OAVAmC,EAAM2H,YAAY,UAAW,IAE7B3H,EAAM5F,IAAI,UAAW,EAACqP,GAAc,MAAK,GAErCG,SAAStL,IAAAA,KAAAA,SAAAA,uCACX0B,EAAM5F,IAAI,QAAS,EAACuF,EAAY,MAAK,GAGvCK,EAAM2H,YAAY,cAAe,GAE1B3H,CACT,EAAC,EAf8B,CAAS6J,KCR1C,MAAM,GAA+BpN,OAAOC,KAAKC,OAAO,gB,eCAlDmN,GAAa,CAClB,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAGKC,GAAe,CACpB,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGKC,GAAY,CACjB,IACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAGKC,GAAc,CACnB,IACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SASKC,GAAiB,SAACC,EAAQ7P,EAAQ8P,GACvC,IAAIC,EAASF,EAOb,MANsB,iBAAX7P,GAAuBgQ,MAAMC,QAAQjQ,GAC/C+P,EAASF,EAAOD,eAAe5P,EAAQ8P,IAClB,IAAX9P,QAA+BoB,IAAZ0O,IAC7BC,EAASF,EAAOD,oBAAexO,EAAW0O,IAGpCC,CACR,EClDqBG,GAAI,uFAmCtB,OAnCsB,EACvB3J,OAAA,WACE,OAAO4J,KAAAA,UAA+D,UAAU7O,KAAKxD,KACvF,EAAC,EAEDoG,UAAA,WACE,OAAOiM,KAAAA,UAAgC,aAAa7O,KAAKxD,KAC3D,EAAC,EAEDsG,QAAA,WACE,OAAO+L,KAAAA,UAAwB,WAAW7O,KAAKxD,KACjD,EAAC,UAED,WACE,OAAOqS,KAAAA,UAAwB,WAAW7O,KAAKxD,KACjD,EAAC,EAEDuG,OAAA,WACE,OAAO8L,KAAAA,UAAwB,UAAU7O,KAAKxD,KAChD,EAAC,EAEDsS,UAAA,WACE,OAAOD,KAAAA,UAAgB,YAAaA,KAAAA,eAAqB7O,KAAKxD,KAChE,EAAC,EAED0I,UAAA,WACE,OAAO2J,KAAAA,UAA8B,YAAaA,KAAAA,eAAqB7O,KAAKxD,KAC9E,EAAC,EAED6I,WAAA,WACE,OAAOwJ,KAAAA,UAA8B,aAAcA,KAAAA,eAAqB7O,KAAKxD,KAC/E,EAAC,EAEDoJ,eAAA,WACE,ODkBW,SAAqB2I,EAAQC,GAC3C,IAAKrR,OAAO4R,SAASR,GACpB,MAAM,IAAIS,UAAU,wCAAwCT,EAAM,KAAKA,GASxE,IAAMU,GANNT,EAAU,GACTU,MAAM,EACNC,QAAQ,GACLX,IAGkBU,KAClBV,EAAQW,OAASd,GAAcD,GAC/BI,EAAQW,OAAShB,GAAeD,GAEpC,GAAIM,EAAQY,QAAqB,IAAXb,EACrB,MAAO,MAAMU,EAAM,GAGpB,IAOII,EAPEC,EAAaf,EAAS,EACtBgB,EAASD,EAAa,IAAOd,EAAQY,OAAS,IAAM,GAgB1D,GAdIE,IACHf,GAAUA,QAK2BzO,IAAlC0O,EAAQgB,wBACXH,EAAgB,CAACG,sBAAuBhB,EAAQgB,6BAGX1P,IAAlC0O,EAAQiB,wBACXJ,EAAgB,GAACI,sBAAuBjB,EAAQiB,uBAA0BJ,IAGvEd,EAAS,EAEZ,OAAOgB,EADcjB,GAAeC,EAAQC,EAAQ9P,OAAQ2Q,GAC7B,IAAMJ,EAAM,GAG5C,IAAMS,EAAW1T,KAAK2T,IAAI3T,KAAKE,MAAMsS,EAAQW,OAASnT,KAAK4T,IAAIrB,GAAUvS,KAAK4T,IAAI,MAAQ5T,KAAK6T,MAAMtB,GAAU,GAAIU,EAAMpN,OAAS,GAWlI,OAVA0M,GAAU,KAAJ,IAAKC,EAAQW,OAAS,KAAO,IAASO,GAEvCL,IACJd,EAASA,EAAOuB,YAAY,IAOtBP,EAJcjB,GAAenR,OAAOoR,GAASC,EAAQ9P,OAAQ2Q,GAIrC,IAFlBJ,EAAMS,EAGpB,CCvEWK,CAAmE,KAAvDlB,KAAAA,UAAwB,kBAAkB7O,KAAKxD,MACpE,EAAC,EAnCsB,CAASqS,MCTbmB,GAAU,6BACrBnK,MAAuB,KAAI,KAC3BoK,MAAQ,GAAE,KACVC,OAAS,EAAC,KACVvM,MAAQ,CAAC,mBAuDhB,OAvDgB,EAEjBwM,KAAA,SAAKC,GAA+B,aAWlC,OAVA5T,KAAKqJ,MAAQ,KACbuK,EAAS,GACPC,KAAM,GACJJ,MAAOzT,KAAKyT,MACZC,OAAQ1T,KAAK0T,QACJ,OADU,EAChBE,QAAM,EAAN,EAAQC,OAEVD,GAGE1N,IAAAA,MAAAA,KAAuB,wBAAyB0N,GAAU,CAAC,GAAG5H,MAAK,SAACN,GAAS,MAMlF,OALA,EAAKrC,MAAQqC,EACb,EAAKvE,MAAyB,OAApB,EAAGuE,EAAKoI,QAAQC,WAAI,EAAjB,EAAmB5M,MAEhC9H,EAAEiN,SAEKZ,CACT,GACF,EAAC,EAEDsI,SAAA,WACE,OAAOhU,KAAKqJ,KACd,EAAC,EAEDjC,cAAA,WACE,OAAO5H,KAAKC,KAAKO,KAAKmH,MAAQnH,KAAKyT,MACrC,EAAC,EAEDvM,WAAA,WACE,OAAO1H,KAAKC,KAAKO,KAAK0T,OAAS1T,KAAKyT,MACtC,EAAC,EAED5M,QAAA,WACE,OAA6B,IAAtB7G,KAAKkH,YACd,EAAC,EAEDG,QAAA,WACE,OAAOrH,KAAK0T,OAAS1T,KAAKyT,MAAQzT,KAAKmH,KACzC,EAAC,EAEDJ,KAAA,WACM/G,KAAK6G,YACP7G,KAAK0T,QAAU1T,KAAKyT,MACpBzT,KAAK2T,OAET,EAAC,EAEDrM,KAAA,WACMtH,KAAKqH,YACPrH,KAAK0T,QAAU1T,KAAKyT,MACpBzT,KAAK2T,OAET,EAAC,EA3D4B,GCgDVM,GAAmB,WAmBtC,aAAc,KAlBdxI,QAAwB,KAAI,KAErB0F,eAAiD,CAAC,EAAC,KACnD+C,qBAAe,OACfnD,sBAAgB,OAChBtD,WAAgC,KAcrCzN,KAAKkU,gBAAkBC,KAAKC,MAAMlO,IAAAA,KAAAA,SAAAA,6CAClClG,KAAK+Q,iBAAmB/Q,KAAKqU,uBAAuBrU,KAAKkU,iBACzDlU,KAAKyN,WAAazN,KAAKsU,iBAAiBtU,KAAKkU,gBAC/C,CAAC,kBANA,OAMA,EAEDK,UAAA,SAAUpM,GACR,YAD0B,IAAlBA,IAAAA,EAAqB,MACrBA,GAAQnI,KAAKyL,UAAYtD,IAAWA,GAAyB,OAAjBnI,KAAKyL,OAC3D,EAAC,EAED+I,mBAAA,SAAmBrM,GACjB,OAAwB,OAAjBnI,KAAKyL,SAAoBzL,KAAKyL,UAAYtD,CACnD,EAAC,EAEDsM,WAAA,SAAWtM,GACTnI,KAAKyL,QAAUtD,CACjB,EAAC,EAEDuM,gBAAA,WAAkB,WAChB1U,KAAKyU,WAAW,SAEhBvO,IAAAA,QACmD,CAC/C2F,OAAQ,OACRC,IAAQ5F,IAAAA,MAAAA,UAAoB,UAAS,uCAEtC8F,MAAK,SAAC9B,GACAA,EAAkC+B,WACrC1B,KAEA,EAAK2J,gBAAkBhK,EACvB,EAAK6G,iBAAmB,EAAKsD,uBAAuBnK,GACpD,EAAKuD,WAAa,EAAK6G,iBAAiBpK,GACxC7K,EAAEiN,SAEN,IAAE,MACKD,GAAa,SACX,WACP,EAAKoI,WAAW,MAChBpV,EAAEiN,QACJ,GACJ,EAAC,EAED0E,gBAAA,WAAkB,WACZ2D,QAAQ5M,IAAY7B,IAAAA,WAAAA,MAAqB,sEAC3CA,IAAAA,MAAAA,KAAe0F,KACf5L,KAAKyU,WAAW,gBAEhBvO,IAAAA,QACwC,CACpC2F,OAAQ,OACRC,IAAQ5F,IAAAA,MAAAA,UAAoB,UAAS,kCAEtC8F,MAAK,SAAC9B,GACO,MAARA,GAAAA,EAAU+B,WACZ1B,KAEArE,IAAAA,OAAAA,KAAgB,CAAEN,KAAM,WAAaM,IAAAA,WAAAA,MAAqB,mDAC1D6E,OAAOoB,SAASC,SAEpB,IAAE,MACKC,GAAa,SACX,WACP,EAAKoI,WAAW,MAChBvO,IAAAA,MAAAA,QACA7G,EAAEiN,QACJ,IAEN,EAAC,EAED8E,gBAAA,SAAgBnJ,GAAsB,WACpC/B,IAAAA,MAAAA,KAAe0F,KACf5L,KAAKyU,WAAW,oBAEhBvO,IAAAA,QACwC,CACpC2F,OAAQ,QACRC,IAAQ5F,IAAAA,MAAAA,UAAoB,UAAS,+BAA+B+B,EAAUR,KAE/EuE,MAAK,SAAC9B,GACO,MAARA,GAAAA,EAAU+B,WACZ1B,KAEArE,IAAAA,OAAAA,KACE,CAAEN,KAAM,WACRM,IAAAA,WAAAA,MAAqB,4DAA6D,CAChF+B,UAAWA,EAAUG,MAAM,oBAAoBnC,SAGnD8E,OAAOoB,SAASC,SAEpB,IAAE,MACKC,GAAa,SACX,WACP,EAAKoI,WAAW,MAChBvO,IAAAA,MAAAA,QACA7G,EAAEiN,QACJ,GACJ,EAAC,EAEDsI,eAAA,WAAiB,WACf1O,IAAAA,MAAAA,KAAe0F,KACf5L,KAAKyU,WAAW,iBAEhBvO,IAAAA,QACwC,CACpC2F,OAAQ,OACRC,IAAQ5F,IAAAA,MAAAA,UAAoB,UAAS,mCAEtC8F,MAAK,SAAC9B,GACO,MAARA,GAAAA,EAAU+B,WACZ1B,KAEArE,IAAAA,OAAAA,KAAgB,CAAEN,KAAM,WAAaM,IAAAA,WAAAA,MAAqB,kEAC1D6E,OAAOoB,SAASC,SAEpB,IAAE,MACKC,GAAa,SACX,WACP,EAAKoI,WAAW,MAChBvO,IAAAA,MAAAA,QACA7G,EAAEiN,QACJ,GACJ,EAAC,EAED+H,uBAAA,SAAuBH,GAA+C,eAgBpE,OAfAlU,KAAKmR,eAAiB,CAAC,EAER,MAAf+C,GAAwB,OAAT,EAAfA,EAAiBrH,UAAkB,OAAX,EAAxB,EAA0BgI,YAA1B,EAAqCC,QAAO,SAACC,GAC3C,IAAMtN,EAAKsN,EAAgB5M,KAAKvG,QAAQ,IAAK,KAAKA,QAAQ,0BAA2B,IAE/EqG,EAAY/B,IAAAA,KAAAA,WAAoBuB,GAChCuN,EAAe,CAAC,qBAAsB,mBAAmB5K,SAAS2K,EAAgB,kBAMxF,OAJI9M,GAAa+M,IACf,EAAK7D,eAAelJ,EAAUR,IAAMsN,GAG/B9M,GAAa+M,CACtB,IAEQ5U,OAAO6U,OAAO/O,IAAAA,KAAAA,YAAqC4O,QAAO,SAAC7M,GAAoB,OAAK,EAAKkJ,eAAelJ,EAAUR,GAAG,GAC/H,EAAC,EAED6M,iBAAA,SAAiBJ,GAAqD,QAC9D5P,EAAsB,MAAf4P,GAAwB,OAAT,EAAfA,EAAiBrH,UAAkB,OAAX,EAAxB,EAA0BgI,gBAAX,EAAf,EAAqCC,QAAO,SAACC,GAA+B,MAA8B,gBAAzBA,EAAgB5M,IAAsB,IAAE4F,MAEtI,OAAKzJ,EAEE,CACLqH,QAASrH,EACT2D,UAAW,CACTR,GAAI,cACJU,KAAM,cACNgF,QAASjH,IAAAA,KAAAA,SAAAA,QACTc,KAAM,CAEJkO,gBAAiB,OAAOhP,IAAAA,MAAAA,UAAoB,WAAU,wDAExDkC,MAAO,CACL,mBAAoB,CAClBnC,MAAO8B,IAAY7B,IAAAA,WAAAA,MAAqB,oDAd9B,IAmBpB,EAAC,+BAlLD,WACE,IAAM+K,EAAgBkD,KAAKC,MAAMlO,IAAAA,KAAAA,SAAAA,2CAQjC,OANA+K,EAAcC,gBAAkB,2BAC3BD,EAAckE,MAAMjE,gBACpBD,EAAcmE,MAAMlE,gBACpBD,EAAcoE,OAAOnE,gBAAe,EAGlCD,CACT,KAAC,EAjBqC,GCjDnBqE,GAAmB,gBAC/BC,MAAoB,IAAI/B,GAAY,KACpCgC,QAA+B,IAAIvB,EAAqB,ECUjE/N,IAAAA,aAAAA,IAAqB,0BAA0B,SAACA,GAC9CA,EAAIuP,MAAMC,OAAO,yBAA2BtD,GAE5ClM,EAAIyP,eAAiB,IAAIL,GAEzBpP,EAAI0P,cAAa,IACV,0BACJC,iBAAgB,kBACf,SAAKlQ,UAAU,cACb,EAAC,IAAK,CAACC,KAAK,UAAUgI,aAAa,GAChC1H,EAAI4P,WAAWC,MAAM,yDAEpB,IAEPF,gBAAgB,CACfG,QAAS,oCACTlO,MAAO5B,EAAI4P,WAAWC,MAAM,oDAC5BE,KAAM5W,EAAE6W,MACNnO,IACE7B,EAAI4P,WAAWC,MAAM,wDAAyD,CAC5EI,gBAAiB,+FACjBC,cAAe,iEACfC,YAAa,WAAWnQ,EAAIwF,KAAK4K,WAAU,YAC3CC,kBAAmB,uDAIzBC,SAAS,EACT5Q,KAAM,UACNe,SAAUT,EAAIwF,KAAK,6CAEpB+K,aAAanF,KAEhBtI,EAAAA,EAAAA,QAAOyI,IAAAA,UAAyB,YAAY,SAAU7J,GAAO,WACjC,2BAAtB5H,KAAKiI,UAAUR,IAAmCiP,IAAmB1W,KAAKiI,UAAUR,KAIxFG,EAAM5F,IACJ,SACA,EAAC,IAAM,CACL2D,UAAU,wBACVqB,KAAK,eACLF,QAAS,WACPZ,EAAIyQ,MAAMC,KAAKhL,KAEf1F,EACG2Q,QAAqC,CACpC/K,IAAQ5F,EAAI4Q,MAAMC,UAAU,UAAS,+BAA+B,EAAK9O,UAAUR,GACnFoE,OAAQ,WAETG,MAAK,SAAC9B,GACO,MAARA,GAAAA,EAAU+B,WACZ1B,KAEArE,EAAI8Q,OAAOJ,KAAK,CAAEhR,KAAM,WAAaM,EAAI4P,WAAWC,MAAM,8DAC1DhL,OAAOoB,SAAWjG,EAAI4Q,MAAMC,UAAU,YAE1C,IAAE,SACO,WACP7Q,EAAIyQ,MAAMM,OACZ,GACJ,GAAE,UAKR,GACF,G","sources":["webpack://@flarum/package-manager/../../../node_modules/dayjs/plugin/duration.js","webpack://@flarum/package-manager/webpack/bootstrap","webpack://@flarum/package-manager/webpack/runtime/compat get default export","webpack://@flarum/package-manager/webpack/runtime/define property getters","webpack://@flarum/package-manager/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/package-manager/webpack/runtime/make namespace object","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/extend']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/app']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/components/ExtensionPage']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Button']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/components/LoadingModal']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/utils/isExtensionEnabled']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Alert']\"","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/Component']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/LoadingIndicator']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Tooltip']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@flarum/package-manager/./src/admin/components/Label.tsx","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@flarum/package-manager/./src/admin/components/TaskOutputModal.tsx","webpack://@flarum/package-manager/./src/admin/components/Pagination.tsx","webpack://@flarum/package-manager/./src/admin/components/QueueSection.tsx","webpack://@flarum/package-manager/./src/admin/utils/humanDuration.ts","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@flarum/package-manager/./src/admin/utils/errorHandler.ts","webpack://@flarum/package-manager/./src/admin/utils/jumpToQueue.ts","webpack://@flarum/package-manager/./src/admin/components/Installer.tsx","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@flarum/package-manager/./src/admin/components/WhyNotModal.tsx","webpack://@flarum/package-manager/./src/admin/components/ExtensionItem.tsx","webpack://@flarum/package-manager/./src/admin/components/MajorUpdater.tsx","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@flarum/package-manager/../../../framework/core/js/src/common/utils/isObject.ts","webpack://@flarum/package-manager/../../../framework/core/js/src/common/utils/ItemList.ts","webpack://@flarum/package-manager/./src/admin/components/Updater.tsx","webpack://@flarum/package-manager/./src/admin/components/ControlSection.tsx","webpack://@flarum/package-manager/./src/admin/components/SettingsPage.tsx","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/Model']\"","webpack://@flarum/package-manager/../../../node_modules/pretty-bytes/index.js","webpack://@flarum/package-manager/./src/admin/models/Task.ts","webpack://@flarum/package-manager/./src/admin/states/QueueState.ts","webpack://@flarum/package-manager/./src/admin/states/ControlSectionState.ts","webpack://@flarum/package-manager/./src/admin/states/PackageManagerState.ts","webpack://@flarum/package-manager/./src/admin/index.tsx"],"sourcesContent":["!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\\[([^\\]]+)]|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,u=31536e6,h=2592e6,a=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,d={years:u,months:h,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof p},f=function(t,s,n){return new p(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},g=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},p=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*d[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):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 y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*d[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/h),t%=h,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=g(this.$d.years,\"Y\"),s=g(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=g(n,\"D\"),e=g(this.$d.hours,\"H\"),r=g(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3);var u=g(o,\"S\"),h=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",d=(h?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===d||\"-P\"===d?\"P0D\":d},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/d[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/d[n]):this.$d[n],0===s?0:s},y.add=function(t,s,n){var i;return i=s?t*d[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}();return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)&&(t=t.asMilliseconds()),r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)&&(t=t.asMilliseconds()),o.bind(this)(t,s)}}}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/ExtensionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/LoadingModal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/utils/isExtensionEnabled'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Alert'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LoadingIndicator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Tooltip'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","import type Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport classList from 'flarum/common/utils/classList';\n\ninterface LabelAttrs extends ComponentAttrs {\n type: 'success' | 'error' | 'neutral' | 'warning';\n}\n\nexport default class Label extends Component {\n view(vnode: Mithril.Vnode) {\n const { className, type, ...attrs } = this.attrs;\n\n return (\n \n {vnode.children}\n \n );\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","import app from 'flarum/admin/app';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport Task from '../models/Task';\n\ninterface TaskOutputModalAttrs extends IInternalModalAttrs {\n task: Task;\n}\n\nexport default class TaskOutputModal extends Modal {\n className() {\n return 'Modal--large QuickModal';\n }\n\n title() {\n return app.translator.trans(`flarum-package-manager.admin.sections.queue.operations.${this.attrs.task.operation()}`);\n }\n\n content() {\n return (\n
\n
\n
\n \n
\n $ composer {this.attrs.task.command()}\n
\n
\n
\n \n
\n \n
{this.attrs.task.output()}
\n
\n
\n
\n
\n
\n );\n }\n}\n","import app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport QueueState from '../states/QueueState';\n\ninterface PaginationAttrs extends ComponentAttrs {\n list: QueueState;\n}\n\n/**\n * @todo make it abstract in core for reusability.\n */\nexport default class Pagination extends Component {\n view() {\n return (\n \n );\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Button from 'flarum/common/components/Button';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport { Extension } from 'flarum/admin/AdminApplication';\nimport icon from 'flarum/common/helpers/icon';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport extractText from 'flarum/common/utils/extractText';\n\nimport Label from './Label';\nimport TaskOutputModal from './TaskOutputModal';\nimport humanDuration from '../utils/humanDuration';\nimport Task, { TaskOperations } from '../models/Task';\nimport Pagination from './Pagination';\n\ninterface QueueTableColumn extends ComponentAttrs {\n label: string;\n content: (task: Task) => Mithril.Children;\n}\n\nexport default class QueueSection extends Component<{}> {\n oninit(vnode: Mithril.Vnode<{}, this>) {\n super.oninit(vnode);\n\n app.packageManager.queue.load();\n }\n\n view() {\n return (\n
\n
\n
\n

{app.translator.trans('flarum-package-manager.admin.sections.queue.title')}

\n app.packageManager.queue.load()}\n aria-label={app.translator.trans('flarum-package-manager.admin.sections.queue.refresh')}\n />\n
\n
\n
{this.queueTable()}
\n
\n );\n }\n\n columns() {\n const items = new ItemList();\n\n items.add(\n 'operation',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.operation')),\n content: (task) => (\n
\n {this.operationIcon(task.operation())}\n \n {app.translator.trans(`flarum-package-manager.admin.sections.queue.operations.${task.operation()}`)}\n \n
\n ),\n },\n 80\n );\n\n items.add(\n 'package',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.package')),\n content: (task) => {\n const extension: Extension | null = app.data.extensions[task.package()?.replace(/(\\/flarum-|\\/flarum-ext-|\\/)/g, '-')];\n\n return extension ? (\n
\n
\n {extension.icon ? icon(extension.icon.name) : ''}\n
\n
\n {extension.extra['flarum-extension'].title}\n {task.package()}\n
\n
\n ) : (\n task.package()\n );\n },\n },\n 75\n );\n\n items.add(\n 'status',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.status')),\n content: (task) => (\n \n {app.translator.trans(`flarum-package-manager.admin.sections.queue.statuses.${task.status()}`)}\n \n ),\n },\n 70\n );\n\n items.add(\n 'elapsedTime',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.elapsed_time')),\n content: (task) =>\n !task.startedAt() ? (\n app.translator.trans('flarum-package-manager.admin.sections.queue.task_just_started')\n ) : (\n \n {humanDuration(task.startedAt(), task.finishedAt())}\n \n ),\n },\n 65\n );\n\n items.add(\n 'memoryUsed',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.peak_memory_used')),\n content: (task) => {task.peakMemoryUsed()},\n },\n 60\n );\n\n items.add(\n 'details',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.details')),\n content: (task) => (\n app.modal.show(TaskOutputModal, { task })}\n />\n ),\n className: 'Table-controls',\n },\n 55\n );\n\n return items;\n }\n\n queueTable() {\n const tasks = app.packageManager.queue.getItems();\n\n if (!tasks) {\n return ;\n }\n\n if (tasks && !tasks.length) {\n return

{app.translator.trans('flarum-package-manager.admin.sections.queue.none')}

;\n }\n\n const columns = this.columns();\n\n return (\n <>\n \n \n \n {columns.toArray().map((item, index) => (\n \n ))}\n \n \n \n {tasks.map((task, index) => (\n \n {columns.toArray().map((item, index) => {\n const { label, content, ...attrs } = item;\n\n return (\n \n );\n })}\n \n ))}\n \n
{item.label}
\n {content(task)}\n
\n\n \n \n );\n }\n\n operationIcon(operation: TaskOperations): Mithril.Children {\n return icon(\n {\n update_check: 'fas fa-sync-alt',\n update_major: 'fas fa-play',\n update_minor: 'fas fa-play',\n update_global: 'fas fa-play',\n extension_install: 'fas fa-download',\n extension_remove: 'fas fa-times',\n extension_update: 'fas fa-arrow-alt-circle-up',\n why_not: 'fas fa-exclamation-circle',\n }[operation]\n );\n }\n}\n","import duration from 'dayjs/plugin/duration';\n\nexport default function humanDuration(start: Date, end: Date) {\n dayjs.extend(duration);\n\n const durationTime = dayjs(end).diff(start);\n\n return dayjs.duration(durationTime).humanize();\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","import app from 'flarum/admin/app';\n\nexport default function (e: any) {\n const error = e.response.errors[0];\n\n if (!['composer_command_failure', 'extension_already_installed', 'extension_not_installed'].includes(error.code)) {\n throw e;\n }\n\n switch (error.code) {\n case 'composer_command_failure':\n if (error.guessed_cause) {\n app.alerts.show({ type: 'error' }, app.translator.trans(`flarum-package-manager.admin.exceptions.guessed_cause.${error.guessed_cause}`));\n app.modal.close();\n } else {\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.composer_command_failure'));\n }\n break;\n\n case 'extension_already_installed':\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_already_installed'));\n app.modal.close();\n break;\n\n case 'extension_not_installed':\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_not_installed'));\n app.modal.close();\n }\n}\n","import app from 'flarum/admin/app';\n\n// @ts-ignore\nwindow.jumpToQueue = jumpToQueue;\n\nexport default function jumpToQueue(): void {\n app.modal.close();\n m.route.set(app.route('extension', { id: 'flarum-package-manager' }));\n app.packageManager.queue.load();\n setTimeout(() => {\n document.getElementById('PackageManager-queueSection')?.scrollIntoView({ block: 'nearest' });\n }, 200);\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport Stream from 'flarum/common/utils/Stream';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\n\nimport errorHandler from '../utils/errorHandler';\nimport jumpToQueue from '../utils/jumpToQueue';\nimport { AsyncBackendResponse } from '../shims';\n\nexport interface InstallerAttrs extends ComponentAttrs {}\n\nexport type InstallerLoadingTypes = 'extension-install' | null;\n\nexport default class Installer extends Component {\n packageName!: Stream;\n\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n\n this.packageName = Stream('');\n }\n\n view(): Mithril.Children {\n return (\n
\n \n

\n {app.translator.trans('flarum-package-manager.admin.extensions.install_help', {\n extiverse: extiverse.com,\n })}\n

\n
\n \n \n {app.translator.trans('flarum-package-manager.admin.extensions.proceed')}\n \n
\n
\n );\n }\n\n data(): any {\n return {\n package: this.packageName(),\n };\n }\n\n onsubmit(): void {\n app.packageManager.control.setLoading('extension-install');\n app.modal.show(LoadingModal);\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions`,\n body: {\n data: this.data(),\n },\n })\n .then((response) => {\n if (response.processing) {\n jumpToQueue();\n } else {\n const extensionId = response.id;\n app.alerts.show(\n { type: 'success' },\n app.translator.trans('flarum-package-manager.admin.extensions.successful_install', { extension: extensionId })\n );\n window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`;\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n app.packageManager.control.setLoading(null);\n app.modal.close();\n m.redraw();\n });\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\n\nimport errorHandler from '../utils/errorHandler';\n\ntype WhyNotResponse = {\n data: {\n reason: string;\n };\n};\n\nexport interface WhyNotModalAttrs extends IInternalModalAttrs {\n package: string;\n}\n\nexport default class WhyNotModal extends Modal {\n loading: boolean = true;\n whyNot: string | null = null;\n\n className() {\n return 'Modal--large WhyNotModal';\n }\n\n title() {\n return app.translator.trans('flarum-package-manager.admin.why_not_modal.title');\n }\n\n oncreate(vnode: Mithril.VnodeDOM) {\n super.oncreate(vnode);\n\n this.requestWhyNot();\n }\n\n content() {\n return
{this.loading ? :
{this.whyNot}
}
;\n }\n\n requestWhyNot(): void {\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/why-not`,\n body: {\n data: {\n package: this.attrs.package,\n },\n },\n })\n .then((response) => {\n this.loading = false;\n this.whyNot = response.data.reason;\n m.redraw();\n })\n .catch(errorHandler);\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport classList from 'flarum/common/utils/classList';\nimport icon from 'flarum/common/helpers/icon';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport Button from 'flarum/common/components/Button';\nimport { Extension } from 'flarum/admin/AdminApplication';\n\nimport { UpdatedPackage } from '../states/ControlSectionState';\nimport WhyNotModal from './WhyNotModal';\nimport Label from './Label';\n\nexport interface ExtensionItemAttrs extends ComponentAttrs {\n extension: Extension;\n updates: UpdatedPackage;\n onClickUpdate: CallableFunction;\n whyNotWarning?: boolean;\n isCore?: boolean;\n updatable?: boolean;\n isDanger?: boolean;\n}\n\nexport default class ExtensionItem extends Component {\n view(vnode: Mithril.Vnode): Mithril.Children {\n const { extension, updates, onClickUpdate, whyNotWarning, isCore, isDanger } = this.attrs;\n const latestVersion = updates['latest-minor'] ?? (updates['latest-major'] && !isCore ? updates['latest-major'] : null);\n\n return (\n \n
\n {extension.icon ? icon(extension.icon.name) : ''}\n
\n
\n
{extension.extra['flarum-extension'].title}
\n
\n {this.version(updates['version'])}\n {latestVersion ? (\n \n ) : null}\n
\n
\n
\n {onClickUpdate ? (\n \n \n \n ) : null}\n {whyNotWarning ? (\n \n app.modal.show(WhyNotModal, { package: extension.name })}\n aria-label={app.translator.trans('flarum-package-manager.admin.extensions.check_why_it_failed_updating')}\n />\n \n ) : null}\n
\n \n );\n }\n\n version(v: string): string {\n return 'v' + v.replace('v', '');\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport Alert from 'flarum/common/components/Alert';\nimport RequestError from 'flarum/common/utils/RequestError';\n\nimport { UpdatedPackage, UpdateState } from '../states/ControlSectionState';\nimport errorHandler from '../utils/errorHandler';\nimport WhyNotModal from './WhyNotModal';\nimport ExtensionItem from './ExtensionItem';\nimport { AsyncBackendResponse } from '../shims';\nimport jumpToQueue from '../utils/jumpToQueue';\n\nexport interface MajorUpdaterAttrs extends ComponentAttrs {\n coreUpdate: UpdatedPackage;\n updateState: UpdateState;\n}\n\nexport type MajorUpdaterLoadingTypes = 'major-update' | 'major-update-dry-run';\n\nexport default class MajorUpdater extends Component {\n updateState!: UpdateState;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.updateState = this.attrs.updateState;\n }\n\n view(): Mithril.Children {\n // @todo move Form-group--danger class to core for reuse\n return (\n
\n \"flarum\n \n

{app.translator.trans('flarum-package-manager.admin.major_updater.description')}

\n
\n \n \n {app.translator.trans('flarum-package-manager.admin.major_updater.dry_run')}\n \n \n \n {app.translator.trans('flarum-package-manager.admin.major_updater.update')}\n \n
\n {this.updateState.incompatibleExtensions.length ? (\n
\n {this.updateState.incompatibleExtensions.map((extension: string) => (\n \n ))}\n
\n ) : null}\n {this.updateState.status === 'failure' ? (\n app.modal.show(WhyNotModal, { package: 'flarum/core' })}\n >\n {app.translator.trans('flarum-package-manager.admin.major_updater.failure.why')}\n ,\n ]}\n >\n

\n {app.translator.trans('flarum-package-manager.admin.major_updater.failure.desc')}\n

\n \n ) : null}\n
\n );\n }\n\n update(dryRun: boolean) {\n app.packageManager.control.setLoading(dryRun ? 'major-update-dry-run' : 'major-update');\n app.modal.show(LoadingModal);\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/major-update`,\n body: {\n data: { dryRun },\n },\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful'));\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .catch((e: RequestError) => {\n app.modal.close();\n this.updateState.status = 'failure';\n this.updateState.incompatibleExtensions = e.response?.errors?.pop()?.incompatible_extensions as string[];\n })\n .finally(() => {\n app.packageManager.control.setLoading(null);\n m.redraw();\n });\n }\n}\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","/**\n * Returns if the passed value is an object.\n *\n * In this context, \"object\" refers to **any non-primitive value**, including\n * arrays, function, maps, dates, and more.\n *\n * @example\n * isObject({}); // true\n * @example\n * isObject([]); // true\n * @example\n * isObject(function () {}); // true\n * @example\n * isObject(Object(1)); // true\n * @example\n * isObject(null); // false\n * @example\n * isObject(1); // false\n * @example\n * isObject(\"hello world\"); // false\n *\n * @see https://github.com/jashkenas/underscore/blob/943977e34e2279503528a71ddcc2dd5f96483945/underscore.js#L87-L91\n */\nexport default function isObject(obj: unknown): obj is object {\n const type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n","import isObject from './isObject';\n\nexport interface IItemObject {\n content: T;\n itemName: string;\n priority: number;\n}\n\nclass Item {\n content: T;\n priority: number;\n\n constructor(content: T, priority: number) {\n this.content = content;\n this.priority = priority;\n }\n}\n\n/**\n * The `ItemList` class collects items and then arranges them into an array\n * by priority.\n */\nexport default class ItemList {\n /**\n * The items in the list.\n */\n protected _items: Record> = {};\n\n // TODO: [Flarum 2.0] Remove `.items` getter.\n /**\n * A **read-only copy** of items in the list.\n *\n * We don't allow adding new items to the ItemList via setting new properties,\n * nor do we allow modifying existing items directly.\n *\n * @deprecated Use {@link ItemList.toObject} instead.\n */\n get items(): DeepReadonly>> {\n return new Proxy(this._items, {\n set() {\n console.warn('Modifying `ItemList.items` is not allowed.');\n return false;\n },\n });\n }\n\n /**\n * Check whether the list is empty.\n */\n isEmpty(): boolean {\n return Object.keys(this._items).length === 0;\n }\n\n /**\n * Check whether an item is present in the list.\n */\n has(key: string): boolean {\n return Object.keys(this._items).includes(key);\n }\n\n /**\n * Get the content of an item.\n */\n get(key: string): T {\n return this._items[key].content;\n }\n\n /**\n * Get the priority of an item.\n */\n getPriority(key: string): number {\n return this._items[key].priority;\n }\n\n /**\n * Add an item to the list.\n *\n * @param key A unique key for the item.\n * @param content The item's content.\n * @param priority The priority of the item. Items with a higher priority\n * will be positioned before items with a lower priority.\n */\n add(key: string, content: T, priority: number = 0): this {\n this._items[key] = new Item(content, priority);\n\n return this;\n }\n\n // TODO: [Flarum 2.0] Remove deprecated `.replace()` method.\n /**\n * Replace an item and/or priority in the list, only if it is already present.\n *\n * If `content` or `priority` are `null`, these values will not be replaced.\n *\n * If the provided `key` is not present, nothing will happen.\n *\n * @deprecated Please use the {@link ItemList.setContent} and {@link ItemList.setPriority}\n * methods to replace items and their priorities. This method will be removed in Flarum 2.0.\n *\n * @param key The key of the item in the list\n * @param content The item's new content\n * @param priority The item's new priority\n *\n * @example Replace priority and not content.\n * items.replace('myItem', null, 10);\n *\n * @example Replace content and not priority.\n * items.replace('myItem',

My new value.

);\n *\n * @example Replace content and priority.\n * items.replace('myItem',

My new value.

, 10);\n */\n replace(key: string, content: T | null = null, priority: number | null = null): this {\n if (!this.has(key)) return this;\n\n if (content !== null) {\n this._items[key].content = content;\n }\n\n if (priority !== null) {\n this._items[key].priority = priority;\n }\n\n return this;\n }\n\n /**\n * Replaces an item's content, if the provided item key exists.\n *\n * If the provided `key` is not present, an error will be thrown.\n *\n * @param key The key of the item in the list\n * @param content The item's new content\n *\n * @example Replace item content.\n * items.setContent('myItem',

My new value.

);\n *\n * @example Replace item content and priority.\n * items\n * .setContent('myItem',

My new value.

)\n * .setPriority('myItem', 10);\n *\n * @throws If the provided `key` is not present in the ItemList.\n */\n setContent(key: string, content: T): this {\n if (!this.has(key)) {\n throw new Error(`[ItemList] Cannot set content of Item. Key \\`${key}\\` is not present.`);\n }\n\n // Saves on bundle size to call the deprecated method internally\n return this.replace(key, content);\n }\n\n /**\n * Replaces an item's priority, if the provided item key exists.\n *\n * If the provided `key` is not present, an error will be thrown.\n *\n * @param key The key of the item in the list\n * @param priority The item's new priority\n *\n * @example Replace item priority.\n * items.setPriority('myItem', 10);\n *\n * @example Replace item priority and content.\n * items\n * .setPriority('myItem', 10)\n * .setContent('myItem',

My new value.

);\n *\n * @throws If the provided `key` is not present in the ItemList.\n */\n setPriority(key: string, priority: number): this {\n if (!this.has(key)) {\n throw new Error(`[ItemList] Cannot set priority of Item. Key \\`${key}\\` is not present.`);\n }\n\n this._items[key].priority = priority;\n\n return this;\n }\n\n /**\n * Remove an item from the list.\n *\n * If the provided `key` is not present, nothing will happen.\n */\n remove(key: string): this {\n delete this._items[key];\n\n return this;\n }\n\n /**\n * Merge another list's items into this one.\n *\n * The list passed to this function will overwrite items which already exist\n * with the same key.\n */\n merge(otherList: ItemList): ItemList {\n Object.keys(otherList._items).forEach((key) => {\n const val = otherList._items[key];\n\n if (val instanceof Item) {\n this._items[key] = val;\n }\n });\n\n return this;\n }\n\n /**\n * Convert the list into an array of item content arranged by priority.\n *\n * This **does not** preserve the original types of primitives and proxies\n * all content values to make `itemName` accessible on them.\n *\n * **NOTE:** If your ItemList holds primitive types (such as numbers, booleans\n * or strings), these will be converted to their object counterparts if you do\n * not provide `true` to this function.\n *\n * **NOTE:** Modifying any objects in the final array may also update the\n * content of the original ItemList.\n *\n * @param keepPrimitives Converts item content to objects and sets the\n * `itemName` property on them.\n *\n * @see https://github.com/flarum/core/issues/3030\n */\n toArray(keepPrimitives?: false): (T & { itemName: string })[];\n /**\n * Convert the list into an array of item content arranged by priority.\n *\n * Content values that are already objects will be proxied and have\n * `itemName` accessible on them. Primitive values will not have the\n * `itemName` property accessible.\n *\n * **NOTE:** Modifying any objects in the final array may also update the\n * content of the original ItemList.\n *\n * @param keepPrimitives Converts item content to objects and sets the\n * `itemName` property on them.\n */\n toArray(keepPrimitives: true): (T extends object ? T & Readonly<{ itemName: string }> : T)[];\n\n toArray(keepPrimitives: boolean = false): T[] | (T & Readonly<{ itemName: string }>)[] {\n const items: Item[] = Object.keys(this._items).map((key, i) => {\n const item = this._items[key];\n\n if (!keepPrimitives || isObject(item.content)) {\n // Convert content to object, then proxy it\n return {\n ...item,\n content: this.createItemContentProxy(isObject(item.content) ? item.content : Object(item.content), key),\n };\n } else {\n // ...otherwise just return a clone of the item.\n return { ...item };\n }\n });\n\n return items.sort((a, b) => b.priority - a.priority).map((item) => item.content);\n }\n\n /**\n * A read-only map of all keys to their respective items in no particular order.\n *\n * We don't allow adding new items to the ItemList via setting new properties,\n * nor do we allow modifying existing items directly. You should use the\n * {@link ItemList.add}, {@link ItemList.setContent} and\n * {@link ItemList.setPriority} methods instead.\n *\n * To match the old behaviour of the `ItemList.items` property, call\n * `Object.values(ItemList.toObject())`.\n *\n * @example\n * const items = new ItemList();\n * items.add('b', 'My cool value', 20);\n * items.add('a', 'My value', 10);\n * items.toObject();\n * // {\n * // a: { content: 'My value', priority: 10, itemName: 'a' },\n * // b: { content: 'My cool value', priority: 20, itemName: 'b' },\n * // }\n */\n toObject(): DeepReadonly>> {\n return Object.keys(this._items).reduce((map, key) => {\n const obj = {\n content: this.get(key),\n itemName: key,\n priority: this.getPriority(key),\n };\n\n map[key] = obj;\n\n return map;\n }, {} as Record>);\n }\n\n /**\n * Proxies an item's content, adding the `itemName` readonly property to it.\n *\n * @example\n * createItemContentProxy({ foo: 'bar' }, 'myItem');\n * // { foo: 'bar', itemName: 'myItem' }\n *\n * @param content The item's content (objects only)\n * @param key The item's key\n * @return Proxied content\n *\n * @internal\n */\n private createItemContentProxy(content: C, key: string): Readonly {\n return new Proxy(content, {\n get(target, property, receiver) {\n if (property === 'itemName') return key;\n\n return Reflect.get(target, property, receiver);\n },\n set(target, property, value, receiver) {\n if (key !== null && property === 'itemName') {\n throw new Error('`itemName` property is read-only');\n }\n\n return Reflect.set(target, property, value, receiver);\n },\n }) as C & { itemName: string };\n }\n}\n","import app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport MajorUpdater from './MajorUpdater';\nimport ExtensionItem from './ExtensionItem';\nimport { Extension } from 'flarum/admin/AdminApplication';\nimport Alert from 'flarum/common/components/Alert';\nimport ItemList from '@flarum/core/src/common/utils/ItemList';\n\nexport interface IUpdaterAttrs extends ComponentAttrs {}\n\nexport type UpdaterLoadingTypes = 'check' | 'minor-update' | 'global-update' | 'extension-update' | null;\n\nexport default class Updater extends Component {\n view() {\n const core = app.packageManager.control.coreUpdate;\n\n return [\n
\n \n

{app.translator.trans('flarum-package-manager.admin.updater.updater_help')}

\n {this.lastUpdateCheckView()}\n
{this.controlItems().toArray()}
\n {this.availableUpdatesView()}\n
,\n core && core.package['latest-major'] ? (\n \n ) : null,\n ];\n }\n\n lastUpdateCheckView() {\n return (\n (app.packageManager.control.lastUpdateCheck?.checkedAt && (\n

\n \n {app.translator.trans('flarum-package-manager.admin.updater.last_update_checked_at')}\n \n {humanTime(app.packageManager.control.lastUpdateCheck.checkedAt)}\n

\n )) ||\n null\n );\n }\n\n availableUpdatesView() {\n const state = app.packageManager.control;\n\n if (app.packageManager.control.isLoading()) {\n return (\n
\n \n
\n );\n }\n\n if (!(state.extensionUpdates.length || state.coreUpdate)) {\n return (\n
\n \n {app.translator.trans('flarum-package-manager.admin.updater.up_to_date')}\n \n
\n );\n }\n\n return (\n
\n
\n {state.coreUpdate ? (\n state.updateCoreMinor()}\n whyNotWarning={state.lastUpdateRun.limitedPackages().includes('flarum/core')}\n />\n ) : null}\n {state.extensionUpdates.map((extension: Extension) => (\n state.updateExtension(extension)}\n whyNotWarning={state.lastUpdateRun.limitedPackages().includes(extension.name)}\n />\n ))}\n
\n
\n );\n }\n\n controlItems() {\n const items = new ItemList();\n\n items.add(\n 'updateCheck',\n app.packageManager.control.checkForUpdates()}\n loading={app.packageManager.control.isLoading('check')}\n disabled={app.packageManager.control.isLoadingOtherThan('check')}\n >\n {app.translator.trans('flarum-package-manager.admin.updater.check_for_updates')}\n ,\n 100\n );\n\n items.add(\n 'globalUpdate',\n app.packageManager.control.updateGlobally()}\n loading={app.packageManager.control.isLoading('global-update')}\n disabled={app.packageManager.control.isLoadingOtherThan('global-update')}\n >\n {app.translator.trans('flarum-package-manager.admin.updater.run_global_update')}\n \n );\n\n return items;\n }\n}\n","import app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Alert from 'flarum/common/components/Alert';\nimport { ComponentAttrs } from 'flarum/common/Component';\n\nimport Installer from './Installer';\nimport Updater from './Updater';\nimport Mithril from 'mithril';\n\nexport default class ControlSection extends Component {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n }\n\n view() {\n return (\n
\n
\n
\n

{app.translator.trans('flarum-package-manager.admin.sections.control.title')}

\n
\n
\n
\n {app.data['flarum-package-manager.writable_dirs'] ? (\n <>\n \n \n \n ) : (\n
\n \n {app.translator.trans('flarum-package-manager.admin.file_permissions')}\n \n
\n )}\n
\n
\n );\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport ExtensionPage, { ExtensionPageAttrs } from 'flarum/admin/components/ExtensionPage';\nimport ItemList from 'flarum/common/utils/ItemList';\n\nimport QueueSection from './QueueSection';\nimport ControlSection from './ControlSection';\n\nexport default class SettingsPage extends ExtensionPage {\n sections(vnode: Mithril.VnodeDOM): ItemList {\n const items = super.sections(vnode);\n\n items.setPriority('content', 10);\n\n items.add('control', , 8);\n\n if (parseInt(app.data.settings['flarum-package-manager.queue_jobs'])) {\n items.add('queue', , 5);\n }\n\n items.setPriority('permissions', 0);\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","const BYTE_UNITS = [\n\t'B',\n\t'kB',\n\t'MB',\n\t'GB',\n\t'TB',\n\t'PB',\n\t'EB',\n\t'ZB',\n\t'YB',\n];\n\nconst BIBYTE_UNITS = [\n\t'B',\n\t'kiB',\n\t'MiB',\n\t'GiB',\n\t'TiB',\n\t'PiB',\n\t'EiB',\n\t'ZiB',\n\t'YiB',\n];\n\nconst BIT_UNITS = [\n\t'b',\n\t'kbit',\n\t'Mbit',\n\t'Gbit',\n\t'Tbit',\n\t'Pbit',\n\t'Ebit',\n\t'Zbit',\n\t'Ybit',\n];\n\nconst BIBIT_UNITS = [\n\t'b',\n\t'kibit',\n\t'Mibit',\n\t'Gibit',\n\t'Tibit',\n\t'Pibit',\n\t'Eibit',\n\t'Zibit',\n\t'Yibit',\n];\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number, locale, options) => {\n\tlet result = number;\n\tif (typeof locale === 'string' || Array.isArray(locale)) {\n\t\tresult = number.toLocaleString(locale, options);\n\t} else if (locale === true || options !== undefined) {\n\t\tresult = number.toLocaleString(undefined, options);\n\t}\n\n\treturn result;\n};\n\nexport default function prettyBytes(number, options) {\n\tif (!Number.isFinite(number)) {\n\t\tthrow new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n\t}\n\n\toptions = {\n\t\tbits: false,\n\t\tbinary: false,\n\t\t...options,\n\t};\n\n\tconst UNITS = options.bits\n\t\t? (options.binary ? BIBIT_UNITS : BIT_UNITS)\n\t\t: (options.binary ? BIBYTE_UNITS : BYTE_UNITS);\n\n\tif (options.signed && number === 0) {\n\t\treturn ` 0 ${UNITS[0]}`;\n\t}\n\n\tconst isNegative = number < 0;\n\tconst prefix = isNegative ? '-' : (options.signed ? '+' : '');\n\n\tif (isNegative) {\n\t\tnumber = -number;\n\t}\n\n\tlet localeOptions;\n\n\tif (options.minimumFractionDigits !== undefined) {\n\t\tlocaleOptions = {minimumFractionDigits: options.minimumFractionDigits};\n\t}\n\n\tif (options.maximumFractionDigits !== undefined) {\n\t\tlocaleOptions = {maximumFractionDigits: options.maximumFractionDigits, ...localeOptions};\n\t}\n\n\tif (number < 1) {\n\t\tconst numberString = toLocaleString(number, options.locale, localeOptions);\n\t\treturn prefix + numberString + ' ' + UNITS[0];\n\t}\n\n\tconst exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);\n\tnumber /= (options.binary ? 1024 : 1000) ** exponent;\n\n\tif (!localeOptions) {\n\t\tnumber = number.toPrecision(3);\n\t}\n\n\tconst numberString = toLocaleString(Number(number), options.locale, localeOptions);\n\n\tconst unit = UNITS[exponent];\n\n\treturn prefix + numberString + ' ' + unit;\n}\n","import Model from 'flarum/common/Model';\nimport prettyBytes from 'pretty-bytes';\n\nexport type TaskOperations =\n | 'extension_install'\n | 'extension_remove'\n | 'extension_update'\n | 'update_global'\n | 'update_minor'\n | 'update_major'\n | 'update_check'\n | 'why_not';\n\nexport default class Task extends Model {\n status() {\n return Model.attribute<'pending' | 'running' | 'failure' | 'success'>('status').call(this);\n }\n\n operation() {\n return Model.attribute('operation').call(this);\n }\n\n command() {\n return Model.attribute('command').call(this);\n }\n\n package() {\n return Model.attribute('package').call(this);\n }\n\n output() {\n return Model.attribute('output').call(this);\n }\n\n createdAt() {\n return Model.attribute('createdAt', Model.transformDate).call(this);\n }\n\n startedAt() {\n return Model.attribute('startedAt', Model.transformDate).call(this);\n }\n\n finishedAt() {\n return Model.attribute('finishedAt', Model.transformDate).call(this);\n }\n\n peakMemoryUsed() {\n return prettyBytes(Model.attribute('peakMemoryUsed').call(this) * 1024);\n }\n}\n","import app from 'flarum/admin/app';\nimport Task from '../models/Task';\nimport { ApiQueryParamsPlural } from 'flarum/common/Store';\n\nexport default class QueueState {\n private tasks: Task[] | null = null;\n private limit = 20;\n private offset = 0;\n private total = 0;\n\n load(params?: ApiQueryParamsPlural) {\n this.tasks = null;\n params = {\n page: {\n limit: this.limit,\n offset: this.offset,\n ...params?.page,\n },\n ...params,\n };\n\n return app.store.find('package-manager-tasks', params || {}).then((data) => {\n this.tasks = data;\n this.total = data.payload.meta?.total;\n\n m.redraw();\n\n return data;\n });\n }\n\n getItems() {\n return this.tasks;\n }\n\n getTotalPages(): number {\n return Math.ceil(this.total / this.limit);\n }\n\n pageNumber(): number {\n return Math.ceil(this.offset / this.limit);\n }\n\n hasPrev(): boolean {\n return this.pageNumber() !== 0;\n }\n\n hasNext(): boolean {\n return this.offset + this.limit < this.total;\n }\n\n prev(): void {\n if (this.hasPrev()) {\n this.offset -= this.limit;\n this.load();\n }\n }\n\n next(): void {\n if (this.hasNext()) {\n this.offset += this.limit;\n this.load();\n }\n }\n}\n","import app from 'flarum/admin/app';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport { UpdaterLoadingTypes } from '../components/Updater';\nimport { InstallerLoadingTypes } from '../components/Installer';\nimport { MajorUpdaterLoadingTypes } from '../components/MajorUpdater';\nimport { AsyncBackendResponse } from '../shims';\nimport errorHandler from '../utils/errorHandler';\nimport jumpToQueue from '../utils/jumpToQueue';\nimport { Extension } from 'flarum/admin/AdminApplication';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport type UpdatedPackage = {\n name: string;\n version: string;\n latest: string;\n 'latest-minor': string | null;\n 'latest-major': string | null;\n 'latest-status': string;\n description: string;\n};\n\nexport type ComposerUpdates = {\n installed: UpdatedPackage[];\n};\n\nexport type LastUpdateCheck = {\n checkedAt: Date | null;\n updates: ComposerUpdates;\n};\n\ntype UpdateType = 'major' | 'minor' | 'global';\ntype UpdateStatus = 'success' | 'failure' | null;\nexport type UpdateState = {\n ranAt: Date | null;\n status: UpdateStatus;\n limitedPackages: string[];\n incompatibleExtensions: string[];\n};\n\nexport type LastUpdateRun = {\n [key in UpdateType]: UpdateState;\n} & {\n limitedPackages: () => string[];\n};\n\nexport type LoadingTypes = UpdaterLoadingTypes | InstallerLoadingTypes | MajorUpdaterLoadingTypes;\n\nexport type CoreUpdate = {\n package: UpdatedPackage;\n extension: Extension;\n};\n\nexport default class ControlSectionState {\n loading: LoadingTypes = null;\n\n public packageUpdates: Record = {};\n public lastUpdateCheck!: LastUpdateCheck;\n public extensionUpdates!: Extension[];\n public coreUpdate: CoreUpdate | null = null;\n get lastUpdateRun(): LastUpdateRun {\n const lastUpdateRun = JSON.parse(app.data.settings['flarum-package-manager.last_update_run']) as LastUpdateRun;\n\n lastUpdateRun.limitedPackages = () => [\n ...lastUpdateRun.major.limitedPackages,\n ...lastUpdateRun.minor.limitedPackages,\n ...lastUpdateRun.global.limitedPackages,\n ];\n\n return lastUpdateRun;\n }\n\n constructor() {\n this.lastUpdateCheck = JSON.parse(app.data.settings['flarum-package-manager.last_update_check']) as LastUpdateCheck;\n this.extensionUpdates = this.formatExtensionUpdates(this.lastUpdateCheck);\n this.coreUpdate = this.formatCoreUpdate(this.lastUpdateCheck);\n }\n\n isLoading(name: LoadingTypes = null): boolean {\n return (name && this.loading === name) || (!name && this.loading !== null);\n }\n\n isLoadingOtherThan(name: LoadingTypes): boolean {\n return this.loading !== null && this.loading !== name;\n }\n\n setLoading(name: LoadingTypes): void {\n this.loading = name;\n }\n\n checkForUpdates() {\n this.setLoading('check');\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/check-for-updates`,\n })\n .then((response) => {\n if ((response as AsyncBackendResponse).processing) {\n jumpToQueue();\n } else {\n this.lastUpdateCheck = response as LastUpdateCheck;\n this.extensionUpdates = this.formatExtensionUpdates(response as LastUpdateCheck);\n this.coreUpdate = this.formatCoreUpdate(response as LastUpdateCheck);\n m.redraw();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n this.setLoading(null);\n m.redraw();\n });\n }\n\n updateCoreMinor() {\n if (confirm(extractText(app.translator.trans('flarum-package-manager.admin.minor_update_confirmation.content')))) {\n app.modal.show(LoadingModal);\n this.setLoading('minor-update');\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/minor-update`,\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful'));\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n this.setLoading(null);\n app.modal.close();\n m.redraw();\n });\n }\n }\n\n updateExtension(extension: Extension) {\n app.modal.show(LoadingModal);\n this.setLoading('extension-update');\n\n app\n .request({\n method: 'PATCH',\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${extension.id}`,\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show(\n { type: 'success' },\n app.translator.trans('flarum-package-manager.admin.extensions.successful_update', {\n extension: extension.extra['flarum-extension'].title,\n })\n );\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n this.setLoading(null);\n app.modal.close();\n m.redraw();\n });\n }\n\n updateGlobally() {\n app.modal.show(LoadingModal);\n this.setLoading('global-update');\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/global-update`,\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.updater.global_update_successful'));\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n this.setLoading(null);\n app.modal.close();\n m.redraw();\n });\n }\n\n formatExtensionUpdates(lastUpdateCheck: LastUpdateCheck): Extension[] {\n this.packageUpdates = {};\n\n lastUpdateCheck?.updates?.installed?.filter((composerPackage: UpdatedPackage) => {\n const id = composerPackage.name.replace('/', '-').replace(/(flarum-ext-)|(flarum-)/, '');\n\n const extension = app.data.extensions[id];\n const safeToUpdate = ['semver-safe-update', 'update-possible'].includes(composerPackage['latest-status']);\n\n if (extension && safeToUpdate) {\n this.packageUpdates[extension.id] = composerPackage;\n }\n\n return extension && safeToUpdate;\n });\n\n return (Object.values(app.data.extensions) as Extension[]).filter((extension: Extension) => this.packageUpdates[extension.id]);\n }\n\n formatCoreUpdate(lastUpdateCheck: LastUpdateCheck): CoreUpdate | null {\n const core = lastUpdateCheck?.updates?.installed?.filter((composerPackage: UpdatedPackage) => composerPackage.name === 'flarum/core').pop();\n\n if (!core) return null;\n\n return {\n package: core,\n extension: {\n id: 'flarum-core',\n name: 'flarum/core',\n version: app.data.settings.version,\n icon: {\n // @ts-ignore\n backgroundImage: `url(${app.forum.attribute('baseUrl')}/assets/extensions/flarum-package-manager/flarum.svg`,\n },\n extra: {\n 'flarum-extension': {\n title: extractText(app.translator.trans('flarum-package-manager.admin.updater.flarum')),\n },\n },\n },\n };\n }\n}\n","import QueueState from './QueueState';\nimport ControlSectionState from './ControlSectionState';\n\nexport default class PackageManagerState {\n public queue: QueueState = new QueueState();\n public control: ControlSectionState = new ControlSectionState();\n}\n","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/admin/app';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\nimport Button from 'flarum/common/components/Button';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';\nimport Alert from 'flarum/common/components/Alert';\n\nimport SettingsPage from './components/SettingsPage';\nimport Task from './models/Task';\nimport jumpToQueue from './utils/jumpToQueue';\nimport extractText from 'flarum/common/utils/extractText';\nimport { AsyncBackendResponse } from './shims';\nimport PackageManagerState from './states/PackageManagerState';\n\napp.initializers.add('flarum-package-manager', (app) => {\n app.store.models['package-manager-tasks'] = Task;\n\n app.packageManager = new PackageManagerState();\n\n app.extensionData\n .for('flarum-package-manager')\n .registerSetting(() => (\n
\n \n {app.translator.trans('flarum-package-manager.admin.settings.access_warning')}\n \n
\n ))\n .registerSetting({\n setting: 'flarum-package-manager.queue_jobs',\n label: app.translator.trans('flarum-package-manager.admin.settings.queue_jobs'),\n help: m.trust(\n extractText(\n app.translator.trans('flarum-package-manager.admin.settings.queue_jobs_help', {\n basic_impl_link: 'https://discuss.flarum.org/d/28151-database-queue-the-simplest-queue-even-for-shared-hosting',\n adv_impl_link: 'https://discuss.flarum.org/d/21873-redis-sessions-cache-queues',\n php_version: `${app.data.phpVersion}`,\n folder_perms_link: 'https://docs.flarum.org/install#folder-ownership',\n })\n )\n ),\n default: false,\n type: 'boolean',\n disabled: app.data['flarum-package-manager.using_sync_queue'],\n })\n .registerPage(SettingsPage);\n\n extend(ExtensionPage.prototype, 'topItems', function (items) {\n if (this.extension.id === 'flarum-package-manager' || isExtensionEnabled(this.extension.id)) {\n return;\n }\n\n items.add(\n 'remove',\n {\n app.modal.show(LoadingModal);\n\n app\n .request({\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${this.extension.id}`,\n method: 'DELETE',\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.extensions.successful_remove'));\n window.location = app.forum.attribute('adminUrl');\n }\n })\n .finally(() => {\n app.modal.close();\n });\n }}\n >\n Remove\n \n );\n });\n});\n"],"names":["module","exports","t","s","n","i","e","r","o","u","h","a","d","years","months","days","hours","minutes","seconds","milliseconds","weeks","c","p","f","$l","m","l","$","Math","ceil","floor","y","abs","g","negative","format","this","$d","$ms","parseFromMilliseconds","Object","keys","forEach","calMilliseconds","match","slice","map","Number","prototype","reduce","toISOString","toJSON","Y","YY","YYYY","M","MM","D","DD","H","HH","mm","ss","SSS","replace","String","as","get","add","subtract","locale","clone","humanize","fromNow","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","$utils","duration","isDuration","bind","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","getter","__esModule","definition","key","defineProperty","enumerable","obj","prop","hasOwnProperty","Symbol","toStringTag","value","flarum","core","compat","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","constructor","_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","length","indexOf","Label","view","vnode","attrs","className","type","classList","children","Component","TaskOutputModal","title","app","task","operation","content","command","output","Modal","Pagination","class","disabled","list","hasPrev","onclick","prev","icon","current","pageNumber","total","getTotalPages","hasNext","next","QueueSection","oninit","id","queueTable","columns","items","ItemList","label","extractText","operationIcon","extension","style","name","extra","running","failure","pending","success","status","startedAt","text","dayjs","finishedAt","start","end","extend","durationTime","diff","humanDuration","peakMemoryUsed","tasks","toArray","item","index","update_check","update_major","update_minor","update_global","extension_install","extension_remove","extension_update","why_not","error","response","errors","includes","code","guessed_cause","jumpToQueue","route","set","setTimeout","document","getElementById","scrollIntoView","block","window","Installer","packageName","Stream","htmlFor","extiverse","href","placeholder","bidi","onsubmit","loading","data","package","LoadingModal","method","url","body","then","processing","extensionId","location","reload","errorHandler","redraw","WhyNotModal","whyNot","oncreate","requestWhyNot","reason","ExtensionItem","updates","onClickUpdate","whyNotWarning","isCore","isDanger","latestVersion","version","v","MajorUpdater","updateState","alt","src","coreUpdate","update","incompatibleExtensions","dismissible","controls","dryRun","pop","incompatible_extensions","_extends","assign","arguments","apply","_defineProperties","props","descriptor","configurable","writable","_createClass","Constructor","protoProps","staticProps","isObject","Item","priority","_items","isEmpty","has","getPriority","setContent","Error","setPriority","remove","merge","otherList","val","keepPrimitives","createItemContentProxy","sort","b","toObject","itemName","Proxy","property","receiver","Reflect","console","warn","Updater","lastUpdateCheckView","controlItems","availableUpdatesView","checkedAt","humanTime","state","extensionUpdates","updateCoreMinor","lastUpdateRun","limitedPackages","packageUpdates","updateExtension","ControlSection","SettingsPage","sections","parseInt","ExtensionPage","BYTE_UNITS","BIBYTE_UNITS","BIT_UNITS","BIBIT_UNITS","toLocaleString","number","options","result","Array","isArray","Task","Model","createdAt","isFinite","TypeError","UNITS","bits","binary","signed","localeOptions","isNegative","prefix","minimumFractionDigits","maximumFractionDigits","exponent","min","log","log10","toPrecision","prettyBytes","QueueState","limit","offset","load","params","page","payload","meta","getItems","ControlSectionState","lastUpdateCheck","JSON","parse","formatExtensionUpdates","formatCoreUpdate","isLoading","isLoadingOtherThan","setLoading","checkForUpdates","confirm","updateGlobally","installed","filter","composerPackage","safeToUpdate","values","backgroundImage","major","minor","global","PackageManagerState","queue","control","store","models","packageManager","extensionData","registerSetting","translator","trans","setting","help","trust","basic_impl_link","adv_impl_link","php_version","phpVersion","folder_perms_link","default","registerPage","isExtensionEnabled","modal","show","request","forum","attribute","alerts","close"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"admin.js","mappings":"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","sources":["webpack://@flarum/package-manager/../../../node_modules/dayjs/plugin/duration.js","webpack://@flarum/package-manager/webpack/bootstrap","webpack://@flarum/package-manager/webpack/runtime/compat get default export","webpack://@flarum/package-manager/webpack/runtime/define property getters","webpack://@flarum/package-manager/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/package-manager/webpack/runtime/make namespace object","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/extend']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/app']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/components/ExtensionPage']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Button']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/components/LoadingModal']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/utils/isExtensionEnabled']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Alert']\"","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/Component']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/LoadingIndicator']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Tooltip']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@flarum/package-manager/./src/admin/components/Label.tsx","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@flarum/package-manager/./src/admin/components/TaskOutputModal.tsx","webpack://@flarum/package-manager/./src/admin/components/Pagination.tsx","webpack://@flarum/package-manager/./src/admin/components/QueueSection.tsx","webpack://@flarum/package-manager/./src/admin/utils/humanDuration.ts","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@flarum/package-manager/./src/admin/utils/errorHandler.ts","webpack://@flarum/package-manager/./src/admin/utils/jumpToQueue.ts","webpack://@flarum/package-manager/./src/admin/components/Installer.tsx","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@flarum/package-manager/./src/admin/components/WhyNotModal.tsx","webpack://@flarum/package-manager/./src/admin/components/ExtensionItem.tsx","webpack://@flarum/package-manager/./src/admin/components/MajorUpdater.tsx","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@flarum/package-manager/../../../framework/core/js/src/common/utils/isObject.ts","webpack://@flarum/package-manager/../../../framework/core/js/src/common/utils/ItemList.ts","webpack://@flarum/package-manager/./src/admin/components/Updater.tsx","webpack://@flarum/package-manager/./src/admin/components/ControlSection.tsx","webpack://@flarum/package-manager/./src/admin/components/SettingsPage.tsx","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/Model']\"","webpack://@flarum/package-manager/../../../node_modules/pretty-bytes/index.js","webpack://@flarum/package-manager/./src/admin/models/Task.ts","webpack://@flarum/package-manager/./src/admin/states/QueueState.ts","webpack://@flarum/package-manager/./src/admin/states/ControlSectionState.ts","webpack://@flarum/package-manager/./src/admin/states/PackageManagerState.ts","webpack://@flarum/package-manager/./src/admin/index.tsx"],"sourcesContent":["!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\\[([^\\]]+)]|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,u=31536e6,h=2592e6,a=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,d={years:u,months:h,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof p},f=function(t,s,n){return new p(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},g=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},p=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*d[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):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 y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*d[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/h),t%=h,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=g(this.$d.years,\"Y\"),s=g(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=g(n,\"D\"),e=g(this.$d.hours,\"H\"),r=g(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3);var u=g(o,\"S\"),h=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",d=(h?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===d||\"-P\"===d?\"P0D\":d},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/d[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/d[n]):this.$d[n],0===s?0:s},y.add=function(t,s,n){var i;return i=s?t*d[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}();return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)&&(t=t.asMilliseconds()),r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)&&(t=t.asMilliseconds()),o.bind(this)(t,s)}}}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/ExtensionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/LoadingModal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/utils/isExtensionEnabled'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Alert'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LoadingIndicator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Tooltip'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","import type Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport classList from 'flarum/common/utils/classList';\n\ninterface LabelAttrs extends ComponentAttrs {\n type: 'success' | 'error' | 'neutral' | 'warning';\n}\n\nexport default class Label extends Component {\n view(vnode: Mithril.Vnode) {\n const { className, type, ...attrs } = this.attrs;\n\n return (\n \n {vnode.children}\n \n );\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","import app from 'flarum/admin/app';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport Task from '../models/Task';\n\ninterface TaskOutputModalAttrs extends IInternalModalAttrs {\n task: Task;\n}\n\nexport default class TaskOutputModal extends Modal {\n className() {\n return 'Modal--large QuickModal';\n }\n\n title() {\n return app.translator.trans(`flarum-package-manager.admin.sections.queue.operations.${this.attrs.task.operation()}`);\n }\n\n content() {\n return (\n
\n
\n
\n \n
\n $ composer {this.attrs.task.command()}\n
\n
\n
\n \n
\n \n
{this.attrs.task.output()}
\n
\n
\n
\n
\n
\n );\n }\n}\n","import app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport QueueState from '../states/QueueState';\n\ninterface PaginationAttrs extends ComponentAttrs {\n list: QueueState;\n}\n\n/**\n * @todo make it abstract in core for reusability.\n */\nexport default class Pagination extends Component {\n view() {\n return (\n \n );\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Button from 'flarum/common/components/Button';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport { Extension } from 'flarum/admin/AdminApplication';\nimport icon from 'flarum/common/helpers/icon';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport extractText from 'flarum/common/utils/extractText';\n\nimport Label from './Label';\nimport TaskOutputModal from './TaskOutputModal';\nimport humanDuration from '../utils/humanDuration';\nimport Task, { TaskOperations } from '../models/Task';\nimport Pagination from './Pagination';\n\ninterface QueueTableColumn extends ComponentAttrs {\n label: string;\n content: (task: Task) => Mithril.Children;\n}\n\nexport default class QueueSection extends Component<{}> {\n oninit(vnode: Mithril.Vnode<{}, this>) {\n super.oninit(vnode);\n\n app.packageManager.queue.load();\n }\n\n view() {\n return (\n
\n
\n
\n

{app.translator.trans('flarum-package-manager.admin.sections.queue.title')}

\n app.packageManager.queue.load()}\n aria-label={app.translator.trans('flarum-package-manager.admin.sections.queue.refresh')}\n />\n
\n
\n
{this.queueTable()}
\n
\n );\n }\n\n columns() {\n const items = new ItemList();\n\n items.add(\n 'operation',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.operation')),\n content: (task) => (\n
\n {this.operationIcon(task.operation())}\n \n {app.translator.trans(`flarum-package-manager.admin.sections.queue.operations.${task.operation()}`)}\n \n
\n ),\n },\n 80\n );\n\n items.add(\n 'package',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.package')),\n content: (task) => {\n const extension: Extension | null = app.data.extensions[task.package()?.replace(/(\\/flarum-|\\/flarum-ext-|\\/)/g, '-')];\n\n return extension ? (\n
\n
\n {extension.icon ? icon(extension.icon.name) : ''}\n
\n
\n {extension.extra['flarum-extension'].title}\n {task.package()}\n
\n
\n ) : (\n task.package()\n );\n },\n },\n 75\n );\n\n items.add(\n 'status',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.status')),\n content: (task) => (\n \n {app.translator.trans(`flarum-package-manager.admin.sections.queue.statuses.${task.status()}`)}\n \n ),\n },\n 70\n );\n\n items.add(\n 'elapsedTime',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.elapsed_time')),\n content: (task) =>\n !task.startedAt() ? (\n app.translator.trans('flarum-package-manager.admin.sections.queue.task_just_started')\n ) : (\n \n {humanDuration(task.startedAt(), task.finishedAt())}\n \n ),\n },\n 65\n );\n\n items.add(\n 'memoryUsed',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.peak_memory_used')),\n content: (task) => {task.peakMemoryUsed()},\n },\n 60\n );\n\n items.add(\n 'details',\n {\n label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.details')),\n content: (task) => (\n app.modal.show(TaskOutputModal, { task })}\n />\n ),\n className: 'Table-controls',\n },\n 55\n );\n\n return items;\n }\n\n queueTable() {\n const tasks = app.packageManager.queue.getItems();\n\n if (!tasks) {\n return ;\n }\n\n if (tasks && !tasks.length) {\n return

{app.translator.trans('flarum-package-manager.admin.sections.queue.none')}

;\n }\n\n const columns = this.columns();\n\n return (\n <>\n \n \n \n {columns.toArray().map((item, index) => (\n \n ))}\n \n \n \n {tasks.map((task, index) => (\n \n {columns.toArray().map((item, index) => {\n const { label, content, ...attrs } = item;\n\n return (\n \n );\n })}\n \n ))}\n \n
{item.label}
\n {content(task)}\n
\n\n \n \n );\n }\n\n operationIcon(operation: TaskOperations): Mithril.Children {\n return icon(\n {\n update_check: 'fas fa-sync-alt',\n update_major: 'fas fa-play',\n update_minor: 'fas fa-play',\n update_global: 'fas fa-play',\n extension_install: 'fas fa-download',\n extension_remove: 'fas fa-times',\n extension_update: 'fas fa-arrow-alt-circle-up',\n why_not: 'fas fa-exclamation-circle',\n }[operation]\n );\n }\n}\n","import duration from 'dayjs/plugin/duration';\n\nexport default function humanDuration(start: Date, end: Date) {\n dayjs.extend(duration);\n\n const durationTime = dayjs(end).diff(start);\n\n return dayjs.duration(durationTime).humanize();\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","import app from 'flarum/admin/app';\n\nexport default function (e: any) {\n const error = e.response.errors[0];\n\n if (!['composer_command_failure', 'extension_already_installed', 'extension_not_installed'].includes(error.code)) {\n throw e;\n }\n\n switch (error.code) {\n case 'composer_command_failure':\n if (error.guessed_cause) {\n app.alerts.show({ type: 'error' }, app.translator.trans(`flarum-package-manager.admin.exceptions.guessed_cause.${error.guessed_cause}`));\n app.modal.close();\n } else {\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.composer_command_failure'));\n }\n break;\n\n case 'extension_already_installed':\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_already_installed'));\n app.modal.close();\n break;\n\n case 'extension_not_installed':\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_not_installed'));\n app.modal.close();\n }\n}\n","import app from 'flarum/admin/app';\n\n// @ts-ignore\nwindow.jumpToQueue = jumpToQueue;\n\nexport default function jumpToQueue(): void {\n app.modal.close();\n m.route.set(app.route('extension', { id: 'flarum-package-manager' }));\n app.packageManager.queue.load();\n setTimeout(() => {\n document.getElementById('PackageManager-queueSection')?.scrollIntoView({ block: 'nearest' });\n }, 200);\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport Stream from 'flarum/common/utils/Stream';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\n\nimport errorHandler from '../utils/errorHandler';\nimport jumpToQueue from '../utils/jumpToQueue';\nimport { AsyncBackendResponse } from '../shims';\n\nexport interface InstallerAttrs extends ComponentAttrs {}\n\nexport type InstallerLoadingTypes = 'extension-install' | null;\n\nexport default class Installer extends Component {\n packageName!: Stream;\n\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n\n this.packageName = Stream('');\n }\n\n view(): Mithril.Children {\n return (\n
\n \n

\n {app.translator.trans('flarum-package-manager.admin.extensions.install_help', {\n extiverse: extiverse.com,\n })}\n

\n
\n \n \n {app.translator.trans('flarum-package-manager.admin.extensions.proceed')}\n \n
\n
\n );\n }\n\n data(): any {\n return {\n package: this.packageName(),\n };\n }\n\n onsubmit(): void {\n app.packageManager.control.setLoading('extension-install');\n app.modal.show(LoadingModal);\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions`,\n body: {\n data: this.data(),\n },\n })\n .then((response) => {\n if (response.processing) {\n jumpToQueue();\n } else {\n const extensionId = response.id;\n app.alerts.show(\n { type: 'success' },\n app.translator.trans('flarum-package-manager.admin.extensions.successful_install', { extension: extensionId })\n );\n window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`;\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n app.packageManager.control.setLoading(null);\n app.modal.close();\n m.redraw();\n });\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\n\nimport errorHandler from '../utils/errorHandler';\n\ntype WhyNotResponse = {\n data: {\n reason: string;\n };\n};\n\nexport interface WhyNotModalAttrs extends IInternalModalAttrs {\n package: string;\n}\n\nexport default class WhyNotModal extends Modal {\n loading: boolean = true;\n whyNot: string | null = null;\n\n className() {\n return 'Modal--large WhyNotModal';\n }\n\n title() {\n return app.translator.trans('flarum-package-manager.admin.why_not_modal.title');\n }\n\n oncreate(vnode: Mithril.VnodeDOM) {\n super.oncreate(vnode);\n\n this.requestWhyNot();\n }\n\n content() {\n return
{this.loading ? :
{this.whyNot}
}
;\n }\n\n requestWhyNot(): void {\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/why-not`,\n body: {\n data: {\n package: this.attrs.package,\n },\n },\n })\n .then((response) => {\n this.loading = false;\n this.whyNot = response.data.reason;\n m.redraw();\n })\n .catch(errorHandler);\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport classList from 'flarum/common/utils/classList';\nimport icon from 'flarum/common/helpers/icon';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport Button from 'flarum/common/components/Button';\nimport { Extension } from 'flarum/admin/AdminApplication';\n\nimport { UpdatedPackage } from '../states/ControlSectionState';\nimport WhyNotModal from './WhyNotModal';\nimport Label from './Label';\n\nexport interface ExtensionItemAttrs extends ComponentAttrs {\n extension: Extension;\n updates: UpdatedPackage;\n onClickUpdate: CallableFunction;\n whyNotWarning?: boolean;\n isCore?: boolean;\n updatable?: boolean;\n isDanger?: boolean;\n}\n\nexport default class ExtensionItem extends Component {\n view(vnode: Mithril.Vnode): Mithril.Children {\n const { extension, updates, onClickUpdate, whyNotWarning, isCore, isDanger } = this.attrs;\n const latestVersion = updates['latest-minor'] ?? (updates['latest-major'] && !isCore ? updates['latest-major'] : null);\n\n return (\n \n
\n {extension.icon ? icon(extension.icon.name) : ''}\n
\n
\n
{extension.extra['flarum-extension'].title}
\n
\n {this.version(updates['version'])}\n {latestVersion ? (\n \n ) : null}\n
\n
\n
\n {onClickUpdate ? (\n \n \n \n ) : null}\n {whyNotWarning ? (\n \n app.modal.show(WhyNotModal, { package: extension.name })}\n aria-label={app.translator.trans('flarum-package-manager.admin.extensions.check_why_it_failed_updating')}\n />\n \n ) : null}\n
\n \n );\n }\n\n version(v: string): string {\n return 'v' + v.replace('v', '');\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport Alert from 'flarum/common/components/Alert';\nimport RequestError from 'flarum/common/utils/RequestError';\n\nimport { UpdatedPackage, UpdateState } from '../states/ControlSectionState';\nimport errorHandler from '../utils/errorHandler';\nimport WhyNotModal from './WhyNotModal';\nimport ExtensionItem from './ExtensionItem';\nimport { AsyncBackendResponse } from '../shims';\nimport jumpToQueue from '../utils/jumpToQueue';\n\nexport interface MajorUpdaterAttrs extends ComponentAttrs {\n coreUpdate: UpdatedPackage;\n updateState: UpdateState;\n}\n\nexport type MajorUpdaterLoadingTypes = 'major-update' | 'major-update-dry-run';\n\nexport default class MajorUpdater extends Component {\n updateState!: UpdateState;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.updateState = this.attrs.updateState;\n }\n\n view(): Mithril.Children {\n // @todo move Form-group--danger class to core for reuse\n return (\n
\n \"flarum\n \n

{app.translator.trans('flarum-package-manager.admin.major_updater.description')}

\n
\n \n \n {app.translator.trans('flarum-package-manager.admin.major_updater.dry_run')}\n \n \n \n {app.translator.trans('flarum-package-manager.admin.major_updater.update')}\n \n
\n {this.updateState.incompatibleExtensions.length ? (\n
\n {this.updateState.incompatibleExtensions.map((extension: string) => (\n \n ))}\n
\n ) : null}\n {this.updateState.status === 'failure' ? (\n app.modal.show(WhyNotModal, { package: 'flarum/core' })}\n >\n {app.translator.trans('flarum-package-manager.admin.major_updater.failure.why')}\n ,\n ]}\n >\n

\n {app.translator.trans('flarum-package-manager.admin.major_updater.failure.desc')}\n

\n \n ) : null}\n
\n );\n }\n\n update(dryRun: boolean) {\n app.packageManager.control.setLoading(dryRun ? 'major-update-dry-run' : 'major-update');\n app.modal.show(LoadingModal);\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/major-update`,\n body: {\n data: { dryRun },\n },\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful'));\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .catch((e: RequestError) => {\n app.modal.close();\n this.updateState.status = 'failure';\n this.updateState.incompatibleExtensions = e.response?.errors?.pop()?.incompatible_extensions as string[];\n })\n .finally(() => {\n app.packageManager.control.setLoading(null);\n m.redraw();\n });\n }\n}\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","/**\n * Returns if the passed value is an object.\n *\n * In this context, \"object\" refers to **any non-primitive value**, including\n * arrays, function, maps, dates, and more.\n *\n * @example\n * isObject({}); // true\n * @example\n * isObject([]); // true\n * @example\n * isObject(function () {}); // true\n * @example\n * isObject(Object(1)); // true\n * @example\n * isObject(null); // false\n * @example\n * isObject(1); // false\n * @example\n * isObject(\"hello world\"); // false\n *\n * @see https://github.com/jashkenas/underscore/blob/943977e34e2279503528a71ddcc2dd5f96483945/underscore.js#L87-L91\n */\nexport default function isObject(obj: unknown): obj is object {\n const type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n","import isObject from './isObject';\n\nexport interface IItemObject {\n content: T;\n itemName: string;\n priority: number;\n}\n\nclass Item {\n content: T;\n priority: number;\n\n constructor(content: T, priority: number) {\n this.content = content;\n this.priority = priority;\n }\n}\n\n/**\n * The `ItemList` class collects items and then arranges them into an array\n * by priority.\n */\nexport default class ItemList {\n /**\n * The items in the list.\n */\n protected _items: Record> = {};\n\n // TODO: [Flarum 2.0] Remove `.items` getter.\n /**\n * A **read-only copy** of items in the list.\n *\n * We don't allow adding new items to the ItemList via setting new properties,\n * nor do we allow modifying existing items directly.\n *\n * @deprecated Use {@link ItemList.toObject} instead.\n */\n get items(): DeepReadonly>> {\n return new Proxy(this._items, {\n set() {\n console.warn('Modifying `ItemList.items` is not allowed.');\n return false;\n },\n });\n }\n\n /**\n * Check whether the list is empty.\n */\n isEmpty(): boolean {\n return Object.keys(this._items).length === 0;\n }\n\n /**\n * Check whether an item is present in the list.\n */\n has(key: string): boolean {\n return Object.keys(this._items).includes(key);\n }\n\n /**\n * Get the content of an item.\n */\n get(key: string): T {\n return this._items[key].content;\n }\n\n /**\n * Get the priority of an item.\n */\n getPriority(key: string): number {\n return this._items[key].priority;\n }\n\n /**\n * Add an item to the list.\n *\n * @param key A unique key for the item.\n * @param content The item's content.\n * @param priority The priority of the item. Items with a higher priority\n * will be positioned before items with a lower priority.\n */\n add(key: string, content: T, priority: number = 0): this {\n this._items[key] = new Item(content, priority);\n\n return this;\n }\n\n // TODO: [Flarum 2.0] Remove deprecated `.replace()` method.\n /**\n * Replace an item and/or priority in the list, only if it is already present.\n *\n * If `content` or `priority` are `null`, these values will not be replaced.\n *\n * If the provided `key` is not present, nothing will happen.\n *\n * @deprecated Please use the {@link ItemList.setContent} and {@link ItemList.setPriority}\n * methods to replace items and their priorities. This method will be removed in Flarum 2.0.\n *\n * @param key The key of the item in the list\n * @param content The item's new content\n * @param priority The item's new priority\n *\n * @example Replace priority and not content.\n * items.replace('myItem', null, 10);\n *\n * @example Replace content and not priority.\n * items.replace('myItem',

My new value.

);\n *\n * @example Replace content and priority.\n * items.replace('myItem',

My new value.

, 10);\n */\n replace(key: string, content: T | null = null, priority: number | null = null): this {\n if (!this.has(key)) return this;\n\n if (content !== null) {\n this._items[key].content = content;\n }\n\n if (priority !== null) {\n this._items[key].priority = priority;\n }\n\n return this;\n }\n\n /**\n * Replaces an item's content, if the provided item key exists.\n *\n * If the provided `key` is not present, an error will be thrown.\n *\n * @param key The key of the item in the list\n * @param content The item's new content\n *\n * @example Replace item content.\n * items.setContent('myItem',

My new value.

);\n *\n * @example Replace item content and priority.\n * items\n * .setContent('myItem',

My new value.

)\n * .setPriority('myItem', 10);\n *\n * @throws If the provided `key` is not present in the ItemList.\n */\n setContent(key: string, content: T): this {\n if (!this.has(key)) {\n throw new Error(`[ItemList] Cannot set content of Item. Key \\`${key}\\` is not present.`);\n }\n\n // Saves on bundle size to call the deprecated method internally\n return this.replace(key, content);\n }\n\n /**\n * Replaces an item's priority, if the provided item key exists.\n *\n * If the provided `key` is not present, an error will be thrown.\n *\n * @param key The key of the item in the list\n * @param priority The item's new priority\n *\n * @example Replace item priority.\n * items.setPriority('myItem', 10);\n *\n * @example Replace item priority and content.\n * items\n * .setPriority('myItem', 10)\n * .setContent('myItem',

My new value.

);\n *\n * @throws If the provided `key` is not present in the ItemList.\n */\n setPriority(key: string, priority: number): this {\n if (!this.has(key)) {\n throw new Error(`[ItemList] Cannot set priority of Item. Key \\`${key}\\` is not present.`);\n }\n\n this._items[key].priority = priority;\n\n return this;\n }\n\n /**\n * Remove an item from the list.\n *\n * If the provided `key` is not present, nothing will happen.\n */\n remove(key: string): this {\n delete this._items[key];\n\n return this;\n }\n\n /**\n * Merge another list's items into this one.\n *\n * The list passed to this function will overwrite items which already exist\n * with the same key.\n */\n merge(otherList: ItemList): ItemList {\n Object.keys(otherList._items).forEach((key) => {\n const val = otherList._items[key];\n\n if (val instanceof Item) {\n this._items[key] = val;\n }\n });\n\n return this;\n }\n\n /**\n * Convert the list into an array of item content arranged by priority.\n *\n * This **does not** preserve the original types of primitives and proxies\n * all content values to make `itemName` accessible on them.\n *\n * **NOTE:** If your ItemList holds primitive types (such as numbers, booleans\n * or strings), these will be converted to their object counterparts if you do\n * not provide `true` to this function.\n *\n * **NOTE:** Modifying any objects in the final array may also update the\n * content of the original ItemList.\n *\n * @param keepPrimitives Converts item content to objects and sets the\n * `itemName` property on them.\n *\n * @see https://github.com/flarum/core/issues/3030\n */\n toArray(keepPrimitives?: false): (T & { itemName: string })[];\n /**\n * Convert the list into an array of item content arranged by priority.\n *\n * Content values that are already objects will be proxied and have\n * `itemName` accessible on them. Primitive values will not have the\n * `itemName` property accessible.\n *\n * **NOTE:** Modifying any objects in the final array may also update the\n * content of the original ItemList.\n *\n * @param keepPrimitives Converts item content to objects and sets the\n * `itemName` property on them.\n */\n toArray(keepPrimitives: true): (T extends object ? T & Readonly<{ itemName: string }> : T)[];\n\n toArray(keepPrimitives: boolean = false): T[] | (T & Readonly<{ itemName: string }>)[] {\n const items: Item[] = Object.keys(this._items).map((key, i) => {\n const item = this._items[key];\n\n if (!keepPrimitives || isObject(item.content)) {\n // Convert content to object, then proxy it\n return {\n ...item,\n content: this.createItemContentProxy(isObject(item.content) ? item.content : Object(item.content), key),\n };\n } else {\n // ...otherwise just return a clone of the item.\n return { ...item };\n }\n });\n\n return items.sort((a, b) => b.priority - a.priority).map((item) => item.content);\n }\n\n /**\n * A read-only map of all keys to their respective items in no particular order.\n *\n * We don't allow adding new items to the ItemList via setting new properties,\n * nor do we allow modifying existing items directly. You should use the\n * {@link ItemList.add}, {@link ItemList.setContent} and\n * {@link ItemList.setPriority} methods instead.\n *\n * To match the old behaviour of the `ItemList.items` property, call\n * `Object.values(ItemList.toObject())`.\n *\n * @example\n * const items = new ItemList();\n * items.add('b', 'My cool value', 20);\n * items.add('a', 'My value', 10);\n * items.toObject();\n * // {\n * // a: { content: 'My value', priority: 10, itemName: 'a' },\n * // b: { content: 'My cool value', priority: 20, itemName: 'b' },\n * // }\n */\n toObject(): DeepReadonly>> {\n return Object.keys(this._items).reduce((map, key) => {\n const obj = {\n content: this.get(key),\n itemName: key,\n priority: this.getPriority(key),\n };\n\n map[key] = obj;\n\n return map;\n }, {} as Record>);\n }\n\n /**\n * Proxies an item's content, adding the `itemName` readonly property to it.\n *\n * @example\n * createItemContentProxy({ foo: 'bar' }, 'myItem');\n * // { foo: 'bar', itemName: 'myItem' }\n *\n * @param content The item's content (objects only)\n * @param key The item's key\n * @return Proxied content\n *\n * @internal\n */\n private createItemContentProxy(content: C, key: string): Readonly {\n return new Proxy(content, {\n get(target, property, receiver) {\n if (property === 'itemName') return key;\n\n return Reflect.get(target, property, receiver);\n },\n set(target, property, value, receiver) {\n if (key !== null && property === 'itemName') {\n throw new Error('`itemName` property is read-only');\n }\n\n return Reflect.set(target, property, value, receiver);\n },\n }) as C & { itemName: string };\n }\n}\n","import app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport MajorUpdater from './MajorUpdater';\nimport ExtensionItem from './ExtensionItem';\nimport { Extension } from 'flarum/admin/AdminApplication';\nimport Alert from 'flarum/common/components/Alert';\nimport ItemList from '@flarum/core/src/common/utils/ItemList';\n\nexport interface IUpdaterAttrs extends ComponentAttrs {}\n\nexport type UpdaterLoadingTypes = 'check' | 'minor-update' | 'global-update' | 'extension-update' | null;\n\nexport default class Updater extends Component {\n view() {\n const core = app.packageManager.control.coreUpdate;\n\n return [\n
\n \n

{app.translator.trans('flarum-package-manager.admin.updater.updater_help')}

\n {this.lastUpdateCheckView()}\n
{this.controlItems().toArray()}
\n {this.availableUpdatesView()}\n
,\n core && core.package['latest-major'] ? (\n \n ) : null,\n ];\n }\n\n lastUpdateCheckView() {\n return (\n (app.packageManager.control.lastUpdateCheck?.checkedAt && (\n

\n \n {app.translator.trans('flarum-package-manager.admin.updater.last_update_checked_at')}\n \n {humanTime(app.packageManager.control.lastUpdateCheck.checkedAt)}\n

\n )) ||\n null\n );\n }\n\n availableUpdatesView() {\n const state = app.packageManager.control;\n\n if (app.packageManager.control.isLoading()) {\n return (\n
\n \n
\n );\n }\n\n if (!(state.extensionUpdates.length || state.coreUpdate)) {\n return (\n
\n \n {app.translator.trans('flarum-package-manager.admin.updater.up_to_date')}\n \n
\n );\n }\n\n return (\n
\n
\n {state.coreUpdate ? (\n state.updateCoreMinor()}\n whyNotWarning={state.lastUpdateRun.limitedPackages().includes('flarum/core')}\n />\n ) : null}\n {state.extensionUpdates.map((extension: Extension) => (\n state.updateExtension(extension)}\n whyNotWarning={state.lastUpdateRun.limitedPackages().includes(extension.name)}\n />\n ))}\n
\n
\n );\n }\n\n controlItems() {\n const items = new ItemList();\n\n items.add(\n 'updateCheck',\n app.packageManager.control.checkForUpdates()}\n loading={app.packageManager.control.isLoading('check')}\n disabled={app.packageManager.control.isLoadingOtherThan('check')}\n >\n {app.translator.trans('flarum-package-manager.admin.updater.check_for_updates')}\n ,\n 100\n );\n\n items.add(\n 'globalUpdate',\n app.packageManager.control.updateGlobally()}\n loading={app.packageManager.control.isLoading('global-update')}\n disabled={app.packageManager.control.isLoadingOtherThan('global-update')}\n >\n {app.translator.trans('flarum-package-manager.admin.updater.run_global_update')}\n \n );\n\n return items;\n }\n}\n","import app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Alert from 'flarum/common/components/Alert';\nimport { ComponentAttrs } from 'flarum/common/Component';\n\nimport Installer from './Installer';\nimport Updater from './Updater';\nimport Mithril from 'mithril';\n\nexport default class ControlSection extends Component {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n }\n\n view() {\n return (\n
\n
\n
\n

{app.translator.trans('flarum-package-manager.admin.sections.control.title')}

\n
\n
\n
\n {app.data['flarum-package-manager.writable_dirs'] ? (\n <>\n \n \n \n ) : (\n
\n \n {app.translator.trans('flarum-package-manager.admin.file_permissions')}\n \n
\n )}\n
\n
\n );\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport ExtensionPage, { ExtensionPageAttrs } from 'flarum/admin/components/ExtensionPage';\nimport ItemList from 'flarum/common/utils/ItemList';\n\nimport QueueSection from './QueueSection';\nimport ControlSection from './ControlSection';\n\nexport default class SettingsPage extends ExtensionPage {\n sections(vnode: Mithril.VnodeDOM): ItemList {\n const items = super.sections(vnode);\n\n items.setPriority('content', 10);\n\n items.add('control', , 8);\n\n if (parseInt(app.data.settings['flarum-package-manager.queue_jobs'])) {\n items.add('queue', , 5);\n }\n\n items.setPriority('permissions', 0);\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","const BYTE_UNITS = [\n\t'B',\n\t'kB',\n\t'MB',\n\t'GB',\n\t'TB',\n\t'PB',\n\t'EB',\n\t'ZB',\n\t'YB',\n];\n\nconst BIBYTE_UNITS = [\n\t'B',\n\t'kiB',\n\t'MiB',\n\t'GiB',\n\t'TiB',\n\t'PiB',\n\t'EiB',\n\t'ZiB',\n\t'YiB',\n];\n\nconst BIT_UNITS = [\n\t'b',\n\t'kbit',\n\t'Mbit',\n\t'Gbit',\n\t'Tbit',\n\t'Pbit',\n\t'Ebit',\n\t'Zbit',\n\t'Ybit',\n];\n\nconst BIBIT_UNITS = [\n\t'b',\n\t'kibit',\n\t'Mibit',\n\t'Gibit',\n\t'Tibit',\n\t'Pibit',\n\t'Eibit',\n\t'Zibit',\n\t'Yibit',\n];\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number, locale, options) => {\n\tlet result = number;\n\tif (typeof locale === 'string' || Array.isArray(locale)) {\n\t\tresult = number.toLocaleString(locale, options);\n\t} else if (locale === true || options !== undefined) {\n\t\tresult = number.toLocaleString(undefined, options);\n\t}\n\n\treturn result;\n};\n\nexport default function prettyBytes(number, options) {\n\tif (!Number.isFinite(number)) {\n\t\tthrow new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n\t}\n\n\toptions = {\n\t\tbits: false,\n\t\tbinary: false,\n\t\t...options,\n\t};\n\n\tconst UNITS = options.bits\n\t\t? (options.binary ? BIBIT_UNITS : BIT_UNITS)\n\t\t: (options.binary ? BIBYTE_UNITS : BYTE_UNITS);\n\n\tif (options.signed && number === 0) {\n\t\treturn ` 0 ${UNITS[0]}`;\n\t}\n\n\tconst isNegative = number < 0;\n\tconst prefix = isNegative ? '-' : (options.signed ? '+' : '');\n\n\tif (isNegative) {\n\t\tnumber = -number;\n\t}\n\n\tlet localeOptions;\n\n\tif (options.minimumFractionDigits !== undefined) {\n\t\tlocaleOptions = {minimumFractionDigits: options.minimumFractionDigits};\n\t}\n\n\tif (options.maximumFractionDigits !== undefined) {\n\t\tlocaleOptions = {maximumFractionDigits: options.maximumFractionDigits, ...localeOptions};\n\t}\n\n\tif (number < 1) {\n\t\tconst numberString = toLocaleString(number, options.locale, localeOptions);\n\t\treturn prefix + numberString + ' ' + UNITS[0];\n\t}\n\n\tconst exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);\n\tnumber /= (options.binary ? 1024 : 1000) ** exponent;\n\n\tif (!localeOptions) {\n\t\tnumber = number.toPrecision(3);\n\t}\n\n\tconst numberString = toLocaleString(Number(number), options.locale, localeOptions);\n\n\tconst unit = UNITS[exponent];\n\n\treturn prefix + numberString + ' ' + unit;\n}\n","import Model from 'flarum/common/Model';\nimport prettyBytes from 'pretty-bytes';\n\nexport type TaskOperations =\n | 'extension_install'\n | 'extension_remove'\n | 'extension_update'\n | 'update_global'\n | 'update_minor'\n | 'update_major'\n | 'update_check'\n | 'why_not';\n\nexport default class Task extends Model {\n status() {\n return Model.attribute<'pending' | 'running' | 'failure' | 'success'>('status').call(this);\n }\n\n operation() {\n return Model.attribute('operation').call(this);\n }\n\n command() {\n return Model.attribute('command').call(this);\n }\n\n package() {\n return Model.attribute('package').call(this);\n }\n\n output() {\n return Model.attribute('output').call(this);\n }\n\n createdAt() {\n return Model.attribute('createdAt', Model.transformDate).call(this);\n }\n\n startedAt() {\n return Model.attribute('startedAt', Model.transformDate).call(this);\n }\n\n finishedAt() {\n return Model.attribute('finishedAt', Model.transformDate).call(this);\n }\n\n peakMemoryUsed() {\n return prettyBytes(Model.attribute('peakMemoryUsed').call(this) * 1024);\n }\n}\n","import app from 'flarum/admin/app';\nimport Task from '../models/Task';\nimport { ApiQueryParamsPlural } from 'flarum/common/Store';\n\nexport default class QueueState {\n private tasks: Task[] | null = null;\n private limit = 20;\n private offset = 0;\n private total = 0;\n\n load(params?: ApiQueryParamsPlural) {\n this.tasks = null;\n params = {\n page: {\n limit: this.limit,\n offset: this.offset,\n ...params?.page,\n },\n ...params,\n };\n\n return app.store.find('package-manager-tasks', params || {}).then((data) => {\n this.tasks = data;\n this.total = data.payload.meta?.total;\n\n m.redraw();\n\n return data;\n });\n }\n\n getItems() {\n return this.tasks;\n }\n\n getTotalPages(): number {\n return Math.ceil(this.total / this.limit);\n }\n\n pageNumber(): number {\n return Math.ceil(this.offset / this.limit);\n }\n\n hasPrev(): boolean {\n return this.pageNumber() !== 0;\n }\n\n hasNext(): boolean {\n return this.offset + this.limit < this.total;\n }\n\n prev(): void {\n if (this.hasPrev()) {\n this.offset -= this.limit;\n this.load();\n }\n }\n\n next(): void {\n if (this.hasNext()) {\n this.offset += this.limit;\n this.load();\n }\n }\n}\n","import app from 'flarum/admin/app';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport { UpdaterLoadingTypes } from '../components/Updater';\nimport { InstallerLoadingTypes } from '../components/Installer';\nimport { MajorUpdaterLoadingTypes } from '../components/MajorUpdater';\nimport { AsyncBackendResponse } from '../shims';\nimport errorHandler from '../utils/errorHandler';\nimport jumpToQueue from '../utils/jumpToQueue';\nimport { Extension } from 'flarum/admin/AdminApplication';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport type UpdatedPackage = {\n name: string;\n version: string;\n latest: string;\n 'latest-minor': string | null;\n 'latest-major': string | null;\n 'latest-status': string;\n description: string;\n};\n\nexport type ComposerUpdates = {\n installed: UpdatedPackage[];\n};\n\nexport type LastUpdateCheck = {\n checkedAt: Date | null;\n updates: ComposerUpdates;\n};\n\ntype UpdateType = 'major' | 'minor' | 'global';\ntype UpdateStatus = 'success' | 'failure' | null;\nexport type UpdateState = {\n ranAt: Date | null;\n status: UpdateStatus;\n limitedPackages: string[];\n incompatibleExtensions: string[];\n};\n\nexport type LastUpdateRun = {\n [key in UpdateType]: UpdateState;\n} & {\n limitedPackages: () => string[];\n};\n\nexport type LoadingTypes = UpdaterLoadingTypes | InstallerLoadingTypes | MajorUpdaterLoadingTypes;\n\nexport type CoreUpdate = {\n package: UpdatedPackage;\n extension: Extension;\n};\n\nexport default class ControlSectionState {\n loading: LoadingTypes = null;\n\n public packageUpdates: Record = {};\n public lastUpdateCheck!: LastUpdateCheck;\n public extensionUpdates!: Extension[];\n public coreUpdate: CoreUpdate | null = null;\n get lastUpdateRun(): LastUpdateRun {\n const lastUpdateRun = JSON.parse(app.data.settings['flarum-package-manager.last_update_run']) as LastUpdateRun;\n\n lastUpdateRun.limitedPackages = () => [\n ...lastUpdateRun.major.limitedPackages,\n ...lastUpdateRun.minor.limitedPackages,\n ...lastUpdateRun.global.limitedPackages,\n ];\n\n return lastUpdateRun;\n }\n\n constructor() {\n this.lastUpdateCheck = JSON.parse(app.data.settings['flarum-package-manager.last_update_check']) as LastUpdateCheck;\n this.extensionUpdates = this.formatExtensionUpdates(this.lastUpdateCheck);\n this.coreUpdate = this.formatCoreUpdate(this.lastUpdateCheck);\n }\n\n isLoading(name: LoadingTypes = null): boolean {\n return (name && this.loading === name) || (!name && this.loading !== null);\n }\n\n isLoadingOtherThan(name: LoadingTypes): boolean {\n return this.loading !== null && this.loading !== name;\n }\n\n setLoading(name: LoadingTypes): void {\n this.loading = name;\n }\n\n checkForUpdates() {\n this.setLoading('check');\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/check-for-updates`,\n })\n .then((response) => {\n if ((response as AsyncBackendResponse).processing) {\n jumpToQueue();\n } else {\n this.lastUpdateCheck = response as LastUpdateCheck;\n this.extensionUpdates = this.formatExtensionUpdates(response as LastUpdateCheck);\n this.coreUpdate = this.formatCoreUpdate(response as LastUpdateCheck);\n m.redraw();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n this.setLoading(null);\n m.redraw();\n });\n }\n\n updateCoreMinor() {\n if (confirm(extractText(app.translator.trans('flarum-package-manager.admin.minor_update_confirmation.content')))) {\n app.modal.show(LoadingModal);\n this.setLoading('minor-update');\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/minor-update`,\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful'));\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n this.setLoading(null);\n app.modal.close();\n m.redraw();\n });\n }\n }\n\n updateExtension(extension: Extension) {\n app.modal.show(LoadingModal);\n this.setLoading('extension-update');\n\n app\n .request({\n method: 'PATCH',\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${extension.id}`,\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show(\n { type: 'success' },\n app.translator.trans('flarum-package-manager.admin.extensions.successful_update', {\n extension: extension.extra['flarum-extension'].title,\n })\n );\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n this.setLoading(null);\n app.modal.close();\n m.redraw();\n });\n }\n\n updateGlobally() {\n app.modal.show(LoadingModal);\n this.setLoading('global-update');\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/global-update`,\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.updater.global_update_successful'));\n window.location.reload();\n }\n })\n .catch(errorHandler)\n .finally(() => {\n this.setLoading(null);\n app.modal.close();\n m.redraw();\n });\n }\n\n formatExtensionUpdates(lastUpdateCheck: LastUpdateCheck): Extension[] {\n this.packageUpdates = {};\n\n lastUpdateCheck?.updates?.installed?.filter((composerPackage: UpdatedPackage) => {\n const id = composerPackage.name.replace('/', '-').replace(/(flarum-ext-)|(flarum-)/, '');\n\n const extension = app.data.extensions[id];\n const safeToUpdate = ['semver-safe-update', 'update-possible'].includes(composerPackage['latest-status']);\n\n if (extension && safeToUpdate) {\n this.packageUpdates[extension.id] = composerPackage;\n }\n\n return extension && safeToUpdate;\n });\n\n return (Object.values(app.data.extensions) as Extension[]).filter((extension: Extension) => this.packageUpdates[extension.id]);\n }\n\n formatCoreUpdate(lastUpdateCheck: LastUpdateCheck): CoreUpdate | null {\n const core = lastUpdateCheck?.updates?.installed?.filter((composerPackage: UpdatedPackage) => composerPackage.name === 'flarum/core').pop();\n\n if (!core) return null;\n\n return {\n package: core,\n extension: {\n id: 'flarum-core',\n name: 'flarum/core',\n version: app.data.settings.version,\n icon: {\n // @ts-ignore\n backgroundImage: `url(${app.forum.attribute('baseUrl')}/assets/extensions/flarum-package-manager/flarum.svg`,\n },\n extra: {\n 'flarum-extension': {\n title: extractText(app.translator.trans('flarum-package-manager.admin.updater.flarum')),\n },\n },\n },\n };\n }\n}\n","import QueueState from './QueueState';\nimport ControlSectionState from './ControlSectionState';\n\nexport default class PackageManagerState {\n public queue: QueueState = new QueueState();\n public control: ControlSectionState = new ControlSectionState();\n}\n","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/admin/app';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\nimport Button from 'flarum/common/components/Button';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';\nimport Alert from 'flarum/common/components/Alert';\n\nimport SettingsPage from './components/SettingsPage';\nimport Task from './models/Task';\nimport jumpToQueue from './utils/jumpToQueue';\nimport extractText from 'flarum/common/utils/extractText';\nimport { AsyncBackendResponse } from './shims';\nimport PackageManagerState from './states/PackageManagerState';\n\napp.initializers.add('flarum-package-manager', (app) => {\n app.store.models['package-manager-tasks'] = Task;\n\n app.packageManager = new PackageManagerState();\n\n app.extensionData\n .for('flarum-package-manager')\n .registerSetting(() => (\n
\n \n {app.translator.trans('flarum-package-manager.admin.settings.access_warning')}\n \n
\n ))\n .registerSetting({\n setting: 'flarum-package-manager.queue_jobs',\n label: app.translator.trans('flarum-package-manager.admin.settings.queue_jobs'),\n help: m.trust(\n extractText(\n app.translator.trans('flarum-package-manager.admin.settings.queue_jobs_help', {\n basic_impl_link: 'https://discuss.flarum.org/d/28151-database-queue-the-simplest-queue-even-for-shared-hosting',\n adv_impl_link: 'https://discuss.flarum.org/d/21873-redis-sessions-cache-queues',\n php_version: `${app.data.phpVersion}`,\n folder_perms_link: 'https://docs.flarum.org/install#folder-ownership',\n })\n )\n ),\n default: false,\n type: 'boolean',\n disabled: app.data['flarum-package-manager.using_sync_queue'],\n })\n .registerPage(SettingsPage);\n\n extend(ExtensionPage.prototype, 'topItems', function (items) {\n if (this.extension.id === 'flarum-package-manager' || isExtensionEnabled(this.extension.id)) {\n return;\n }\n\n items.add(\n 'remove',\n {\n app.modal.show(LoadingModal);\n\n app\n .request({\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${this.extension.id}`,\n method: 'DELETE',\n })\n .then((response) => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.extensions.successful_remove'));\n window.location = app.forum.attribute('adminUrl');\n }\n })\n .finally(() => {\n app.modal.close();\n });\n }}\n >\n Remove\n \n );\n });\n});\n"],"names":["module","exports","t","s","n","i","e","r","o","u","h","a","d","years","months","days","hours","minutes","seconds","milliseconds","weeks","c","p","f","$l","m","l","$","Math","ceil","floor","y","abs","g","negative","format","this","$d","$ms","parseFromMilliseconds","Object","keys","forEach","calMilliseconds","match","slice","map","Number","prototype","reduce","toISOString","toJSON","Y","YY","YYYY","M","MM","D","DD","H","HH","mm","ss","SSS","replace","String","as","get","add","subtract","locale","clone","humanize","fromNow","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","$utils","duration","isDuration","bind","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","getter","__esModule","definition","key","defineProperty","enumerable","obj","prop","hasOwnProperty","Symbol","toStringTag","value","flarum","core","compat","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","constructor","_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","length","indexOf","Label","view","vnode","attrs","className","type","classList","children","Component","TaskOutputModal","title","app","task","operation","content","command","output","Modal","Pagination","class","disabled","list","hasPrev","onclick","prev","icon","current","pageNumber","total","getTotalPages","hasNext","next","QueueSection","oninit","id","queueTable","columns","items","ItemList","label","extractText","operationIcon","extension","style","name","extra","running","failure","pending","success","status","startedAt","text","dayjs","finishedAt","start","end","extend","durationTime","diff","humanDuration","peakMemoryUsed","tasks","toArray","item","index","update_check","update_major","update_minor","update_global","extension_install","extension_remove","extension_update","why_not","error","response","errors","includes","code","guessed_cause","jumpToQueue","route","set","setTimeout","document","getElementById","scrollIntoView","block","window","Installer","packageName","Stream","htmlFor","extiverse","href","placeholder","bidi","onsubmit","loading","data","package","LoadingModal","method","url","body","then","processing","extensionId","location","reload","errorHandler","redraw","WhyNotModal","whyNot","oncreate","requestWhyNot","reason","ExtensionItem","updates","onClickUpdate","whyNotWarning","isCore","isDanger","latestVersion","version","v","MajorUpdater","updateState","alt","src","coreUpdate","update","incompatibleExtensions","dismissible","controls","dryRun","pop","incompatible_extensions","_extends","assign","arguments","apply","_defineProperties","props","descriptor","configurable","writable","_createClass","Constructor","protoProps","staticProps","isObject","Item","priority","_items","isEmpty","has","getPriority","setContent","Error","setPriority","remove","merge","otherList","val","keepPrimitives","createItemContentProxy","sort","b","toObject","itemName","Proxy","property","receiver","Reflect","console","warn","Updater","lastUpdateCheckView","controlItems","availableUpdatesView","checkedAt","humanTime","state","extensionUpdates","updateCoreMinor","lastUpdateRun","limitedPackages","packageUpdates","updateExtension","ControlSection","SettingsPage","sections","parseInt","ExtensionPage","BYTE_UNITS","BIBYTE_UNITS","BIT_UNITS","BIBIT_UNITS","toLocaleString","number","options","result","Array","isArray","Task","Model","createdAt","isFinite","TypeError","UNITS","bits","binary","signed","localeOptions","isNegative","prefix","minimumFractionDigits","maximumFractionDigits","exponent","min","log","log10","toPrecision","prettyBytes","QueueState","limit","offset","load","params","page","payload","meta","getItems","ControlSectionState","lastUpdateCheck","JSON","parse","formatExtensionUpdates","formatCoreUpdate","isLoading","isLoadingOtherThan","setLoading","checkForUpdates","confirm","updateGlobally","installed","filter","composerPackage","safeToUpdate","values","backgroundImage","major","minor","global","PackageManagerState","queue","control","store","models","packageManager","extensionData","registerSetting","translator","trans","setting","help","trust","basic_impl_link","adv_impl_link","php_version","phpVersion","folder_perms_link","default","registerPage","isExtensionEnabled","modal","show","request","forum","attribute","alerts","close"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/tags/js/dist/forum.js b/extensions/tags/js/dist/forum.js index fbb87852d..db5af41fe 100644 --- a/extensions/tags/js/dist/forum.js +++ b/extensions/tags/js/dist/forum.js @@ -1,3 +1,3 @@ /*! For license information please see forum.js.LICENSE.txt */ -(()=>{var t={810:()=>{},990:(t,e,n)=>{"use strict";n.d(e,{l:()=>Ft});const r=flarum.core.compat["forum/app"];var a=n.n(r);function o(t,e,n,r,a,o,s){try{var i=t[o](s),c=i.value}catch(t){return void n(t)}i.done?e(c):Promise.resolve(c).then(r,a)}var s=n(507),i=n.n(s);const c=flarum.core.compat["common/app"];var l=n.n(c),u=function(){function t(){this.loadedIncludes=new Set}return t.prototype.load=function(){var t,e=(t=i().mark((function t(e){var n,r=this;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(void 0===e&&(e=[]),0!==(n=e.filter((function(t){return!r.loadedIncludes.has(t)}))).length){t.next=4;break}return t.abrupt("return",Promise.resolve(l().store.all("tags")));case 4:return t.abrupt("return",l().store.find("tags",{include:n.join(",")}).then((function(t){return n.forEach((function(t){return r.loadedIncludes.add(t)})),t})));case 5:case"end":return t.stop()}}),t)})),function(){var e=this,n=arguments;return new Promise((function(r,a){var s=t.apply(e,n);function i(t){o(s,r,a,i,c,"next",t)}function c(t){o(s,r,a,i,c,"throw",t)}i(void 0)}))});return function(t){return e.apply(this,arguments)}}(),t}();const d=flarum.core.compat["common/extend"],f=flarum.core.compat["forum/components/IndexPage"];var p=n.n(f);const h=flarum.core.compat["common/components/Separator"];var g=n.n(h);const v=flarum.core.compat["common/components/LinkButton"];var y=n.n(v);function b(t,e){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},b(t,e)}function T(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,b(t,e)}const x=flarum.core.compat["common/components/Link"];var w=n.n(x);const _=flarum.core.compat["common/utils/classList"];var N=n.n(_);function L(t,e,n){void 0===e&&(e={}),void 0===n&&(n={});var r=t&&t.icon(),a=n.useColor,o=void 0===a||a;return e.className=N()([e.className,"icon",r?t.icon():"TagIcon"]),t&&o?(e.style=e.style||{},e.style["--color"]=t.color(),r&&(e.style.color=t.color())):t||(e.className+=" untagged"),r?m("i",e):m("span",e)}var S=function(t){function e(){return t.apply(this,arguments)||this}return T(e,t),e.prototype.view=function(t){var e=this.attrs.model,n=(this.constructor.isActive(this.attrs),e&&e.description()),r=N()(["TagLinkButton","hasIcon",this.attrs.className,e.isChild()&&"child"]);return m(w(),{className:r,href:this.attrs.route,style:e?{"--color":e.color()}:"",title:n||""},L(e,{className:"Button-icon"}),m("span",{className:"Button-label"},e?e.name():app.translator.trans("flarum-tags.forum.index.untagged_link")))},e.initAttrs=function(e){t.initAttrs.call(this,e);var n=e.model;e.params.tags=n?n.slug():"untagged",e.route=app.route("tag",e.params)},e}(y());const P=flarum.core.compat["common/components/Page"];var I=n.n(P);const C=flarum.core.compat["common/components/LoadingIndicator"];var k=n.n(C);const D=flarum.core.compat["common/helpers/listItems"];var E=n.n(D);const O=flarum.core.compat["common/helpers/humanTime"];var A=n.n(O);const M=flarum.core.compat["common/helpers/textContrastClass"];var R=n.n(M);const j=flarum.core.compat["common/utils/extract"];var q=n.n(j);function B(t,e){void 0===e&&(e={}),e.style=e.style||{},e.className="TagLabel "+(e.className||"");var n=q()(e,"link"),r=t?t.name():app.translator.trans("flarum-tags.lib.deleted_tag_text");if(t){var a=t.color();a&&(e.style["--tag-bg"]=a,e.className=N()(e.className,"colored",R()(a))),n&&(e.title=t.description()||"",e.href=app.route("tag",{tags:t.slug()})),t.isChild()&&(e.className+=" TagLabel--child")}else e.className+=" untagged";return m(n?w():"span",e,m("span",{className:"TagLabel-text"},t&&t.icon()&&L(t,{},{useColor:!1})," ",r))}function H(t){return t.slice(0).sort((function(t,e){var n=t.position(),r=e.position();if(null===n&&null===r)return e.discussionCount()-t.discussionCount();if(null===r)return-1;if(null===n)return 1;var a=t.parent(),o=e.parent();return a===o?n-r:a&&o?a.position()-o.position():a?a===e?1:a.position()-r:o?o===t?-1:n-o.position():0}))}var F=function(t){function e(){return t.apply(this,arguments)||this}T(e,t);var n=e.prototype;return n.oninit=function(e){var n=this;t.prototype.oninit.call(this,e),app.history.push("tags",app.translator.trans("flarum-tags.forum.header.back_to_tags_tooltip")),this.tags=[];var r=app.preloadedApiDocument();r?this.tags=H(r.filter((function(t){return!t.isChild()}))):(this.loading=!0,app.tagList.load(["children","lastPostedDiscussion","parent"]).then((function(){n.tags=H(app.store.all("tags").filter((function(t){return!t.isChild()}))),n.loading=!1,m.redraw()})))},n.view=function(){if(this.loading)return m(k(),null);var t=this.tags.filter((function(t){return null!==t.position()})),e=this.tags.filter((function(t){return null===t.position()}));return m("div",{className:"TagsPage"},p().prototype.hero(),m("div",{className:"container"},m("nav",{className:"TagsPage-nav IndexPage-nav sideNav"},m("ul",null,E()(p().prototype.sidebarItems().toArray()))),m("div",{className:"TagsPage-content sideNavOffset"},m("ul",{className:"TagTiles"},t.map((function(t){var e=t.lastPostedDiscussion(),n=H(t.children()||[]);return m("li",{className:N()("TagTile",{colored:t.color()},R()(t.color())),style:{"--tag-bg":t.color()}},m(w(),{className:"TagTile-info",href:app.route.tag(t)},t.icon()&&L(t,{},{useColor:!1}),m("h3",{className:"TagTile-name"},t.name()),m("p",{className:"TagTile-description"},t.description()),n?m("div",{className:"TagTile-children"},n.map((function(t){return[m(w(),{href:app.route.tag(t)},t.name())," "]}))):""),e?m(w(),{className:"TagTile-lastPostedDiscussion",href:app.route.discussion(e,e.lastPostNumber())},m("span",{className:"TagTile-lastPostedDiscussion-title"},e.title()),A()(e.lastPostedAt())):m("span",{className:"TagTile-lastPostedDiscussion"}))}))),e.length?m("div",{className:"TagCloud"},e.map((function(t){return[B(t,{link:!0})," "]}))):"")))},n.oncreate=function(e){t.prototype.oncreate.call(this,e),app.setTitle(app.translator.trans("flarum-tags.forum.all_tags.meta_title_text")),app.setTitleCount(0)},e}(I());function G(){(0,d.extend)(p().prototype,"navItems",(function(t){if(t.add("tags",m(y(),{icon:"fas fa-th-large",href:app.route("tags")},app.translator.trans("flarum-tags.forum.index.tags_link")),-10),!app.current.matches(F)){t.add("separator",g().component(),-12);var e=app.search.stickyParams(),n=app.store.all("tags"),r=this.currentTag(),a=function(n){var a=r===n;!a&&r&&(a=r.parent()===n),t.add("tag"+n.id(),S.component({model:n,params:e,active:a},null==n?void 0:n.name()),-14)};H(n).filter((function(t){return null!==t.position()&&(!t.isChild()||r&&(t.parent()===r||t.parent()===r.parent()))})).forEach(a);var o=n.filter((function(t){return null===t.position()})).sort((function(t,e){return e.discussionCount()-t.discussionCount()}));o.splice(0,3).forEach(a),o.length&&t.add("moreTags",m(y(),{href:app.route("tags")},app.translator.trans("flarum-tags.forum.index.more_link")),-16)}}))}const K=flarum.core.compat["forum/states/DiscussionListState"];var $=n.n(K);const U=flarum.core.compat["forum/states/GlobalSearchState"];var Y=n.n(U);const z=flarum.core.compat["common/Component"];var J=n.n(z),Q=function(t){function e(){return t.apply(this,arguments)||this}return T(e,t),e.prototype.view=function(){var t=this.attrs.model,e=t.color();return m("header",{className:N()("Hero","TagHero",{"TagHero--colored":e},R()(e)),style:e?{"--hero-bg":e}:""},m("div",{className:"container"},m("div",{className:"containerNarrow"},m("h2",{className:"Hero-title"},t.icon()&&L(t,{},{useColor:!1})," ",t.name()),m("div",{className:"Hero-subtitle"},t.description()))))},e}(J()),V=function(t){return a().store.all("tags").find((function(e){return 0===e.slug().localeCompare(t,void 0,{sensitivity:"base"})}))};function W(){p().prototype.currentTag=function(){var t=this;if(this.currentActiveTag)return this.currentActiveTag;var e=a().search.params().tags,n=null;if(e&&(n=V(e)),e&&!n||n&&!n.isChild()&&!n.children()){if(this.currentTagLoading)return;this.currentTagLoading=!0,a().store.find("tags",e,{include:"children,children.parent,parent,state"}).then((function(){t.currentActiveTag=V(e),m.redraw()})).finally((function(){t.currentTagLoading=!1}))}return n?(this.currentActiveTag=n,this.currentActiveTag):void 0},(0,d.override)(p().prototype,"hero",(function(t){var e=this.currentTag();return e?m(Q,{model:e}):t()})),(0,d.extend)(p().prototype,"view",(function(t){var e=this.currentTag();e&&(t.attrs.className+=" IndexPage--tag"+e.id())})),(0,d.extend)(p().prototype,"setTitle",(function(){var t=this.currentTag();t&&a().setTitle(t.name())})),(0,d.extend)(p().prototype,"sidebarItems",(function(t){var e=this.currentTag();if(e){var n=e.color(),r=e.canStartDiscussion()||!a().session.user,o=t.get("newDiscussion");n&&(o.attrs.className=N()([o.attrs.className,"Button--tagColored",R()(n)]),o.attrs.style={"--color":n}),o.attrs.disabled=!r,o.children=a().translator.trans(r?"core.forum.index.start_discussion_button":"core.forum.index.cannot_start_discussion_button")}})),(0,d.extend)(Y().prototype,"params",(function(t){t.tags=m.route.param("tags")})),(0,d.extend)($().prototype,"requestParams",(function(t){var e;if("string"==typeof t.include?t.include=[t.include]:null==(e=t.include)||e.push("tags","tags.parent"),this.params.tags){var n,r=null!=(n=t.filter)?n:{};r.tag=this.params.tags;var a=r.q;a&&(r.q=a+" tag:"+this.params.tags),t.filter=r}}))}const X=flarum.core.compat["forum/components/DiscussionListItem"];var Z=n.n(X);const tt=flarum.core.compat["forum/components/DiscussionHero"];var et=n.n(tt);function nt(t,e){void 0===e&&(e={});var n=[],r=q()(e,"link");return e.className="TagsLabel "+(e.className||""),t?H(t).forEach((function(e){(e||1===t.length)&&n.push(B(e,{link:r}))})):n.push(B()),m("span",e,n)}function rt(){(0,d.extend)(Z().prototype,"infoItems",(function(t){var e=this.attrs.discussion.tags();e&&e.length&&t.add("tags",nt(e),10)})),(0,d.extend)(et().prototype,"view",(function(t){var e=H(this.attrs.discussion.tags());if(e&&e.length){var n=e[0].color();n&&(t.attrs.style={"--hero-bg":n},t.attrs.className=N()(t.attrs.className,"DiscussionHero--colored",R()(n)))}})),(0,d.extend)(et().prototype,"items",(function(t){var e=this.attrs.discussion.tags();e&&e.length&&t.add("tags",nt(e,{link:!0}),5)}))}const at=flarum.core.compat["forum/utils/DiscussionControls"];var ot=n.n(at);const st=flarum.core.compat["common/components/Button"];var it=n.n(st);const ct=flarum.core.compat["forum/components/DiscussionPage"];var lt=n.n(ct);const ut=flarum.core.compat["common/utils/extractText"];var mt=n.n(ut);function dt(t){var e=app.store.all("tags");return t?e.filter((function(e){return e.canAddToDiscussion()||-1!==t.tags().indexOf(e)})):e.filter((function(t){return t.canStartDiscussion()}))}const ft=flarum.core.compat["common/helpers/highlight"];var pt=n.n(ft);const ht=flarum.core.compat["common/utils/KeyboardNavigatable"];var gt=n.n(ht);const vt=flarum.core.compat["common/components/Modal"];var yt=n.n(vt);const bt=flarum.core.compat["common/utils/Stream"];var Tt=n.n(bt),xt=["className","isToggled"],wt=function(t){function e(){return t.apply(this,arguments)||this}return T(e,t),e.prototype.view=function(t){var e=this.attrs,n=e.className,r=e.isToggled,a=function(t,e){if(null==t)return{};var n,r,a={},o=Object.keys(t);for(r=0;r=0||(a[n]=t[n]);return a}(e,xt),o=r?"far fa-check-circle":"far fa-circle";return m(it(),Object.assign({},a,{icon:o,className:N()([n,r&&"Button--toggled"])}),t.children)},e}(J()),_t=function(t){function e(){for(var e,n=arguments.length,r=new Array(n),a=0;at.max.primary)throw new Error("The minimum number of primary tags allowed cannot be more than the maximum number of primary tags allowed.");if(t.min.secondary>t.max.secondary)throw new Error("The minimum number of secondary tags allowed cannot be more than the maximum number of secondary tags allowed.");if(t.min.total>t.max.primary+t.max.secondary)throw new Error("The minimum number of tags allowed cannot be more than the maximum number of primary and secondary tags allowed together.");if(t.max.totalt.max.total)throw new Error("The minimum number of tags allowed cannot be more than the maximum number of tags allowed.")}(e.limits)};var n=e.prototype;return n.oninit=function(e){var n=this;t.prototype.oninit.call(this,e),this.navigator.onUp((function(){return n.setIndex(n.getCurrentNumericIndex()-1,!0)})).onDown((function(){return n.setIndex(n.getCurrentNumericIndex()+1,!0)})).onSelect(this.select.bind(this)).onRemove((function(){return n.selected.splice(n.selected.length-1,1)})),l().tagList.load(["parent"]).then((function(t){n.loading=!1,n.attrs.selectableTags&&(t=n.attrs.selectableTags(t)),n.tags=H(t),n.attrs.selectedTags&&n.attrs.selectedTags.map(n.addTag.bind(n)),n.indexTag=t[0],m.redraw()}))},n.className=function(){return N()("TagSelectionModal",this.attrs.className)},n.title=function(){return this.attrs.title},n.content=function(){var t=this;if(this.loading||!this.tags)return m(k(),null);var e=this.filter().toLowerCase(),n=this.primaryCount(),r=this.secondaryCount(),a=this.getFilteredTags(),o=Math.max(mt()(this.getInstruction(n,r)).length,this.filter().length);return[m("div",{className:"Modal-body"},m("div",{className:"TagSelectionModal-form"},m("div",{className:"TagSelectionModal-form-input"},m("div",{className:"TagsInput FormControl "+(this.focused?"focus":""),onclick:function(){return t.$(".TagsInput input").focus()}},m("span",{className:"TagsInput-selected"},this.selected.map((function(e){return m("span",{className:"TagsInput-tag",onclick:function(){t.removeTag(e),t.onready()}},B(e))}))),m("input",{className:"FormControl",placeholder:mt()(this.getInstruction(n,r)),bidi:this.filter,style:{width:o+"ch"},onkeydown:this.navigator.navigate.bind(this.navigator),onfocus:function(){return t.focused=!0},onblur:function(){return t.focused=!1}}))),m("div",{className:"TagSelectionModal-form-submit App-primaryControl"},m(it(),{type:"submit",className:"Button Button--primary",disabled:!this.meetsRequirements(n,r),icon:"fas fa-check"},l().translator.trans("flarum-tags.lib.tag_selection_modal.submit_button"))))),m("div",{className:"Modal-footer"},m("ul",{className:"TagSelectionModal-list SelectTagList"},a.map((function(n){return m("li",{"data-index":n.id(),className:N()({pinned:null!==n.position(),child:!!n.parent(),colored:!!n.color(),selected:t.selected.includes(n),active:t.indexTag===n}),style:{color:n.color()},onmouseover:function(){return t.indexTag=n},onclick:t.toggleTag.bind(t,n)},L(n),m("span",{className:"SelectTagListItem-name"},pt()(n.name(),e)),n.description()?m("span",{className:"SelectTagListItem-description"},n.description()):"")}))),this.attrs.limits.allowBypassing&&m("div",{className:"TagSelectionModal-controls"},m(wt,{className:"Button",onclick:function(){return t.bypassReqs=!t.bypassReqs},isToggled:this.bypassReqs},l().translator.trans("flarum-tags.lib.tag_selection_modal.bypass_requirements"))))]},n.getFilteredTags=function(){var t=this,e=this.filter().toLowerCase(),n=this.primaryCount(),r=this.secondaryCount(),a=this.tags;return this.attrs.requireParentTag&&(a=a.filter((function(e){var n=e.parent();return null!==n&&(!1===n||t.selected.includes(n))}))),this.bypassReqs||(this.selected.length>=this.attrs.limits.max.total?a=a.filter((function(e){return t.selected.includes(e)})):(n>=this.attrs.limits.max.primary&&(a=a.filter((function(e){return!e.isPrimary()||t.selected.includes(e)}))),r>=this.attrs.limits.max.secondary&&(a=a.filter((function(e){return e.isPrimary()||t.selected.includes(e)}))))),e&&(a=a.filter((function(t){return t.name().substring(0,e.length).toLowerCase()===e}))),this.indexTag&&a.includes(this.indexTag)||(this.indexTag=a[0]),a},n.primaryCount=function(){return this.selected.filter((function(t){return t.isPrimary()})).length},n.secondaryCount=function(){return this.selected.filter((function(t){return!t.isPrimary()})).length},n.meetsRequirements=function(t,e){return!!(this.bypassReqs||this.attrs.allowResetting&&0===this.selected.length)||!(this.selected.length=this.attrs.limits.min.primary&&e>=this.attrs.limits.min.secondary},n.addTag=function(t){if(t&&this.attrs.canSelect(t)){if(this.attrs.onSelect&&this.attrs.onSelect(t,this.selected),this.attrs.requireParentTag){var e=t.parent();e&&!this.selected.includes(e)&&this.selected.push(e)}this.selected.includes(t)||this.selected.push(t)}},n.removeTag=function(t){var e=this.selected.indexOf(t);-1!==e&&(this.selected.splice(e,1),this.attrs.requireParentTag&&this.selected.filter((function(e){return e.parent()===t})).forEach(this.removeTag.bind(this)),this.attrs.onDeselect&&this.attrs.onDeselect(t,this.selected))},n.toggleTag=function(t){this.tags&&(this.selected.includes(t)?this.removeTag(t):this.addTag(t),this.filter()&&(this.filter(""),this.indexTag=this.tags[0]),this.onready())},n.getInstruction=function(t,e){if(this.bypassReqs)return"";if(t li")},n.getCurrentNumericIndex=function(){return this.indexTag?this.selectableItems().index(this.getItem(this.indexTag)):-1},n.getItem=function(t){return this.selectableItems().filter('[data-index="'+t.id()+'"]')},n.setIndex=function(t,e){var n=this.selectableItems(),r=n.parent();t<0?t=n.length-1:t>=n.length&&(t=0);var a=n.eq(t);if(this.indexTag=l().store.getById("tags",a.attr("data-index")),m.redraw(),e&&this.indexTag){var o,s=r.scrollTop(),i=r.offset().top,c=i+r.outerHeight(),u=a.offset().top,d=u+a.outerHeight();uc&&(o=s-c+d+parseInt(r.css("padding-bottom"),10)),void 0!==o&&r.stop(!0).animate({scrollTop:o},100)}},e}(yt()),Nt=function(t){function e(){return t.apply(this,arguments)||this}return T(e,t),e.initAttrs=function(e){var n;t.initAttrs.call(this,e);var r=e.discussion?a().translator.trans("flarum-tags.forum.choose_tags.edit_title",{title:m("em",null,e.discussion.title())}):a().translator.trans("flarum-tags.forum.choose_tags.title");e.className=N()(e.className,"TagDiscussionModal"),e.title=mt()(r),e.allowResetting=!!a().forum.attribute("canBypassTagCounts"),e.limits={allowBypassing:e.allowResetting,max:{primary:a().forum.attribute("minPrimaryTags"),secondary:a().forum.attribute("maxSecondaryTags")},min:{primary:a().forum.attribute("maxPrimaryTags"),secondary:a().forum.attribute("minSecondaryTags")}},e.requireParentTag=!0,e.selectableTags=function(){return dt(e.discussion)},null!=e.selectedTags||(e.selectedTags=(null==(n=e.discussion)?void 0:n.tags())||[]),e.canSelect=function(t){return t.canStartDiscussion()};var o=e.onsubmit||null;e.onsubmit=function(t){var n=e.discussion;n&&n.save({relationships:{tags:t}}).then((function(){a().current.matches(lt())&&a().current.get("stream").update(),m.redraw()})),o&&o(t)}},e}(_t);function Lt(){(0,d.extend)(ot(),"moderationControls",(function(t,e){e.canTag()&&t.add("tags",m(it(),{icon:"fas fa-tag",onclick:function(){return app.modal.show(Nt,{discussion:e})}},app.translator.trans("flarum-tags.forum.discussion_controls.edit_tags_button")))}))}const St=flarum.core.compat["forum/components/DiscussionComposer"];var Pt=n.n(St);function It(){(0,d.extend)(p().prototype,"newDiscussionAction",(function(t){var e=this.currentTag();if(e){var n=e.parent(),r=n?[n,e]:[e];t.then((function(t){return t.fields.tags=r}))}else app.composer.fields.tags=[]})),(0,d.extend)(Pt().prototype,"oninit",(function(){app.tagList.load(["parent"]).then((function(){return m.redraw()}))})),Pt().prototype.chooseTags=function(){var t=this;dt().length&&app.modal.show(Nt,{selectedTags:(this.composer.fields.tags||[]).slice(0),onsubmit:function(e){t.composer.fields.tags=e,t.$("textarea").focus()}})},(0,d.extend)(Pt().prototype,"headerItems",(function(t){var e=this.composer.fields.tags||[],n=dt();t.add("tags",m("a",{className:N()(["DiscussionComposer-changeTags",!n.length&&"disabled"]),onclick:this.chooseTags.bind(this)},e.length?nt(e):m("span",{className:"TagLabel untagged"},app.translator.trans("flarum-tags.forum.composer_discussion.choose_tags_link"))),10)})),(0,d.override)(Pt().prototype,"onsubmit",(function(t){var e=this,n=this.composer.fields.tags||[],r=n.filter((function(t){return null!==t.position()&&!t.isChild()})),a=n.filter((function(t){return null===t.position()})),o=dt(),s=parseInt(app.forum.attribute("minPrimaryTags")),i=parseInt(app.forum.attribute("minSecondaryTags")),c=parseInt(app.forum.attribute("maxPrimaryTags")),l=parseInt(app.forum.attribute("maxSecondaryTags"));(!n.length&&0!==c&&0!==l||r.length{var r=n(75).default;function a(){"use strict";t.exports=a=function(){return e},t.exports.__esModule=!0,t.exports.default=t.exports;var e={},n=Object.prototype,o=n.hasOwnProperty,s=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},c=i.iterator||"@@iterator",l=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function m(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{m({},"")}catch(t){m=function(t,e,n){return t[e]=n}}function d(t,e,n,r){var a=e&&e.prototype instanceof h?e:h,o=Object.create(a.prototype),i=new I(r||[]);return s(o,"_invoke",{value:N(t,n,i)}),o}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=d;var p={};function h(){}function g(){}function v(){}var y={};m(y,c,(function(){return this}));var b=Object.getPrototypeOf,T=b&&b(b(C([])));T&&T!==n&&o.call(T,c)&&(y=T);var x=v.prototype=h.prototype=Object.create(y);function w(t){["next","throw","return"].forEach((function(e){m(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){function n(a,s,i,c){var l=f(t[a],t,s);if("throw"!==l.type){var u=l.arg,m=u.value;return m&&"object"==r(m)&&o.call(m,"__await")?e.resolve(m.__await).then((function(t){n("next",t,i,c)}),(function(t){n("throw",t,i,c)})):e.resolve(m).then((function(t){u.value=t,i(u)}),(function(t){return n("throw",t,i,c)}))}c(l.arg)}var a;s(this,"_invoke",{value:function(t,r){function o(){return new e((function(e,a){n(t,r,e,a)}))}return a=a?a.then(o,o):o()}})}function N(t,e,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return{value:void 0,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var i=L(s,n);if(i){if(i===p)continue;return i}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=f(t,e,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function L(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method))return p;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var r=f(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,p;var a=r.arg;return a?a.done?(e[t.resultName]=a.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function S(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function C(t){if(t){var e=t[c];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,r=function e(){for(;++n=0;--r){var a=this.tryEntries[r],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(i&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var a=r.arg;P(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:C(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),p}},e}t.exports=a,t.exports.__esModule=!0,t.exports.default=t.exports},75:t=>{function e(n){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(n)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},507:(t,e,n)=>{var r=n(440)();t.exports=r;try{regeneratorRuntime=r}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}}},e={};function n(r){var a=e[r];if(void 0!==a)return a.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{extend:()=>a.l});var t=n(810),e={};for(const n in t)"default"!==n&&(e[n]=()=>t[n]);n.d(r,e);var a=n(990)})(),module.exports=r})(); +(()=>{var t={810:()=>{},990:(t,e,n)=>{"use strict";n.d(e,{l:()=>Ft});const r=flarum.core.compat["forum/app"];var a=n.n(r);function o(t,e,n,r,a,o,s){try{var i=t[o](s),c=i.value}catch(t){return void n(t)}i.done?e(c):Promise.resolve(c).then(r,a)}var s=n(507),i=n.n(s);const c=flarum.core.compat["common/app"];var l=n.n(c),u=function(){function t(){this.loadedIncludes=new Set}return t.prototype.load=function(){var t,e=(t=i().mark((function t(e){var n,r=this;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(void 0===e&&(e=[]),0!==(n=e.filter((function(t){return!r.loadedIncludes.has(t)}))).length){t.next=4;break}return t.abrupt("return",Promise.resolve(l().store.all("tags")));case 4:return t.abrupt("return",l().store.find("tags",{include:n.join(",")}).then((function(t){return n.forEach((function(t){return r.loadedIncludes.add(t)})),t})));case 5:case"end":return t.stop()}}),t)})),function(){var e=this,n=arguments;return new Promise((function(r,a){var s=t.apply(e,n);function i(t){o(s,r,a,i,c,"next",t)}function c(t){o(s,r,a,i,c,"throw",t)}i(void 0)}))});return function(t){return e.apply(this,arguments)}}(),t}();const d=flarum.core.compat["common/extend"],f=flarum.core.compat["forum/components/IndexPage"];var p=n.n(f);const h=flarum.core.compat["common/components/Separator"];var g=n.n(h);const v=flarum.core.compat["common/components/LinkButton"];var y=n.n(v);function b(t,e){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},b(t,e)}function T(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,b(t,e)}const x=flarum.core.compat["common/components/Link"];var w=n.n(x);const _=flarum.core.compat["common/utils/classList"];var N=n.n(_);function L(t,e,n){void 0===e&&(e={}),void 0===n&&(n={});var r=t&&t.icon(),a=n.useColor,o=void 0===a||a;return e.className=N()([e.className,"icon",r?t.icon():"TagIcon"]),t&&o?(e.style=e.style||{},e.style["--color"]=t.color(),r&&(e.style.color=t.color())):t||(e.className+=" untagged"),r?m("i",e):m("span",e)}var S=function(t){function e(){return t.apply(this,arguments)||this}return T(e,t),e.prototype.view=function(t){var e=this.attrs.model,n=(this.constructor.isActive(this.attrs),e&&e.description()),r=N()(["TagLinkButton","hasIcon",this.attrs.className,e.isChild()&&"child"]);return m(w(),{className:r,href:this.attrs.route,style:e?{"--color":e.color()}:"",title:n||""},L(e,{className:"Button-icon"}),m("span",{className:"Button-label"},e?e.name():app.translator.trans("flarum-tags.forum.index.untagged_link")))},e.initAttrs=function(e){t.initAttrs.call(this,e);var n=e.model;e.params.tags=n?n.slug():"untagged",e.route=app.route("tag",e.params)},e}(y());const P=flarum.core.compat["common/components/Page"];var I=n.n(P);const C=flarum.core.compat["common/components/LoadingIndicator"];var k=n.n(C);const D=flarum.core.compat["common/helpers/listItems"];var E=n.n(D);const O=flarum.core.compat["common/helpers/humanTime"];var A=n.n(O);const M=flarum.core.compat["common/helpers/textContrastClass"];var R=n.n(M);const j=flarum.core.compat["common/utils/extract"];var q=n.n(j);function B(t,e){void 0===e&&(e={}),e.style=e.style||{},e.className="TagLabel "+(e.className||"");var n=q()(e,"link"),r=t?t.name():app.translator.trans("flarum-tags.lib.deleted_tag_text");if(t){var a=t.color();a&&(e.style["--tag-bg"]=a,e.className=N()(e.className,"colored",R()(a))),n&&(e.title=t.description()||"",e.href=app.route("tag",{tags:t.slug()})),t.isChild()&&(e.className+=" TagLabel--child")}else e.className+=" untagged";return m(n?w():"span",e,m("span",{className:"TagLabel-text"},t&&t.icon()&&L(t,{},{useColor:!1})," ",r))}function H(t){return t.slice(0).sort((function(t,e){var n=t.position(),r=e.position();if(null===n&&null===r)return e.discussionCount()-t.discussionCount();if(null===r)return-1;if(null===n)return 1;var a=t.parent(),o=e.parent();return a===o?n-r:a&&o?a.position()-o.position():a?a===e?1:a.position()-r:o?o===t?-1:n-o.position():0}))}var F=function(t){function e(){return t.apply(this,arguments)||this}T(e,t);var n=e.prototype;return n.oninit=function(e){var n=this;t.prototype.oninit.call(this,e),app.history.push("tags",app.translator.trans("flarum-tags.forum.header.back_to_tags_tooltip")),this.tags=[];var r=app.preloadedApiDocument();r?this.tags=H(r.filter((function(t){return!t.isChild()}))):(this.loading=!0,app.tagList.load(["children","lastPostedDiscussion","parent"]).then((function(){n.tags=H(app.store.all("tags").filter((function(t){return!t.isChild()}))),n.loading=!1,m.redraw()})))},n.view=function(){if(this.loading)return m(k(),null);var t=this.tags.filter((function(t){return null!==t.position()})),e=this.tags.filter((function(t){return null===t.position()}));return m("div",{className:"TagsPage"},p().prototype.hero(),m("div",{className:"container"},m("nav",{className:"TagsPage-nav IndexPage-nav sideNav"},m("ul",null,E()(p().prototype.sidebarItems().toArray()))),m("div",{className:"TagsPage-content sideNavOffset"},m("ul",{className:"TagTiles"},t.map((function(t){var e=t.lastPostedDiscussion(),n=H(t.children()||[]);return m("li",{className:N()("TagTile",{colored:t.color()},R()(t.color())),style:{"--tag-bg":t.color()}},m(w(),{className:"TagTile-info",href:app.route.tag(t)},t.icon()&&L(t,{},{useColor:!1}),m("h3",{className:"TagTile-name"},t.name()),m("p",{className:"TagTile-description"},t.description()),n?m("div",{className:"TagTile-children"},n.map((function(t){return[m(w(),{href:app.route.tag(t)},t.name())," "]}))):""),e?m(w(),{className:"TagTile-lastPostedDiscussion",href:app.route.discussion(e,e.lastPostNumber())},m("span",{className:"TagTile-lastPostedDiscussion-title"},e.title()),A()(e.lastPostedAt())):m("span",{className:"TagTile-lastPostedDiscussion"}))}))),e.length?m("div",{className:"TagCloud"},e.map((function(t){return[B(t,{link:!0})," "]}))):"")))},n.oncreate=function(e){t.prototype.oncreate.call(this,e),app.setTitle(app.translator.trans("flarum-tags.forum.all_tags.meta_title_text")),app.setTitleCount(0)},e}(I());function G(){(0,d.extend)(p().prototype,"navItems",(function(t){if(t.add("tags",m(y(),{icon:"fas fa-th-large",href:app.route("tags")},app.translator.trans("flarum-tags.forum.index.tags_link")),-10),!app.current.matches(F)){t.add("separator",g().component(),-12);var e=app.search.stickyParams(),n=app.store.all("tags"),r=this.currentTag(),a=function(n){var a=r===n;!a&&r&&(a=r.parent()===n),t.add("tag"+n.id(),S.component({model:n,params:e,active:a},null==n?void 0:n.name()),-14)};H(n).filter((function(t){return null!==t.position()&&(!t.isChild()||r&&(t.parent()===r||t.parent()===r.parent()))})).forEach(a);var o=n.filter((function(t){return null===t.position()})).sort((function(t,e){return e.discussionCount()-t.discussionCount()}));o.splice(0,3).forEach(a),o.length&&t.add("moreTags",m(y(),{href:app.route("tags")},app.translator.trans("flarum-tags.forum.index.more_link")),-16)}}))}const K=flarum.core.compat["forum/states/DiscussionListState"];var $=n.n(K);const U=flarum.core.compat["forum/states/GlobalSearchState"];var Y=n.n(U);const z=flarum.core.compat["common/Component"];var J=n.n(z),Q=function(t){function e(){return t.apply(this,arguments)||this}return T(e,t),e.prototype.view=function(){var t=this.attrs.model,e=t.color();return m("header",{className:N()("Hero","TagHero",{"TagHero--colored":e},R()(e)),style:e?{"--hero-bg":e}:""},m("div",{className:"container"},m("div",{className:"containerNarrow"},m("h1",{className:"Hero-title"},t.icon()&&L(t,{},{useColor:!1})," ",t.name()),m("div",{className:"Hero-subtitle"},t.description()))))},e}(J()),V=function(t){return a().store.all("tags").find((function(e){return 0===e.slug().localeCompare(t,void 0,{sensitivity:"base"})}))};function W(){p().prototype.currentTag=function(){var t=this;if(this.currentActiveTag)return this.currentActiveTag;var e=a().search.params().tags,n=null;if(e&&(n=V(e)),e&&!n||n&&!n.isChild()&&!n.children()){if(this.currentTagLoading)return;this.currentTagLoading=!0,a().store.find("tags",e,{include:"children,children.parent,parent,state"}).then((function(){t.currentActiveTag=V(e),m.redraw()})).finally((function(){t.currentTagLoading=!1}))}return n?(this.currentActiveTag=n,this.currentActiveTag):void 0},(0,d.override)(p().prototype,"hero",(function(t){var e=this.currentTag();return e?m(Q,{model:e}):t()})),(0,d.extend)(p().prototype,"view",(function(t){var e=this.currentTag();e&&(t.attrs.className+=" IndexPage--tag"+e.id())})),(0,d.extend)(p().prototype,"setTitle",(function(){var t=this.currentTag();t&&a().setTitle(t.name())})),(0,d.extend)(p().prototype,"sidebarItems",(function(t){var e=this.currentTag();if(e){var n=e.color(),r=e.canStartDiscussion()||!a().session.user,o=t.get("newDiscussion");n&&(o.attrs.className=N()([o.attrs.className,"Button--tagColored",R()(n)]),o.attrs.style={"--color":n}),o.attrs.disabled=!r,o.children=a().translator.trans(r?"core.forum.index.start_discussion_button":"core.forum.index.cannot_start_discussion_button")}})),(0,d.extend)(Y().prototype,"params",(function(t){t.tags=m.route.param("tags")})),(0,d.extend)($().prototype,"requestParams",(function(t){var e;if("string"==typeof t.include?t.include=[t.include]:null==(e=t.include)||e.push("tags","tags.parent"),this.params.tags){var n,r=null!=(n=t.filter)?n:{};r.tag=this.params.tags;var a=r.q;a&&(r.q=a+" tag:"+this.params.tags),t.filter=r}}))}const X=flarum.core.compat["forum/components/DiscussionListItem"];var Z=n.n(X);const tt=flarum.core.compat["forum/components/DiscussionHero"];var et=n.n(tt);function nt(t,e){void 0===e&&(e={});var n=[],r=q()(e,"link");return e.className="TagsLabel "+(e.className||""),t?H(t).forEach((function(e){(e||1===t.length)&&n.push(B(e,{link:r}))})):n.push(B()),m("span",e,n)}function rt(){(0,d.extend)(Z().prototype,"infoItems",(function(t){var e=this.attrs.discussion.tags();e&&e.length&&t.add("tags",nt(e),10)})),(0,d.extend)(et().prototype,"view",(function(t){var e=H(this.attrs.discussion.tags());if(e&&e.length){var n=e[0].color();n&&(t.attrs.style={"--hero-bg":n},t.attrs.className=N()(t.attrs.className,"DiscussionHero--colored",R()(n)))}})),(0,d.extend)(et().prototype,"items",(function(t){var e=this.attrs.discussion.tags();e&&e.length&&t.add("tags",nt(e,{link:!0}),5)}))}const at=flarum.core.compat["forum/utils/DiscussionControls"];var ot=n.n(at);const st=flarum.core.compat["common/components/Button"];var it=n.n(st);const ct=flarum.core.compat["forum/components/DiscussionPage"];var lt=n.n(ct);const ut=flarum.core.compat["common/utils/extractText"];var mt=n.n(ut);function dt(t){var e=app.store.all("tags");return t?e.filter((function(e){return e.canAddToDiscussion()||-1!==t.tags().indexOf(e)})):e.filter((function(t){return t.canStartDiscussion()}))}const ft=flarum.core.compat["common/helpers/highlight"];var pt=n.n(ft);const ht=flarum.core.compat["common/utils/KeyboardNavigatable"];var gt=n.n(ht);const vt=flarum.core.compat["common/components/Modal"];var yt=n.n(vt);const bt=flarum.core.compat["common/utils/Stream"];var Tt=n.n(bt),xt=["className","isToggled"],wt=function(t){function e(){return t.apply(this,arguments)||this}return T(e,t),e.prototype.view=function(t){var e=this.attrs,n=e.className,r=e.isToggled,a=function(t,e){if(null==t)return{};var n,r,a={},o=Object.keys(t);for(r=0;r=0||(a[n]=t[n]);return a}(e,xt),o=r?"far fa-check-circle":"far fa-circle";return m(it(),Object.assign({},a,{icon:o,className:N()([n,r&&"Button--toggled"])}),t.children)},e}(J()),_t=function(t){function e(){for(var e,n=arguments.length,r=new Array(n),a=0;at.max.primary)throw new Error("The minimum number of primary tags allowed cannot be more than the maximum number of primary tags allowed.");if(t.min.secondary>t.max.secondary)throw new Error("The minimum number of secondary tags allowed cannot be more than the maximum number of secondary tags allowed.");if(t.min.total>t.max.primary+t.max.secondary)throw new Error("The minimum number of tags allowed cannot be more than the maximum number of primary and secondary tags allowed together.");if(t.max.totalt.max.total)throw new Error("The minimum number of tags allowed cannot be more than the maximum number of tags allowed.")}(e.limits)};var n=e.prototype;return n.oninit=function(e){var n=this;t.prototype.oninit.call(this,e),this.navigator.onUp((function(){return n.setIndex(n.getCurrentNumericIndex()-1,!0)})).onDown((function(){return n.setIndex(n.getCurrentNumericIndex()+1,!0)})).onSelect(this.select.bind(this)).onRemove((function(){return n.selected.splice(n.selected.length-1,1)})),l().tagList.load(["parent"]).then((function(t){n.loading=!1,n.attrs.selectableTags&&(t=n.attrs.selectableTags(t)),n.tags=H(t),n.attrs.selectedTags&&n.attrs.selectedTags.map(n.addTag.bind(n)),n.indexTag=t[0],m.redraw()}))},n.className=function(){return N()("TagSelectionModal",this.attrs.className)},n.title=function(){return this.attrs.title},n.content=function(){var t=this;if(this.loading||!this.tags)return m(k(),null);var e=this.filter().toLowerCase(),n=this.primaryCount(),r=this.secondaryCount(),a=this.getFilteredTags(),o=Math.max(mt()(this.getInstruction(n,r)).length,this.filter().length);return[m("div",{className:"Modal-body"},m("div",{className:"TagSelectionModal-form"},m("div",{className:"TagSelectionModal-form-input"},m("div",{className:"TagsInput FormControl "+(this.focused?"focus":""),onclick:function(){return t.$(".TagsInput input").focus()}},m("span",{className:"TagsInput-selected"},this.selected.map((function(e){return m("span",{className:"TagsInput-tag",onclick:function(){t.removeTag(e),t.onready()}},B(e))}))),m("input",{className:"FormControl",placeholder:mt()(this.getInstruction(n,r)),bidi:this.filter,style:{width:o+"ch"},onkeydown:this.navigator.navigate.bind(this.navigator),onfocus:function(){return t.focused=!0},onblur:function(){return t.focused=!1}}))),m("div",{className:"TagSelectionModal-form-submit App-primaryControl"},m(it(),{type:"submit",className:"Button Button--primary",disabled:!this.meetsRequirements(n,r),icon:"fas fa-check"},l().translator.trans("flarum-tags.lib.tag_selection_modal.submit_button"))))),m("div",{className:"Modal-footer"},m("ul",{className:"TagSelectionModal-list SelectTagList"},a.map((function(n){return m("li",{"data-index":n.id(),className:N()({pinned:null!==n.position(),child:!!n.parent(),colored:!!n.color(),selected:t.selected.includes(n),active:t.indexTag===n}),style:{color:n.color()},onmouseover:function(){return t.indexTag=n},onclick:t.toggleTag.bind(t,n)},L(n),m("span",{className:"SelectTagListItem-name"},pt()(n.name(),e)),n.description()?m("span",{className:"SelectTagListItem-description"},n.description()):"")}))),this.attrs.limits.allowBypassing&&m("div",{className:"TagSelectionModal-controls"},m(wt,{className:"Button",onclick:function(){return t.bypassReqs=!t.bypassReqs},isToggled:this.bypassReqs},l().translator.trans("flarum-tags.lib.tag_selection_modal.bypass_requirements"))))]},n.getFilteredTags=function(){var t=this,e=this.filter().toLowerCase(),n=this.primaryCount(),r=this.secondaryCount(),a=this.tags;return this.attrs.requireParentTag&&(a=a.filter((function(e){var n=e.parent();return null!==n&&(!1===n||t.selected.includes(n))}))),this.bypassReqs||(this.selected.length>=this.attrs.limits.max.total?a=a.filter((function(e){return t.selected.includes(e)})):(n>=this.attrs.limits.max.primary&&(a=a.filter((function(e){return!e.isPrimary()||t.selected.includes(e)}))),r>=this.attrs.limits.max.secondary&&(a=a.filter((function(e){return e.isPrimary()||t.selected.includes(e)}))))),e&&(a=a.filter((function(t){return t.name().substring(0,e.length).toLowerCase()===e}))),this.indexTag&&a.includes(this.indexTag)||(this.indexTag=a[0]),a},n.primaryCount=function(){return this.selected.filter((function(t){return t.isPrimary()})).length},n.secondaryCount=function(){return this.selected.filter((function(t){return!t.isPrimary()})).length},n.meetsRequirements=function(t,e){return!!(this.bypassReqs||this.attrs.allowResetting&&0===this.selected.length)||!(this.selected.length=this.attrs.limits.min.primary&&e>=this.attrs.limits.min.secondary},n.addTag=function(t){if(t&&this.attrs.canSelect(t)){if(this.attrs.onSelect&&this.attrs.onSelect(t,this.selected),this.attrs.requireParentTag){var e=t.parent();e&&!this.selected.includes(e)&&this.selected.push(e)}this.selected.includes(t)||this.selected.push(t)}},n.removeTag=function(t){var e=this.selected.indexOf(t);-1!==e&&(this.selected.splice(e,1),this.attrs.requireParentTag&&this.selected.filter((function(e){return e.parent()===t})).forEach(this.removeTag.bind(this)),this.attrs.onDeselect&&this.attrs.onDeselect(t,this.selected))},n.toggleTag=function(t){this.tags&&(this.selected.includes(t)?this.removeTag(t):this.addTag(t),this.filter()&&(this.filter(""),this.indexTag=this.tags[0]),this.onready())},n.getInstruction=function(t,e){if(this.bypassReqs)return"";if(t li")},n.getCurrentNumericIndex=function(){return this.indexTag?this.selectableItems().index(this.getItem(this.indexTag)):-1},n.getItem=function(t){return this.selectableItems().filter('[data-index="'+t.id()+'"]')},n.setIndex=function(t,e){var n=this.selectableItems(),r=n.parent();t<0?t=n.length-1:t>=n.length&&(t=0);var a=n.eq(t);if(this.indexTag=l().store.getById("tags",a.attr("data-index")),m.redraw(),e&&this.indexTag){var o,s=r.scrollTop(),i=r.offset().top,c=i+r.outerHeight(),u=a.offset().top,d=u+a.outerHeight();uc&&(o=s-c+d+parseInt(r.css("padding-bottom"),10)),void 0!==o&&r.stop(!0).animate({scrollTop:o},100)}},e}(yt()),Nt=function(t){function e(){return t.apply(this,arguments)||this}return T(e,t),e.initAttrs=function(e){var n;t.initAttrs.call(this,e);var r=e.discussion?a().translator.trans("flarum-tags.forum.choose_tags.edit_title",{title:m("em",null,e.discussion.title())}):a().translator.trans("flarum-tags.forum.choose_tags.title");e.className=N()(e.className,"TagDiscussionModal"),e.title=mt()(r),e.allowResetting=!!a().forum.attribute("canBypassTagCounts"),e.limits={allowBypassing:e.allowResetting,max:{primary:a().forum.attribute("minPrimaryTags"),secondary:a().forum.attribute("maxSecondaryTags")},min:{primary:a().forum.attribute("maxPrimaryTags"),secondary:a().forum.attribute("minSecondaryTags")}},e.requireParentTag=!0,e.selectableTags=function(){return dt(e.discussion)},null!=e.selectedTags||(e.selectedTags=(null==(n=e.discussion)?void 0:n.tags())||[]),e.canSelect=function(t){return t.canStartDiscussion()};var o=e.onsubmit||null;e.onsubmit=function(t){var n=e.discussion;n&&n.save({relationships:{tags:t}}).then((function(){a().current.matches(lt())&&a().current.get("stream").update(),m.redraw()})),o&&o(t)}},e}(_t);function Lt(){(0,d.extend)(ot(),"moderationControls",(function(t,e){e.canTag()&&t.add("tags",m(it(),{icon:"fas fa-tag",onclick:function(){return app.modal.show(Nt,{discussion:e})}},app.translator.trans("flarum-tags.forum.discussion_controls.edit_tags_button")))}))}const St=flarum.core.compat["forum/components/DiscussionComposer"];var Pt=n.n(St);function It(){(0,d.extend)(p().prototype,"newDiscussionAction",(function(t){var e=this.currentTag();if(e){var n=e.parent(),r=n?[n,e]:[e];t.then((function(t){return t.fields.tags=r}))}else app.composer.fields.tags=[]})),(0,d.extend)(Pt().prototype,"oninit",(function(){app.tagList.load(["parent"]).then((function(){return m.redraw()}))})),Pt().prototype.chooseTags=function(){var t=this;dt().length&&app.modal.show(Nt,{selectedTags:(this.composer.fields.tags||[]).slice(0),onsubmit:function(e){t.composer.fields.tags=e,t.$("textarea").focus()}})},(0,d.extend)(Pt().prototype,"headerItems",(function(t){var e=this.composer.fields.tags||[],n=dt();t.add("tags",m("a",{className:N()(["DiscussionComposer-changeTags",!n.length&&"disabled"]),onclick:this.chooseTags.bind(this)},e.length?nt(e):m("span",{className:"TagLabel untagged"},app.translator.trans("flarum-tags.forum.composer_discussion.choose_tags_link"))),10)})),(0,d.override)(Pt().prototype,"onsubmit",(function(t){var e=this,n=this.composer.fields.tags||[],r=n.filter((function(t){return null!==t.position()&&!t.isChild()})),a=n.filter((function(t){return null===t.position()})),o=dt(),s=parseInt(app.forum.attribute("minPrimaryTags")),i=parseInt(app.forum.attribute("minSecondaryTags")),c=parseInt(app.forum.attribute("maxPrimaryTags")),l=parseInt(app.forum.attribute("maxSecondaryTags"));(!n.length&&0!==c&&0!==l||r.length{var r=n(75).default;function a(){"use strict";t.exports=a=function(){return e},t.exports.__esModule=!0,t.exports.default=t.exports;var e={},n=Object.prototype,o=n.hasOwnProperty,s=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},c=i.iterator||"@@iterator",l=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function m(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{m({},"")}catch(t){m=function(t,e,n){return t[e]=n}}function d(t,e,n,r){var a=e&&e.prototype instanceof h?e:h,o=Object.create(a.prototype),i=new I(r||[]);return s(o,"_invoke",{value:N(t,n,i)}),o}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=d;var p={};function h(){}function g(){}function v(){}var y={};m(y,c,(function(){return this}));var b=Object.getPrototypeOf,T=b&&b(b(C([])));T&&T!==n&&o.call(T,c)&&(y=T);var x=v.prototype=h.prototype=Object.create(y);function w(t){["next","throw","return"].forEach((function(e){m(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){function n(a,s,i,c){var l=f(t[a],t,s);if("throw"!==l.type){var u=l.arg,m=u.value;return m&&"object"==r(m)&&o.call(m,"__await")?e.resolve(m.__await).then((function(t){n("next",t,i,c)}),(function(t){n("throw",t,i,c)})):e.resolve(m).then((function(t){u.value=t,i(u)}),(function(t){return n("throw",t,i,c)}))}c(l.arg)}var a;s(this,"_invoke",{value:function(t,r){function o(){return new e((function(e,a){n(t,r,e,a)}))}return a=a?a.then(o,o):o()}})}function N(t,e,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return{value:void 0,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var i=L(s,n);if(i){if(i===p)continue;return i}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=f(t,e,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function L(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method))return p;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var r=f(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,p;var a=r.arg;return a?a.done?(e[t.resultName]=a.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function S(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function C(t){if(t){var e=t[c];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,r=function e(){for(;++n=0;--r){var a=this.tryEntries[r],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(i&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var a=r.arg;P(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:C(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),p}},e}t.exports=a,t.exports.__esModule=!0,t.exports.default=t.exports},75:t=>{function e(n){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(n)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},507:(t,e,n)=>{var r=n(440)();t.exports=r;try{regeneratorRuntime=r}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}}},e={};function n(r){var a=e[r];if(void 0!==a)return a.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{extend:()=>a.l});var t=n(810),e={};for(const n in t)"default"!==n&&(e[n]=()=>t[n]);n.d(r,e);var a=n(990)})(),module.exports=r})(); //# sourceMappingURL=forum.js.map \ No newline at end of file diff --git a/extensions/tags/js/dist/forum.js.map b/extensions/tags/js/dist/forum.js.map index 2bd3f5398..2d3808497 100644 --- a/extensions/tags/js/dist/forum.js.map +++ b/extensions/tags/js/dist/forum.js.map @@ -1 +1 @@ -{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@flarum/tags/external root \"flarum.core.compat['forum/app']\"","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/app']\"","webpack://@flarum/tags/./src/common/states/TagListState.ts","webpack://@flarum/tags/external root \"flarum.core.compat['common/extend']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Separator']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Link']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@flarum/tags/./src/common/helpers/tagIcon.js","webpack://@flarum/tags/./src/forum/components/TagLinkButton.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Page']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/LoadingIndicator']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/helpers/listItems']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/helpers/textContrastClass']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/extract']\"","webpack://@flarum/tags/./src/common/helpers/tagLabel.js","webpack://@flarum/tags/./src/common/utils/sortTags.tsx","webpack://@flarum/tags/./src/forum/components/TagsPage.js","webpack://@flarum/tags/./src/forum/addTagList.js","webpack://@flarum/tags/external root \"flarum.core.compat['forum/states/DiscussionListState']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/states/GlobalSearchState']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/Component']\"","webpack://@flarum/tags/./src/forum/components/TagHero.js","webpack://@flarum/tags/./src/forum/addTagFilter.tsx","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/DiscussionListItem']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/DiscussionHero']\"","webpack://@flarum/tags/./src/common/helpers/tagsLabel.js","webpack://@flarum/tags/./src/forum/addTagLabels.js","webpack://@flarum/tags/external root \"flarum.core.compat['forum/utils/DiscussionControls']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Button']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/DiscussionPage']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@flarum/tags/./src/forum/utils/getSelectableTags.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/KeyboardNavigatable']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@flarum/tags/./src/forum/components/ToggleButton.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@flarum/tags/./src/common/components/TagSelectionModal.tsx","webpack://@flarum/tags/./src/forum/components/TagDiscussionModal.tsx","webpack://@flarum/tags/./src/forum/addTagControl.js","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/DiscussionComposer']\"","webpack://@flarum/tags/./src/forum/addTagComposer.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/extenders']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/models/Discussion']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/EventPost']\"","webpack://@flarum/tags/./src/forum/components/DiscussionTaggedPost.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/computed']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/Model']\"","webpack://@flarum/tags/./src/common/models/Tag.ts","webpack://@flarum/tags/./src/common/extend.ts","webpack://@flarum/tags/./src/forum/extend.ts","webpack://@flarum/tags/./src/common/compat.js","webpack://@flarum/tags/./src/forum/compat.js","webpack://@flarum/tags/external assign \"flarum.core\"","webpack://@flarum/tags/./src/forum/index.ts","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/typeof.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/regenerator/index.js","webpack://@flarum/tags/webpack/bootstrap","webpack://@flarum/tags/webpack/runtime/compat get default export","webpack://@flarum/tags/webpack/runtime/define property getters","webpack://@flarum/tags/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/tags/webpack/runtime/make namespace object"],"sourcesContent":["const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/app'];","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/app'];","import app from 'flarum/common/app';\nimport type Tag from '../../common/models/Tag';\n\nexport default class TagListState {\n loadedIncludes = new Set();\n\n async load(includes: string[] = []): Promise {\n const unloadedIncludes = includes.filter((include) => !this.loadedIncludes.has(include));\n\n if (unloadedIncludes.length === 0) {\n return Promise.resolve(app.store.all('tags'));\n }\n\n return app.store.find('tags', { include: unloadedIncludes.join(',') }).then((val) => {\n unloadedIncludes.forEach((include) => this.loadedIncludes.add(include));\n return val;\n });\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/IndexPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Separator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","import classList from 'flarum/common/utils/classList';\n\nexport default function tagIcon(tag, attrs = {}, settings = {}) {\n const hasIcon = tag && tag.icon();\n const { useColor = true } = settings;\n\n attrs.className = classList([attrs.className, 'icon', hasIcon ? tag.icon() : 'TagIcon']);\n\n if (tag && useColor) {\n attrs.style = attrs.style || {};\n attrs.style['--color'] = tag.color();\n\n if (hasIcon) {\n attrs.style.color = tag.color();\n }\n } else if (!tag) {\n attrs.className += ' untagged';\n }\n\n return hasIcon ? : ;\n}\n","import Link from 'flarum/common/components/Link';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport classList from 'flarum/common/utils/classList';\nimport tagIcon from '../../common/helpers/tagIcon';\n\nexport default class TagLinkButton extends LinkButton {\n view(vnode) {\n const tag = this.attrs.model;\n const active = this.constructor.isActive(this.attrs);\n const description = tag && tag.description();\n const className = classList(['TagLinkButton', 'hasIcon', this.attrs.className, tag.isChild() && 'child']);\n\n return (\n \n {tagIcon(tag, { className: 'Button-icon' })}\n {tag ? tag.name() : app.translator.trans('flarum-tags.forum.index.untagged_link')}\n \n );\n }\n\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n const tag = attrs.model;\n\n attrs.params.tags = tag ? tag.slug() : 'untagged';\n attrs.route = app.route('tag', attrs.params);\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Page'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LoadingIndicator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/listItems'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/textContrastClass'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extract'];","import extract from 'flarum/common/utils/extract';\nimport Link from 'flarum/common/components/Link';\nimport classList from 'flarum/common/utils/classList';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\nimport tagIcon from './tagIcon';\n\nexport default function tagLabel(tag, attrs = {}) {\n attrs.style = attrs.style || {};\n attrs.className = 'TagLabel ' + (attrs.className || '');\n\n const link = extract(attrs, 'link');\n const tagText = tag ? tag.name() : app.translator.trans('flarum-tags.lib.deleted_tag_text');\n\n if (tag) {\n const color = tag.color();\n if (color) {\n attrs.style['--tag-bg'] = color;\n attrs.className = classList(attrs.className, 'colored', textContrastClass(color));\n }\n\n if (link) {\n attrs.title = tag.description() || '';\n attrs.href = app.route('tag', { tags: tag.slug() });\n }\n\n if (tag.isChild()) {\n attrs.className += ' TagLabel--child';\n }\n } else {\n attrs.className += ' untagged';\n }\n\n return m(\n link ? Link : 'span',\n attrs,\n \n {tag && tag.icon() && tagIcon(tag, {}, { useColor: false })} {tagText}\n \n );\n}\n","import Tag from '../models/Tag';\n\nexport default function sortTags(tags: Tag[]) {\n return tags.slice(0).sort((a, b) => {\n const aPos = a.position();\n const bPos = b.position();\n\n // If they're both secondary tags, sort them by their discussions count,\n // descending.\n if (aPos === null && bPos === null) return b.discussionCount() - a.discussionCount();\n\n // If just one is a secondary tag, then the primary tag should\n // come first.\n if (bPos === null) return -1;\n if (aPos === null) return 1;\n\n // If we've made it this far, we know they're both primary tags. So we'll\n // need to see if they have parents.\n const aParent = a.parent();\n const bParent = b.parent();\n\n // If they both have the same parent, then their positions are local,\n // so we can compare them directly.\n if (aParent === bParent) return aPos - bPos;\n // If they are both child tags, then we will compare the positions of their\n // parents.\n else if (aParent && bParent) return aParent.position()! - bParent.position()!;\n // If we are comparing a child tag with its parent, then we let the parent\n // come first. If we are comparing an unrelated parent/child, then we\n // compare both of the parents.\n else if (aParent) return aParent === b ? 1 : aParent.position()! - bPos;\n else if (bParent) return bParent === a ? -1 : aPos - bParent.position()!;\n\n return 0;\n });\n}\n","import Page from 'flarum/common/components/Page';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Link from 'flarum/common/components/Link';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport listItems from 'flarum/common/helpers/listItems';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\nimport classList from 'flarum/common/utils/classList';\n\nimport tagIcon from '../../common/helpers/tagIcon';\nimport tagLabel from '../../common/helpers/tagLabel';\nimport sortTags from '../../common/utils/sortTags';\n\nexport default class TagsPage extends Page {\n oninit(vnode) {\n super.oninit(vnode);\n\n app.history.push('tags', app.translator.trans('flarum-tags.forum.header.back_to_tags_tooltip'));\n\n this.tags = [];\n\n const preloaded = app.preloadedApiDocument();\n\n if (preloaded) {\n this.tags = sortTags(preloaded.filter((tag) => !tag.isChild()));\n return;\n }\n\n this.loading = true;\n\n app.tagList.load(['children', 'lastPostedDiscussion', 'parent']).then(() => {\n this.tags = sortTags(app.store.all('tags').filter((tag) => !tag.isChild()));\n\n this.loading = false;\n\n m.redraw();\n });\n }\n\n view() {\n if (this.loading) {\n return ;\n }\n\n const pinned = this.tags.filter((tag) => tag.position() !== null);\n const cloud = this.tags.filter((tag) => tag.position() === null);\n\n return (\n
\n {IndexPage.prototype.hero()}\n
\n \n\n
\n
    \n {pinned.map((tag) => {\n const lastPostedDiscussion = tag.lastPostedDiscussion();\n const children = sortTags(tag.children() || []);\n\n return (\n
  • \n \n {tag.icon() && tagIcon(tag, {}, { useColor: false })}\n

    {tag.name()}

    \n

    {tag.description()}

    \n {children ? (\n
    \n {children.map((child) => [{child.name()}, ' '])}\n
    \n ) : (\n ''\n )}\n \n {lastPostedDiscussion ? (\n \n {lastPostedDiscussion.title()}\n {humanTime(lastPostedDiscussion.lastPostedAt())}\n \n ) : (\n \n )}\n
  • \n );\n })}\n
\n\n {cloud.length ?
{cloud.map((tag) => [tagLabel(tag, { link: true }), ' '])}
: ''}\n
\n
\n
\n );\n }\n\n oncreate(vnode) {\n super.oncreate(vnode);\n\n app.setTitle(app.translator.trans('flarum-tags.forum.all_tags.meta_title_text'));\n app.setTitleCount(0);\n }\n}\n","import { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Separator from 'flarum/common/components/Separator';\nimport LinkButton from 'flarum/common/components/LinkButton';\n\nimport TagLinkButton from './components/TagLinkButton';\nimport TagsPage from './components/TagsPage';\nimport sortTags from '../common/utils/sortTags';\n\nexport default function () {\n // Add a link to the tags page, as well as a list of all the tags,\n // to the index page's sidebar.\n extend(IndexPage.prototype, 'navItems', function (items) {\n items.add(\n 'tags',\n \n {app.translator.trans('flarum-tags.forum.index.tags_link')}\n ,\n -10\n );\n\n if (app.current.matches(TagsPage)) return;\n\n items.add('separator', Separator.component(), -12);\n\n const params = app.search.stickyParams();\n const tags = app.store.all('tags');\n const currentTag = this.currentTag();\n\n const addTag = (tag) => {\n let active = currentTag === tag;\n\n if (!active && currentTag) {\n active = currentTag.parent() === tag;\n }\n\n // tag.name() is passed here as children even though it isn't used directly\n // because when we need to get the active child in SelectDropdown, we need to\n // use its children to populate the dropdown. The problem here is that `view`\n // on TagLinkButton is only called AFTER SelectDropdown, so no children are available\n // for SelectDropdown to use at the time.\n items.add('tag' + tag.id(), TagLinkButton.component({ model: tag, params, active }, tag?.name()), -14);\n };\n\n sortTags(tags)\n .filter(\n (tag) => tag.position() !== null && (!tag.isChild() || (currentTag && (tag.parent() === currentTag || tag.parent() === currentTag.parent())))\n )\n .forEach(addTag);\n\n const more = tags.filter((tag) => tag.position() === null).sort((a, b) => b.discussionCount() - a.discussionCount());\n\n more.splice(0, 3).forEach(addTag);\n\n if (more.length) {\n items.add('moreTags', {app.translator.trans('flarum-tags.forum.index.more_link')}, -16);\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/GlobalSearchState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","import Component from 'flarum/common/Component';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\nimport tagIcon from '../../common/helpers/tagIcon';\nimport classList from 'flarum/common/utils/classList';\n\nexport default class TagHero extends Component {\n view() {\n const tag = this.attrs.model;\n const color = tag.color();\n\n return (\n \n
\n
\n

\n {tag.icon() && tagIcon(tag, {}, { useColor: false })} {tag.name()}\n

\n
{tag.description()}
\n
\n
\n \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport type Mithril from 'mithril';\nimport { extend, override } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport GlobalSearchState from 'flarum/forum/states/GlobalSearchState';\nimport classList from 'flarum/common/utils/classList';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\n\nimport TagHero from './components/TagHero';\nimport Tag from '../common/models/Tag';\nimport { ComponentAttrs } from 'flarum/common/Component';\n\nconst findTag = (slug: string) => app.store.all('tags').find((tag) => tag.slug().localeCompare(slug, undefined, { sensitivity: 'base' }) === 0);\n\nexport default function () {\n IndexPage.prototype.currentTag = function () {\n if (this.currentActiveTag) {\n return this.currentActiveTag;\n }\n\n const slug = app.search.params().tags;\n let tag = null;\n\n if (slug) {\n tag = findTag(slug);\n }\n\n if ((slug && !tag) || (tag && !tag.isChild() && !tag.children())) {\n if (this.currentTagLoading) {\n return;\n }\n\n this.currentTagLoading = true;\n\n // Unlike the backend, no need to fetch parent.children because if we're on\n // a child tag page, then either:\n // - We loaded in that child tag (and its siblings) in the API document\n // - We first navigated to the current tag's parent, which would have loaded in the current tag's siblings.\n app.store\n .find('tags', slug, { include: 'children,children.parent,parent,state' })\n .then(() => {\n this.currentActiveTag = findTag(slug);\n\n m.redraw();\n })\n .finally(() => {\n this.currentTagLoading = false;\n });\n }\n\n if (tag) {\n this.currentActiveTag = tag;\n return this.currentActiveTag;\n }\n\n return;\n };\n\n // If currently viewing a tag, insert a tag hero at the top of the view.\n override(IndexPage.prototype, 'hero', function (original) {\n const tag = this.currentTag();\n\n if (tag) return ;\n\n return original();\n });\n\n extend(IndexPage.prototype, 'view', function (vdom: Mithril.Vnode) {\n const tag = this.currentTag();\n\n if (tag) vdom.attrs.className += ' IndexPage--tag' + tag.id();\n });\n\n extend(IndexPage.prototype, 'setTitle', function () {\n const tag = this.currentTag();\n\n if (tag) {\n app.setTitle(tag.name());\n }\n });\n\n // If currently viewing a tag, restyle the 'new discussion' button to use\n // the tag's color, and disable if the user isn't allowed to edit.\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (tag) {\n const color = tag.color();\n const canStartDiscussion = tag.canStartDiscussion() || !app.session.user;\n const newDiscussion = items.get('newDiscussion') as Mithril.Vnode;\n\n if (color) {\n newDiscussion.attrs.className = classList([newDiscussion.attrs.className, 'Button--tagColored', textContrastClass(color)]);\n newDiscussion.attrs.style = { '--color': color };\n }\n\n newDiscussion.attrs.disabled = !canStartDiscussion;\n newDiscussion.children = app.translator.trans(\n canStartDiscussion ? 'core.forum.index.start_discussion_button' : 'core.forum.index.cannot_start_discussion_button'\n );\n }\n });\n\n // Add a parameter for the global search state to pass on to the\n // DiscussionListState that will let us filter discussions by tag.\n extend(GlobalSearchState.prototype, 'params', function (params) {\n params.tags = m.route.param('tags');\n });\n\n // Translate that parameter into a gambit appended to the search query.\n extend(DiscussionListState.prototype, 'requestParams', function (this: DiscussionListState, params) {\n if (typeof params.include === 'string') {\n params.include = [params.include];\n } else {\n params.include?.push('tags', 'tags.parent');\n }\n\n if (this.params.tags) {\n const filter = params.filter ?? {};\n filter.tag = this.params.tags;\n // TODO: replace this with a more robust system.\n const q = filter.q;\n if (q) {\n filter.q = `${q} tag:${this.params.tags}`;\n }\n params.filter = filter;\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionListItem'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionHero'];","import extract from 'flarum/common/utils/extract';\nimport tagLabel from './tagLabel';\nimport sortTags from '../utils/sortTags';\n\nexport default function tagsLabel(tags, attrs = {}) {\n const children = [];\n const link = extract(attrs, 'link');\n\n attrs.className = 'TagsLabel ' + (attrs.className || '');\n\n if (tags) {\n sortTags(tags).forEach((tag) => {\n if (tag || tags.length === 1) {\n children.push(tagLabel(tag, { link }));\n }\n });\n } else {\n children.push(tagLabel());\n }\n\n return {children};\n}\n","import { extend } from 'flarum/common/extend';\nimport DiscussionListItem from 'flarum/forum/components/DiscussionListItem';\nimport DiscussionHero from 'flarum/forum/components/DiscussionHero';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\nimport classList from 'flarum/common/utils/classList';\n\nimport tagsLabel from '../common/helpers/tagsLabel';\nimport sortTags from '../common/utils/sortTags';\n\nexport default function () {\n // Add tag labels to each discussion in the discussion list.\n extend(DiscussionListItem.prototype, 'infoItems', function (items) {\n const tags = this.attrs.discussion.tags();\n\n if (tags && tags.length) {\n items.add('tags', tagsLabel(tags), 10);\n }\n });\n\n // Restyle a discussion's hero to use its first tag's color.\n extend(DiscussionHero.prototype, 'view', function (view) {\n const tags = sortTags(this.attrs.discussion.tags());\n\n if (tags && tags.length) {\n const color = tags[0].color();\n if (color) {\n view.attrs.style = { '--hero-bg': color };\n view.attrs.className = classList(view.attrs.className, 'DiscussionHero--colored', textContrastClass(color));\n }\n }\n });\n\n // Add a list of a discussion's tags to the discussion hero, displayed\n // before the title. Put the title on its own line.\n extend(DiscussionHero.prototype, 'items', function (items) {\n const tags = this.attrs.discussion.tags();\n\n if (tags && tags.length) {\n items.add('tags', tagsLabel(tags, { link: true }), 5);\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/DiscussionControls'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","export default function getSelectableTags(discussion) {\n let tags = app.store.all('tags');\n\n if (discussion) {\n tags = tags.filter((tag) => tag.canAddToDiscussion() || discussion.tags().indexOf(tag) !== -1);\n } else {\n tags = tags.filter((tag) => tag.canStartDiscussion());\n }\n\n return tags;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/KeyboardNavigatable'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","import Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\n\n/**\n * @TODO move to core\n */\nexport default class ToggleButton extends Component {\n view(vnode) {\n const { className, isToggled, ...attrs } = this.attrs;\n const icon = isToggled ? 'far fa-check-circle' : 'far fa-circle';\n\n return (\n \n );\n }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import app from 'flarum/common/app';\nimport Button from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\nimport extractText from 'flarum/common/utils/extractText';\nimport highlight from 'flarum/common/helpers/highlight';\nimport KeyboardNavigatable from 'flarum/common/utils/KeyboardNavigatable';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Modal from 'flarum/common/components/Modal';\nimport Stream from 'flarum/common/utils/Stream';\n\nimport sortTags from '../utils/sortTags';\nimport tagLabel from '../helpers/tagLabel';\nimport tagIcon from '../helpers/tagIcon';\nimport ToggleButton from '../../forum/components/ToggleButton';\n\nimport type Tag from '../models/Tag';\nimport type { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport type Mithril from 'mithril';\n\nexport interface ITagSelectionModalLimits {\n /** Whether to allow bypassing the limits set here. This will show a toggle button to bypass limits. */\n allowBypassing?: boolean;\n /** Maximum number of primary/secondary tags allowed. */\n max?: {\n total?: number;\n primary?: number;\n secondary?: number;\n };\n /** Minimum number of primary/secondary tags to be selected. */\n min?: {\n total?: number;\n primary?: number;\n secondary?: number;\n };\n}\n\nexport interface ITagSelectionModalAttrs extends IInternalModalAttrs {\n /** Custom modal className to use. */\n className?: string;\n /** Modal title, defaults to 'Choose Tags'. */\n title?: string;\n /** Initial tag selection value. */\n selectedTags?: Tag[];\n /** Limits set based on minimum and maximum number of primary/secondary tags that can be selected. */\n limits?: ITagSelectionModalLimits;\n /** Whether to allow resetting the value. Defaults to true. */\n allowResetting?: boolean;\n /** Whether to require the parent tag of a selected tag to be selected as well. */\n requireParentTag?: boolean;\n /** Filter tags that can be selected. */\n selectableTags?: (tags: Tag[]) => Tag[];\n /** Whether a tag can be selected. */\n canSelect: (tag: Tag) => boolean;\n /** Callback for when a tag is selected. */\n onSelect?: (tag: Tag, selected: Tag[]) => void;\n /** Callback for when a tag is deselected. */\n onDeselect?: (tag: Tag, selected: Tag[]) => void;\n /** Callback for when the selection is submitted. */\n onsubmit?: (selected: Tag[]) => void;\n}\n\nexport type ITagSelectionModalState = undefined;\n\nexport default class TagSelectionModal<\n CustomAttrs extends ITagSelectionModalAttrs = ITagSelectionModalAttrs,\n CustomState extends ITagSelectionModalState = ITagSelectionModalState\n> extends Modal {\n protected loading = true;\n protected tags!: Tag[];\n protected selected: Tag[] = [];\n protected bypassReqs: boolean = false;\n\n protected filter = Stream('');\n protected focused = false;\n protected navigator = new KeyboardNavigatable();\n protected indexTag?: Tag;\n\n static initAttrs(attrs: ITagSelectionModalAttrs) {\n super.initAttrs(attrs);\n\n // Default values for optional attributes.\n attrs.title ||= extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.title'));\n attrs.canSelect ||= () => true;\n attrs.allowResetting ??= true;\n attrs.limits = {\n min: {\n total: attrs.limits?.min?.total ?? -Infinity,\n primary: attrs.limits?.min?.primary ?? -Infinity,\n secondary: attrs.limits?.min?.secondary ?? -Infinity,\n },\n max: {\n total: attrs.limits?.max?.total ?? Infinity,\n primary: attrs.limits?.max?.primary ?? Infinity,\n secondary: attrs.limits?.max?.secondary ?? Infinity,\n },\n };\n\n // Prevent illogical limits from being provided.\n catchInvalidLimits(attrs.limits);\n }\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.navigator\n .onUp(() => this.setIndex(this.getCurrentNumericIndex() - 1, true))\n .onDown(() => this.setIndex(this.getCurrentNumericIndex() + 1, true))\n .onSelect(this.select.bind(this))\n .onRemove(() => this.selected.splice(this.selected.length - 1, 1));\n\n app.tagList.load(['parent']).then((tags) => {\n this.loading = false;\n\n if (this.attrs.selectableTags) {\n tags = this.attrs.selectableTags(tags);\n }\n\n this.tags = sortTags(tags);\n\n if (this.attrs.selectedTags) {\n this.attrs.selectedTags.map(this.addTag.bind(this));\n }\n\n this.indexTag = tags[0];\n\n m.redraw();\n });\n }\n\n className() {\n return classList('TagSelectionModal', this.attrs.className);\n }\n\n title() {\n return this.attrs.title;\n }\n\n content() {\n if (this.loading || !this.tags) {\n return ;\n }\n\n const filter = this.filter().toLowerCase();\n const primaryCount = this.primaryCount();\n const secondaryCount = this.secondaryCount();\n const tags = this.getFilteredTags();\n\n const inputWidth = Math.max(extractText(this.getInstruction(primaryCount, secondaryCount)).length, this.filter().length);\n\n return [\n
\n
\n
\n
this.$('.TagsInput input').focus()}>\n \n {this.selected.map((tag) => (\n {\n this.removeTag(tag);\n this.onready();\n }}\n >\n {tagLabel(tag)}\n \n ))}\n \n (this.focused = true)}\n onblur={() => (this.focused = false)}\n />\n
\n
\n
\n \n {app.translator.trans('flarum-tags.lib.tag_selection_modal.submit_button')}\n \n
\n
\n
,\n\n
\n
    \n {tags.map((tag) => (\n (this.indexTag = tag)}\n onclick={this.toggleTag.bind(this, tag)}\n >\n {tagIcon(tag)}\n {highlight(tag.name(), filter)}\n {tag.description() ? {tag.description()} : ''}\n \n ))}\n
\n {this.attrs.limits!.allowBypassing && (\n
\n (this.bypassReqs = !this.bypassReqs)} isToggled={this.bypassReqs}>\n {app.translator.trans('flarum-tags.lib.tag_selection_modal.bypass_requirements')}\n \n
\n )}\n
,\n ];\n }\n\n /**\n * Filters the available tags on every state change.\n */\n private getFilteredTags(): Tag[] {\n const filter = this.filter().toLowerCase();\n const primaryCount = this.primaryCount();\n const secondaryCount = this.secondaryCount();\n let tags = this.tags;\n\n if (this.attrs.requireParentTag) {\n // Filter out all child tags whose parents have not been selected. This\n // makes it impossible to select a child if its parent hasn't been selected.\n tags = tags.filter((tag) => {\n const parent = tag.parent();\n return parent !== null && (parent === false || this.selected.includes(parent));\n });\n }\n\n if (!this.bypassReqs) {\n // If we reached the total maximum number of tags, we can't select anymore.\n if (this.selected.length >= this.attrs.limits!.max!.total!) {\n tags = tags.filter((tag) => this.selected.includes(tag));\n }\n // If the number of selected primary/secondary tags is at the maximum, then\n // we'll filter out all other tags of that type.\n else {\n if (primaryCount >= this.attrs.limits!.max!.primary!) {\n tags = tags.filter((tag) => !tag.isPrimary() || this.selected.includes(tag));\n }\n if (secondaryCount >= this.attrs.limits!.max!.secondary!) {\n tags = tags.filter((tag) => tag.isPrimary() || this.selected.includes(tag));\n }\n }\n }\n\n // If the user has entered text in the filter input, then filter by tags\n // whose name matches what they've entered.\n if (filter) {\n tags = tags.filter((tag) => tag.name().substring(0, filter.length).toLowerCase() === filter);\n }\n\n if (!this.indexTag || !tags.includes(this.indexTag)) this.indexTag = tags[0];\n\n return tags;\n }\n\n /**\n * Counts the number of selected primary tags.\n */\n protected primaryCount(): number {\n return this.selected.filter((tag) => tag.isPrimary()).length;\n }\n\n /**\n * Counts the number of selected secondary tags.\n */\n protected secondaryCount(): number {\n return this.selected.filter((tag) => !tag.isPrimary()).length;\n }\n\n /**\n * Validates the number of selected primary/secondary tags against the set min max limits.\n */\n protected meetsRequirements(primaryCount: number, secondaryCount: number) {\n if (this.bypassReqs || (this.attrs.allowResetting && this.selected.length === 0)) {\n return true;\n }\n\n if (this.selected.length < this.attrs.limits!.min!.total!) {\n return false;\n }\n\n return primaryCount >= this.attrs.limits!.min!.primary! && secondaryCount >= this.attrs.limits!.min!.secondary!;\n }\n\n /**\n * Add the given tag to the list of selected tags.\n */\n protected addTag(tag: Tag | undefined) {\n if (!tag || !this.attrs.canSelect(tag)) return;\n\n if (this.attrs.onSelect) {\n this.attrs.onSelect(tag, this.selected);\n }\n\n // If this tag has a parent, we'll also need to add the parent tag to the\n // selected list if it's not already in there.\n if (this.attrs.requireParentTag) {\n const parent = tag.parent();\n if (parent && !this.selected.includes(parent)) {\n this.selected.push(parent);\n }\n }\n\n if (!this.selected.includes(tag)) {\n this.selected.push(tag);\n }\n }\n\n /**\n * Remove the given tag from the list of selected tags.\n */\n protected removeTag(tag: Tag) {\n const index = this.selected.indexOf(tag);\n\n if (index !== -1) {\n this.selected.splice(index, 1);\n\n // Look through the list of selected tags for any tags which have the tag\n // we just removed as their parent. We'll need to remove them too.\n if (this.attrs.requireParentTag) {\n this.selected.filter((t) => t.parent() === tag).forEach(this.removeTag.bind(this));\n }\n\n if (this.attrs.onDeselect) {\n this.attrs.onDeselect(tag, this.selected);\n }\n }\n }\n\n protected toggleTag(tag: Tag) {\n // Won't happen, needed for type safety.\n if (!this.tags) return;\n\n if (this.selected.includes(tag)) {\n this.removeTag(tag);\n } else {\n this.addTag(tag);\n }\n\n if (this.filter()) {\n this.filter('');\n this.indexTag = this.tags[0];\n }\n\n this.onready();\n }\n\n /**\n * Gives human text instructions based on the current number of selected tags and set limits.\n */\n protected getInstruction(primaryCount: number, secondaryCount: number) {\n if (this.bypassReqs) {\n return '';\n }\n\n if (primaryCount < this.attrs.limits!.min!.primary!) {\n const remaining = this.attrs.limits!.min!.primary! - primaryCount;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_primary_placeholder', { count: remaining }));\n } else if (secondaryCount < this.attrs.limits!.min!.secondary!) {\n const remaining = this.attrs.limits!.min!.secondary! - secondaryCount;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_secondary_placeholder', { count: remaining }));\n } else if (this.selected.length < this.attrs.limits!.min!.total!) {\n const remaining = this.attrs.limits!.min!.total! - this.selected.length;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_tags_placeholder', { count: remaining }));\n }\n\n return '';\n }\n\n /**\n * Submit tag selection.\n */\n onsubmit(e: SubmitEvent) {\n e.preventDefault();\n\n if (this.attrs.onsubmit) this.attrs.onsubmit(this.selected);\n\n this.hide();\n }\n\n protected select(e: KeyboardEvent) {\n // Ctrl + Enter submits the selection, just Enter completes the current entry\n if (e.metaKey || e.ctrlKey || (this.indexTag && this.selected.includes(this.indexTag))) {\n if (this.selected.length) {\n // The DOM submit method doesn't emit a `submit event, so we\n // simulate a manual submission so our `onsubmit` logic is run.\n this.$('button[type=\"submit\"]').click();\n }\n } else if (this.indexTag) {\n this.getItem(this.indexTag)[0].dispatchEvent(new Event('click'));\n }\n }\n\n protected selectableItems() {\n return this.$('.TagSelectionModal-list > li');\n }\n\n protected getCurrentNumericIndex() {\n if (!this.indexTag) return -1;\n\n return this.selectableItems().index(this.getItem(this.indexTag));\n }\n\n protected getItem(selectedTag: Tag) {\n return this.selectableItems().filter(`[data-index=\"${selectedTag.id()}\"]`);\n }\n\n protected setIndex(index: number, scrollToItem: boolean) {\n const $items = this.selectableItems();\n const $dropdown = $items.parent();\n\n if (index < 0) {\n index = $items.length - 1;\n } else if (index >= $items.length) {\n index = 0;\n }\n\n const $item = $items.eq(index);\n\n this.indexTag = app.store.getById('tags', $item.attr('data-index')!);\n\n m.redraw();\n\n if (scrollToItem && this.indexTag) {\n const dropdownScroll = $dropdown.scrollTop()!;\n const dropdownTop = $dropdown.offset()!.top;\n const dropdownBottom = dropdownTop + $dropdown.outerHeight()!;\n const itemTop = $item.offset()!.top;\n const itemBottom = itemTop + $item.outerHeight()!;\n\n let scrollTop;\n if (itemTop < dropdownTop) {\n scrollTop = dropdownScroll - dropdownTop + itemTop - parseInt($dropdown.css('padding-top'), 10);\n } else if (itemBottom > dropdownBottom) {\n scrollTop = dropdownScroll - dropdownBottom + itemBottom + parseInt($dropdown.css('padding-bottom'), 10);\n }\n\n if (typeof scrollTop !== 'undefined') {\n $dropdown.stop(true).animate({ scrollTop }, 100);\n }\n }\n }\n}\n\n/**\n * Catch invalid limits provided to the tag selection modal.\n */\nfunction catchInvalidLimits(limits: ITagSelectionModalLimits) {\n if (limits.min!.primary! > limits.max!.primary!) {\n throw new Error('The minimum number of primary tags allowed cannot be more than the maximum number of primary tags allowed.');\n }\n\n if (limits.min!.secondary! > limits.max!.secondary!) {\n throw new Error('The minimum number of secondary tags allowed cannot be more than the maximum number of secondary tags allowed.');\n }\n\n if (limits.min!.total! > limits.max!.primary! + limits.max!.secondary!) {\n throw new Error('The minimum number of tags allowed cannot be more than the maximum number of primary and secondary tags allowed together.');\n }\n\n if (limits.max!.total! < limits.min!.primary! + limits.min!.secondary!) {\n throw new Error('The maximum number of tags allowed cannot be less than the minimum number of primary and secondary tags allowed together.');\n }\n\n if (limits.min!.total! > limits.max!.total!) {\n throw new Error('The minimum number of tags allowed cannot be more than the maximum number of tags allowed.');\n }\n}\n","import app from 'flarum/forum/app';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport classList from 'flarum/common/utils/classList';\nimport extractText from 'flarum/common/utils/extractText';\n\nimport getSelectableTags from '../utils/getSelectableTags';\nimport TagSelectionModal, { ITagSelectionModalAttrs } from '../../common/components/TagSelectionModal';\n\nimport type Discussion from 'flarum/common/models/Discussion';\nimport type Tag from '../../common/models/Tag';\n\nexport interface TagDiscussionModalAttrs extends ITagSelectionModalAttrs {\n discussion?: Discussion;\n}\n\nexport default class TagDiscussionModal extends TagSelectionModal {\n static initAttrs(attrs: TagDiscussionModalAttrs) {\n super.initAttrs(attrs);\n\n const title = attrs.discussion\n ? app.translator.trans('flarum-tags.forum.choose_tags.edit_title', { title: {attrs.discussion.title()} })\n : app.translator.trans('flarum-tags.forum.choose_tags.title');\n\n attrs.className = classList(attrs.className, 'TagDiscussionModal');\n attrs.title = extractText(title);\n attrs.allowResetting = !!app.forum.attribute('canBypassTagCounts');\n attrs.limits = {\n allowBypassing: attrs.allowResetting,\n max: {\n primary: app.forum.attribute('minPrimaryTags'),\n secondary: app.forum.attribute('maxSecondaryTags'),\n },\n min: {\n primary: app.forum.attribute('maxPrimaryTags'),\n secondary: app.forum.attribute('minSecondaryTags'),\n },\n };\n attrs.requireParentTag = true;\n attrs.selectableTags = () => getSelectableTags(attrs.discussion);\n attrs.selectedTags ??= (attrs.discussion?.tags() as Tag[]) || [];\n attrs.canSelect = (tag) => tag.canStartDiscussion();\n\n const suppliedOnsubmit = attrs.onsubmit || null;\n\n // Save changes.\n attrs.onsubmit = function (tags) {\n const discussion = attrs.discussion;\n\n if (discussion) {\n discussion.save({ relationships: { tags } }).then(() => {\n if (app.current.matches(DiscussionPage)) {\n app.current.get('stream').update();\n }\n\n m.redraw();\n });\n }\n\n if (suppliedOnsubmit) suppliedOnsubmit(tags);\n };\n }\n}\n","import { extend } from 'flarum/common/extend';\nimport DiscussionControls from 'flarum/forum/utils/DiscussionControls';\nimport Button from 'flarum/common/components/Button';\n\nimport TagDiscussionModal from './components/TagDiscussionModal';\n\nexport default function () {\n // Add a control allowing the discussion to be moved to another category.\n extend(DiscussionControls, 'moderationControls', function (items, discussion) {\n if (discussion.canTag()) {\n items.add(\n 'tags',\n \n );\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionComposer'];","import { extend, override } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport classList from 'flarum/common/utils/classList';\n\nimport TagDiscussionModal from './components/TagDiscussionModal';\nimport tagsLabel from '../common/helpers/tagsLabel';\nimport getSelectableTags from './utils/getSelectableTags';\n\nexport default function () {\n extend(IndexPage.prototype, 'newDiscussionAction', function (promise) {\n // From `addTagFilter\n const tag = this.currentTag();\n\n if (tag) {\n const parent = tag.parent();\n const tags = parent ? [parent, tag] : [tag];\n promise.then((composer) => (composer.fields.tags = tags));\n } else {\n app.composer.fields.tags = [];\n }\n });\n\n extend(DiscussionComposer.prototype, 'oninit', function () {\n app.tagList.load(['parent']).then(() => m.redraw());\n });\n\n // Add tag-selection abilities to the discussion composer.\n DiscussionComposer.prototype.chooseTags = function () {\n const selectableTags = getSelectableTags();\n\n if (!selectableTags.length) return;\n\n app.modal.show(TagDiscussionModal, {\n selectedTags: (this.composer.fields.tags || []).slice(0),\n onsubmit: (tags) => {\n this.composer.fields.tags = tags;\n this.$('textarea').focus();\n },\n });\n };\n\n // Add a tag-selection menu to the discussion composer's header, after the\n // title.\n extend(DiscussionComposer.prototype, 'headerItems', function (items) {\n const tags = this.composer.fields.tags || [];\n const selectableTags = getSelectableTags();\n\n items.add(\n 'tags',\n \n {tags.length ? (\n tagsLabel(tags)\n ) : (\n {app.translator.trans('flarum-tags.forum.composer_discussion.choose_tags_link')}\n )}\n ,\n 10\n );\n });\n\n override(DiscussionComposer.prototype, 'onsubmit', function (original) {\n const chosenTags = this.composer.fields.tags || [];\n const chosenPrimaryTags = chosenTags.filter((tag) => tag.position() !== null && !tag.isChild());\n const chosenSecondaryTags = chosenTags.filter((tag) => tag.position() === null);\n const selectableTags = getSelectableTags();\n\n const minPrimaryTags = parseInt(app.forum.attribute('minPrimaryTags'));\n const minSecondaryTags = parseInt(app.forum.attribute('minSecondaryTags'));\n const maxPrimaryTags = parseInt(app.forum.attribute('maxPrimaryTags'));\n const maxSecondaryTags = parseInt(app.forum.attribute('maxSecondaryTags'));\n\n if (\n ((!chosenTags.length && maxPrimaryTags !== 0 && maxSecondaryTags !== 0) ||\n chosenPrimaryTags.length < minPrimaryTags ||\n chosenSecondaryTags.length < minSecondaryTags) &&\n selectableTags.length\n ) {\n app.modal.show(TagDiscussionModal, {\n selectedTags: chosenTags,\n onsubmit: (tags) => {\n this.composer.fields.tags = tags;\n original();\n },\n });\n } else {\n original();\n }\n });\n\n // Add the selected tags as data to submit to the server.\n extend(DiscussionComposer.prototype, 'data', function (data) {\n data.relationships = data.relationships || {};\n data.relationships.tags = this.composer.fields.tags;\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Discussion'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/EventPost'];","import EventPost from 'flarum/forum/components/EventPost';\nimport tagsLabel from '../../common/helpers/tagsLabel';\n\nexport default class DiscussionTaggedPost extends EventPost {\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n const oldTags = attrs.post.content()[0];\n const newTags = attrs.post.content()[1];\n\n function diffTags(tags1, tags2) {\n return tags1.filter((tag) => tags2.indexOf(tag) === -1).map((id) => app.store.getById('tags', id));\n }\n\n attrs.tagsAdded = diffTags(newTags, oldTags);\n attrs.tagsRemoved = diffTags(oldTags, newTags);\n }\n\n icon() {\n return 'fas fa-tag';\n }\n\n descriptionKey() {\n if (this.attrs.tagsAdded.length) {\n if (this.attrs.tagsRemoved.length) {\n return 'flarum-tags.forum.post_stream.added_and_removed_tags_text';\n }\n\n return 'flarum-tags.forum.post_stream.added_tags_text';\n }\n\n return 'flarum-tags.forum.post_stream.removed_tags_text';\n }\n\n descriptionData() {\n const data = {};\n\n if (this.attrs.tagsAdded.length) {\n data.tagsAdded = app.translator.trans('flarum-tags.forum.post_stream.tags_text', {\n tags: tagsLabel(this.attrs.tagsAdded, { link: true }),\n count: this.attrs.tagsAdded.length,\n });\n }\n\n if (this.attrs.tagsRemoved.length) {\n data.tagsRemoved = app.translator.trans('flarum-tags.forum.post_stream.tags_text', {\n tags: tagsLabel(this.attrs.tagsRemoved, { link: true }),\n count: this.attrs.tagsRemoved.length,\n });\n }\n\n return data;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/computed'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","import computed from 'flarum/common/utils/computed';\nimport Model from 'flarum/common/Model';\nimport type Discussion from 'flarum/common/models/Discussion';\n\nexport default class Tag extends Model {\n name() {\n return Model.attribute('name').call(this);\n }\n slug() {\n return Model.attribute('slug').call(this);\n }\n description() {\n return Model.attribute('description').call(this);\n }\n\n color() {\n return Model.attribute('color').call(this);\n }\n backgroundUrl() {\n return Model.attribute('backgroundUrl').call(this);\n }\n backgroundMode() {\n return Model.attribute('backgroundMode').call(this);\n }\n icon() {\n return Model.attribute('icon').call(this);\n }\n\n position() {\n return Model.attribute('position').call(this);\n }\n parent() {\n return Model.hasOne('parent').call(this);\n }\n children() {\n return Model.hasMany('children').call(this);\n }\n defaultSort() {\n return Model.attribute('defaultSort').call(this);\n }\n isChild() {\n return Model.attribute('isChild').call(this);\n }\n isHidden() {\n return Model.attribute('isHidden').call(this);\n }\n\n discussionCount() {\n return Model.attribute('discussionCount').call(this);\n }\n lastPostedAt() {\n return Model.attribute('lastPostedAt', Model.transformDate).call(this);\n }\n lastPostedDiscussion() {\n return Model.hasOne('lastPostedDiscussion').call(this);\n }\n\n isRestricted() {\n return Model.attribute('isRestricted').call(this);\n }\n canStartDiscussion() {\n return Model.attribute('canStartDiscussion').call(this);\n }\n canAddToDiscussion() {\n return Model.attribute('canAddToDiscussion').call(this);\n }\n\n isPrimary() {\n return computed('position', 'parent', (position, parent) => position !== null && parent === false).call(this);\n }\n}\n","import Extend from 'flarum/common/extenders';\nimport Tag from './models/Tag';\n\nexport default [\n new Extend.Store() //\n .add('tags', Tag),\n];\n","import app from 'flarum/forum/app';\nimport Extend from 'flarum/common/extenders';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Discussion from 'flarum/common/models/Discussion';\nimport DiscussionTaggedPost from './components/DiscussionTaggedPost';\nimport TagsPage from './components/TagsPage';\nimport Tag from '../common/models/Tag';\n\nimport commonExtend from '../common/extend';\n\nexport default [\n ...commonExtend,\n\n new Extend.Routes() //\n .add('tags', '/tags', TagsPage) //\n .add('tag', '/t/:tags', IndexPage) //\n .helper('tag', (tag) => app.route('tag', { tags: tag.slug() })),\n\n new Extend.PostTypes() //\n .add('discussionTagged', DiscussionTaggedPost),\n\n new Extend.Model(Discussion) //\n .hasMany('tags') //\n .attribute('canTag'),\n];\n","import sortTags from './utils/sortTags';\nimport Tag from './models/Tag';\nimport tagsLabel from './helpers/tagsLabel';\nimport tagIcon from './helpers/tagIcon';\nimport tagLabel from './helpers/tagLabel';\nimport TagSelectionModal from './components/TagSelectionModal';\nimport TagListState from './states/TagListState';\n\nexport default {\n 'tags/utils/sortTags': sortTags,\n 'tags/models/Tag': Tag,\n 'tags/helpers/tagsLabel': tagsLabel,\n 'tags/helpers/tagIcon': tagIcon,\n 'tags/helpers/tagLabel': tagLabel,\n 'tags/components/TagSelectionModal': TagSelectionModal,\n 'tags/states/TagListState': TagListState,\n};\n","import compat from '../common/compat';\n\nimport addTagFilter from './addTagFilter';\nimport addTagControl from './addTagControl';\nimport TagHero from './components/TagHero';\nimport TagDiscussionModal from './components/TagDiscussionModal';\nimport TagsPage from './components/TagsPage';\nimport DiscussionTaggedPost from './components/DiscussionTaggedPost';\nimport TagLinkButton from './components/TagLinkButton';\nimport addTagList from './addTagList';\nimport addTagLabels from './addTagLabels';\nimport addTagComposer from './addTagComposer';\nimport getSelectableTags from './utils/getSelectableTags';\n\nexport default Object.assign(compat, {\n 'tags/addTagFilter': addTagFilter,\n 'tags/addTagControl': addTagControl,\n 'tags/components/TagHero': TagHero,\n 'tags/components/TagDiscussionModal': TagDiscussionModal,\n 'tags/components/TagsPage': TagsPage,\n 'tags/components/DiscussionTaggedPost': DiscussionTaggedPost,\n 'tags/components/TagLinkButton': TagLinkButton,\n 'tags/addTagList': addTagList,\n 'tags/addTagLabels': addTagLabels,\n 'tags/addTagComposer': addTagComposer,\n 'tags/utils/getSelectableTags': getSelectableTags,\n});\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core;","import app from 'flarum/forum/app';\n\nimport TagListState from '../common/states/TagListState';\n\nimport addTagList from './addTagList';\nimport addTagFilter from './addTagFilter';\nimport addTagLabels from './addTagLabels';\nimport addTagControl from './addTagControl';\nimport addTagComposer from './addTagComposer';\n\nexport { default as extend } from './extend';\n\napp.initializers.add('flarum-tags', function () {\n app.tagList = new TagListState();\n\n addTagList();\n addTagFilter();\n addTagLabels();\n addTagControl();\n addTagComposer();\n});\n\n// Expose compat API\nimport tagsCompat from './compat';\nimport { compat } from '@flarum/core/forum';\n\nObject.assign(compat, tagsCompat);\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["flarum","core","compat","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","TagListState","loadedIncludes","Set","load","fn","includes","unloadedIncludes","filter","include","has","length","app","join","val","forEach","add","self","this","args","arguments","apply","err","undefined","_setPrototypeOf","o","p","Object","setPrototypeOf","bind","__proto__","_inheritsLoose","subClass","superClass","prototype","create","constructor","tagIcon","tag","attrs","settings","hasIcon","icon","useColor","className","classList","style","color","TagLinkButton","view","vnode","model","description","isActive","isChild","href","route","title","name","translator","trans","initAttrs","params","tags","slug","LinkButton","tagLabel","link","extract","tagText","textContrastClass","m","Link","sortTags","slice","sort","a","b","aPos","position","bPos","discussionCount","aParent","parent","bParent","TagsPage","oninit","history","push","preloaded","preloadedApiDocument","loading","tagList","store","all","redraw","pinned","cloud","IndexPage","listItems","toArray","map","lastPostedDiscussion","children","colored","child","discussion","lastPostNumber","humanTime","lastPostedAt","oncreate","setTitle","setTitleCount","Page","extend","items","current","matches","Separator","search","stickyParams","currentTag","addTag","active","id","component","more","splice","TagHero","Component","findTag","find","localeCompare","sensitivity","currentActiveTag","currentTagLoading","override","original","vdom","canStartDiscussion","newDiscussion","get","disabled","GlobalSearchState","param","DiscussionListState","q","tagsLabel","DiscussionListItem","DiscussionHero","getSelectableTags","canAddToDiscussion","indexOf","ToggleButton","isToggled","source","excluded","i","target","sourceKeys","keys","TagSelectionModal","selected","bypassReqs","Stream","focused","navigator","KeyboardNavigatable","indexTag","extractText","canSelect","allowResetting","limits","min","total","primary","secondary","max","Infinity","Error","catchInvalidLimits","onUp","setIndex","getCurrentNumericIndex","onDown","onSelect","select","onRemove","selectableTags","selectedTags","content","toLowerCase","primaryCount","secondaryCount","getFilteredTags","inputWidth","Math","getInstruction","onclick","$","focus","removeTag","onready","placeholder","bidi","width","onkeydown","navigate","onfocus","onblur","type","meetsRequirements","onmouseover","toggleTag","highlight","allowBypassing","requireParentTag","isPrimary","substring","index","t","onDeselect","remaining","count","onsubmit","e","preventDefault","hide","metaKey","ctrlKey","click","getItem","dispatchEvent","Event","selectableItems","selectedTag","scrollToItem","$items","$dropdown","$item","eq","attr","scrollTop","dropdownScroll","dropdownTop","offset","top","dropdownBottom","outerHeight","itemTop","itemBottom","parseInt","css","stop","animate","Modal","TagDiscussionModal","suppliedOnsubmit","save","relationships","DiscussionPage","update","DiscussionControls","canTag","modal","show","promise","composer","fields","DiscussionComposer","chooseTags","chosenTags","chosenPrimaryTags","chosenSecondaryTags","minPrimaryTags","forum","attribute","minSecondaryTags","maxPrimaryTags","maxSecondaryTags","data","DiscussionTaggedPost","oldTags","post","newTags","diffTags","tags1","tags2","getById","tagsAdded","tagsRemoved","descriptionKey","descriptionData","EventPost","Tag","Model","call","backgroundUrl","backgroundMode","defaultSort","isHidden","isRestricted","computed","Extend","commonExtend","helper","Discussion","hasMany","assign","addTagFilter","addTagControl","addTagList","addTagLabels","addTagComposer","tagsCompat","_typeof","require","_regeneratorRuntime","module","exports","__esModule","Op","hasOwn","hasOwnProperty","defineProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","doneResult","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","object","reverse","pop","skipTempReset","prev","charAt","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","d","definition","prop","r"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@flarum/tags/external root \"flarum.core.compat['forum/app']\"","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/app']\"","webpack://@flarum/tags/./src/common/states/TagListState.ts","webpack://@flarum/tags/external root \"flarum.core.compat['common/extend']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Separator']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Link']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@flarum/tags/./src/common/helpers/tagIcon.js","webpack://@flarum/tags/./src/forum/components/TagLinkButton.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Page']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/LoadingIndicator']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/helpers/listItems']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/helpers/textContrastClass']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/extract']\"","webpack://@flarum/tags/./src/common/helpers/tagLabel.js","webpack://@flarum/tags/./src/common/utils/sortTags.tsx","webpack://@flarum/tags/./src/forum/components/TagsPage.js","webpack://@flarum/tags/./src/forum/addTagList.js","webpack://@flarum/tags/external root \"flarum.core.compat['forum/states/DiscussionListState']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/states/GlobalSearchState']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/Component']\"","webpack://@flarum/tags/./src/forum/components/TagHero.js","webpack://@flarum/tags/./src/forum/addTagFilter.tsx","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/DiscussionListItem']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/DiscussionHero']\"","webpack://@flarum/tags/./src/common/helpers/tagsLabel.js","webpack://@flarum/tags/./src/forum/addTagLabels.js","webpack://@flarum/tags/external root \"flarum.core.compat['forum/utils/DiscussionControls']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Button']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/DiscussionPage']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@flarum/tags/./src/forum/utils/getSelectableTags.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/KeyboardNavigatable']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@flarum/tags/./src/forum/components/ToggleButton.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@flarum/tags/./src/common/components/TagSelectionModal.tsx","webpack://@flarum/tags/./src/forum/components/TagDiscussionModal.tsx","webpack://@flarum/tags/./src/forum/addTagControl.js","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/DiscussionComposer']\"","webpack://@flarum/tags/./src/forum/addTagComposer.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/extenders']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/models/Discussion']\"","webpack://@flarum/tags/external root \"flarum.core.compat['forum/components/EventPost']\"","webpack://@flarum/tags/./src/forum/components/DiscussionTaggedPost.js","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/computed']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/Model']\"","webpack://@flarum/tags/./src/common/models/Tag.ts","webpack://@flarum/tags/./src/common/extend.ts","webpack://@flarum/tags/./src/forum/extend.ts","webpack://@flarum/tags/./src/common/compat.js","webpack://@flarum/tags/./src/forum/compat.js","webpack://@flarum/tags/external assign \"flarum.core\"","webpack://@flarum/tags/./src/forum/index.ts","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/typeof.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/regenerator/index.js","webpack://@flarum/tags/webpack/bootstrap","webpack://@flarum/tags/webpack/runtime/compat get default export","webpack://@flarum/tags/webpack/runtime/define property getters","webpack://@flarum/tags/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/tags/webpack/runtime/make namespace object"],"sourcesContent":["const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/app'];","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/app'];","import app from 'flarum/common/app';\nimport type Tag from '../../common/models/Tag';\n\nexport default class TagListState {\n loadedIncludes = new Set();\n\n async load(includes: string[] = []): Promise {\n const unloadedIncludes = includes.filter((include) => !this.loadedIncludes.has(include));\n\n if (unloadedIncludes.length === 0) {\n return Promise.resolve(app.store.all('tags'));\n }\n\n return app.store.find('tags', { include: unloadedIncludes.join(',') }).then((val) => {\n unloadedIncludes.forEach((include) => this.loadedIncludes.add(include));\n return val;\n });\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/IndexPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Separator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","import classList from 'flarum/common/utils/classList';\n\nexport default function tagIcon(tag, attrs = {}, settings = {}) {\n const hasIcon = tag && tag.icon();\n const { useColor = true } = settings;\n\n attrs.className = classList([attrs.className, 'icon', hasIcon ? tag.icon() : 'TagIcon']);\n\n if (tag && useColor) {\n attrs.style = attrs.style || {};\n attrs.style['--color'] = tag.color();\n\n if (hasIcon) {\n attrs.style.color = tag.color();\n }\n } else if (!tag) {\n attrs.className += ' untagged';\n }\n\n return hasIcon ? : ;\n}\n","import Link from 'flarum/common/components/Link';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport classList from 'flarum/common/utils/classList';\nimport tagIcon from '../../common/helpers/tagIcon';\n\nexport default class TagLinkButton extends LinkButton {\n view(vnode) {\n const tag = this.attrs.model;\n const active = this.constructor.isActive(this.attrs);\n const description = tag && tag.description();\n const className = classList(['TagLinkButton', 'hasIcon', this.attrs.className, tag.isChild() && 'child']);\n\n return (\n \n {tagIcon(tag, { className: 'Button-icon' })}\n {tag ? tag.name() : app.translator.trans('flarum-tags.forum.index.untagged_link')}\n \n );\n }\n\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n const tag = attrs.model;\n\n attrs.params.tags = tag ? tag.slug() : 'untagged';\n attrs.route = app.route('tag', attrs.params);\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Page'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LoadingIndicator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/listItems'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/textContrastClass'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extract'];","import extract from 'flarum/common/utils/extract';\nimport Link from 'flarum/common/components/Link';\nimport classList from 'flarum/common/utils/classList';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\nimport tagIcon from './tagIcon';\n\nexport default function tagLabel(tag, attrs = {}) {\n attrs.style = attrs.style || {};\n attrs.className = 'TagLabel ' + (attrs.className || '');\n\n const link = extract(attrs, 'link');\n const tagText = tag ? tag.name() : app.translator.trans('flarum-tags.lib.deleted_tag_text');\n\n if (tag) {\n const color = tag.color();\n if (color) {\n attrs.style['--tag-bg'] = color;\n attrs.className = classList(attrs.className, 'colored', textContrastClass(color));\n }\n\n if (link) {\n attrs.title = tag.description() || '';\n attrs.href = app.route('tag', { tags: tag.slug() });\n }\n\n if (tag.isChild()) {\n attrs.className += ' TagLabel--child';\n }\n } else {\n attrs.className += ' untagged';\n }\n\n return m(\n link ? Link : 'span',\n attrs,\n \n {tag && tag.icon() && tagIcon(tag, {}, { useColor: false })} {tagText}\n \n );\n}\n","import Tag from '../models/Tag';\n\nexport default function sortTags(tags: Tag[]) {\n return tags.slice(0).sort((a, b) => {\n const aPos = a.position();\n const bPos = b.position();\n\n // If they're both secondary tags, sort them by their discussions count,\n // descending.\n if (aPos === null && bPos === null) return b.discussionCount() - a.discussionCount();\n\n // If just one is a secondary tag, then the primary tag should\n // come first.\n if (bPos === null) return -1;\n if (aPos === null) return 1;\n\n // If we've made it this far, we know they're both primary tags. So we'll\n // need to see if they have parents.\n const aParent = a.parent();\n const bParent = b.parent();\n\n // If they both have the same parent, then their positions are local,\n // so we can compare them directly.\n if (aParent === bParent) return aPos - bPos;\n // If they are both child tags, then we will compare the positions of their\n // parents.\n else if (aParent && bParent) return aParent.position()! - bParent.position()!;\n // If we are comparing a child tag with its parent, then we let the parent\n // come first. If we are comparing an unrelated parent/child, then we\n // compare both of the parents.\n else if (aParent) return aParent === b ? 1 : aParent.position()! - bPos;\n else if (bParent) return bParent === a ? -1 : aPos - bParent.position()!;\n\n return 0;\n });\n}\n","import Page from 'flarum/common/components/Page';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Link from 'flarum/common/components/Link';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport listItems from 'flarum/common/helpers/listItems';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\nimport classList from 'flarum/common/utils/classList';\n\nimport tagIcon from '../../common/helpers/tagIcon';\nimport tagLabel from '../../common/helpers/tagLabel';\nimport sortTags from '../../common/utils/sortTags';\n\nexport default class TagsPage extends Page {\n oninit(vnode) {\n super.oninit(vnode);\n\n app.history.push('tags', app.translator.trans('flarum-tags.forum.header.back_to_tags_tooltip'));\n\n this.tags = [];\n\n const preloaded = app.preloadedApiDocument();\n\n if (preloaded) {\n this.tags = sortTags(preloaded.filter((tag) => !tag.isChild()));\n return;\n }\n\n this.loading = true;\n\n app.tagList.load(['children', 'lastPostedDiscussion', 'parent']).then(() => {\n this.tags = sortTags(app.store.all('tags').filter((tag) => !tag.isChild()));\n\n this.loading = false;\n\n m.redraw();\n });\n }\n\n view() {\n if (this.loading) {\n return ;\n }\n\n const pinned = this.tags.filter((tag) => tag.position() !== null);\n const cloud = this.tags.filter((tag) => tag.position() === null);\n\n return (\n
\n {IndexPage.prototype.hero()}\n
\n \n\n
\n
    \n {pinned.map((tag) => {\n const lastPostedDiscussion = tag.lastPostedDiscussion();\n const children = sortTags(tag.children() || []);\n\n return (\n
  • \n \n {tag.icon() && tagIcon(tag, {}, { useColor: false })}\n

    {tag.name()}

    \n

    {tag.description()}

    \n {children ? (\n
    \n {children.map((child) => [{child.name()}, ' '])}\n
    \n ) : (\n ''\n )}\n \n {lastPostedDiscussion ? (\n \n {lastPostedDiscussion.title()}\n {humanTime(lastPostedDiscussion.lastPostedAt())}\n \n ) : (\n \n )}\n
  • \n );\n })}\n
\n\n {cloud.length ?
{cloud.map((tag) => [tagLabel(tag, { link: true }), ' '])}
: ''}\n
\n
\n
\n );\n }\n\n oncreate(vnode) {\n super.oncreate(vnode);\n\n app.setTitle(app.translator.trans('flarum-tags.forum.all_tags.meta_title_text'));\n app.setTitleCount(0);\n }\n}\n","import { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Separator from 'flarum/common/components/Separator';\nimport LinkButton from 'flarum/common/components/LinkButton';\n\nimport TagLinkButton from './components/TagLinkButton';\nimport TagsPage from './components/TagsPage';\nimport sortTags from '../common/utils/sortTags';\n\nexport default function () {\n // Add a link to the tags page, as well as a list of all the tags,\n // to the index page's sidebar.\n extend(IndexPage.prototype, 'navItems', function (items) {\n items.add(\n 'tags',\n \n {app.translator.trans('flarum-tags.forum.index.tags_link')}\n ,\n -10\n );\n\n if (app.current.matches(TagsPage)) return;\n\n items.add('separator', Separator.component(), -12);\n\n const params = app.search.stickyParams();\n const tags = app.store.all('tags');\n const currentTag = this.currentTag();\n\n const addTag = (tag) => {\n let active = currentTag === tag;\n\n if (!active && currentTag) {\n active = currentTag.parent() === tag;\n }\n\n // tag.name() is passed here as children even though it isn't used directly\n // because when we need to get the active child in SelectDropdown, we need to\n // use its children to populate the dropdown. The problem here is that `view`\n // on TagLinkButton is only called AFTER SelectDropdown, so no children are available\n // for SelectDropdown to use at the time.\n items.add('tag' + tag.id(), TagLinkButton.component({ model: tag, params, active }, tag?.name()), -14);\n };\n\n sortTags(tags)\n .filter(\n (tag) => tag.position() !== null && (!tag.isChild() || (currentTag && (tag.parent() === currentTag || tag.parent() === currentTag.parent())))\n )\n .forEach(addTag);\n\n const more = tags.filter((tag) => tag.position() === null).sort((a, b) => b.discussionCount() - a.discussionCount());\n\n more.splice(0, 3).forEach(addTag);\n\n if (more.length) {\n items.add('moreTags', {app.translator.trans('flarum-tags.forum.index.more_link')}, -16);\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/GlobalSearchState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","import Component from 'flarum/common/Component';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\nimport tagIcon from '../../common/helpers/tagIcon';\nimport classList from 'flarum/common/utils/classList';\n\nexport default class TagHero extends Component {\n view() {\n const tag = this.attrs.model;\n const color = tag.color();\n\n return (\n \n
\n
\n

\n {tag.icon() && tagIcon(tag, {}, { useColor: false })} {tag.name()}\n

\n
{tag.description()}
\n
\n
\n \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport type Mithril from 'mithril';\nimport { extend, override } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport GlobalSearchState from 'flarum/forum/states/GlobalSearchState';\nimport classList from 'flarum/common/utils/classList';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\n\nimport TagHero from './components/TagHero';\nimport Tag from '../common/models/Tag';\nimport { ComponentAttrs } from 'flarum/common/Component';\n\nconst findTag = (slug: string) => app.store.all('tags').find((tag) => tag.slug().localeCompare(slug, undefined, { sensitivity: 'base' }) === 0);\n\nexport default function () {\n IndexPage.prototype.currentTag = function () {\n if (this.currentActiveTag) {\n return this.currentActiveTag;\n }\n\n const slug = app.search.params().tags;\n let tag = null;\n\n if (slug) {\n tag = findTag(slug);\n }\n\n if ((slug && !tag) || (tag && !tag.isChild() && !tag.children())) {\n if (this.currentTagLoading) {\n return;\n }\n\n this.currentTagLoading = true;\n\n // Unlike the backend, no need to fetch parent.children because if we're on\n // a child tag page, then either:\n // - We loaded in that child tag (and its siblings) in the API document\n // - We first navigated to the current tag's parent, which would have loaded in the current tag's siblings.\n app.store\n .find('tags', slug, { include: 'children,children.parent,parent,state' })\n .then(() => {\n this.currentActiveTag = findTag(slug);\n\n m.redraw();\n })\n .finally(() => {\n this.currentTagLoading = false;\n });\n }\n\n if (tag) {\n this.currentActiveTag = tag;\n return this.currentActiveTag;\n }\n\n return;\n };\n\n // If currently viewing a tag, insert a tag hero at the top of the view.\n override(IndexPage.prototype, 'hero', function (original) {\n const tag = this.currentTag();\n\n if (tag) return ;\n\n return original();\n });\n\n extend(IndexPage.prototype, 'view', function (vdom: Mithril.Vnode) {\n const tag = this.currentTag();\n\n if (tag) vdom.attrs.className += ' IndexPage--tag' + tag.id();\n });\n\n extend(IndexPage.prototype, 'setTitle', function () {\n const tag = this.currentTag();\n\n if (tag) {\n app.setTitle(tag.name());\n }\n });\n\n // If currently viewing a tag, restyle the 'new discussion' button to use\n // the tag's color, and disable if the user isn't allowed to edit.\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (tag) {\n const color = tag.color();\n const canStartDiscussion = tag.canStartDiscussion() || !app.session.user;\n const newDiscussion = items.get('newDiscussion') as Mithril.Vnode;\n\n if (color) {\n newDiscussion.attrs.className = classList([newDiscussion.attrs.className, 'Button--tagColored', textContrastClass(color)]);\n newDiscussion.attrs.style = { '--color': color };\n }\n\n newDiscussion.attrs.disabled = !canStartDiscussion;\n newDiscussion.children = app.translator.trans(\n canStartDiscussion ? 'core.forum.index.start_discussion_button' : 'core.forum.index.cannot_start_discussion_button'\n );\n }\n });\n\n // Add a parameter for the global search state to pass on to the\n // DiscussionListState that will let us filter discussions by tag.\n extend(GlobalSearchState.prototype, 'params', function (params) {\n params.tags = m.route.param('tags');\n });\n\n // Translate that parameter into a gambit appended to the search query.\n extend(DiscussionListState.prototype, 'requestParams', function (this: DiscussionListState, params) {\n if (typeof params.include === 'string') {\n params.include = [params.include];\n } else {\n params.include?.push('tags', 'tags.parent');\n }\n\n if (this.params.tags) {\n const filter = params.filter ?? {};\n filter.tag = this.params.tags;\n // TODO: replace this with a more robust system.\n const q = filter.q;\n if (q) {\n filter.q = `${q} tag:${this.params.tags}`;\n }\n params.filter = filter;\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionListItem'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionHero'];","import extract from 'flarum/common/utils/extract';\nimport tagLabel from './tagLabel';\nimport sortTags from '../utils/sortTags';\n\nexport default function tagsLabel(tags, attrs = {}) {\n const children = [];\n const link = extract(attrs, 'link');\n\n attrs.className = 'TagsLabel ' + (attrs.className || '');\n\n if (tags) {\n sortTags(tags).forEach((tag) => {\n if (tag || tags.length === 1) {\n children.push(tagLabel(tag, { link }));\n }\n });\n } else {\n children.push(tagLabel());\n }\n\n return {children};\n}\n","import { extend } from 'flarum/common/extend';\nimport DiscussionListItem from 'flarum/forum/components/DiscussionListItem';\nimport DiscussionHero from 'flarum/forum/components/DiscussionHero';\nimport textContrastClass from 'flarum/common/helpers/textContrastClass';\nimport classList from 'flarum/common/utils/classList';\n\nimport tagsLabel from '../common/helpers/tagsLabel';\nimport sortTags from '../common/utils/sortTags';\n\nexport default function () {\n // Add tag labels to each discussion in the discussion list.\n extend(DiscussionListItem.prototype, 'infoItems', function (items) {\n const tags = this.attrs.discussion.tags();\n\n if (tags && tags.length) {\n items.add('tags', tagsLabel(tags), 10);\n }\n });\n\n // Restyle a discussion's hero to use its first tag's color.\n extend(DiscussionHero.prototype, 'view', function (view) {\n const tags = sortTags(this.attrs.discussion.tags());\n\n if (tags && tags.length) {\n const color = tags[0].color();\n if (color) {\n view.attrs.style = { '--hero-bg': color };\n view.attrs.className = classList(view.attrs.className, 'DiscussionHero--colored', textContrastClass(color));\n }\n }\n });\n\n // Add a list of a discussion's tags to the discussion hero, displayed\n // before the title. Put the title on its own line.\n extend(DiscussionHero.prototype, 'items', function (items) {\n const tags = this.attrs.discussion.tags();\n\n if (tags && tags.length) {\n items.add('tags', tagsLabel(tags, { link: true }), 5);\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/DiscussionControls'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","export default function getSelectableTags(discussion) {\n let tags = app.store.all('tags');\n\n if (discussion) {\n tags = tags.filter((tag) => tag.canAddToDiscussion() || discussion.tags().indexOf(tag) !== -1);\n } else {\n tags = tags.filter((tag) => tag.canStartDiscussion());\n }\n\n return tags;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/KeyboardNavigatable'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","import Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\n\n/**\n * @TODO move to core\n */\nexport default class ToggleButton extends Component {\n view(vnode) {\n const { className, isToggled, ...attrs } = this.attrs;\n const icon = isToggled ? 'far fa-check-circle' : 'far fa-circle';\n\n return (\n \n );\n }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import app from 'flarum/common/app';\nimport Button from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\nimport extractText from 'flarum/common/utils/extractText';\nimport highlight from 'flarum/common/helpers/highlight';\nimport KeyboardNavigatable from 'flarum/common/utils/KeyboardNavigatable';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Modal from 'flarum/common/components/Modal';\nimport Stream from 'flarum/common/utils/Stream';\n\nimport sortTags from '../utils/sortTags';\nimport tagLabel from '../helpers/tagLabel';\nimport tagIcon from '../helpers/tagIcon';\nimport ToggleButton from '../../forum/components/ToggleButton';\n\nimport type Tag from '../models/Tag';\nimport type { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport type Mithril from 'mithril';\n\nexport interface ITagSelectionModalLimits {\n /** Whether to allow bypassing the limits set here. This will show a toggle button to bypass limits. */\n allowBypassing?: boolean;\n /** Maximum number of primary/secondary tags allowed. */\n max?: {\n total?: number;\n primary?: number;\n secondary?: number;\n };\n /** Minimum number of primary/secondary tags to be selected. */\n min?: {\n total?: number;\n primary?: number;\n secondary?: number;\n };\n}\n\nexport interface ITagSelectionModalAttrs extends IInternalModalAttrs {\n /** Custom modal className to use. */\n className?: string;\n /** Modal title, defaults to 'Choose Tags'. */\n title?: string;\n /** Initial tag selection value. */\n selectedTags?: Tag[];\n /** Limits set based on minimum and maximum number of primary/secondary tags that can be selected. */\n limits?: ITagSelectionModalLimits;\n /** Whether to allow resetting the value. Defaults to true. */\n allowResetting?: boolean;\n /** Whether to require the parent tag of a selected tag to be selected as well. */\n requireParentTag?: boolean;\n /** Filter tags that can be selected. */\n selectableTags?: (tags: Tag[]) => Tag[];\n /** Whether a tag can be selected. */\n canSelect: (tag: Tag) => boolean;\n /** Callback for when a tag is selected. */\n onSelect?: (tag: Tag, selected: Tag[]) => void;\n /** Callback for when a tag is deselected. */\n onDeselect?: (tag: Tag, selected: Tag[]) => void;\n /** Callback for when the selection is submitted. */\n onsubmit?: (selected: Tag[]) => void;\n}\n\nexport type ITagSelectionModalState = undefined;\n\nexport default class TagSelectionModal<\n CustomAttrs extends ITagSelectionModalAttrs = ITagSelectionModalAttrs,\n CustomState extends ITagSelectionModalState = ITagSelectionModalState\n> extends Modal {\n protected loading = true;\n protected tags!: Tag[];\n protected selected: Tag[] = [];\n protected bypassReqs: boolean = false;\n\n protected filter = Stream('');\n protected focused = false;\n protected navigator = new KeyboardNavigatable();\n protected indexTag?: Tag;\n\n static initAttrs(attrs: ITagSelectionModalAttrs) {\n super.initAttrs(attrs);\n\n // Default values for optional attributes.\n attrs.title ||= extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.title'));\n attrs.canSelect ||= () => true;\n attrs.allowResetting ??= true;\n attrs.limits = {\n min: {\n total: attrs.limits?.min?.total ?? -Infinity,\n primary: attrs.limits?.min?.primary ?? -Infinity,\n secondary: attrs.limits?.min?.secondary ?? -Infinity,\n },\n max: {\n total: attrs.limits?.max?.total ?? Infinity,\n primary: attrs.limits?.max?.primary ?? Infinity,\n secondary: attrs.limits?.max?.secondary ?? Infinity,\n },\n };\n\n // Prevent illogical limits from being provided.\n catchInvalidLimits(attrs.limits);\n }\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.navigator\n .onUp(() => this.setIndex(this.getCurrentNumericIndex() - 1, true))\n .onDown(() => this.setIndex(this.getCurrentNumericIndex() + 1, true))\n .onSelect(this.select.bind(this))\n .onRemove(() => this.selected.splice(this.selected.length - 1, 1));\n\n app.tagList.load(['parent']).then((tags) => {\n this.loading = false;\n\n if (this.attrs.selectableTags) {\n tags = this.attrs.selectableTags(tags);\n }\n\n this.tags = sortTags(tags);\n\n if (this.attrs.selectedTags) {\n this.attrs.selectedTags.map(this.addTag.bind(this));\n }\n\n this.indexTag = tags[0];\n\n m.redraw();\n });\n }\n\n className() {\n return classList('TagSelectionModal', this.attrs.className);\n }\n\n title() {\n return this.attrs.title;\n }\n\n content() {\n if (this.loading || !this.tags) {\n return ;\n }\n\n const filter = this.filter().toLowerCase();\n const primaryCount = this.primaryCount();\n const secondaryCount = this.secondaryCount();\n const tags = this.getFilteredTags();\n\n const inputWidth = Math.max(extractText(this.getInstruction(primaryCount, secondaryCount)).length, this.filter().length);\n\n return [\n
\n
\n
\n
this.$('.TagsInput input').focus()}>\n \n {this.selected.map((tag) => (\n {\n this.removeTag(tag);\n this.onready();\n }}\n >\n {tagLabel(tag)}\n \n ))}\n \n (this.focused = true)}\n onblur={() => (this.focused = false)}\n />\n
\n
\n
\n \n {app.translator.trans('flarum-tags.lib.tag_selection_modal.submit_button')}\n \n
\n
\n
,\n\n
\n
    \n {tags.map((tag) => (\n (this.indexTag = tag)}\n onclick={this.toggleTag.bind(this, tag)}\n >\n {tagIcon(tag)}\n {highlight(tag.name(), filter)}\n {tag.description() ? {tag.description()} : ''}\n \n ))}\n
\n {this.attrs.limits!.allowBypassing && (\n
\n (this.bypassReqs = !this.bypassReqs)} isToggled={this.bypassReqs}>\n {app.translator.trans('flarum-tags.lib.tag_selection_modal.bypass_requirements')}\n \n
\n )}\n
,\n ];\n }\n\n /**\n * Filters the available tags on every state change.\n */\n private getFilteredTags(): Tag[] {\n const filter = this.filter().toLowerCase();\n const primaryCount = this.primaryCount();\n const secondaryCount = this.secondaryCount();\n let tags = this.tags;\n\n if (this.attrs.requireParentTag) {\n // Filter out all child tags whose parents have not been selected. This\n // makes it impossible to select a child if its parent hasn't been selected.\n tags = tags.filter((tag) => {\n const parent = tag.parent();\n return parent !== null && (parent === false || this.selected.includes(parent));\n });\n }\n\n if (!this.bypassReqs) {\n // If we reached the total maximum number of tags, we can't select anymore.\n if (this.selected.length >= this.attrs.limits!.max!.total!) {\n tags = tags.filter((tag) => this.selected.includes(tag));\n }\n // If the number of selected primary/secondary tags is at the maximum, then\n // we'll filter out all other tags of that type.\n else {\n if (primaryCount >= this.attrs.limits!.max!.primary!) {\n tags = tags.filter((tag) => !tag.isPrimary() || this.selected.includes(tag));\n }\n if (secondaryCount >= this.attrs.limits!.max!.secondary!) {\n tags = tags.filter((tag) => tag.isPrimary() || this.selected.includes(tag));\n }\n }\n }\n\n // If the user has entered text in the filter input, then filter by tags\n // whose name matches what they've entered.\n if (filter) {\n tags = tags.filter((tag) => tag.name().substring(0, filter.length).toLowerCase() === filter);\n }\n\n if (!this.indexTag || !tags.includes(this.indexTag)) this.indexTag = tags[0];\n\n return tags;\n }\n\n /**\n * Counts the number of selected primary tags.\n */\n protected primaryCount(): number {\n return this.selected.filter((tag) => tag.isPrimary()).length;\n }\n\n /**\n * Counts the number of selected secondary tags.\n */\n protected secondaryCount(): number {\n return this.selected.filter((tag) => !tag.isPrimary()).length;\n }\n\n /**\n * Validates the number of selected primary/secondary tags against the set min max limits.\n */\n protected meetsRequirements(primaryCount: number, secondaryCount: number) {\n if (this.bypassReqs || (this.attrs.allowResetting && this.selected.length === 0)) {\n return true;\n }\n\n if (this.selected.length < this.attrs.limits!.min!.total!) {\n return false;\n }\n\n return primaryCount >= this.attrs.limits!.min!.primary! && secondaryCount >= this.attrs.limits!.min!.secondary!;\n }\n\n /**\n * Add the given tag to the list of selected tags.\n */\n protected addTag(tag: Tag | undefined) {\n if (!tag || !this.attrs.canSelect(tag)) return;\n\n if (this.attrs.onSelect) {\n this.attrs.onSelect(tag, this.selected);\n }\n\n // If this tag has a parent, we'll also need to add the parent tag to the\n // selected list if it's not already in there.\n if (this.attrs.requireParentTag) {\n const parent = tag.parent();\n if (parent && !this.selected.includes(parent)) {\n this.selected.push(parent);\n }\n }\n\n if (!this.selected.includes(tag)) {\n this.selected.push(tag);\n }\n }\n\n /**\n * Remove the given tag from the list of selected tags.\n */\n protected removeTag(tag: Tag) {\n const index = this.selected.indexOf(tag);\n\n if (index !== -1) {\n this.selected.splice(index, 1);\n\n // Look through the list of selected tags for any tags which have the tag\n // we just removed as their parent. We'll need to remove them too.\n if (this.attrs.requireParentTag) {\n this.selected.filter((t) => t.parent() === tag).forEach(this.removeTag.bind(this));\n }\n\n if (this.attrs.onDeselect) {\n this.attrs.onDeselect(tag, this.selected);\n }\n }\n }\n\n protected toggleTag(tag: Tag) {\n // Won't happen, needed for type safety.\n if (!this.tags) return;\n\n if (this.selected.includes(tag)) {\n this.removeTag(tag);\n } else {\n this.addTag(tag);\n }\n\n if (this.filter()) {\n this.filter('');\n this.indexTag = this.tags[0];\n }\n\n this.onready();\n }\n\n /**\n * Gives human text instructions based on the current number of selected tags and set limits.\n */\n protected getInstruction(primaryCount: number, secondaryCount: number) {\n if (this.bypassReqs) {\n return '';\n }\n\n if (primaryCount < this.attrs.limits!.min!.primary!) {\n const remaining = this.attrs.limits!.min!.primary! - primaryCount;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_primary_placeholder', { count: remaining }));\n } else if (secondaryCount < this.attrs.limits!.min!.secondary!) {\n const remaining = this.attrs.limits!.min!.secondary! - secondaryCount;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_secondary_placeholder', { count: remaining }));\n } else if (this.selected.length < this.attrs.limits!.min!.total!) {\n const remaining = this.attrs.limits!.min!.total! - this.selected.length;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_tags_placeholder', { count: remaining }));\n }\n\n return '';\n }\n\n /**\n * Submit tag selection.\n */\n onsubmit(e: SubmitEvent) {\n e.preventDefault();\n\n if (this.attrs.onsubmit) this.attrs.onsubmit(this.selected);\n\n this.hide();\n }\n\n protected select(e: KeyboardEvent) {\n // Ctrl + Enter submits the selection, just Enter completes the current entry\n if (e.metaKey || e.ctrlKey || (this.indexTag && this.selected.includes(this.indexTag))) {\n if (this.selected.length) {\n // The DOM submit method doesn't emit a `submit event, so we\n // simulate a manual submission so our `onsubmit` logic is run.\n this.$('button[type=\"submit\"]').click();\n }\n } else if (this.indexTag) {\n this.getItem(this.indexTag)[0].dispatchEvent(new Event('click'));\n }\n }\n\n protected selectableItems() {\n return this.$('.TagSelectionModal-list > li');\n }\n\n protected getCurrentNumericIndex() {\n if (!this.indexTag) return -1;\n\n return this.selectableItems().index(this.getItem(this.indexTag));\n }\n\n protected getItem(selectedTag: Tag) {\n return this.selectableItems().filter(`[data-index=\"${selectedTag.id()}\"]`);\n }\n\n protected setIndex(index: number, scrollToItem: boolean) {\n const $items = this.selectableItems();\n const $dropdown = $items.parent();\n\n if (index < 0) {\n index = $items.length - 1;\n } else if (index >= $items.length) {\n index = 0;\n }\n\n const $item = $items.eq(index);\n\n this.indexTag = app.store.getById('tags', $item.attr('data-index')!);\n\n m.redraw();\n\n if (scrollToItem && this.indexTag) {\n const dropdownScroll = $dropdown.scrollTop()!;\n const dropdownTop = $dropdown.offset()!.top;\n const dropdownBottom = dropdownTop + $dropdown.outerHeight()!;\n const itemTop = $item.offset()!.top;\n const itemBottom = itemTop + $item.outerHeight()!;\n\n let scrollTop;\n if (itemTop < dropdownTop) {\n scrollTop = dropdownScroll - dropdownTop + itemTop - parseInt($dropdown.css('padding-top'), 10);\n } else if (itemBottom > dropdownBottom) {\n scrollTop = dropdownScroll - dropdownBottom + itemBottom + parseInt($dropdown.css('padding-bottom'), 10);\n }\n\n if (typeof scrollTop !== 'undefined') {\n $dropdown.stop(true).animate({ scrollTop }, 100);\n }\n }\n }\n}\n\n/**\n * Catch invalid limits provided to the tag selection modal.\n */\nfunction catchInvalidLimits(limits: ITagSelectionModalLimits) {\n if (limits.min!.primary! > limits.max!.primary!) {\n throw new Error('The minimum number of primary tags allowed cannot be more than the maximum number of primary tags allowed.');\n }\n\n if (limits.min!.secondary! > limits.max!.secondary!) {\n throw new Error('The minimum number of secondary tags allowed cannot be more than the maximum number of secondary tags allowed.');\n }\n\n if (limits.min!.total! > limits.max!.primary! + limits.max!.secondary!) {\n throw new Error('The minimum number of tags allowed cannot be more than the maximum number of primary and secondary tags allowed together.');\n }\n\n if (limits.max!.total! < limits.min!.primary! + limits.min!.secondary!) {\n throw new Error('The maximum number of tags allowed cannot be less than the minimum number of primary and secondary tags allowed together.');\n }\n\n if (limits.min!.total! > limits.max!.total!) {\n throw new Error('The minimum number of tags allowed cannot be more than the maximum number of tags allowed.');\n }\n}\n","import app from 'flarum/forum/app';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport classList from 'flarum/common/utils/classList';\nimport extractText from 'flarum/common/utils/extractText';\n\nimport getSelectableTags from '../utils/getSelectableTags';\nimport TagSelectionModal, { ITagSelectionModalAttrs } from '../../common/components/TagSelectionModal';\n\nimport type Discussion from 'flarum/common/models/Discussion';\nimport type Tag from '../../common/models/Tag';\n\nexport interface TagDiscussionModalAttrs extends ITagSelectionModalAttrs {\n discussion?: Discussion;\n}\n\nexport default class TagDiscussionModal extends TagSelectionModal {\n static initAttrs(attrs: TagDiscussionModalAttrs) {\n super.initAttrs(attrs);\n\n const title = attrs.discussion\n ? app.translator.trans('flarum-tags.forum.choose_tags.edit_title', { title: {attrs.discussion.title()} })\n : app.translator.trans('flarum-tags.forum.choose_tags.title');\n\n attrs.className = classList(attrs.className, 'TagDiscussionModal');\n attrs.title = extractText(title);\n attrs.allowResetting = !!app.forum.attribute('canBypassTagCounts');\n attrs.limits = {\n allowBypassing: attrs.allowResetting,\n max: {\n primary: app.forum.attribute('minPrimaryTags'),\n secondary: app.forum.attribute('maxSecondaryTags'),\n },\n min: {\n primary: app.forum.attribute('maxPrimaryTags'),\n secondary: app.forum.attribute('minSecondaryTags'),\n },\n };\n attrs.requireParentTag = true;\n attrs.selectableTags = () => getSelectableTags(attrs.discussion);\n attrs.selectedTags ??= (attrs.discussion?.tags() as Tag[]) || [];\n attrs.canSelect = (tag) => tag.canStartDiscussion();\n\n const suppliedOnsubmit = attrs.onsubmit || null;\n\n // Save changes.\n attrs.onsubmit = function (tags) {\n const discussion = attrs.discussion;\n\n if (discussion) {\n discussion.save({ relationships: { tags } }).then(() => {\n if (app.current.matches(DiscussionPage)) {\n app.current.get('stream').update();\n }\n\n m.redraw();\n });\n }\n\n if (suppliedOnsubmit) suppliedOnsubmit(tags);\n };\n }\n}\n","import { extend } from 'flarum/common/extend';\nimport DiscussionControls from 'flarum/forum/utils/DiscussionControls';\nimport Button from 'flarum/common/components/Button';\n\nimport TagDiscussionModal from './components/TagDiscussionModal';\n\nexport default function () {\n // Add a control allowing the discussion to be moved to another category.\n extend(DiscussionControls, 'moderationControls', function (items, discussion) {\n if (discussion.canTag()) {\n items.add(\n 'tags',\n \n );\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionComposer'];","import { extend, override } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport classList from 'flarum/common/utils/classList';\n\nimport TagDiscussionModal from './components/TagDiscussionModal';\nimport tagsLabel from '../common/helpers/tagsLabel';\nimport getSelectableTags from './utils/getSelectableTags';\n\nexport default function () {\n extend(IndexPage.prototype, 'newDiscussionAction', function (promise) {\n // From `addTagFilter\n const tag = this.currentTag();\n\n if (tag) {\n const parent = tag.parent();\n const tags = parent ? [parent, tag] : [tag];\n promise.then((composer) => (composer.fields.tags = tags));\n } else {\n app.composer.fields.tags = [];\n }\n });\n\n extend(DiscussionComposer.prototype, 'oninit', function () {\n app.tagList.load(['parent']).then(() => m.redraw());\n });\n\n // Add tag-selection abilities to the discussion composer.\n DiscussionComposer.prototype.chooseTags = function () {\n const selectableTags = getSelectableTags();\n\n if (!selectableTags.length) return;\n\n app.modal.show(TagDiscussionModal, {\n selectedTags: (this.composer.fields.tags || []).slice(0),\n onsubmit: (tags) => {\n this.composer.fields.tags = tags;\n this.$('textarea').focus();\n },\n });\n };\n\n // Add a tag-selection menu to the discussion composer's header, after the\n // title.\n extend(DiscussionComposer.prototype, 'headerItems', function (items) {\n const tags = this.composer.fields.tags || [];\n const selectableTags = getSelectableTags();\n\n items.add(\n 'tags',\n \n {tags.length ? (\n tagsLabel(tags)\n ) : (\n {app.translator.trans('flarum-tags.forum.composer_discussion.choose_tags_link')}\n )}\n ,\n 10\n );\n });\n\n override(DiscussionComposer.prototype, 'onsubmit', function (original) {\n const chosenTags = this.composer.fields.tags || [];\n const chosenPrimaryTags = chosenTags.filter((tag) => tag.position() !== null && !tag.isChild());\n const chosenSecondaryTags = chosenTags.filter((tag) => tag.position() === null);\n const selectableTags = getSelectableTags();\n\n const minPrimaryTags = parseInt(app.forum.attribute('minPrimaryTags'));\n const minSecondaryTags = parseInt(app.forum.attribute('minSecondaryTags'));\n const maxPrimaryTags = parseInt(app.forum.attribute('maxPrimaryTags'));\n const maxSecondaryTags = parseInt(app.forum.attribute('maxSecondaryTags'));\n\n if (\n ((!chosenTags.length && maxPrimaryTags !== 0 && maxSecondaryTags !== 0) ||\n chosenPrimaryTags.length < minPrimaryTags ||\n chosenSecondaryTags.length < minSecondaryTags) &&\n selectableTags.length\n ) {\n app.modal.show(TagDiscussionModal, {\n selectedTags: chosenTags,\n onsubmit: (tags) => {\n this.composer.fields.tags = tags;\n original();\n },\n });\n } else {\n original();\n }\n });\n\n // Add the selected tags as data to submit to the server.\n extend(DiscussionComposer.prototype, 'data', function (data) {\n data.relationships = data.relationships || {};\n data.relationships.tags = this.composer.fields.tags;\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Discussion'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/EventPost'];","import EventPost from 'flarum/forum/components/EventPost';\nimport tagsLabel from '../../common/helpers/tagsLabel';\n\nexport default class DiscussionTaggedPost extends EventPost {\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n const oldTags = attrs.post.content()[0];\n const newTags = attrs.post.content()[1];\n\n function diffTags(tags1, tags2) {\n return tags1.filter((tag) => tags2.indexOf(tag) === -1).map((id) => app.store.getById('tags', id));\n }\n\n attrs.tagsAdded = diffTags(newTags, oldTags);\n attrs.tagsRemoved = diffTags(oldTags, newTags);\n }\n\n icon() {\n return 'fas fa-tag';\n }\n\n descriptionKey() {\n if (this.attrs.tagsAdded.length) {\n if (this.attrs.tagsRemoved.length) {\n return 'flarum-tags.forum.post_stream.added_and_removed_tags_text';\n }\n\n return 'flarum-tags.forum.post_stream.added_tags_text';\n }\n\n return 'flarum-tags.forum.post_stream.removed_tags_text';\n }\n\n descriptionData() {\n const data = {};\n\n if (this.attrs.tagsAdded.length) {\n data.tagsAdded = app.translator.trans('flarum-tags.forum.post_stream.tags_text', {\n tags: tagsLabel(this.attrs.tagsAdded, { link: true }),\n count: this.attrs.tagsAdded.length,\n });\n }\n\n if (this.attrs.tagsRemoved.length) {\n data.tagsRemoved = app.translator.trans('flarum-tags.forum.post_stream.tags_text', {\n tags: tagsLabel(this.attrs.tagsRemoved, { link: true }),\n count: this.attrs.tagsRemoved.length,\n });\n }\n\n return data;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/computed'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","import computed from 'flarum/common/utils/computed';\nimport Model from 'flarum/common/Model';\nimport type Discussion from 'flarum/common/models/Discussion';\n\nexport default class Tag extends Model {\n name() {\n return Model.attribute('name').call(this);\n }\n slug() {\n return Model.attribute('slug').call(this);\n }\n description() {\n return Model.attribute('description').call(this);\n }\n\n color() {\n return Model.attribute('color').call(this);\n }\n backgroundUrl() {\n return Model.attribute('backgroundUrl').call(this);\n }\n backgroundMode() {\n return Model.attribute('backgroundMode').call(this);\n }\n icon() {\n return Model.attribute('icon').call(this);\n }\n\n position() {\n return Model.attribute('position').call(this);\n }\n parent() {\n return Model.hasOne('parent').call(this);\n }\n children() {\n return Model.hasMany('children').call(this);\n }\n defaultSort() {\n return Model.attribute('defaultSort').call(this);\n }\n isChild() {\n return Model.attribute('isChild').call(this);\n }\n isHidden() {\n return Model.attribute('isHidden').call(this);\n }\n\n discussionCount() {\n return Model.attribute('discussionCount').call(this);\n }\n lastPostedAt() {\n return Model.attribute('lastPostedAt', Model.transformDate).call(this);\n }\n lastPostedDiscussion() {\n return Model.hasOne('lastPostedDiscussion').call(this);\n }\n\n isRestricted() {\n return Model.attribute('isRestricted').call(this);\n }\n canStartDiscussion() {\n return Model.attribute('canStartDiscussion').call(this);\n }\n canAddToDiscussion() {\n return Model.attribute('canAddToDiscussion').call(this);\n }\n\n isPrimary() {\n return computed('position', 'parent', (position, parent) => position !== null && parent === false).call(this);\n }\n}\n","import Extend from 'flarum/common/extenders';\nimport Tag from './models/Tag';\n\nexport default [\n new Extend.Store() //\n .add('tags', Tag),\n];\n","import app from 'flarum/forum/app';\nimport Extend from 'flarum/common/extenders';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Discussion from 'flarum/common/models/Discussion';\nimport DiscussionTaggedPost from './components/DiscussionTaggedPost';\nimport TagsPage from './components/TagsPage';\nimport Tag from '../common/models/Tag';\n\nimport commonExtend from '../common/extend';\n\nexport default [\n ...commonExtend,\n\n new Extend.Routes() //\n .add('tags', '/tags', TagsPage) //\n .add('tag', '/t/:tags', IndexPage) //\n .helper('tag', (tag) => app.route('tag', { tags: tag.slug() })),\n\n new Extend.PostTypes() //\n .add('discussionTagged', DiscussionTaggedPost),\n\n new Extend.Model(Discussion) //\n .hasMany('tags') //\n .attribute('canTag'),\n];\n","import sortTags from './utils/sortTags';\nimport Tag from './models/Tag';\nimport tagsLabel from './helpers/tagsLabel';\nimport tagIcon from './helpers/tagIcon';\nimport tagLabel from './helpers/tagLabel';\nimport TagSelectionModal from './components/TagSelectionModal';\nimport TagListState from './states/TagListState';\n\nexport default {\n 'tags/utils/sortTags': sortTags,\n 'tags/models/Tag': Tag,\n 'tags/helpers/tagsLabel': tagsLabel,\n 'tags/helpers/tagIcon': tagIcon,\n 'tags/helpers/tagLabel': tagLabel,\n 'tags/components/TagSelectionModal': TagSelectionModal,\n 'tags/states/TagListState': TagListState,\n};\n","import compat from '../common/compat';\n\nimport addTagFilter from './addTagFilter';\nimport addTagControl from './addTagControl';\nimport TagHero from './components/TagHero';\nimport TagDiscussionModal from './components/TagDiscussionModal';\nimport TagsPage from './components/TagsPage';\nimport DiscussionTaggedPost from './components/DiscussionTaggedPost';\nimport TagLinkButton from './components/TagLinkButton';\nimport addTagList from './addTagList';\nimport addTagLabels from './addTagLabels';\nimport addTagComposer from './addTagComposer';\nimport getSelectableTags from './utils/getSelectableTags';\n\nexport default Object.assign(compat, {\n 'tags/addTagFilter': addTagFilter,\n 'tags/addTagControl': addTagControl,\n 'tags/components/TagHero': TagHero,\n 'tags/components/TagDiscussionModal': TagDiscussionModal,\n 'tags/components/TagsPage': TagsPage,\n 'tags/components/DiscussionTaggedPost': DiscussionTaggedPost,\n 'tags/components/TagLinkButton': TagLinkButton,\n 'tags/addTagList': addTagList,\n 'tags/addTagLabels': addTagLabels,\n 'tags/addTagComposer': addTagComposer,\n 'tags/utils/getSelectableTags': getSelectableTags,\n});\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core;","import app from 'flarum/forum/app';\n\nimport TagListState from '../common/states/TagListState';\n\nimport addTagList from './addTagList';\nimport addTagFilter from './addTagFilter';\nimport addTagLabels from './addTagLabels';\nimport addTagControl from './addTagControl';\nimport addTagComposer from './addTagComposer';\n\nexport { default as extend } from './extend';\n\napp.initializers.add('flarum-tags', function () {\n app.tagList = new TagListState();\n\n addTagList();\n addTagFilter();\n addTagLabels();\n addTagControl();\n addTagComposer();\n});\n\n// Expose compat API\nimport tagsCompat from './compat';\nimport { compat } from '@flarum/core/forum';\n\nObject.assign(compat, tagsCompat);\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["flarum","core","compat","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","TagListState","loadedIncludes","Set","load","fn","includes","unloadedIncludes","filter","include","has","length","app","join","val","forEach","add","self","this","args","arguments","apply","err","undefined","_setPrototypeOf","o","p","Object","setPrototypeOf","bind","__proto__","_inheritsLoose","subClass","superClass","prototype","create","constructor","tagIcon","tag","attrs","settings","hasIcon","icon","useColor","className","classList","style","color","TagLinkButton","view","vnode","model","description","isActive","isChild","href","route","title","name","translator","trans","initAttrs","params","tags","slug","LinkButton","tagLabel","link","extract","tagText","textContrastClass","m","Link","sortTags","slice","sort","a","b","aPos","position","bPos","discussionCount","aParent","parent","bParent","TagsPage","oninit","history","push","preloaded","preloadedApiDocument","loading","tagList","store","all","redraw","pinned","cloud","IndexPage","listItems","toArray","map","lastPostedDiscussion","children","colored","child","discussion","lastPostNumber","humanTime","lastPostedAt","oncreate","setTitle","setTitleCount","Page","extend","items","current","matches","Separator","search","stickyParams","currentTag","addTag","active","id","component","more","splice","TagHero","Component","findTag","find","localeCompare","sensitivity","currentActiveTag","currentTagLoading","override","original","vdom","canStartDiscussion","newDiscussion","get","disabled","GlobalSearchState","param","DiscussionListState","q","tagsLabel","DiscussionListItem","DiscussionHero","getSelectableTags","canAddToDiscussion","indexOf","ToggleButton","isToggled","source","excluded","i","target","sourceKeys","keys","TagSelectionModal","selected","bypassReqs","Stream","focused","navigator","KeyboardNavigatable","indexTag","extractText","canSelect","allowResetting","limits","min","total","primary","secondary","max","Infinity","Error","catchInvalidLimits","onUp","setIndex","getCurrentNumericIndex","onDown","onSelect","select","onRemove","selectableTags","selectedTags","content","toLowerCase","primaryCount","secondaryCount","getFilteredTags","inputWidth","Math","getInstruction","onclick","$","focus","removeTag","onready","placeholder","bidi","width","onkeydown","navigate","onfocus","onblur","type","meetsRequirements","onmouseover","toggleTag","highlight","allowBypassing","requireParentTag","isPrimary","substring","index","t","onDeselect","remaining","count","onsubmit","e","preventDefault","hide","metaKey","ctrlKey","click","getItem","dispatchEvent","Event","selectableItems","selectedTag","scrollToItem","$items","$dropdown","$item","eq","attr","scrollTop","dropdownScroll","dropdownTop","offset","top","dropdownBottom","outerHeight","itemTop","itemBottom","parseInt","css","stop","animate","Modal","TagDiscussionModal","suppliedOnsubmit","save","relationships","DiscussionPage","update","DiscussionControls","canTag","modal","show","promise","composer","fields","DiscussionComposer","chooseTags","chosenTags","chosenPrimaryTags","chosenSecondaryTags","minPrimaryTags","forum","attribute","minSecondaryTags","maxPrimaryTags","maxSecondaryTags","data","DiscussionTaggedPost","oldTags","post","newTags","diffTags","tags1","tags2","getById","tagsAdded","tagsRemoved","descriptionKey","descriptionData","EventPost","Tag","Model","call","backgroundUrl","backgroundMode","defaultSort","isHidden","isRestricted","computed","Extend","commonExtend","helper","Discussion","hasMany","assign","addTagFilter","addTagControl","addTagList","addTagLabels","addTagComposer","tagsCompat","_typeof","require","_regeneratorRuntime","module","exports","__esModule","Op","hasOwn","hasOwnProperty","defineProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","doneResult","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","object","reverse","pop","skipTempReset","prev","charAt","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","d","definition","prop","r"],"sourceRoot":""} \ No newline at end of file diff --git a/framework/core/js/dist/admin.js b/framework/core/js/dist/admin.js index 5369c1d61..bef78754e 100644 --- a/framework/core/js/dist/admin.js +++ b/framework/core/js/dist/admin.js @@ -1,3 +1,3 @@ /*! For license information please see admin.js.LICENSE.txt */ -(()=>{var t={1859:()=>{Array.prototype.flat||(Array.prototype.flat=function t(e){return(null!=e?e:1)>0?Array.prototype.reduce.call(this,(function(n,r){return n.concat(Array.isArray(r)?t.call(r,e-1):r)}),[]):[].concat(this)})},9043:()=>{!function(t){"use strict";var e=function e(n,r){this.options=t.extend({},e.DEFAULTS,r);var i=this.options.target===e.DEFAULTS.target?t(this.options.target):t(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(n),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function n(n){return this.each((function(){var r=t(this),i=r.data("bs.affix"),o="object"==typeof n&&n;i||r.data("bs.affix",i=new e(this,o)),"string"==typeof n&&i[n]()}))}e.VERSION="3.4.1",e.RESET="affix affix-top affix-bottom",e.DEFAULTS={offset:0,target:window},e.prototype.getState=function(t,e,n,r){var i=this.$target.scrollTop(),o=this.$element.offset(),a=this.$target.height();if(null!=n&&"top"==this.affixed)return i=t-r&&"bottom"},e.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(e.RESET).addClass("affix");var t=this.$target.scrollTop(),n=this.$element.offset();return this.pinnedOffset=n.top-t},e.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},e.prototype.checkPosition=function(){if(this.$element.is(":visible")){var n=this.$element.height(),r=this.options.offset,i=r.top,o=r.bottom,a=Math.max(t(document).height(),t(document.body).height());"object"!=typeof r&&(o=i=r),"function"==typeof i&&(i=r.top(this.$element)),"function"==typeof o&&(o=r.bottom(this.$element));var s=this.getState(a,n,i,o);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var u="affix"+(s?"-"+s:""),l=t.Event(u+".bs.affix");if(this.$element.trigger(l),l.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(e.RESET).addClass(u).trigger(u.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:a-n-o})}};var r=t.fn.affix;t.fn.affix=n,t.fn.affix.Constructor=e,t.fn.affix.noConflict=function(){return t.fn.affix=r,this},t(window).on("load",(function(){t('[data-spy="affix"]').each((function(){var e=t(this),r=e.data();r.offset=r.offset||{},null!=r.offsetBottom&&(r.offset.bottom=r.offsetBottom),null!=r.offsetTop&&(r.offset.top=r.offsetTop),n.call(e,r)}))}))}(jQuery)},6199:()=>{!function(t){"use strict";var e='[data-toggle="dropdown"]',n=function(e){t(e).on("click.bs.dropdown",this.toggle)};function r(e){var n=e.attr("data-target");n||(n=(n=e.attr("href"))&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r="#"!==n?t(document).find(n):null;return r&&r.length?r:e.parent()}function i(n){n&&3===n.which||(t(".dropdown-backdrop").remove(),t(e).each((function(){var e=t(this),i=r(e),o={relatedTarget:this};i.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&t.contains(i[0],n.target)||(i.trigger(n=t.Event("hide.bs.dropdown",o)),n.isDefaultPrevented()||(e.attr("aria-expanded","false"),i.removeClass("open").trigger(t.Event("hidden.bs.dropdown",o)))))})))}n.VERSION="3.4.1",n.prototype.toggle=function(e){var n=t(this);if(!n.is(".disabled, :disabled")){var o=r(n),a=o.hasClass("open");if(i(),!a){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",i);var s={relatedTarget:this};if(o.trigger(e=t.Event("show.bs.dropdown",s)),e.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),o.toggleClass("open").trigger(t.Event("shown.bs.dropdown",s))}return!1}},n.prototype.keydown=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)){var i=t(this);if(n.preventDefault(),n.stopPropagation(),!i.is(".disabled, :disabled")){var o=r(i),a=o.hasClass("open");if(!a&&27!=n.which||a&&27==n.which)return 27==n.which&&o.find(e).trigger("focus"),i.trigger("click");var s=o.find(".dropdown-menu li:not(.disabled):visible a");if(s.length){var u=s.index(n.target);38==n.which&&u>0&&u--,40==n.which&&u{!function(t){"use strict";var e=["sanitize","whiteList","sanitizeFn"],n=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],r=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,i=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function o(e,o){var a=e.nodeName.toLowerCase();if(-1!==t.inArray(a,o))return-1===t.inArray(a,n)||Boolean(e.nodeValue.match(r)||e.nodeValue.match(i));for(var s=t(o).filter((function(t,e){return e instanceof RegExp})),u=0,l=s.length;u
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]}},s.prototype.init=function(e,n,r){if(this.enabled=!0,this.type=e,this.$element=t(n),this.options=this.getOptions(r),this.$viewport=this.options.viewport&&t(document).find(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var a=i[o];if("click"==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var s="hover"==a?"mouseenter":"focusin",u="hover"==a?"mouseleave":"focusout";this.$element.on(s+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(u+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},s.prototype.getDefaults=function(){return s.DEFAULTS},s.prototype.getOptions=function(n){var r=this.$element.data();for(var i in r)r.hasOwnProperty(i)&&-1!==t.inArray(i,e)&&delete r[i];return(n=t.extend({},this.getDefaults(),r,n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.sanitize&&(n.template=a(n.template,n.whiteList,n.sanitizeFn)),n},s.prototype.getDelegateOptions=function(){var e={},n=this.getDefaults();return this._options&&t.each(this._options,(function(t,r){n[t]!=r&&(e[t]=r)})),e},s.prototype.enter=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusin"==e.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)}},s.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},s.prototype.leave=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusout"==e.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)}},s.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var n=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!n)return;var r=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,u=/\s?auto?\s?/i,l=u.test(a);l&&(a=a.replace(u,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?i.appendTo(t(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),d=i[0].offsetWidth,f=i[0].offsetHeight;if(l){var p=a,h=this.getPosition(this.$viewport);a="bottom"==a&&c.bottom+f>h.bottom?"top":"top"==a&&c.top-fh.width?"left":"left"==a&&c.left-da.top+a.height&&(i.top=a.top+a.height-u)}else{var l=e.left-o,c=e.left+o+n;la.right&&(i.left=a.left+a.width-c)}return i},s.prototype.getTitle=function(){var t=this.$element,e=this.options;return t.attr("data-original-title")||("function"==typeof e.title?e.title.call(t[0]):e.title)},s.prototype.getUID=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},s.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},s.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},s.prototype.enable=function(){this.enabled=!0},s.prototype.disable=function(){this.enabled=!1},s.prototype.toggleEnabled=function(){this.enabled=!this.enabled},s.prototype.toggle=function(e){var n=this;e&&((n=t(e.currentTarget).data("bs."+this.type))||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n))),e?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},s.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide((function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null}))},s.prototype.sanitizeHtml=function(t){return a(t,this.options.whiteList,this.options.sanitizeFn)};var u=t.fn.tooltip;t.fn.tooltip=function(e){return this.each((function(){var n=t(this),r=n.data("bs.tooltip"),i="object"==typeof e&&e;!r&&/destroy|hide/.test(e)||(r||n.data("bs.tooltip",r=new s(this,i)),"string"==typeof e&&r[e]())}))},t.fn.tooltip.Constructor=s,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=u,this}}(jQuery)},6935:()=>{!function(t){"use strict";t.fn.emulateTransitionEnd=function(e){var n=!1,r=this;return t(this).one("bsTransitionEnd",(function(){n=!0})),setTimeout((function(){n||t(r).trigger(t.support.transition.end)}),e),this},t((function(){t.support.transition=function(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in e)if(void 0!==t.style[n])return{end:e[n]};return!1}(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}})}))}(jQuery)},2898:t=>{var e=function(t){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),document.body.appendChild(this.canvas),this.width=this.canvas.width=t.width,this.height=this.canvas.height=t.height,this.context.drawImage(t,0,0,this.width,this.height)};e.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)},e.prototype.update=function(t){this.context.putImageData(t,0,0)},e.prototype.getPixelCount=function(){return this.width*this.height},e.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},e.prototype.removeCanvas=function(){this.canvas.parentNode.removeChild(this.canvas)};var n=function(){};if(n.prototype.getColor=function(t,e){return this.getPalette(t,5,e)[0]},n.prototype.getPalette=function(t,n,r){void 0===n&&(n=10),(void 0===r||1>r)&&(r=10);for(var o,a,s,u,l=new e(t),c=l.getImageData().data,d=l.getPixelCount(),f=[],p=0;d>p;p+=r)a=c[0+(o=4*p)],s=c[o+1],u=c[o+2],c[o+3]>=125&&(a>250&&s>250&&u>250||f.push([a,s,u]));var h=i.quantize(f,n),m=h?h.palette():null;return l.removeCanvas(),m},!r)var r={map:function(t,e){var n={};return e?t.map((function(t,r){return n.index=r,e.call(n,t)})):t.slice()},naturalOrder:function(t,e){return e>t?-1:t>e?1:0},sum:function(t,e){var n={};return t.reduce(e?function(t,r,i){return n.index=i,t+e.call(n,r)}:function(t,e){return t+e},0)},max:function(t,e){return Math.max.apply(null,e?r.map(t,e):t)}};var i=function(){function t(t,e,n){return(t<<2*u)+(e<>l,i=e[1]>>l,o=e[2]>>l,n=t(r,i,o),a[n]=(a[n]||0)+1})),a}function a(t,e){var r,i,o,a=1e6,s=0,u=1e6,c=0,d=1e6,f=0;return t.forEach((function(t){r=t[0]>>l,i=t[1]>>l,o=t[2]>>l,a>r?a=r:r>s&&(s=r),u>i?u=i:i>c&&(c=i),d>o?d=o:o>f&&(f=o)})),new n(a,s,u,c,d,f,e)}function s(e,n){if(n.count()){var i=n.r2-n.r1+1,o=n.g2-n.g1+1,a=n.b2-n.b1+1,s=r.max([i,o,a]);if(1==n.count())return[n.copy()];var u,l,c,d,f=0,p=[],h=[];if(s==i)for(u=n.r1;u<=n.r2;u++){for(d=0,l=n.g1;l<=n.g2;l++)for(c=n.b1;c<=n.b2;c++)d+=e[t(u,l,c)]||0;f+=d,p[u]=f}else if(s==o)for(u=n.g1;u<=n.g2;u++){for(d=0,l=n.r1;l<=n.r2;l++)for(c=n.b1;c<=n.b2;c++)d+=e[t(l,u,c)]||0;f+=d,p[u]=f}else for(u=n.b1;u<=n.b2;u++){for(d=0,l=n.r1;l<=n.r2;l++)for(c=n.g1;c<=n.g2;c++)d+=e[t(l,c,u)]||0;f+=d,p[u]=f}return p.forEach((function(t,e){h[e]=f-t})),function(t){var e,r,i,o,a,s=t+"1",l=t+"2",c=0;for(u=n[s];u<=n[l];u++)if(p[u]>f/2){for(i=n.copy(),o=n.copy(),e=u-n[s],a=(r=n[l]-u)>=e?Math.min(n[l]-1,~~(u+r/2)):Math.max(n[s],~~(u-1-e/2));!p[a];)a++;for(c=h[a];!c&&p[a-1];)c=h[--a];return i[l]=a,o[s]=i[l]+1,[i,o]}}(s==i?"r":s==o?"g":"b")}}var u=5,l=8-u;return n.prototype={volume:function(t){var e=this;return(!e._volume||t)&&(e._volume=(e.r2-e.r1+1)*(e.g2-e.g1+1)*(e.b2-e.b1+1)),e._volume},count:function(e){var n=this,r=n.histo;if(!n._count_set||e){var i,o,a,s=0;for(i=n.r1;i<=n.r2;i++)for(o=n.g1;o<=n.g2;o++)for(a=n.b1;a<=n.b2;a++)index=t(i,o,a),s+=r[index]||0;n._count=s,n._count_set=!0}return n._count},copy:function(){var t=this;return new n(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(e){var n=this,r=n.histo;if(!n._avg||e){var i,o,a,s,l=0,c=1<<8-u,d=0,f=0,p=0;for(o=n.r1;o<=n.r2;o++)for(a=n.g1;a<=n.g2;a++)for(s=n.b1;s<=n.b2;s++)l+=i=r[t(o,a,s)]||0,d+=i*(o+.5)*c,f+=i*(a+.5)*c,p+=i*(s+.5)*c;n._avg=l?[~~(d/l),~~(f/l),~~(p/l)]:[~~(c*(n.r1+n.r2+1)/2),~~(c*(n.g1+n.g2+1)/2),~~(c*(n.b1+n.b2+1)/2)]}return n._avg},contains:function(t){var e=this,n=t[0]>>l;return gval=t[1]>>l,bval=t[2]>>l,n>=e.r1&&n<=e.r2&&gval>=e.g1&&gval<=e.g2&&bval>=e.b1&&bval<=e.b2}},i.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map((function(t){return t.color}))},size:function(){return this.vboxes.size()},map:function(t){for(var e=this.vboxes,n=0;n(n=Math.sqrt(Math.pow(t[0]-i.peek(o).color[0],2)+Math.pow(t[1]-i.peek(o).color[1],2)+Math.pow(t[2]-i.peek(o).color[2],2)))||void 0===e)&&(e=n,r=i.peek(o).color);return r},forcebw:function(){var t=this.vboxes;t.sort((function(t,e){return r.naturalOrder(r.sum(t.color),r.sum(e.color))}));var e=t[0].color;e[0]<5&&e[1]<5&&e[2]<5&&(t[0].color=[0,0,0]);var n=t.length-1,i=t[n].color;i[0]>251&&i[1]>251&&i[2]>251&&(t[n].color=[255,255,255])}},{quantize:function(t,n){function u(t,e){for(var n,r=1,i=0;1e3>i;)if((n=t.pop()).count()){var o=s(l,n),a=o[0],u=o[1];if(!a)return;if(t.push(a),u&&(t.push(u),r++),r>=e)return;if(i++>1e3)return}else t.push(n),i++}if(!t.length||2>n||n>256)return!1;var l=o(t);l.forEach((function(){}));var c=a(t,l),d=new e((function(t,e){return r.naturalOrder(t.count(),e.count())}));d.push(c),u(d,.75*n);for(var f=new e((function(t,e){return r.naturalOrder(t.count()*t.volume(),e.count()*e.volume())}));d.size();)f.push(d.pop());u(f,n-f.size());for(var p=new i;f.size();)p.push(f.pop());return p}}}();t.exports=n},4757:function(t){t.exports=function(){"use strict";var t=6e4,e=36e5,n="millisecond",r="second",i="minute",o="hour",a="day",s="week",u="month",l="quarter",c="year",d="date",f="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|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,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},v=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},g={s:v,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+v(r,2,"0")+":"+v(i,2,"0")},m:function t(e,n){if(e.date()1)return t(a[0])}else{var s=e.name;b[s]=e,i=s}return!r&&i&&(y=i),i||!r&&y},x=function(t,e){if(D(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new C(n)},E=g;E.l=w,E.i=D,E.w=function(t,e){return x(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var C=function(){function m(t){this.$L=w(t.locale,null,!0),this.parse(t)}var v=m.prototype;return v.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(E.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(p);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},v.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},v.$utils=function(){return E},v.isValid=function(){return!(this.$d.toString()===f)},v.isSame=function(t,e){var n=x(t);return this.startOf(e)<=n&&n<=this.endOf(e)},v.isAfter=function(t,e){return x(t)0,v<=m.r||!m.r){v<=1&&h>0&&(m=f[h-1]);var g=d[m.l];s&&(v=s(""+v)),l="string"==typeof g?g.replace("%d",v):g(v,r,m.l,c);break}}if(r)return l;var y=c?d.future:d.past;return"function"==typeof y?y(l):y.replace("%s",l)},r.to=function(t,e){return o(t,e,this,!0)},r.from=function(t,e){return o(t,e,this)};var a=function(t){return t.$u?n.utc():n()};r.toNow=function(t){return this.to(a(this),t)},r.fromNow=function(t){return this.from(a(this),t)}}}()},356:(t,e,n)=>{"use strict";t.exports=function(){if("object"==typeof globalThis)return globalThis;var t;try{t=this||new Function("return this")()}catch(t){if("object"==typeof window)return window;if("object"==typeof self)return self;if(void 0!==n.g)return n.g}return t}()},9411:function(){!function(t){function e(e){if("string"==typeof e.data&&(e.data={keys:e.data}),e.data&&e.data.keys&&"string"==typeof e.data.keys){var n=e.handler,r=e.data.keys.toLowerCase().split(" ");e.handler=function(e){if(this===e.target||!(t.hotkeys.options.filterInputAcceptingElements&&t.hotkeys.textInputTypes.test(e.target.nodeName)||t.hotkeys.options.filterContentEditable&&t(e.target).attr("contenteditable")||t.hotkeys.options.filterTextInputs&&t.inArray(e.target.type,t.hotkeys.textAcceptingInputTypes)>-1)){var i="keypress"!==e.type&&t.hotkeys.specialKeys[e.which],o=String.fromCharCode(e.which).toLowerCase(),a="",s={};t.each(["alt","ctrl","shift"],(function(t,n){e[n+"Key"]&&i!==n&&(a+=n+"+")})),e.metaKey&&!e.ctrlKey&&"meta"!==i&&(a+="meta+"),e.metaKey&&"meta"!==i&&a.indexOf("alt+ctrl+shift+")>-1&&(a=a.replace("alt+ctrl+shift+","hyper+")),i?s[a+i]=!0:(s[a+o]=!0,s[a+t.hotkeys.shiftNums[o]]=!0,"shift+"===a&&(s[t.hotkeys.shiftNums[o]]=!0));for(var u=0,l=r.length;u","/":"?","\\":"|"},textAcceptingInputTypes:["text","password","number","email","url","range","date","month","week","time","datetime","datetime-local","search","color","tel"],textInputTypes:/textarea|input|select/i,options:{filterInputAcceptingElements:!0,filterTextInputs:!0,filterContentEditable:!0}},t.each(["keydown","keyup","keypress"],(function(){t.event.special[this]={add:e}}))}(jQuery||this.jQuery||window.jQuery)},9152:function(t,e){var n;!function(e,n){"use strict";"object"==typeof t.exports?t.exports=e.document?n(e,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return n(t)}:n(e)}("undefined"!=typeof window?window:this,(function(r,i){"use strict";var o=[],a=Object.getPrototypeOf,s=o.slice,u=o.flat?function(t){return o.flat.call(t)}:function(t){return o.concat.apply([],t)},l=o.push,c=o.indexOf,d={},f=d.toString,p=d.hasOwnProperty,h=p.toString,m=h.call(Object),v={},g=function(t){return"function"==typeof t&&"number"!=typeof t.nodeType&&"function"!=typeof t.item},y=function(t){return null!=t&&t===t.window},b=r.document,D={type:!0,src:!0,nonce:!0,noModule:!0};function w(t,e,n){var r,i,o=(n=n||b).createElement("script");if(o.text=t,e)for(r in D)(i=e[r]||e.getAttribute&&e.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?d[f.call(t)]||"object":typeof t}var E="3.6.1",C=function t(e,n){return new t.fn.init(e,n)};function A(t){var e=!!t&&"length"in t&&t.length,n=x(t);return!g(t)&&!y(t)&&("array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t)}C.fn=C.prototype={jquery:E,constructor:C,length:0,toArray:function(){return s.call(this)},get:function(t){return null==t?s.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=C.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return C.each(this,t)},map:function(t){return this.pushStack(C.map(this,(function(e,n){return t.call(e,n,e)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(C.grep(this,(function(t,e){return(e+1)%2})))},odd:function(){return this.pushStack(C.grep(this,(function(t,e){return e%2})))},eq:function(t){var e=this.length,n=+t+(t<0?e:0);return this.pushStack(n>=0&&n+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),W=new RegExp(L+"|>"),G=new RegExp(R),V=new RegExp("^"+M+"$"),Y={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+$),PSEUDO:new RegExp("^"+R),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:new RegExp("^(?:"+I+")$","i"),needsContext:new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")},K=/HTML$/i,X=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,tt=/[+~]/,et=new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"),nt=function(t,e){var n="0x"+t.slice(1)-65536;return e||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},rt=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,it=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},ot=function(){f()},at=Dt((function(t){return!0===t.disabled&&"fieldset"===t.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{O.apply(k=P.call(w.childNodes),w.childNodes),k[w.childNodes.length].nodeType}catch(t){O={apply:k.length?function(t,e){B.apply(t,P.call(e))}:function(t,e){for(var n=t.length,r=0;t[n++]=e[r++];);t.length=n-1}}}function st(t,e,r,i){var o,s,l,c,d,h,g,y=e&&e.ownerDocument,w=e?e.nodeType:9;if(r=r||[],"string"!=typeof t||!t||1!==w&&9!==w&&11!==w)return r;if(!i&&(f(e),e=e||p,m)){if(11!==w&&(d=Z.exec(t)))if(o=d[1]){if(9===w){if(!(l=e.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(y&&(l=y.getElementById(o))&&b(e,l)&&l.id===o)return r.push(l),r}else{if(d[2])return O.apply(r,e.getElementsByTagName(t)),r;if((o=d[3])&&n.getElementsByClassName&&e.getElementsByClassName)return O.apply(r,e.getElementsByClassName(o)),r}if(n.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==w||"object"!==e.nodeName.toLowerCase())){if(g=t,y=e,1===w&&(W.test(t)||z.test(t))){for((y=tt.test(t)&>(e.parentNode)||e)===e&&n.scope||((c=e.getAttribute("id"))?c=c.replace(rt,it):e.setAttribute("id",c=D)),s=(h=a(t)).length;s--;)h[s]=(c?"#"+c:":scope")+" "+bt(h[s]);g=h.join(",")}try{return O.apply(r,y.querySelectorAll(g)),r}catch(e){N(t,!0)}finally{c===D&&e.removeAttribute("id")}}}return u(t.replace(q,"$1"),e,r,i)}function ut(){var t=[];return function e(n,i){return t.push(n+" ")>r.cacheLength&&delete e[t.shift()],e[n+" "]=i}}function lt(t){return t[D]=!0,t}function ct(t){var e=p.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function dt(t,e){for(var n=t.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=e}function ft(t,e){var n=e&&t,r=n&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function pt(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function ht(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function mt(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&at(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function vt(t){return lt((function(e){return e=+e,lt((function(n,r){for(var i,o=t([],n.length,e),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function gt(t){return t&&void 0!==t.getElementsByTagName&&t}for(e in n=st.support={},o=st.isXML=function(t){var e=t&&t.namespaceURI,n=t&&(t.ownerDocument||t).documentElement;return!K.test(e||n&&n.nodeName||"HTML")},f=st.setDocument=function(t){var e,i,a=t?t.ownerDocument||t:w;return a!=p&&9===a.nodeType&&a.documentElement?(h=(p=a).documentElement,m=!o(p),w!=p&&(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",ot,!1):i.attachEvent&&i.attachEvent("onunload",ot)),n.scope=ct((function(t){return h.appendChild(t).appendChild(p.createElement("div")),void 0!==t.querySelectorAll&&!t.querySelectorAll(":scope fieldset div").length})),n.attributes=ct((function(t){return t.className="i",!t.getAttribute("className")})),n.getElementsByTagName=ct((function(t){return t.appendChild(p.createComment("")),!t.getElementsByTagName("*").length})),n.getElementsByClassName=Q.test(p.getElementsByClassName),n.getById=ct((function(t){return h.appendChild(t).id=D,!p.getElementsByName||!p.getElementsByName(D).length})),n.getById?(r.filter.ID=function(t){var e=t.replace(et,nt);return function(t){return t.getAttribute("id")===e}},r.find.ID=function(t,e){if(void 0!==e.getElementById&&m){var n=e.getElementById(t);return n?[n]:[]}}):(r.filter.ID=function(t){var e=t.replace(et,nt);return function(t){var n=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}},r.find.ID=function(t,e){if(void 0!==e.getElementById&&m){var n,r,i,o=e.getElementById(t);if(o){if((n=o.getAttributeNode("id"))&&n.value===t)return[o];for(i=e.getElementsByName(t),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===t)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):n.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,r=[],i=0,o=e.getElementsByTagName(t);if("*"===t){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&m)return e.getElementsByClassName(t)},g=[],v=[],(n.qsa=Q.test(p.querySelectorAll))&&(ct((function(t){var e;h.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),t.querySelectorAll("[selected]").length||v.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|"+I+")"),t.querySelectorAll("[id~="+D+"-]").length||v.push("~="),(e=p.createElement("input")).setAttribute("name",""),t.appendChild(e),t.querySelectorAll("[name='']").length||v.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),t.querySelectorAll(":checked").length||v.push(":checked"),t.querySelectorAll("a#"+D+"+*").length||v.push(".#.+[+~]"),t.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")})),ct((function(t){t.innerHTML="";var e=p.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&v.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),h.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),v.push(",.*:")}))),(n.matchesSelector=Q.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ct((function(t){n.disconnectedMatch=y.call(t,"*"),y.call(t,"[s!='']:x"),g.push("!=",R)})),v=v.length&&new RegExp(v.join("|")),g=g.length&&new RegExp(g.join("|")),e=Q.test(h.compareDocumentPosition),b=e||Q.test(h.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,r=e&&e.parentNode;return t===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):t.compareDocumentPosition&&16&t.compareDocumentPosition(r)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},T=e?function(t,e){if(t===e)return d=!0,0;var r=!t.compareDocumentPosition-!e.compareDocumentPosition;return r||(1&(r=(t.ownerDocument||t)==(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!n.sortDetached&&e.compareDocumentPosition(t)===r?t==p||t.ownerDocument==w&&b(w,t)?-1:e==p||e.ownerDocument==w&&b(w,e)?1:c?j(c,t)-j(c,e):0:4&r?-1:1)}:function(t,e){if(t===e)return d=!0,0;var n,r=0,i=t.parentNode,o=e.parentNode,a=[t],s=[e];if(!i||!o)return t==p?-1:e==p?1:i?-1:o?1:c?j(c,t)-j(c,e):0;if(i===o)return ft(t,e);for(n=t;n=n.parentNode;)a.unshift(n);for(n=e;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?ft(a[r],s[r]):a[r]==w?-1:s[r]==w?1:0},p):p},st.matches=function(t,e){return st(t,null,null,e)},st.matchesSelector=function(t,e){if(f(t),n.matchesSelector&&m&&!N[e+" "]&&(!g||!g.test(e))&&(!v||!v.test(e)))try{var r=y.call(t,e);if(r||n.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(t){N(e,!0)}return st(e,p,null,[t]).length>0},st.contains=function(t,e){return(t.ownerDocument||t)!=p&&f(t),b(t,e)},st.attr=function(t,e){(t.ownerDocument||t)!=p&&f(t);var i=r.attrHandle[e.toLowerCase()],o=i&&S.call(r.attrHandle,e.toLowerCase())?i(t,e,!m):void 0;return void 0!==o?o:n.attributes||!m?t.getAttribute(e):(o=t.getAttributeNode(e))&&o.specified?o.value:null},st.escape=function(t){return(t+"").replace(rt,it)},st.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},st.uniqueSort=function(t){var e,r=[],i=0,o=0;if(d=!n.detectDuplicates,c=!n.sortStable&&t.slice(0),t.sort(T),d){for(;e=t[o++];)e===t[o]&&(i=r.push(o));for(;i--;)t.splice(r[i],1)}return c=null,t},i=st.getText=function(t){var e,n="",r=0,o=t.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=i(t)}else if(3===o||4===o)return t.nodeValue}else for(;e=t[r++];)n+=i(e);return n},r=st.selectors={cacheLength:50,createPseudo:lt,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(et,nt),t[3]=(t[3]||t[4]||t[5]||"").replace(et,nt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||st.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&st.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return Y.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&G.test(n)&&(e=a(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(et,nt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=C[t+" "];return e||(e=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+t+"("+L+"|$)"))&&C(t,(function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")}))},ATTR:function(t,e,n){return function(r){var i=st.attr(r,t);return null==i?"!="===e:!e||(i+="","="===e?i===n:"!="===e?i!==n:"^="===e?n&&0===i.indexOf(n):"*="===e?n&&i.indexOf(n)>-1:"$="===e?n&&i.slice(-n.length)===n:"~="===e?(" "+i.replace(H," ")+" ").indexOf(n)>-1:"|="===e&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(t,e,n,r,i){var o="nth"!==t.slice(0,3),a="last"!==t.slice(-4),s="of-type"===e;return 1===r&&0===i?function(t){return!!t.parentNode}:function(e,n,u){var l,c,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",v=e.parentNode,g=s&&e.nodeName.toLowerCase(),y=!u&&!s,b=!1;if(v){if(o){for(;m;){for(f=e;f=f[m];)if(s?f.nodeName.toLowerCase()===g:1===f.nodeType)return!1;h=m="only"===t&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(b=(p=(l=(c=(d=(f=v)[D]||(f[D]={}))[f.uniqueID]||(d[f.uniqueID]={}))[t]||[])[0]===x&&l[1])&&l[2],f=p&&v.childNodes[p];f=++p&&f&&f[m]||(b=p=0)||h.pop();)if(1===f.nodeType&&++b&&f===e){c[t]=[x,p,b];break}}else if(y&&(b=p=(l=(c=(d=(f=e)[D]||(f[D]={}))[f.uniqueID]||(d[f.uniqueID]={}))[t]||[])[0]===x&&l[1]),!1===b)for(;(f=++p&&f&&f[m]||(b=p=0)||h.pop())&&((s?f.nodeName.toLowerCase()!==g:1!==f.nodeType)||!++b||(y&&((c=(d=f[D]||(f[D]={}))[f.uniqueID]||(d[f.uniqueID]={}))[t]=[x,b]),f!==e)););return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(t,e){var n,i=r.pseudos[t]||r.setFilters[t.toLowerCase()]||st.error("unsupported pseudo: "+t);return i[D]?i(e):i.length>1?(n=[t,t,"",e],r.setFilters.hasOwnProperty(t.toLowerCase())?lt((function(t,n){for(var r,o=i(t,e),a=o.length;a--;)t[r=j(t,o[a])]=!(n[r]=o[a])})):function(t){return i(t,0,n)}):i}},pseudos:{not:lt((function(t){var e=[],n=[],r=s(t.replace(q,"$1"));return r[D]?lt((function(t,e,n,i){for(var o,a=r(t,null,i,[]),s=t.length;s--;)(o=a[s])&&(t[s]=!(e[s]=o))})):function(t,i,o){return e[0]=t,r(e,null,o,n),e[0]=null,!n.pop()}})),has:lt((function(t){return function(e){return st(t,e).length>0}})),contains:lt((function(t){return t=t.replace(et,nt),function(e){return(e.textContent||i(e)).indexOf(t)>-1}})),lang:lt((function(t){return V.test(t||"")||st.error("unsupported lang: "+t),t=t.replace(et,nt).toLowerCase(),function(e){var n;do{if(n=m?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(n=n.toLowerCase())===t||0===n.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}})),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===h},focus:function(t){return t===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:mt(!1),disabled:mt(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!r.pseudos.empty(t)},header:function(t){return J.test(t.nodeName)},input:function(t){return X.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:vt((function(){return[0]})),last:vt((function(t,e){return[e-1]})),eq:vt((function(t,e,n){return[n<0?n+e:n]})),even:vt((function(t,e){for(var n=0;ne?e:n;--r>=0;)t.push(r);return t})),gt:vt((function(t,e,n){for(var r=n<0?n+e:n;++r1?function(e,n,r){for(var i=t.length;i--;)if(!t[i](e,n,r))return!1;return!0}:t[0]}function xt(t,e,n,r,i){for(var o,a=[],s=0,u=t.length,l=null!=e;s-1&&(o[l]=!(a[l]=d))}}else g=xt(g===a?g.splice(h,g.length):g),i?i(null,a,g,u):O.apply(a,g)}))}function Ct(t){for(var e,n,i,o=t.length,a=r.relative[t[0].type],s=a||r.relative[" "],u=a?1:0,c=Dt((function(t){return t===e}),s,!0),d=Dt((function(t){return j(e,t)>-1}),s,!0),f=[function(t,n,r){var i=!a&&(r||n!==l)||((e=n).nodeType?c(t,n,r):d(t,n,r));return e=null,i}];u1&&wt(f),u>1&&bt(t.slice(0,u-1).concat({value:" "===t[u-2].type?"*":""})).replace(q,"$1"),n,u0,i=t.length>0,o=function(o,a,s,u,c){var d,h,v,g=0,y="0",b=o&&[],D=[],w=l,E=o||i&&r.find.TAG("*",c),C=x+=null==w?1:Math.random()||.1,A=E.length;for(c&&(l=a==p||a||c);y!==A&&null!=(d=E[y]);y++){if(i&&d){for(h=0,a||d.ownerDocument==p||(f(d),s=!m);v=t[h++];)if(v(d,a||p,s)){u.push(d);break}c&&(x=C)}n&&((d=!v&&d)&&g--,o&&b.push(d))}if(g+=y,n&&y!==g){for(h=0;v=e[h++];)v(b,D,a,s);if(o){if(g>0)for(;y--;)b[y]||D[y]||(D[y]=_.call(u));D=xt(D)}O.apply(u,D),c&&!o&&D.length>0&&g+e.length>1&&st.uniqueSort(u)}return c&&(x=C,l=w),b};return n?lt(o):o}(o,i)),s.selector=t}return s},u=st.select=function(t,e,n,i){var o,u,l,c,d,f="function"==typeof t&&t,p=!i&&a(t=f.selector||t);if(n=n||[],1===p.length){if((u=p[0]=p[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===e.nodeType&&m&&r.relative[u[1].type]){if(!(e=(r.find.ID(l.matches[0].replace(et,nt),e)||[])[0]))return n;f&&(e=e.parentNode),t=t.slice(u.shift().value.length)}for(o=Y.needsContext.test(t)?0:u.length;o--&&(l=u[o],!r.relative[c=l.type]);)if((d=r.find[c])&&(i=d(l.matches[0].replace(et,nt),tt.test(u[0].type)&>(e.parentNode)||e))){if(u.splice(o,1),!(t=i.length&&bt(u)))return O.apply(n,i),n;break}}return(f||s(t,p))(i,e,!m,n,!e||tt.test(t)&>(e.parentNode)||e),n},n.sortStable=D.split("").sort(T).join("")===D,n.detectDuplicates=!!d,f(),n.sortDetached=ct((function(t){return 1&t.compareDocumentPosition(p.createElement("fieldset"))})),ct((function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")}))||dt("type|href|height|width",(function(t,e,n){if(!n)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)})),n.attributes&&ct((function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")}))||dt("value",(function(t,e,n){if(!n&&"input"===t.nodeName.toLowerCase())return t.defaultValue})),ct((function(t){return null==t.getAttribute("disabled")}))||dt(I,(function(t,e,n){var r;if(!n)return!0===t[e]?e.toLowerCase():(r=t.getAttributeNode(e))&&r.specified?r.value:null})),st}(r);C.find=F,(C.expr=F.selectors)[":"]=C.expr.pseudos,C.uniqueSort=C.unique=F.uniqueSort,C.text=F.getText,C.isXMLDoc=F.isXML,C.contains=F.contains,C.escapeSelector=F.escape;var N=function(t,e,n){for(var r=[],i=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(i&&C(t).is(n))break;r.push(t)}return r},T=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},S=C.expr.match.needsContext;function k(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}var _=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function B(t,e,n){return g(e)?C.grep(t,(function(t,r){return!!e.call(t,r,t)!==n})):e.nodeType?C.grep(t,(function(t){return t===e!==n})):"string"!=typeof e?C.grep(t,(function(t){return c.call(e,t)>-1!==n})):C.filter(e,t,n)}C.filter=function(t,e,n){var r=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===r.nodeType?C.find.matchesSelector(r,t)?[r]:[]:C.find.matches(t,C.grep(e,(function(t){return 1===t.nodeType})))},C.fn.extend({find:function(t){var e,n,r=this.length,i=this;if("string"!=typeof t)return this.pushStack(C(t).filter((function(){for(e=0;e1?C.uniqueSort(n):n},filter:function(t){return this.pushStack(B(this,t||[],!1))},not:function(t){return this.pushStack(B(this,t||[],!0))},is:function(t){return!!B(this,"string"==typeof t&&S.test(t)?C(t):t||[],!1).length}});var O,P=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(C.fn.init=function(t,e,n){var r,i;if(!t)return this;if(n=n||O,"string"==typeof t){if(!(r="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:P.exec(t))||!r[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(r[1]){if(e=e instanceof C?e[0]:e,C.merge(this,C.parseHTML(r[1],e&&e.nodeType?e.ownerDocument||e:b,!0)),_.test(r[1])&&C.isPlainObject(e))for(r in e)g(this[r])?this[r](e[r]):this.attr(r,e[r]);return this}return(i=b.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):g(t)?void 0!==n.ready?n.ready(t):t(C):C.makeArray(t,this)}).prototype=C.fn,O=C(b);var j=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};function L(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}C.fn.extend({has:function(t){var e=C(t,this),n=e.length;return this.filter((function(){for(var t=0;t-1:1===n.nodeType&&C.find.matchesSelector(n,t))){o.push(n);break}return this.pushStack(o.length>1?C.uniqueSort(o):o)},index:function(t){return t?"string"==typeof t?c.call(C(t),this[0]):c.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(C.uniqueSort(C.merge(this.get(),C(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),C.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return N(t,"parentNode")},parentsUntil:function(t,e,n){return N(t,"parentNode",n)},next:function(t){return L(t,"nextSibling")},prev:function(t){return L(t,"previousSibling")},nextAll:function(t){return N(t,"nextSibling")},prevAll:function(t){return N(t,"previousSibling")},nextUntil:function(t,e,n){return N(t,"nextSibling",n)},prevUntil:function(t,e,n){return N(t,"previousSibling",n)},siblings:function(t){return T((t.parentNode||{}).firstChild,t)},children:function(t){return T(t.firstChild)},contents:function(t){return null!=t.contentDocument&&a(t.contentDocument)?t.contentDocument:(k(t,"template")&&(t=t.content||t),C.merge([],t.childNodes))}},(function(t,e){C.fn[t]=function(n,r){var i=C.map(this,e,n);return"Until"!==t.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=C.filter(r,i)),this.length>1&&(I[t]||C.uniqueSort(i),j.test(t)&&i.reverse()),this.pushStack(i)}}));var M=/[^\x20\t\r\n\f]+/g;function $(t){return t}function R(t){throw t}function H(t,e,n,r){var i;try{t&&g(i=t.promise)?i.call(t).done(e).fail(n):t&&g(i=t.then)?i.call(t,e,n):e.apply(void 0,[t].slice(r))}catch(t){n.apply(void 0,[t])}}C.Callbacks=function(t){t="string"==typeof t?function(t){var e={};return C.each(t.match(M)||[],(function(t,n){e[n]=!0})),e}(t):C.extend({},t);var e,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||t.once,r=e=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--})),this},has:function(t){return t?C.inArray(t,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||e||(o=n=""),this},locked:function(){return!!i},fireWith:function(t,n){return i||(n=[t,(n=n||[]).slice?n.slice():n],a.push(n),e||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},C.extend({Deferred:function(t){var e=[["notify","progress",C.Callbacks("memory"),C.Callbacks("memory"),2],["resolve","done",C.Callbacks("once memory"),C.Callbacks("once memory"),0,"resolved"],["reject","fail",C.Callbacks("once memory"),C.Callbacks("once memory"),1,"rejected"]],n="pending",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(t){return i.then(null,t)},pipe:function(){var t=arguments;return C.Deferred((function(n){C.each(e,(function(e,r){var i=g(t[r[4]])&&t[r[4]];o[r[1]]((function(){var t=i&&i.apply(this,arguments);t&&g(t.promise)?t.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[t]:arguments)}))})),t=null})).promise()},then:function(t,n,i){var o=0;function a(t,e,n,i){return function(){var s=this,u=arguments,l=function(){var r,l;if(!(t=o&&(n!==R&&(s=void 0,u=[r]),e.rejectWith(s,u))}};t?c():(C.Deferred.getStackHook&&(c.stackTrace=C.Deferred.getStackHook()),r.setTimeout(c))}}return C.Deferred((function(r){e[0][3].add(a(0,r,g(i)?i:$,r.notifyWith)),e[1][3].add(a(0,r,g(t)?t:$)),e[2][3].add(a(0,r,g(n)?n:R))})).promise()},promise:function(t){return null!=t?C.extend(t,i):i}},o={};return C.each(e,(function(t,r){var a=r[2],s=r[5];i[r[1]]=a.add,s&&a.add((function(){n=s}),e[3-t][2].disable,e[3-t][3].disable,e[0][2].lock,e[0][3].lock),a.add(r[3].fire),o[r[0]]=function(){return o[r[0]+"With"](this===o?void 0:this,arguments),this},o[r[0]+"With"]=a.fireWith})),i.promise(o),t&&t.call(o,o),o},when:function(t){var e=arguments.length,n=e,r=Array(n),i=s.call(arguments),o=C.Deferred(),a=function(t){return function(n){r[t]=this,i[t]=arguments.length>1?s.call(arguments):n,--e||o.resolveWith(r,i)}};if(e<=1&&(H(t,o.done(a(n)).resolve,o.reject,!e),"pending"===o.state()||g(i[n]&&i[n].then)))return o.then();for(;n--;)H(i[n],a(n),o.reject);return o.promise()}});var q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;C.Deferred.exceptionHook=function(t,e){r.console&&r.console.warn&&t&&q.test(t.name)&&r.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},C.readyException=function(t){r.setTimeout((function(){throw t}))};var U=C.Deferred();function z(){b.removeEventListener("DOMContentLoaded",z),r.removeEventListener("load",z),C.ready()}C.fn.ready=function(t){return U.then(t).catch((function(t){C.readyException(t)})),this},C.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--C.readyWait:C.isReady)||(C.isReady=!0,!0!==t&&--C.readyWait>0||U.resolveWith(b,[C]))}}),C.ready.then=U.then,"complete"===b.readyState||"loading"!==b.readyState&&!b.documentElement.doScroll?r.setTimeout(C.ready):(b.addEventListener("DOMContentLoaded",z),r.addEventListener("load",z));var W=function t(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===x(r))for(u in o=!0,r)t(e,n,u,r[u],!0,a,s);else if(void 0!==i&&(o=!0,g(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(t,e,n){return c.call(C(t),n)})),n))for(;u1,null,!0)},removeData:function(t){return this.each((function(){Z.remove(this,t)}))}}),C.extend({queue:function(t,e,n){var r;if(t)return e=(e||"fx")+"queue",r=Q.get(t,e),n&&(!r||Array.isArray(n)?r=Q.access(t,e,C.makeArray(n)):r.push(n)),r||[]},dequeue:function(t,e){var n=C.queue(t,e=e||"fx"),r=n.length,i=n.shift(),o=C._queueHooks(t,e);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===e&&n.unshift("inprogress"),delete o.stop,i.call(t,(function(){C.dequeue(t,e)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return Q.get(t,n)||Q.access(t,n,{empty:C.Callbacks("once memory").add((function(){Q.remove(t,[e+"queue",n])}))})}}),C.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length\x20\t\r\n\f]*)/i,yt=/^$|^module$|\/(?:java|ecma)script/i;ht=b.createDocumentFragment().appendChild(b.createElement("div")),(mt=b.createElement("input")).setAttribute("type","radio"),mt.setAttribute("checked","checked"),mt.setAttribute("name","t"),ht.appendChild(mt),v.checkClone=ht.cloneNode(!0).cloneNode(!0).lastChild.checked,ht.innerHTML="",v.noCloneChecked=!!ht.cloneNode(!0).lastChild.defaultValue,ht.innerHTML="",v.option=!!ht.lastChild;var bt={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Dt(t,e){var n;return n=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&k(t,e)?C.merge([t],n):n}function wt(t,e){for(var n=0,r=t.length;n",""]);var xt=/<|&#?\w+;/;function Et(t,e,n,r,i){for(var o,a,s,u,l,c,d=e.createDocumentFragment(),f=[],p=0,h=t.length;p-1)i&&i.push(o);else if(l=st(o),a=Dt(d.appendChild(o),"script"),l&&wt(a),n)for(c=0;o=a[c++];)yt.test(o.type||"")&&n.push(o);return d}var Ct=/^([^.]*)(?:\.(.+)|)/;function At(){return!0}function Ft(){return!1}function Nt(t,e){return t===function(){try{return b.activeElement}catch(t){}}()==("focus"===e)}function Tt(t,e,n,r,i,o){var a,s;if("object"==typeof e){for(s in"string"!=typeof n&&(r=r||n,n=void 0),e)Tt(t,s,n,r,e[s],o);return t}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ft;else if(!i)return t;return 1===o&&(a=i,i=function(t){return C().off(t),a.apply(this,arguments)},i.guid=a.guid||(a.guid=C.guid++)),t.each((function(){C.event.add(this,e,i,r,n)}))}function St(t,e,n){n?(Q.set(t,e,!1),C.event.add(t,e,{namespace:!1,handler:function(t){var r,i,o=Q.get(this,e);if(1&t.isTrigger&&this[e]){if(o.length)(C.event.special[e]||{}).delegateType&&t.stopPropagation();else if(o=s.call(arguments),Q.set(this,e,o),r=n(this,e),this[e](),o!==(i=Q.get(this,e))||r?Q.set(this,e,!1):i={},o!==i)return t.stopImmediatePropagation(),t.preventDefault(),i&&i.value}else o.length&&(Q.set(this,e,{value:C.event.trigger(C.extend(o[0],C.Event.prototype),o.slice(1),this)}),t.stopImmediatePropagation())}})):void 0===Q.get(t,e)&&C.event.add(t,e,At)}C.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,d,f,p,h,m,v=Q.get(t);if(X(t))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&C.find.matchesSelector(at,i),n.guid||(n.guid=C.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return C.event.triggered!==e.type?C.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(M)||[""]).length;l--;)p=m=(s=Ct.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),p&&(d=C.event.special[p]||{},p=(i?d.delegateType:d.bindType)||p,d=C.event.special[p]||{},c=C.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&C.expr.match.needsContext.test(i),namespace:h.join(".")},o),(f=u[p])||((f=u[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(p,a)),d.add&&(d.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?f.splice(f.delegateCount++,0,c):f.push(c),C.event.global[p]=!0)},remove:function(t,e,n,r,i){var o,a,s,u,l,c,d,f,p,h,m,v=Q.hasData(t)&&Q.get(t);if(v&&(u=v.events)){for(l=(e=(e||"").match(M)||[""]).length;l--;)if(p=m=(s=Ct.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),p){for(d=C.event.special[p]||{},f=u[p=(r?d.delegateType:d.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=f.length;o--;)c=f[o],!i&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,d.remove&&d.remove.call(t,c));a&&!f.length&&(d.teardown&&!1!==d.teardown.call(t,h,v.handle)||C.removeEvent(t,p,v.handle),delete u[p])}else for(p in u)C.event.remove(t,p+e[l],n,r,!0);C.isEmptyObject(u)&&Q.remove(t,"handle events")}},dispatch:function(t){var e,n,r,i,o,a,s=new Array(arguments.length),u=C.event.fix(t),l=(Q.get(this,"events")||Object.create(null))[u.type]||[],c=C.event.special[u.type]||{};for(s[0]=u,e=1;e=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==t.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:C.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\s*$/g;function Ot(t,e){return k(t,"table")&&k(11!==e.nodeType?e:e.firstChild,"tr")&&C(t).children("tbody")[0]||t}function Pt(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function jt(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function It(t,e){var n,r,i,o,a,s;if(1===e.nodeType){if(Q.hasData(t)&&(s=Q.get(t).events))for(i in Q.remove(e,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"==typeof h&&!v.checkClone&&_t.test(h))return t.each((function(i){var o=t.eq(i);m&&(e[0]=h.call(this,i,o.html())),Mt(o,e,n,r)}));if(f&&(o=(i=Et(e,t[0].ownerDocument,!1,t,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=C.map(Dt(i,"script"),Pt)).length;d0&&wt(a,!u&&Dt(t,"script")),s},cleanData:function(t){for(var e,n,r,i=C.event.special,o=0;void 0!==(n=t[o]);o++)if(X(n)){if(e=n[Q.expando]){if(e.events)for(r in e.events)i[r]?C.event.remove(n,r):C.removeEvent(n,r,e.handle);n[Q.expando]=void 0}n[Z.expando]&&(n[Z.expando]=void 0)}}}),C.fn.extend({detach:function(t){return $t(this,t,!0)},remove:function(t){return $t(this,t)},text:function(t){return W(this,(function(t){return void 0===t?C.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 Mt(this,arguments,(function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Ot(this,t).appendChild(t)}))},prepend:function(){return Mt(this,arguments,(function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=Ot(this,t);e.insertBefore(t,e.firstChild)}}))},before:function(){return Mt(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this)}))},after:function(){return Mt(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&&(C.cleanData(Dt(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map((function(){return C.clone(this,t,e)}))},html:function(t){return W(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&&!kt.test(t)&&!bt[(gt.exec(t)||["",""])[1].toLowerCase()]){t=C.htmlPrefilter(t);try{for(;n=0&&(u+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-o-u-s-.5))||0),u}function re(t,e,n){var r=qt(t),i=(!v.boxSizingReliable()||n)&&"border-box"===C.css(t,"boxSizing",!1,r),o=i,a=Gt(t,e,r),s="offset"+e[0].toUpperCase()+e.slice(1);if(Rt.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&k(t,"tr")||"auto"===a||!parseFloat(a)&&"inline"===C.css(t,"display",!1,r))&&t.getClientRects().length&&(i="border-box"===C.css(t,"boxSizing",!1,r),(o=s in t)&&(a=t[s])),(a=parseFloat(a)||0)+ne(t,e,n||(i?"border":"content"),o,r,a)+"px"}function ie(t,e,n,r,i){return new ie.prototype.init(t,e,n,r,i)}C.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=Gt(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 i,o,a,s=K(e),u=Ht.test(e),l=t.style;if(u||(e=Jt(s)),a=C.cssHooks[e]||C.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(t,!1,r))?i:l[e];"string"==(o=typeof n)&&(i=it.exec(n))&&i[1]&&(n=ct(t,e,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(C.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==e.indexOf("background")||(l[e]="inherit"),a&&"set"in a&&void 0===(n=a.set(t,n,r))||(u?l.setProperty(e,n):l[e]=n))}},css:function(t,e,n,r){var i,o,a,s=K(e);return Ht.test(e)||(e=Jt(s)),(a=C.cssHooks[e]||C.cssHooks[s])&&"get"in a&&(i=a.get(t,!0,n)),void 0===i&&(i=Gt(t,e,r)),"normal"===i&&e in te&&(i=te[e]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),C.each(["height","width"],(function(t,e){C.cssHooks[e]={get:function(t,n,r){if(n)return!Qt.test(C.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?re(t,e,r):Ut(t,Zt,(function(){return re(t,e,r)}))},set:function(t,n,r){var i,o=qt(t),a=!v.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===C.css(t,"boxSizing",!1,o),u=r?ne(t,e,r,s,o):0;return s&&a&&(u-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(o[e])-ne(t,e,"border",!1,o)-.5)),u&&(i=it.exec(n))&&"px"!==(i[3]||"px")&&(t.style[e]=n,n=C.css(t,e)),ee(0,n,u)}}})),C.cssHooks.marginLeft=Vt(v.reliableMarginLeft,(function(t,e){if(e)return(parseFloat(Gt(t,"marginLeft"))||t.getBoundingClientRect().left-Ut(t,{marginLeft:0},(function(){return t.getBoundingClientRect().left})))+"px"})),C.each({margin:"",padding:"",border:"Width"},(function(t,e){C.cssHooks[t+e]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[t+ot[r]+e]=o[r]||o[r-2]||o[0];return i}},"margin"!==t&&(C.cssHooks[t+e].set=ee)})),C.fn.extend({css:function(t,e){return W(this,(function(t,e,n){var r,i,o={},a=0;if(Array.isArray(e)){for(r=qt(t),i=e.length;a1)}}),C.Tween=ie,ie.prototype={constructor:ie,init:function(t,e,n,r,i,o){this.elem=t,this.prop=n,this.easing=i||C.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=r,this.unit=o||(C.cssNumber[n]?"":"px")},cur:function(){var t=ie.propHooks[this.prop];return t&&t.get?t.get(this):ie.propHooks._default.get(this)},run:function(t){var e,n=ie.propHooks[this.prop];return this.options.duration?this.pos=e=C.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):ie.propHooks._default.set(this),this}},ie.prototype.init.prototype=ie.prototype,ie.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=C.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){C.fx.step[t.prop]?C.fx.step[t.prop](t):1!==t.elem.nodeType||!C.cssHooks[t.prop]&&null==t.elem.style[Jt(t.prop)]?t.elem[t.prop]=t.now:C.style(t.elem,t.prop,t.now+t.unit)}}},ie.propHooks.scrollTop=ie.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},C.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},(C.fx=ie.prototype.init).step={};var oe,ae,se=/^(?:toggle|show|hide)$/,ue=/queueHooks$/;function le(){ae&&(!1===b.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(le):r.setTimeout(le,C.fx.interval),C.fx.tick())}function ce(){return r.setTimeout((function(){oe=void 0})),oe=Date.now()}function de(t,e){var n,r=0,i={height:t};for(e=e?1:0;r<4;r+=2-e)i["margin"+(n=ot[r])]=i["padding"+n]=t;return e&&(i.opacity=i.width=t),i}function fe(t,e,n){for(var r,i=(pe.tweeners[e]||[]).concat(pe.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(t){return this.each((function(){C.removeAttr(this,t)}))}}),C.extend({attr:function(t,e,n){var r,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===t.getAttribute?C.prop(t,e,n):(1===o&&C.isXMLDoc(t)||(i=C.attrHooks[e.toLowerCase()]||(C.expr.match.bool.test(e)?he:void 0)),void 0!==n?null===n?void C.removeAttr(t,e):i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:(t.setAttribute(e,n+""),n):i&&"get"in i&&null!==(r=i.get(t,e))?r:null==(r=C.find.attr(t,e))?void 0:r)},attrHooks:{type:{set:function(t,e){if(!v.radioValue&&"radio"===e&&k(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,r=0,i=e&&e.match(M);if(i&&1===t.nodeType)for(;n=i[r++];)t.removeAttribute(n)}}),he={set:function(t,e,n){return!1===e?C.removeAttr(t,n):t.setAttribute(n,n),n}},C.each(C.expr.match.bool.source.match(/\w+/g),(function(t,e){var n=me[e]||C.find.attr;me[e]=function(t,e,r){var i,o,a=e.toLowerCase();return r||(o=me[a],me[a]=i,i=null!=n(t,e,r)?a:null,me[a]=o),i}}));var ve=/^(?:input|select|textarea|button)$/i,ge=/^(?:a|area)$/i;function ye(t){return(t.match(M)||[]).join(" ")}function be(t){return t.getAttribute&&t.getAttribute("class")||""}function De(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(M)||[]}C.fn.extend({prop:function(t,e){return W(this,C.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each((function(){delete this[C.propFix[t]||t]}))}}),C.extend({prop:function(t,e,n){var r,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&C.isXMLDoc(t)||(e=C.propFix[e]||e,i=C.propHooks[e]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:t[e]=n:i&&"get"in i&&null!==(r=i.get(t,e))?r:t[e]},propHooks:{tabIndex:{get:function(t){var e=C.find.attr(t,"tabindex");return e?parseInt(e,10):ve.test(t.nodeName)||ge.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),v.optSelected||(C.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)}}),C.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){C.propFix[this.toLowerCase()]=this})),C.fn.extend({addClass:function(t){var e,n,r,i,o,a;return g(t)?this.each((function(e){C(this).addClass(t.call(this,e,be(this)))})):(e=De(t)).length?this.each((function(){if(r=be(this),n=1===this.nodeType&&" "+ye(r)+" "){for(o=0;o-1;)n=n.replace(" "+i+" "," ");a=ye(n),r!==a&&this.setAttribute("class",a)}})):this:this.attr("class","")},toggleClass:function(t,e){var n,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return g(t)?this.each((function(n){C(this).toggleClass(t.call(this,n,be(this),e),e)})):"boolean"==typeof e&&s?e?this.addClass(t):this.removeClass(t):(n=De(t),this.each((function(){if(s)for(o=C(this),i=0;i-1)return!0;return!1}});var we=/\r/g;C.fn.extend({val:function(t){var e,n,r,i=this[0];return arguments.length?(r=g(t),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?t.call(this,n,C(this).val()):t)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=C.map(i,(function(t){return null==t?"":t+""}))),(e=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,i,"value")||(this.value=i))}))):i?(e=C.valHooks[i.type]||C.valHooks[i.nodeName.toLowerCase()])&&"get"in e&&void 0!==(n=e.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(we,""):null==n?"":n:void 0}}),C.extend({valHooks:{option:{get:function(t){var e=C.find.attr(t,"value");return null!=e?e:ye(C.text(t))}},select:{get:function(t){var e,n,r,i=t.options,o=t.selectedIndex,a="select-one"===t.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(t.selectedIndex=-1),o}}}}),C.each(["radio","checkbox"],(function(){C.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=C.inArray(C(t).val(),e)>-1}},v.checkOn||(C.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})})),v.focusin="onfocusin"in r;var xe=/^(?:focusinfocus|focusoutblur)$/,Ee=function(t){t.stopPropagation()};C.extend(C.event,{trigger:function(t,e,n,i){var o,a,s,u,l,c,d,f,h=[n||b],m=p.call(t,"type")?t.type:t,v=p.call(t,"namespace")?t.namespace.split("."):[];if(a=f=s=n=n||b,3!==n.nodeType&&8!==n.nodeType&&!xe.test(m+C.event.triggered)&&(m.indexOf(".")>-1&&(v=m.split("."),m=v.shift(),v.sort()),l=m.indexOf(":")<0&&"on"+m,(t=t[C.expando]?t:new C.Event(m,"object"==typeof t&&t)).isTrigger=i?2:3,t.namespace=v.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=n),e=null==e?[t]:C.makeArray(e,[t]),d=C.event.special[m]||{},i||!d.trigger||!1!==d.trigger.apply(n,e))){if(!i&&!d.noBubble&&!y(n)){for(u=d.delegateType||m,xe.test(u+m)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(n.ownerDocument||b)&&h.push(s.defaultView||s.parentWindow||r)}for(o=0;(a=h[o++])&&!t.isPropagationStopped();)f=a,t.type=o>1?u:d.bindType||m,(c=(Q.get(a,"events")||Object.create(null))[t.type]&&Q.get(a,"handle"))&&c.apply(a,e),(c=l&&a[l])&&c.apply&&X(a)&&(t.result=c.apply(a,e),!1===t.result&&t.preventDefault());return t.type=m,i||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(h.pop(),e)||!X(n)||l&&g(n[m])&&!y(n)&&((s=n[l])&&(n[l]=null),C.event.triggered=m,t.isPropagationStopped()&&f.addEventListener(m,Ee),n[m](),t.isPropagationStopped()&&f.removeEventListener(m,Ee),C.event.triggered=void 0,s&&(n[l]=s)),t.result}},simulate:function(t,e,n){var r=C.extend(new C.Event,n,{type:t,isSimulated:!0});C.event.trigger(r,null,e)}}),C.fn.extend({trigger:function(t,e){return this.each((function(){C.event.trigger(t,e,this)}))},triggerHandler:function(t,e){var n=this[0];if(n)return C.event.trigger(t,e,n,!0)}}),v.focusin||C.each({focus:"focusin",blur:"focusout"},(function(t,e){var n=function(t){C.event.simulate(e,t.target,C.event.fix(t))};C.event.special[e]={setup:function(){var r=this.ownerDocument||this.document||this,i=Q.access(r,e);i||r.addEventListener(t,n,!0),Q.access(r,e,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,i=Q.access(r,e)-1;i?Q.access(r,e,i):(r.removeEventListener(t,n,!0),Q.remove(r,e))}}}));var Ce=r.location,Ae={guid:Date.now()},Fe=/\?/;C.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||C.error("Invalid XML: "+(n?C.map(n.childNodes,(function(t){return t.textContent})).join("\n"):t)),e};var Ne=/\[\]$/,Te=/\r?\n/g,Se=/^(?:submit|button|image|reset|file)$/i,ke=/^(?:input|select|textarea|keygen)/i;function _e(t,e,n,r){var i;if(Array.isArray(e))C.each(e,(function(e,i){n||Ne.test(t)?r(t,i):_e(t+"["+("object"==typeof i&&null!=i?e:"")+"]",i,n,r)}));else if(n||"object"!==x(e))r(t,e);else for(i in e)_e(t+"["+i+"]",e[i],n,r)}C.param=function(t,e){var n,r=[],i=function(t,e){var n=g(e)?e():e;r[r.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==n?"":n)};if(null==t)return"";if(Array.isArray(t)||t.jquery&&!C.isPlainObject(t))C.each(t,(function(){i(this.name,this.value)}));else for(n in t)_e(n,t[n],e,i);return r.join("&")},C.fn.extend({serialize:function(){return C.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var t=C.prop(this,"elements");return t?C.makeArray(t):this})).filter((function(){var t=this.type;return this.name&&!C(this).is(":disabled")&&ke.test(this.nodeName)&&!Se.test(t)&&(this.checked||!vt.test(t))})).map((function(t,e){var n=C(this).val();return null==n?null:Array.isArray(n)?C.map(n,(function(t){return{name:e.name,value:t.replace(Te,"\r\n")}})):{name:e.name,value:n.replace(Te,"\r\n")}})).get()}});var Be=/%20/g,Oe=/#.*$/,Pe=/([?&])_=[^&]*/,je=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ie=/^(?:GET|HEAD)$/,Le=/^\/\//,Me={},$e={},Re="*/".concat("*"),He=b.createElement("a");function qe(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var r,i=0,o=e.toLowerCase().match(M)||[];if(g(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(t[r]=t[r]||[]).unshift(n)):(t[r]=t[r]||[]).push(n)}}function Ue(t,e,n,r){var i={},o=t===$e;function a(s){var u;return i[s]=!0,C.each(t[s]||[],(function(t,s){var l=s(e,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(e.dataTypes.unshift(l),a(l),!1)})),u}return a(e.dataTypes[0])||!i["*"]&&a("*")}function ze(t,e){var n,r,i=C.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((i[n]?t:r||(r={}))[n]=e[n]);return r&&C.extend(!0,t,r),t}He.href=Ce.href,C.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:{"*":Re,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":C.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?ze(ze(t,C.ajaxSettings),e):ze(C.ajaxSettings,t)},ajaxPrefilter:qe(Me),ajaxTransport:qe($e),ajax:function(t,e){"object"==typeof t&&(e=t,t=void 0);var n,i,o,a,s,u,l,c,d,f,p=C.ajaxSetup({},e=e||{}),h=p.context||p,m=p.context&&(h.nodeType||h.jquery)?C(h):C.event,v=C.Deferred(),g=C.Callbacks("once memory"),y=p.statusCode||{},D={},w={},x="canceled",E={readyState:0,getResponseHeader:function(t){var e;if(l){if(!a)for(a={};e=je.exec(o);)a[e[1].toLowerCase()+" "]=(a[e[1].toLowerCase()+" "]||[]).concat(e[2]);e=a[t.toLowerCase()+" "]}return null==e?null:e.join(", ")},getAllResponseHeaders:function(){return l?o:null},setRequestHeader:function(t,e){return null==l&&(t=w[t.toLowerCase()]=w[t.toLowerCase()]||t,D[t]=e),this},overrideMimeType:function(t){return null==l&&(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(l)E.always(t[E.status]);else for(e in t)y[e]=[y[e],t[e]];return this},abort:function(t){var e=t||x;return n&&n.abort(e),A(0,e),this}};if(v.promise(E),p.url=((t||p.url||Ce.href)+"").replace(Le,Ce.protocol+"//"),p.type=e.method||e.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(M)||[""],null==p.crossDomain){u=b.createElement("a");try{u.href=p.url,u.href=u.href,p.crossDomain=He.protocol+"//"+He.host!=u.protocol+"//"+u.host}catch(t){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=C.param(p.data,p.traditional)),Ue(Me,p,e,E),l)return E;for(d in(c=C.event&&p.global)&&0==C.active++&&C.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Ie.test(p.type),i=p.url.replace(Oe,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(Be,"+")):(f=p.url.slice(i.length),p.data&&(p.processData||"string"==typeof p.data)&&(i+=(Fe.test(i)?"&":"?")+p.data,delete p.data),!1===p.cache&&(i=i.replace(Pe,"$1"),f=(Fe.test(i)?"&":"?")+"_="+Ae.guid+++f),p.url=i+f),p.ifModified&&(C.lastModified[i]&&E.setRequestHeader("If-Modified-Since",C.lastModified[i]),C.etag[i]&&E.setRequestHeader("If-None-Match",C.etag[i])),(p.data&&p.hasContent&&!1!==p.contentType||e.contentType)&&E.setRequestHeader("Content-Type",p.contentType),E.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Re+"; q=0.01":""):p.accepts["*"]),p.headers)E.setRequestHeader(d,p.headers[d]);if(p.beforeSend&&(!1===p.beforeSend.call(h,E,p)||l))return E.abort();if(x="abort",g.add(p.complete),E.done(p.success),E.fail(p.error),n=Ue($e,p,e,E)){if(E.readyState=1,c&&m.trigger("ajaxSend",[E,p]),l)return E;p.async&&p.timeout>0&&(s=r.setTimeout((function(){E.abort("timeout")}),p.timeout));try{l=!1,n.send(D,A)}catch(t){if(l)throw t;A(-1,t)}}else A(-1,"No Transport");function A(t,e,a,u){var d,f,b,D,w,x=e;l||(l=!0,s&&r.clearTimeout(s),n=void 0,o=u||"",E.readyState=t>0?4:0,d=t>=200&&t<300||304===t,a&&(D=function(t,e,n){for(var r,i,o,a,s=t.contents,u=t.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=t.mimeType||e.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||t.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(p,E,a)),!d&&C.inArray("script",p.dataTypes)>-1&&C.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),D=function(t,e,n,r){var i,o,a,s,u,l={},c=t.dataTypes.slice();if(c[1])for(a in t.converters)l[a.toLowerCase()]=t.converters[a];for(o=c.shift();o;)if(t.responseFields[o]&&(n[t.responseFields[o]]=e),!u&&r&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=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 "+u+" to "+o}}}return{state:"success",data:e}}(p,D,E,d),d?(p.ifModified&&((w=E.getResponseHeader("Last-Modified"))&&(C.lastModified[i]=w),(w=E.getResponseHeader("etag"))&&(C.etag[i]=w)),204===t||"HEAD"===p.type?x="nocontent":304===t?x="notmodified":(x=D.state,f=D.data,d=!(b=D.error))):(b=x,!t&&x||(x="error",t<0&&(t=0))),E.status=t,E.statusText=(e||x)+"",d?v.resolveWith(h,[f,x,E]):v.rejectWith(h,[E,x,b]),E.statusCode(y),y=void 0,c&&m.trigger(d?"ajaxSuccess":"ajaxError",[E,p,d?f:b]),g.fireWith(h,[E,x]),c&&(m.trigger("ajaxComplete",[E,p]),--C.active||C.event.trigger("ajaxStop")))}return E},getJSON:function(t,e,n){return C.get(t,e,n,"json")},getScript:function(t,e){return C.get(t,void 0,e,"script")}}),C.each(["get","post"],(function(t,e){C[e]=function(t,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),C.ajax(C.extend({url:t,type:e,dataType:i,data:n,success:r},C.isPlainObject(t)&&t))}})),C.ajaxPrefilter((function(t){var e;for(e in t.headers)"content-type"===e.toLowerCase()&&(t.contentType=t.headers[e]||"")})),C._evalUrl=function(t,e,n){return C.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(t){C.globalEval(t,e,n)}})},C.fn.extend({wrapAll:function(t){var e;return this[0]&&(g(t)&&(t=t.call(this[0])),e=C(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 g(t)?this.each((function(e){C(this).wrapInner(t.call(this,e))})):this.each((function(){var e=C(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)}))},wrap:function(t){var e=g(t);return this.each((function(n){C(this).wrapAll(e?t.call(this,n):t)}))},unwrap:function(t){return this.parent(t).not("body").each((function(){C(this).replaceWith(this.childNodes)})),this}}),C.expr.pseudos.hidden=function(t){return!C.expr.pseudos.visible(t)},C.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},C.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(t){}};var We={0:200,1223:204},Ge=C.ajaxSettings.xhr();v.cors=!!Ge&&"withCredentials"in Ge,v.ajax=Ge=!!Ge,C.ajaxTransport((function(t){var e,n;if(v.cors||Ge&&!t.crossDomain)return{send:function(i,o){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||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[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?o(0,"error"):o(s.status,s.statusText):o(We[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()}}})),C.ajaxPrefilter((function(t){t.crossDomain&&(t.contents.script=!1)})),C.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 C.globalEval(t),t}}}),C.ajaxPrefilter("script",(function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")})),C.ajaxTransport("script",(function(t){var e,n;if(t.crossDomain||t.scriptAttrs)return{send:function(r,i){e=C("