@nocobase/plugin-multi-app-manager 2.0.0-alpha.4 → 2.0.0-alpha.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_multi_app_manager=self.webpackChunk_nocobase_plugin_multi_app_manager||[]).push([["959"],{7101:function(e,n,t){t.r(n),t.d(n,{AppManager:function(){return g}});var a=t(3772),c=t(2721),r=t(8156),o=t.n(r),u=t(9570),i=t(2785),p=t(8875),l=function(e){var n=e.value,t=e.onChange,a=(0,i.g)().t;return o().createElement(c.Checkbox,{onChange:function(e){e.target.checked?t("".concat((0,p.uid)()).concat((0,p.uid)()).concat((0,p.uid)()).concat((0,p.uid)())):t("")},checked:!!n},a("Automatically generate a JWT secret"))},m=function(){var e=(0,a.useRecord)(),n=(0,a.useApp)();return e.cname?"//".concat(e.cname):n.getRouteUrl("/apps/".concat(e.name,"/admin/"))},s=function(){var e=(0,i.g)().t,n=m();return o().createElement("a",{href:n,target:"_blank",rel:"noreferrer"},e("View",{ns:"client"}))},g=function(){return o().createElement(c.Card,{bordered:!1},o().createElement(a.SchemaComponent,{schema:(0,u.J1)(),components:{AppVisitor:s,JwtSecretInput:l}}))}}}]);
@@ -9,6 +9,7 @@
9
9
  import { Plugin } from '@nocobase/client';
10
10
  export declare class PluginMultiAppManagerClient extends Plugin {
11
11
  load(): Promise<void>;
12
+ extendFormSchema(schema: any): void;
12
13
  }
13
14
  export default PluginMultiAppManagerClient;
14
15
  export { formSchema, tableActionColumnSchema } from './settings/schemas/applications';
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@formily/shared"),require("@nocobase/client"),require("react-router-dom"),require("react"),require("@formily/react"),require("@nocobase/utils/client"),require("antd"),require("antd-style"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-multi-app-manager",["@formily/shared","@nocobase/client","react-router-dom","react","@formily/react","@nocobase/utils/client","antd","antd-style","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-multi-app-manager"]=t(require("@formily/shared"),require("@nocobase/client"),require("react-router-dom"),require("react"),require("@formily/react"),require("@nocobase/utils/client"),require("antd"),require("antd-style"),require("react-i18next")):e["@nocobase/plugin-multi-app-manager"]=t(e["@formily/shared"],e["@nocobase/client"],e["react-router-dom"],e.react,e["@formily/react"],e["@nocobase/utils/client"],e.antd,e["antd-style"],e["react-i18next"])}(self,function(e,t,n,r,o,i,a,c,u){return function(){var l,p,s,m,f,d,y={570:function(e,t,n){"use strict";n.d(t,{fK:function(){return x},kn:function(){return g},vh:function(){return h}});var r=n(875),o=n(584),i=n(772),a=n(156),c=n.n(a),u=n(785),l=n(784),p=n(721);function s(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,o)}function m(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){s(i,r,o,a,c,"next",e)}function c(e){s(i,r,o,a,c,"throw",e)}a(void 0)})}}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){f(e,t,n[t])})}return e}function y(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function b(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var v={name:"applications",targetKey:"name",fields:[{type:"uid",name:"name",primaryKey:!0,prefix:"a",interface:"input",uiSchema:{type:"string",title:(0,u.W)("App ID"),required:!0,"x-component":"Input","x-validator":"uid"}},{type:"string",name:"displayName",interface:"input",uiSchema:{type:"string",title:(0,u.W)("App display name"),required:!0,"x-component":"Input"}},{type:"string",name:"pinned",interface:"checkbox",uiSchema:{type:"boolean","x-content":(0,u.W)("Pin to menu"),"x-component":"Checkbox"}},{type:"string",name:"status",interface:"radioGroup",defaultValue:"pending",uiSchema:{type:"string",title:(0,u.W)("App status"),enum:[{label:"Initializing",value:"initializing"},{label:"Initialized",value:"initialized"},{label:"Running",value:"running"},{label:"Commanding",value:"commanding"},{label:"Stopped",value:"stopped"},{label:"Error",value:"error"},{label:"Not found",value:"not_found"}],"x-component":"Radio.Group"}}]},g={type:"void","x-component":"div",properties:{displayName:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":"{{ !createOnly }}"},"options.autoStart":{title:(0,o.tval)("Start mode",{ns:"@nocobase/plugin-multi-app-manager"}),"x-component":"Radio.Group","x-decorator":"FormItem",default:!1,enum:[{label:(0,o.tval)("Start on first visit",{ns:"@nocobase/plugin-multi-app-manager"}),value:!1},{label:(0,o.tval)("Start with main application",{ns:"@nocobase/plugin-multi-app-manager"}),value:!0}]},cname:{title:(0,u.W)("Custom domain"),"x-component":"Input","x-decorator":"FormItem"},pinned:{"x-component":"CollectionField","x-decorator":"FormItem"},"options.authManager":{type:"object","x-decorator":"FormItem","x-component":"Fieldset",title:'{{t("Authentication options", { ns: "'.concat(l.A,'" })}}'),properties:{"jwt.secret":{type:"string",title:'{{t("JWT secret", { ns: "'.concat(l.A,'" })}}'),description:'{{t("An independent JWT secret ensures data and session isolation from other applications.", { ns: "'.concat(l.A,'" })}}'),"x-decorator":"FormItem","x-component":"JwtSecretInput"}}}}},h={properties:{view:{type:"void","x-component":"AppVisitor","x-component-props":{}},update:{type:"void",title:'{{t("Edit")}}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ cm.useValuesFromRecord }}"},title:'{{t("Edit")}}',properties:{formSchema:g,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{cm.useDestroyAction}}"}}}},x={type:"object",properties:f({},(0,r.uid)(),{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:v,resourceName:"applications",request:{resource:"applications",action:"list",params:{pageSize:50,sort:["-createdAt"],appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:v},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{"x-component":"Filter.Action","x-use-component-props":function(){var e,t,n=(0,i.useResourceContext)().collection,r=(0,i.useFilterFieldOptions)(n.fields),o=(0,i.useResourceActionContext)();return(0,i.useFilterFieldProps)({options:r,params:(null==(t=o.state)||null==(e=t.params)?void 0:e[0])||o.params,service:o})},default:{$and:[{displayName:{$includes:""}},{name:{$includes:""}}]},title:"{{t('Filter')}}","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},migrateData:{type:"void",title:'{{ t("Migrate data to new multi-app", { ns: "'.concat(l.A,'" }) }}'),"x-component":"Action","x-component-props":{icon:"DeliveredProcedureOutlined",useAction:function(){(0,i.useResourceActionContext)().refresh,(0,i.useResourceContext)().resource;var e=c().useRef(),t=(0,i.useAPIClient)(),n=(0,u.g)().t;return{run:function(){return m(function(){return b(this,function(r){switch(r.label){case 0:return console.log("migrateData"),[4,p.Modal.confirm({title:n("Migrate data"),content:c().createElement(p.Form.Item,{label:n("Port"),tooltip:n("When migrate data, the system automatically assigns an incrementing port number to each application based on this port number. You can also manually modify port number after the migrate.")},c().createElement(p.InputNumber,{onChange:function(t){e.current=t},defaultValue:e.current,style:{width:"100%"},min:1})),onOk:m(function(){var r,o;return b(this,function(i){switch(i.label){case 0:return[4,t.resource("pm").get({filterByTk:"multi-app"})];case 1:if(!(null==(o=i.sent().data)||null==(r=o.data)?void 0:r.enabled))return p.message.error(n("Multi-app is not enabled, please enable it first")),[2];return[4,t.request({url:"multiApplications:importFromMultiappManager",method:"post",data:{port:e.current}})];case 2:return i.sent(),p.message.success(n("Migrate successfully")),[2]}})})})];case 1:return r.sent(),[2]}})})()}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:function(){var e=(0,i.useResourceActionContext)(),t=e.state,n=e.setState,r=e.refresh,o=(0,i.useResourceContext)().resource;return{run:function(){return m(function(){return b(this,function(e){switch(e.label){case 0:return[4,o.destroy({filterByTk:(null==t?void 0:t.selectedRowKeys)||[]})];case 1:return e.sent(),null==n||n({selectedRowKeys:[]}),r(),[2]}})})()}}},confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-decorator":function(e){return c().createElement(i.SchemaComponentOptions,y(d({},e),{scope:{createOnly:!0}}))},"x-component":"Action","x-component-props":{type:"primary",icon:"PlusOutlined"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(e){var t=(0,i.useActionContext)();return(0,i.useRequest)(function(){return Promise.resolve({data:{name:"a_".concat((0,r.uid)())}})},y(d({},e),{refreshDeps:[t.visible]}))}},title:'{{t("Add new")}}',properties:{formSchema:g,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{displayName:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},name:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},pinned:{type:"void",title:(0,u.W)("Pin to menu"),"x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{pinned:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:d({type:"void","x-component":"Space","x-component-props":{split:"|"}},h)}}}}}})}},785:function(e,t,n){"use strict";n.d(t,{W:function(){return i},g:function(){return o}});var r=n(238),o=function(){return{t:(0,r.useTranslation)("multi-app-manager").t}},i=function(e){return'{{t("'.concat(e,"\", { ns: 'multi-app-manager' })}}")}},784:function(e,t,n){"use strict";n.d(t,{A:function(){return r}});var r="multi-app-manager"},581:function(e){e.exports=function(e,t){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(e,t),t}},505:function(e){"use strict";e.exports=o},875:function(t){"use strict";t.exports=e},772:function(e){"use strict";e.exports=t},584:function(e){"use strict";e.exports=i},721:function(e){"use strict";e.exports=a},202:function(e){"use strict";e.exports=c},156:function(e){"use strict";e.exports=r},238:function(e){"use strict";e.exports=u},128:function(e){"use strict";e.exports=n}},b={};function v(e){var t=b[e];if(void 0!==t)return t.exports;var n=b[e]={exports:{}};return y[e](n,n.exports,v),n.exports}v.m=y,v.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return v.d(t,{a:t}),t},v.d=function(e,t){for(var n in t)v.o(t,n)&&!v.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},v.f={},v.e=function(e){return Promise.all(Object.keys(v.f).reduce(function(t,n){return v.f[n](e,t),t},[]))},v.u=function(e){return"bd12299af6cdc73a.js"},v.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),v.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l={},p="@nocobase/plugin-multi-app-manager:",v.l=function(e,t,n,r){if(l[e])return void l[e].push(t);if(void 0!==n)for(var o,i,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var u=a[c];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==p+n){o=u;break}}o||(i=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,v.nc&&o.setAttribute("nonce",v.nc),o.setAttribute("data-webpack",p+n),o.src=e),l[e]=[t];var s=function(t,n){o.onerror=o.onload=null,clearTimeout(m);var r=l[e];if(delete l[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},m=setTimeout(s.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=s.bind(null,o.onerror),o.onload=s.bind(null,o.onload),i&&document.head.appendChild(o)},v.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(s=window.__nocobase_public_path__||"/").endsWith("/")||(s+="/"),v.p=s+"static/plugins/@nocobase/plugin-multi-app-manager/dist/client/",m={909:0},v.f.j=function(e,t){var n=v.o(m,e)?m[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=m[e]=[t,r]});t.push(n[2]=r);var o=v.p+v.u(e),i=Error();v.l(o,function(t){if(v.o(m,e)&&(0!==(n=m[e])&&(m[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}},f=function(e,t){var n,r,o=t[0],i=t[1],a=t[2],c=0;if(o.some(function(e){return 0!==m[e]})){for(n in i)v.o(i,n)&&(v.m[n]=i[n]);a&&a(v)}for(e&&e(t);c<o.length;c++)r=o[c],v.o(m,r)&&m[r]&&m[r][0](),m[r]=0},(d=self.webpackChunk_nocobase_plugin_multi_app_manager=self.webpackChunk_nocobase_plugin_multi_app_manager||[]).forEach(f.bind(null,0)),d.push=f.bind(null,d.push.bind(d));var g={};return!function(){"use strict";v.r(g),v.d(g,{PluginMultiAppManagerClient:function(){return S},formSchema:function(){return f.kn},default:function(){return C},tableActionColumnSchema:function(){return f.vh}});var e=v(772),t=v(721),n=v(156),r=v.n(n),o=v(128),i=v(505),a=(0,i.connect)(t.Input,(0,i.mapReadPretty)(function(t){var n=(0,e.useApp)(),o=t.value&&r().createElement("a",{target:"_blank",href:n.getRouteUrl("/apps/".concat(t.value,"/admin")),rel:"noreferrer"},t.value);return r().createElement("div",{style:t.style},t.addonBefore,t.prefix,o,t.suffix,t.addonAfter)})),c=(0,v(202).createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}}),u=v(785);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var p=function(){var n,i=c().styles,a=(0,e.useRequest)({resource:"applications",action:"listPinned"},{manual:!0}),p=a.data,s=a.run,m=(0,u.g)().t,f=(0,e.useApp)(),d=((function(e){if(Array.isArray(e))return l(e)})(n=((null==p?void 0:p.data)||[]).map(function(e){var t=f.getRouteUrl("/apps/".concat(e.name,"/admin/"));return e.cname&&(t="//".concat(e.cname)),{key:e.name,label:r().createElement("a",{href:t,target:"_blank",rel:"noopener noreferrer"},e.displayName||e.name)}}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||function(e,t){if(e){if("string"==typeof e)return l(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}}(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([{key:".manager",label:r().createElement(o.Link,{to:f.pluginSettingsManager.getRoutePath("multi-app-manager")},m("Manage applications"))}]);return r().createElement(t.Dropdown,{onOpenChange:function(e){s()},menu:{items:d}},r().createElement(t.Button,{className:i.button,title:"Apps",icon:r().createElement(e.Icon,{type:"AppstoreOutlined"})}))},s=function(t){return r().createElement(e.PinnedPluginListProvider,{items:{}},r().createElement(e.SchemaComponentOptions,{components:{MultiAppManager:p,AppNameInput:a}},t.children))},m=v(784),f=v(570),d=v(581);function y(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,o)}function b(e,t,n){return(b=w()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&x(o,n.prototype),o}).apply(null,arguments)}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function x(e,t){return(x=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function A(e){var t="function"==typeof Map?new Map:void 0;return(A=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return b(e,arguments,h(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),x(n,e)})(e)}function w(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(w=function(){return!!e})()}var O=(0,e.lazy)(function(){return d("imported_-2qibu4_component",v.e("959").then(v.bind(v,931)))},"AppManager").AppManager,S=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=h(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,w()?Reflect.construct(e,t||[],h(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&x(n,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(e){return t.app.use(s),t.app.pluginSettingsManager.add(m.A,{title:'{{t("Multi-app manager (deprecated)", { ns: "'.concat(m.A,'" })}}'),icon:"AppstoreOutlined",Component:O,sort:1e3,aclSnippet:"pm.multi-app-manager.applications"}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){y(i,r,o,a,c,"next",e)}function c(e){y(i,r,o,a,c,"throw",e)}a(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(A(e.Plugin)),C=S}(),g}()});
10
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react-i18next"),require("react-router-dom"),require("react"),require("@formily/react"),require("@nocobase/utils/client"),require("antd-style"),require("@formily/shared"),require("antd"),require("@nocobase/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-multi-app-manager",["react-i18next","react-router-dom","react","@formily/react","@nocobase/utils/client","antd-style","@formily/shared","antd","@nocobase/client"],e):"object"==typeof exports?exports["@nocobase/plugin-multi-app-manager"]=e(require("react-i18next"),require("react-router-dom"),require("react"),require("@formily/react"),require("@nocobase/utils/client"),require("antd-style"),require("@formily/shared"),require("antd"),require("@nocobase/client")):t["@nocobase/plugin-multi-app-manager"]=e(t["react-i18next"],t["react-router-dom"],t.react,t["@formily/react"],t["@nocobase/utils/client"],t["antd-style"],t["@formily/shared"],t.antd,t["@nocobase/client"])}(self,function(t,e,n,r,o,i,a,u,c){return function(){var s,p,l,f,d,m,y={9570:function(t,e,n){"use strict";n.d(e,{J1:function(){return w},kn:function(){return _},vh:function(){return A}});var r=n(8875),o=n(3772),i=n(7584),a=n(2721),u=n(8156),c=n.n(u),s=n(3784),p=n(2785);function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function f(t,e,n,r,o,i,a){try{var u=t[i](a),c=u.value}catch(t){n(t);return}u.done?e(c):Promise.resolve(c).then(r,o)}function d(t){return function(){var e=this,n=arguments;return new Promise(function(r,o){var i=t.apply(e,n);function a(t){f(i,r,o,a,u,"next",t)}function u(t){f(i,r,o,a,u,"throw",t)}a(void 0)})}}function m(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function y(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),r.forEach(function(e){m(t,e,n[e])})}return t}function v(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):(function(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n.push.apply(n,r)}return n})(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}function b(t,e){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=e.call(t,a)}catch(t){c=[6,t],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var h={name:"applications",targetKey:"name",fields:[{type:"uid",name:"name",primaryKey:!0,prefix:"a",interface:"input",uiSchema:{type:"string",title:(0,p.W)("App ID"),required:!0,"x-component":"Input","x-validator":"uid"}},{type:"string",name:"displayName",interface:"input",uiSchema:{type:"string",title:(0,p.W)("App display name"),required:!0,"x-component":"Input"}},{type:"string",name:"pinned",interface:"checkbox",uiSchema:{type:"boolean","x-content":(0,p.W)("Pin to menu"),"x-component":"Checkbox"}},{type:"string",name:"status",interface:"radioGroup",defaultValue:"pending",uiSchema:{type:"string",title:(0,p.W)("App status"),enum:[{label:"Preparing",value:"preparing"},{label:"Initializing",value:"initializing"},{label:"Initialized",value:"initialized"},{label:"Running",value:"running"},{label:"Commanding",value:"commanding"},{label:"Stopped",value:"stopped"},{label:"Error",value:"error"},{label:"Not found",value:"not_found"}],"x-component":"Radio.Group"}}]},x=function(){var t=(0,o.useResourceActionContext)(),e=t.state,n=t.setState,r=t.refresh,i=(0,o.useResourceContext)().resource;return{run:function(){return d(function(){return b(this,function(t){switch(t.label){case 0:return[4,i.destroy({filterByTk:(null==e?void 0:e.selectedRowKeys)||[]})];case 1:return t.sent(),null==n||n({selectedRowKeys:[]}),r(),[2]}})})()}}},g=function(){(0,o.useResourceActionContext)().refresh,(0,o.useResourceContext)().resource,c().useRef();var t,e=(0,o.useAPIClient)(),n=(0,p.g)().t,r=(t=a.Form.useForm(),function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n,r,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(t);!(a=(n=o.next()).done)&&(i.push(n.value),i.length!==e);a=!0);}catch(t){u=!0,r=t}finally{try{a||null==o.return||o.return()}finally{if(u)throw r}}return i}}(t,1)||function(t,e){if(t){if("string"==typeof t)return l(t,1);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(t,e)}}(t,1)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return{run:function(){return d(function(){return b(this,function(t){switch(t.label){case 0:return r.resetFields(),[4,a.Modal.confirm({title:n("Migrate data"),content:c().createElement(a.Form,{form:r},c().createElement(a.Form.Item,{label:n("Port"),tooltip:n("When migrate data, the system automatically assigns an incrementing port number to each application based on this port number. You can also manually modify port number after the migrate."),rules:[{required:!0,message:n("Port is required")}],name:"port"},c().createElement(a.InputNumber,{style:{width:"100%"},min:1}))),onOk:d(function(){var t,o,i;return b(this,function(u){switch(u.label){case 0:return[4,e.resource("pm").get({filterByTk:"multi-app"})];case 1:if(!(null==(o=u.sent().data)||null==(t=o.data)?void 0:t.enabled))return a.message.error(n("Multi-app is not enabled, please enable it first")),[2];return[4,r.validateFields()];case 2:return i=u.sent(),[4,e.request({url:"multiApplications:importFromMultiappManager",method:"post",data:{port:i.port}})];case 3:return u.sent(),a.message.success(n("Migrate successfully")),[2]}})})})];case 1:return t.sent(),[2]}})})()}}},_={type:"void","x-component":"div",properties:{displayName:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":"{{ !createOnly }}"},"options.autoStart":{title:(0,i.tval)("Start mode",{ns:"@nocobase/plugin-multi-app-manager"}),"x-component":"Radio.Group","x-decorator":"FormItem",default:!1,enum:[{label:(0,i.tval)("Start on first visit",{ns:"@nocobase/plugin-multi-app-manager"}),value:!1},{label:(0,i.tval)("Start with main application",{ns:"@nocobase/plugin-multi-app-manager"}),value:!0}]},cname:{title:(0,p.W)("Custom domain"),"x-component":"Input","x-decorator":"FormItem"},pinned:{"x-component":"CollectionField","x-decorator":"FormItem"},"options.authManager":{type:"object","x-decorator":"FormItem","x-component":"Fieldset",title:'{{t("Authentication options", { ns: "'.concat(s.A,'" })}}'),properties:{"jwt.secret":{type:"string",title:'{{t("JWT secret", { ns: "'.concat(s.A,'" })}}'),description:'{{t("An independent JWT secret ensures data and session isolation from other applications.", { ns: "'.concat(s.A,'" })}}'),"x-decorator":"FormItem","x-component":"JwtSecretInput"}}}}},A={properties:{start:{type:"void",title:'{{ t("Start") }}',"x-component":"Action.Link","x-component-props":{useAction:function(){var t=(0,o.useResourceActionContext)().refresh,e=(0,o.useResourceContext)(),n=e.resource,r=e.targetKey,i=(0,o.useRecord)()[r];return{run:function(){return d(function(){return b(this,function(e){switch(e.label){case 0:return[4,n.start({filterByTk:i})];case 1:return e.sent(),t(),[2]}})})()}}}}},stop:{type:"void",title:'{{ t("Stop") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Stop')}}",content:"{{t('Are you sure you want to stop it?')}}"},useAction:function(){var t=(0,o.useResourceActionContext)().refresh,e=(0,o.useResourceContext)(),n=e.resource,r=e.targetKey,i=(0,o.useRecord)()[r];return{run:function(){return d(function(){return b(this,function(e){switch(e.label){case 0:return[4,n.stop({filterByTk:i})];case 1:return e.sent(),t(),[2]}})})()}}}}},view:{type:"void","x-component":"AppVisitor","x-component-props":{}},update:{type:"void",title:'{{t("Edit")}}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ cm.useValuesFromRecord }}"},title:'{{t("Edit")}}',properties:{formSchema:_,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{cm.useDestroyAction}}"}}}},j=function(){var t,e,n=(0,o.useResourceContext)().collection,r=(0,o.useFilterFieldOptions)(n.fields),i=(0,o.useResourceActionContext)();return(0,o.useFilterFieldProps)({options:r,params:(null==(e=i.state)||null==(t=e.params)?void 0:t[0])||i.params,service:i})};function w(){return{type:"object",properties:m({},(0,r.uid)(),{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:h,resourceName:"applications",request:{resource:"applications",action:"list",params:{pageSize:50,sort:["-createdAt"],appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:h},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{"x-component":"Filter.Action","x-use-component-props":j,default:{$and:[{displayName:{$includes:""}},{name:{$includes:""}}]},title:"{{t('Filter')}}","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},migrateData:{type:"void",title:'{{ t("Migrate data to new multi-app", { ns: "'.concat(s.A,'" }) }}'),"x-component":"Action","x-component-props":{icon:"DeliveredProcedureOutlined",useAction:g}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:x,confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-decorator":function(t){return c().createElement(o.SchemaComponentOptions,v(y({},t),{scope:{createOnly:!0}}))},"x-component":"Action","x-component-props":{type:"primary",icon:"PlusOutlined"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(t){var e=(0,o.useActionContext)();return(0,o.useRequest)(function(){return Promise.resolve({data:{name:"a_".concat((0,r.uid)())}})},v(y({},t),{refreshDeps:[e.visible]}))}},title:'{{t("Add new")}}',properties:{formSchema:_,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{displayName:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},name:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},pinned:{type:"void",title:(0,p.W)("Pin to menu"),"x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{pinned:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:y({type:"void","x-component":"Space","x-component-props":{split:"|"}},A)}}}}}})}}},2785:function(t,e,n){"use strict";n.d(e,{W:function(){return i},g:function(){return o}});var r=n(3238),o=function(){return{t:(0,r.useTranslation)("multi-app-manager").t}},i=function(t){return'{{t("'.concat(t,"\", { ns: 'multi-app-manager' })}}")}},3784:function(t,e,n){"use strict";n.d(e,{A:function(){return r}});var r="multi-app-manager"},7973:function(t,e,n){var r=n(1783),o=n(1012),i=n(9900),a=n(6691),u=n(2018);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=a,c.prototype.set=u,t.exports=c},2768:function(t,e,n){var r=n(9896),o=n(2473),i=n(4678),a=n(1240),u=n(4296);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=a,c.prototype.set=u,t.exports=c},1725:function(t,e,n){t.exports=n(6369)(n(5031),"Map")},736:function(t,e,n){var r=n(6660),o=n(8472),i=n(5637),a=n(9389),u=n(9804);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=a,c.prototype.set=u,t.exports=c},5382:function(t,e,n){var r=n(2768),o=n(3533),i=n(7064),a=n(9955),u=n(6087),c=n(3990);function s(t){var e=this.__data__=new r(t);this.size=e.size}s.prototype.clear=o,s.prototype.delete=i,s.prototype.get=a,s.prototype.has=u,s.prototype.set=c,t.exports=s},5869:function(t,e,n){t.exports=n(5031).Symbol},8930:function(t,e,n){t.exports=n(5031).Uint8Array},7485:function(t){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},4505:function(t,e,n){var r=n(1650),o=n(8497),i=n(6227),a=n(939),u=n(3501),c=n(2855),s=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=i(t),p=!n&&o(t),l=!n&&!p&&a(t),f=!n&&!p&&!l&&c(t),d=n||p||l||f,m=d?r(t.length,String):[],y=m.length;for(var v in t)(e||s.call(t,v))&&!(d&&("length"==v||l&&("offset"==v||"parent"==v)||f&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||u(v,y)))&&m.push(v);return m}},3153:function(t,e,n){var r=n(2544),o=n(3947);t.exports=function(t,e,n){(void 0===n||o(t[e],n))&&(void 0!==n||e in t)||r(t,e,n)}},5699:function(t,e,n){var r=n(2544),o=n(3947),i=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var a=t[e];i.call(t,e)&&o(a,n)&&(void 0!==n||e in t)||r(t,e,n)}},8746:function(t,e,n){var r=n(3947);t.exports=function(t,e){for(var n=t.length;n--;)if(r(t[n][0],e))return n;return -1}},2544:function(t,e,n){var r=n(6554);t.exports=function(t,e,n){"__proto__"==e&&r?r(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},1315:function(t,e,n){var r=n(2917),o=Object.create;t.exports=function(){function t(){}return function(e){if(!r(e))return{};if(o)return o(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}()},3627:function(t,e,n){t.exports=n(3179)()},4365:function(t,e,n){var r=n(5869),o=n(7043),i=n(5283),a=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":a&&a in Object(t)?o(t):i(t)}},8719:function(t,e,n){var r=n(4365),o=n(5620);t.exports=function(t){return o(t)&&"[object Arguments]"==r(t)}},9930:function(t,e,n){var r=n(3098),o=n(8754),i=n(2917),a=n(1304),u=/^\[object .+?Constructor\]$/,c=Object.prototype,s=Function.prototype.toString,p=c.hasOwnProperty,l=RegExp("^"+s.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!i(t)||o(t))&&(r(t)?l:u).test(a(t))}},7707:function(t,e,n){var r=n(4365),o=n(6613),i=n(5620),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,t.exports=function(t){return i(t)&&o(t.length)&&!!a[r(t)]}},3352:function(t,e,n){var r=n(2917),o=n(2947),i=n(5753),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return i(t);var e=o(t),n=[];for(var u in t)"constructor"==u&&(e||!a.call(t,u))||n.push(u);return n}},5580:function(t,e,n){var r=n(5382),o=n(3153),i=n(3627),a=n(2669),u=n(2917),c=n(9403),s=n(9341);t.exports=function t(e,n,p,l,f){e!==n&&i(n,function(i,c){if(f||(f=new r),u(i))a(e,n,c,p,t,l,f);else{var d=l?l(s(e,c),i,c+"",e,n,f):void 0;void 0===d&&(d=i),o(e,c,d)}},c)}},2669:function(t,e,n){var r=n(3153),o=n(6550),i=n(7173),a=n(3096),u=n(1931),c=n(8497),s=n(6227),p=n(5559),l=n(939),f=n(3098),d=n(2917),m=n(4087),y=n(2855),v=n(9341),b=n(5079);t.exports=function(t,e,n,h,x,g,_){var A=v(t,n),j=v(e,n),w=_.get(j);if(w)return void r(t,n,w);var O=g?g(A,j,n+"",t,e,_):void 0,S=void 0===O;if(S){var P=s(j),C=!P&&l(j),k=!P&&!C&&y(j);O=j,P||C||k?s(A)?O=A:p(A)?O=a(A):C?(S=!1,O=o(j,!0)):k?(S=!1,O=i(j,!0)):O=[]:m(j)||c(j)?(O=A,c(A)?O=b(A):(!d(A)||f(A))&&(O=u(j))):S=!1}S&&(_.set(j,O),x(O,j,h,g,_),_.delete(j)),r(t,n,O)}},1229:function(t,e,n){var r=n(9974),o=n(2478),i=n(8286);t.exports=function(t,e){return i(o(t,e,r),t+"")}},1792:function(t,e,n){var r=n(6710),o=n(6554),i=n(9974);t.exports=o?function(t,e){return o(t,"toString",{configurable:!0,enumerable:!1,value:r(e),writable:!0})}:i},1650:function(t){t.exports=function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}},8611:function(t){t.exports=function(t){return function(e){return t(e)}}},2658:function(t,e,n){var r=n(8930);t.exports=function(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}},6550:function(t,e,n){t=n.nmd(t);var r=n(5031),o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o?r.Buffer:void 0,u=a?a.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,r=u?u(n):new t.constructor(n);return t.copy(r),r}},7173:function(t,e,n){var r=n(2658);t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},3096:function(t){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}},6734:function(t,e,n){var r=n(5699),o=n(2544);t.exports=function(t,e,n,i){var a=!n;n||(n={});for(var u=-1,c=e.length;++u<c;){var s=e[u],p=i?i(n[s],t[s],s,n,t):void 0;void 0===p&&(p=t[s]),a?o(n,s,p):r(n,s,p)}return n}},3823:function(t,e,n){t.exports=n(5031)["__core-js_shared__"]},9354:function(t,e,n){var r=n(1229),o=n(9131);t.exports=function(t){return r(function(e,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,u=i>2?n[2]:void 0;for(a=t.length>3&&"function"==typeof a?(i--,a):void 0,u&&o(n[0],n[1],u)&&(a=i<3?void 0:a,i=1),e=Object(e);++r<i;){var c=n[r];c&&t(e,c,r,a)}return e})}},3179:function(t){t.exports=function(t){return function(e,n,r){for(var o=-1,i=Object(e),a=r(e),u=a.length;u--;){var c=a[t?u:++o];if(!1===n(i[c],c,i))break}return e}}},6554:function(t,e,n){var r=n(6369);t.exports=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}()},5274:function(t,e,n){t.exports="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g},9623:function(t,e,n){var r=n(9005);t.exports=function(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}},6369:function(t,e,n){var r=n(9930),o=n(4502);t.exports=function(t,e){var n=o(t,e);return r(n)?n:void 0}},5918:function(t,e,n){t.exports=n(6942)(Object.getPrototypeOf,Object)},7043:function(t,e,n){var r=n(5869),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,u=r?r.toStringTag:void 0;t.exports=function(t){var e=i.call(t,u),n=t[u];try{t[u]=void 0;var r=!0}catch(t){}var o=a.call(t);return r&&(e?t[u]=n:delete t[u]),o}},4502:function(t){t.exports=function(t,e){return null==t?void 0:t[e]}},1783:function(t,e,n){var r=n(8163);t.exports=function(){this.__data__=r?r(null):{},this.size=0}},1012:function(t){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=+!!e,e}},9900:function(t,e,n){var r=n(8163),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(r){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(e,t)?e[t]:void 0}},6691:function(t,e,n){var r=n(8163),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return r?void 0!==e[t]:o.call(e,t)}},2018:function(t,e,n){var r=n(8163);t.exports=function(t,e){var n=this.__data__;return this.size+=+!this.has(t),n[t]=r&&void 0===e?"__lodash_hash_undefined__":e,this}},1931:function(t,e,n){var r=n(1315),o=n(5918),i=n(2947);t.exports=function(t){return"function"!=typeof t.constructor||i(t)?{}:r(o(t))}},3501:function(t){var e=/^(?:0|[1-9]\d*)$/;t.exports=function(t,n){var r=typeof t;return!!(n=null==n?0x1fffffffffffff:n)&&("number"==r||"symbol"!=r&&e.test(t))&&t>-1&&t%1==0&&t<n}},9131:function(t,e,n){var r=n(3947),o=n(654),i=n(3501),a=n(2917);t.exports=function(t,e,n){if(!a(n))return!1;var u=typeof e;return("number"==u?!!(o(n)&&i(e,n.length)):"string"==u&&e in n)&&r(n[e],t)}},9005:function(t){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},8754:function(t,e,n){var r,o=n(3823),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!i&&i in t}},2947:function(t){var e=Object.prototype;t.exports=function(t){var n=t&&t.constructor;return t===("function"==typeof n&&n.prototype||e)}},9896:function(t){t.exports=function(){this.__data__=[],this.size=0}},2473:function(t,e,n){var r=n(8746),o=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=r(e,t);return!(n<0)&&(n==e.length-1?e.pop():o.call(e,n,1),--this.size,!0)}},4678:function(t,e,n){var r=n(8746);t.exports=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}},1240:function(t,e,n){var r=n(8746);t.exports=function(t){return r(this.__data__,t)>-1}},4296:function(t,e,n){var r=n(8746);t.exports=function(t,e){var n=this.__data__,o=r(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this}},6660:function(t,e,n){var r=n(7973),o=n(2768),i=n(1725);t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},8472:function(t,e,n){var r=n(9623);t.exports=function(t){var e=r(this,t).delete(t);return this.size-=+!!e,e}},5637:function(t,e,n){var r=n(9623);t.exports=function(t){return r(this,t).get(t)}},9389:function(t,e,n){var r=n(9623);t.exports=function(t){return r(this,t).has(t)}},9804:function(t,e,n){var r=n(9623);t.exports=function(t,e){var n=r(this,t),o=n.size;return n.set(t,e),this.size+=+(n.size!=o),this}},8163:function(t,e,n){t.exports=n(6369)(Object,"create")},5753:function(t){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},1378:function(t,e,n){t=n.nmd(t);var r=n(5274),o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o&&r.process,u=function(){try{var t=i&&i.require&&i.require("util").types;if(t)return t;return a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=u},5283:function(t){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},6942:function(t){t.exports=function(t,e){return function(n){return t(e(n))}}},2478:function(t,e,n){var r=n(7485),o=Math.max;t.exports=function(t,e,n){return e=o(void 0===e?t.length-1:e,0),function(){for(var i=arguments,a=-1,u=o(i.length-e,0),c=Array(u);++a<u;)c[a]=i[e+a];a=-1;for(var s=Array(e+1);++a<e;)s[a]=i[a];return s[e]=n(c),r(t,this,s)}}},5031:function(t,e,n){var r=n(5274),o="object"==typeof self&&self&&self.Object===Object&&self;t.exports=r||o||Function("return this")()},9341:function(t){t.exports=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}},8286:function(t,e,n){var r=n(1792);t.exports=n(1358)(r)},1358:function(t){var e=Date.now;t.exports=function(t){var n=0,r=0;return function(){var o=e(),i=16-(o-r);if(r=o,i>0){if(++n>=800)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}},3533:function(t,e,n){var r=n(2768);t.exports=function(){this.__data__=new r,this.size=0}},7064:function(t){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},9955:function(t){t.exports=function(t){return this.__data__.get(t)}},6087:function(t){t.exports=function(t){return this.__data__.has(t)}},3990:function(t,e,n){var r=n(2768),o=n(1725),i=n(736);t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<199)return a.push([t,e]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(t,e),this.size=n.size,this}},1304:function(t){var e=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return e.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},6710:function(t){t.exports=function(t){return function(){return t}}},3947:function(t){t.exports=function(t,e){return t===e||t!=t&&e!=e}},9974:function(t){t.exports=function(t){return t}},8497:function(t,e,n){var r=n(8719),o=n(5620),i=Object.prototype,a=i.hasOwnProperty,u=i.propertyIsEnumerable;t.exports=r(function(){return arguments}())?r:function(t){return o(t)&&a.call(t,"callee")&&!u.call(t,"callee")}},6227:function(t){t.exports=Array.isArray},654:function(t,e,n){var r=n(3098),o=n(6613);t.exports=function(t){return null!=t&&o(t.length)&&!r(t)}},5559:function(t,e,n){var r=n(654),o=n(5620);t.exports=function(t){return o(t)&&r(t)}},939:function(t,e,n){t=n.nmd(t);var r=n(5031),o=n(3863),i=e&&!e.nodeType&&e,a=i&&t&&!t.nodeType&&t,u=a&&a.exports===i?r.Buffer:void 0,c=u?u.isBuffer:void 0;t.exports=c||o},3098:function(t,e,n){var r=n(4365),o=n(2917);t.exports=function(t){if(!o(t))return!1;var e=r(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},6613:function(t){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=0x1fffffffffffff}},2917:function(t){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},5620:function(t){t.exports=function(t){return null!=t&&"object"==typeof t}},4087:function(t,e,n){var r=n(4365),o=n(5918),i=n(5620),a=Object.prototype,u=Function.prototype.toString,c=a.hasOwnProperty,s=u.call(Object);t.exports=function(t){if(!i(t)||"[object Object]"!=r(t))return!1;var e=o(t);if(null===e)return!0;var n=c.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==s}},2855:function(t,e,n){var r=n(7707),o=n(8611),i=n(1378),a=i&&i.isTypedArray;t.exports=a?o(a):r},9403:function(t,e,n){var r=n(4505),o=n(3352),i=n(654);t.exports=function(t){return i(t)?r(t,!0):o(t)}},9782:function(t,e,n){var r=n(5580);t.exports=n(9354)(function(t,e,n){r(t,e,n)})},3863:function(t){t.exports=function(){return!1}},5079:function(t,e,n){var r=n(6734),o=n(9403);t.exports=function(t){return r(t,o(t))}},3581:function(t){t.exports=function(t,e){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(t,e),e}},3505:function(t){"use strict";t.exports=r},8875:function(t){"use strict";t.exports=a},3772:function(t){"use strict";t.exports=c},7584:function(t){"use strict";t.exports=o},2721:function(t){"use strict";t.exports=u},8202:function(t){"use strict";t.exports=i},8156:function(t){"use strict";t.exports=n},3238:function(e){"use strict";e.exports=t},6128:function(t){"use strict";t.exports=e}},v={};function b(t){var e=v[t];if(void 0!==e)return e.exports;var n=v[t]={id:t,loaded:!1,exports:{}};return y[t](n,n.exports,b),n.loaded=!0,n.exports}b.m=y,b.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return b.d(e,{a:e}),e},b.d=function(t,e){for(var n in e)b.o(e,n)&&!b.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},b.f={},b.e=function(t){return Promise.all(Object.keys(b.f).reduce(function(e,n){return b.f[n](t,e),e},[]))},b.u=function(t){return"db3a142b120d6553.js"},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),b.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s={},p="@nocobase/plugin-multi-app-manager:",b.l=function(t,e,n,r){if(s[t])return void s[t].push(e);if(void 0!==n)for(var o,i,a=document.getElementsByTagName("script"),u=0;u<a.length;u++){var c=a[u];if(c.getAttribute("src")==t||c.getAttribute("data-webpack")==p+n){o=c;break}}o||(i=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,b.nc&&o.setAttribute("nonce",b.nc),o.setAttribute("data-webpack",p+n),o.src=t),s[t]=[e];var l=function(e,n){o.onerror=o.onload=null,clearTimeout(f);var r=s[t];if(delete s[t],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(t){return t(n)}),e)return e(n)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},b.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},b.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},(l=window.__nocobase_public_path__||"/").endsWith("/")||(l+="/"),b.p=l+"static/plugins/@nocobase/plugin-multi-app-manager/dist/client/",f={909:0},b.f.j=function(t,e){var n=b.o(f,t)?f[t]:void 0;if(0!==n)if(n)e.push(n[2]);else{var r=new Promise(function(e,r){n=f[t]=[e,r]});e.push(n[2]=r);var o=b.p+b.u(t),i=Error();b.l(o,function(e){if(b.o(f,t)&&(0!==(n=f[t])&&(f[t]=void 0),n)){var r=e&&("load"===e.type?"missing":e.type),o=e&&e.target&&e.target.src;i.message="Loading chunk "+t+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+t,t)}},d=function(t,e){var n,r,o=e[0],i=e[1],a=e[2],u=0;if(o.some(function(t){return 0!==f[t]})){for(n in i)b.o(i,n)&&(b.m[n]=i[n]);a&&a(b)}for(t&&t(e);u<o.length;u++)r=o[u],b.o(f,r)&&f[r]&&f[r][0](),f[r]=0},(m=self.webpackChunk_nocobase_plugin_multi_app_manager=self.webpackChunk_nocobase_plugin_multi_app_manager||[]).forEach(d.bind(null,0)),m.push=d.bind(null,m.push.bind(m));var h={};return!function(){"use strict";b.r(h),b.d(h,{PluginMultiAppManagerClient:function(){return S},formSchema:function(){return f.kn},default:function(){return P},tableActionColumnSchema:function(){return f.vh}});var t=b(3772),e=b(2721),n=b(8156),r=b.n(n),o=b(6128),i=b(3505),a=(0,i.connect)(e.Input,(0,i.mapReadPretty)(function(e){var n=(0,t.useApp)(),o=e.value&&r().createElement("a",{target:"_blank",href:n.getRouteUrl("/apps/".concat(e.value,"/admin")),rel:"noreferrer"},e.value);return r().createElement("div",{style:e.style},e.addonBefore,e.prefix,o,e.suffix,e.addonAfter)})),u=(0,b(8202).createStyles)(function(t){return{button:{color:t.token.colorTextHeaderMenu+" !important"}}}),c=b(2785);function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}var p=function(){var n,i=u().styles,a=(0,t.useRequest)({resource:"applications",action:"listPinned"},{manual:!0}),p=a.data,l=a.run,f=(0,c.g)().t,d=(0,t.useApp)(),m=((function(t){if(Array.isArray(t))return s(t)})(n=((null==p?void 0:p.data)||[]).map(function(t){var e=d.getRouteUrl("/apps/".concat(t.name,"/admin/"));return t.cname&&(e="//".concat(t.cname)),{key:t.name,label:r().createElement("a",{href:e,target:"_blank",rel:"noopener noreferrer"},t.displayName||t.name)}}))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||function(t,e){if(t){if("string"==typeof t)return s(t,void 0);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(t,e)}}(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([{key:".manager",label:r().createElement(o.Link,{to:d.pluginSettingsManager.getRoutePath("multi-app-manager")},f("Manage applications"))}]);return r().createElement(e.Dropdown,{onOpenChange:function(t){l()},menu:{items:m}},r().createElement(e.Button,{className:i.button,title:"Apps",icon:r().createElement(t.Icon,{type:"AppstoreOutlined"})}))},l=function(e){return r().createElement(t.PinnedPluginListProvider,{items:{}},r().createElement(t.SchemaComponentOptions,{components:{MultiAppManager:p,AppNameInput:a}},e.children))},f=b(9570),d=b(9782),m=b.n(d),y=b(3784),v=b(3581);function x(t,e,n,r,o,i,a){try{var u=t[i](a),c=u.value}catch(t){n(t);return}u.done?e(c):Promise.resolve(c).then(r,o)}function g(t,e,n){return(g=w()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var o=new(Function.bind.apply(t,r));return n&&A(o,n.prototype),o}).apply(null,arguments)}function _(t){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function A(t,e){return(A=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function j(t){var e="function"==typeof Map?new Map:void 0;return(j=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return g(t,arguments,_(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),A(n,t)})(t)}function w(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(w=function(){return!!t})()}var O=(0,t.lazy)(function(){return v("imported_-2qibu4_component",b.e("959").then(b.bind(b,7101)))},"AppManager").AppManager,S=function(t){var e;if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");function n(){var t,e;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,e=arguments,t=_(t),function(t,e){var n;if(e&&("object"==((n=e)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof e))return e;if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(this,w()?Reflect.construct(t,e||[],_(this).constructor):t.apply(this,e))}return n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),t&&A(n,t),e=[{key:"load",value:function(){var t,e=this;return(t=function(){return function(t,e){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=e.call(t,a)}catch(t){c=[6,t],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(t){return e.app.use(l),e.app.pluginSettingsManager.add(y.A,{title:'{{t("Multi-app manager (deprecated)", { ns: "'.concat(y.A,'" })}}'),icon:"AppstoreOutlined",Component:O,sort:1e3,aclSnippet:"pm.multi-app-manager.applications"}),[2]})},function(){var e=this,n=arguments;return new Promise(function(r,o){var i=t.apply(e,n);function a(t){x(i,r,o,a,u,"next",t)}function u(t){x(i,r,o,a,u,"throw",t)}a(void 0)})})()}},{key:"extendFormSchema",value:function(t){m()(f.kn,t)}}],function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}(n.prototype,e),n}(j(t.Plugin)),P=S}(),h}()});
@@ -7,6 +7,12 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
  import { ISchema } from '@formily/react';
10
+ export declare const useStop: () => {
11
+ run(): Promise<void>;
12
+ };
13
+ export declare const useStart: () => {
14
+ run(): Promise<void>;
15
+ };
10
16
  export declare const useDestroy: () => {
11
17
  run(): Promise<void>;
12
18
  };
@@ -23,4 +29,60 @@ export declare const useFilterActionProps: () => {
23
29
  onSubmit: (values: any) => any;
24
30
  onReset: () => any;
25
31
  };
26
- export declare const schema: ISchema;
32
+ export declare function getSchema(): import("@formily/react").Stringify<{
33
+ [key: symbol]: any;
34
+ [key: `x-${string}`]: any;
35
+ [key: `x-${number}`]: any;
36
+ version?: string;
37
+ name?: import("@formily/react").SchemaKey;
38
+ title?: any;
39
+ description?: any;
40
+ default?: any;
41
+ readOnly?: boolean;
42
+ writeOnly?: boolean;
43
+ type?: import("@formily/react").SchemaTypes;
44
+ enum?: import("@formily/react").SchemaEnum<any>;
45
+ const?: any;
46
+ multipleOf?: number;
47
+ maximum?: number;
48
+ exclusiveMaximum?: number;
49
+ minimum?: number;
50
+ exclusiveMinimum?: number;
51
+ maxLength?: number;
52
+ minLength?: number;
53
+ pattern?: string | RegExp;
54
+ maxItems?: number;
55
+ minItems?: number;
56
+ uniqueItems?: boolean;
57
+ maxProperties?: number;
58
+ minProperties?: number;
59
+ required?: string | boolean | string[];
60
+ format?: string;
61
+ $ref?: string;
62
+ $namespace?: string;
63
+ definitions?: import("@formily/react").SchemaProperties<any, any, any, any, any, any, any, any>;
64
+ properties?: import("@formily/react").SchemaProperties<any, any, any, any, any, any, any, any>;
65
+ items?: import("@formily/react").SchemaItems<any, any, any, any, any, any, any, any>;
66
+ additionalItems?: import("@formily/react").Stringify<any>;
67
+ patternProperties?: import("@formily/react").SchemaProperties<any, any, any, any, any, any, any, any>;
68
+ additionalProperties?: import("@formily/react").Stringify<any>;
69
+ "x-value"?: any;
70
+ "x-index"?: number;
71
+ "x-pattern"?: any;
72
+ "x-display"?: any;
73
+ "x-validator"?: any;
74
+ "x-decorator"?: any;
75
+ "x-decorator-props"?: any;
76
+ "x-component"?: any;
77
+ "x-component-props"?: any;
78
+ "x-reactions"?: import("@formily/react").SchemaReactions<any>;
79
+ "x-content"?: any;
80
+ "x-data"?: any;
81
+ "x-visible"?: boolean;
82
+ "x-hidden"?: boolean;
83
+ "x-disabled"?: boolean;
84
+ "x-editable"?: boolean;
85
+ "x-read-only"?: boolean;
86
+ "x-read-pretty"?: boolean;
87
+ "x-compile-omitted"?: string[];
88
+ }>;
@@ -8,18 +8,19 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "2.0.0-alpha.4",
11
+ "@nocobase/client": "2.0.0-alpha.41",
12
12
  "antd": "5.24.2",
13
13
  "react": "18.2.0",
14
14
  "@formily/react": "2.3.7",
15
15
  "@formily/shared": "2.3.7",
16
16
  "antd-style": "3.7.1",
17
17
  "react-router-dom": "6.30.1",
18
- "react-i18next": "11.18.6",
19
- "@nocobase/database": "2.0.0-alpha.4",
20
- "@nocobase/server": "2.0.0-alpha.4",
21
18
  "lodash": "4.17.21",
19
+ "react-i18next": "11.18.6",
20
+ "@nocobase/database": "2.0.0-alpha.41",
21
+ "@nocobase/server": "2.0.0-alpha.41",
22
+ "@nocobase/telemetry": "2.0.0-alpha.41",
22
23
  "mysql2": "3.11.0",
23
24
  "pg": "8.11.3",
24
- "@nocobase/utils": "2.0.0-alpha.4"
25
+ "@nocobase/utils": "2.0.0-alpha.41"
25
26
  };
@@ -7,5 +7,7 @@
7
7
  "Custom domain": "Custom domain",
8
8
  "Manage applications": "Manage applications",
9
9
  "Standalone deployment": "Standalone deployment",
10
- "Auto start": "Auto start"
10
+ "Auto start": "Auto start",
11
+ "Port": "Port",
12
+ "Please enter the port": "Please enter the port"
11
13
  }
@@ -20,5 +20,6 @@
20
20
  "Port": "端口号",
21
21
  "When migrate data, the system automatically assigns an incrementing port number to each application based on this port number. You can also manually modify port number after the migrate.": "迁移数据时,系统会基于该端口号自动为每个应用分配一个递增的端口号,您也可以在迁移后手动修改。",
22
22
  "Migrate data to new multi-app": "迁移数据至新多应用",
23
- "Multi-app is not enabled, please enable it first": "多应用未启用,请先启用"
23
+ "Multi-app is not enabled, please enable it first": "多应用未启用,请先启用",
24
+ "Please enter the port": "请输入端口号"
24
25
  }
@@ -1 +1 @@
1
- {"name":"mariadb","version":"2.5.6","description":"fast mariadb/mysql connector.","main":"promise.js","types":"types/index.d.ts","directories":{"lib":"lib","test":"test"},"private":false,"scripts":{"test":"npm run test:types-prettier && npm run test:prettier && npm run test:types && npm run test:lint && npm run test:base","test:base":"mocha --no-parallel --timeout 5000 \"test/**/*.js\" ","test:lint":"eslint \"{lib,test}/**/*.js\" ","test:types":"eslint \"types/*.ts\" ","test:types-prettier":"prettier --write \"types/*.ts\"","test:prettier":"prettier --write \"{tools,lib,test,benchmarks}/**/*.js\"","coverage":"npm run coverage:test && npm run coverage:report","coverage:test":"nyc mocha --no-parallel --timeout 5000 \"test/**/*.js\"","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","benchmark":"node ./benchmarks/benchmarks.js","generate":"node ./tools/generate-mariadb.js"},"repository":{"type":"git","url":"git+https://github.com/mariadb-corporation/mariadb-connector-nodejs.git"},"keywords":["mariadb","mysql","client","driver","connector"],"files":["lib","types/index.d.ts","promise.js","callback.js"],"engines":{"node":">= 10.13"},"author":"Diego Dupin <diego.dupin@mariadb.com>","license":"LGPL-2.1-or-later","dependencies":{"@types/geojson":"^7946.0.8","@types/node":"^17.0.10","denque":"^2.0.1","iconv-lite":"^0.6.3","long":"^5.2.0","moment-timezone":"^0.5.34","please-upgrade-node":"^3.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.10.0","@typescript-eslint/parser":"^5.10.0","benchmark":"^2.1.4","chai":"^4.3.4","codecov":"^3.8.2","chalk":"^4.1.2","dom-parser":"^0.1.6","error-stack-parser":"^2.0.6","eslint":"^8.7.0","eslint-config-prettier":"^8.3.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","mocha":"^9.2.0","mocha-lcov-reporter":"^1.3.0","nyc":"^15.1.0","prettier":"^2.5.1","typescript":"^4.5.5"},"bugs":{"url":"https://jira.mariadb.org/projects/CONJS/"},"homepage":"https://github.com/mariadb-corporation/mariadb-connector-nodejs#readme","_lastModified":"2025-10-05T09:59:07.960Z"}
1
+ {"name":"mariadb","version":"2.5.6","description":"fast mariadb/mysql connector.","main":"promise.js","types":"types/index.d.ts","directories":{"lib":"lib","test":"test"},"private":false,"scripts":{"test":"npm run test:types-prettier && npm run test:prettier && npm run test:types && npm run test:lint && npm run test:base","test:base":"mocha --no-parallel --timeout 5000 \"test/**/*.js\" ","test:lint":"eslint \"{lib,test}/**/*.js\" ","test:types":"eslint \"types/*.ts\" ","test:types-prettier":"prettier --write \"types/*.ts\"","test:prettier":"prettier --write \"{tools,lib,test,benchmarks}/**/*.js\"","coverage":"npm run coverage:test && npm run coverage:report","coverage:test":"nyc mocha --no-parallel --timeout 5000 \"test/**/*.js\"","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","benchmark":"node ./benchmarks/benchmarks.js","generate":"node ./tools/generate-mariadb.js"},"repository":{"type":"git","url":"git+https://github.com/mariadb-corporation/mariadb-connector-nodejs.git"},"keywords":["mariadb","mysql","client","driver","connector"],"files":["lib","types/index.d.ts","promise.js","callback.js"],"engines":{"node":">= 10.13"},"author":"Diego Dupin <diego.dupin@mariadb.com>","license":"LGPL-2.1-or-later","dependencies":{"@types/geojson":"^7946.0.8","@types/node":"^17.0.10","denque":"^2.0.1","iconv-lite":"^0.6.3","long":"^5.2.0","moment-timezone":"^0.5.34","please-upgrade-node":"^3.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.10.0","@typescript-eslint/parser":"^5.10.0","benchmark":"^2.1.4","chai":"^4.3.4","codecov":"^3.8.2","chalk":"^4.1.2","dom-parser":"^0.1.6","error-stack-parser":"^2.0.6","eslint":"^8.7.0","eslint-config-prettier":"^8.3.0","eslint-plugin-markdown":"^2.2.1","eslint-plugin-prettier":"^4.0.0","mocha":"^9.2.0","mocha-lcov-reporter":"^1.3.0","nyc":"^15.1.0","prettier":"^2.5.1","typescript":"^4.5.5"},"bugs":{"url":"https://jira.mariadb.org/projects/CONJS/"},"homepage":"https://github.com/mariadb-corporation/mariadb-connector-nodejs#readme","_lastModified":"2025-11-19T01:22:20.940Z"}
@@ -9,6 +9,7 @@
9
9
  import { IDatabaseOptions, Transactionable } from '@nocobase/database';
10
10
  import Application, { Plugin } from '@nocobase/server';
11
11
  import { ApplicationModel } from '../server';
12
+ import { Meter } from '@nocobase/telemetry';
12
13
  export type AppDbCreator = (app: Application, options?: Transactionable & {
13
14
  context?: any;
14
15
  applicationModel?: ApplicationModel;
@@ -19,6 +20,7 @@ export declare class PluginMultiAppManagerServer extends Plugin {
19
20
  appDbCreator: AppDbCreator;
20
21
  appOptionsFactory: AppOptionsFactory;
21
22
  subAppUpgradeHandler: SubAppUpgradeHandler;
23
+ meter: Meter;
22
24
  static getDatabaseConfig(app: Application): IDatabaseOptions;
23
25
  handleSyncMessage(message: any): Promise<void>;
24
26
  setSubAppUpgradeHandler(handler: SubAppUpgradeHandler): void;
@@ -26,5 +28,6 @@ export declare class PluginMultiAppManagerServer extends Plugin {
26
28
  setAppDbCreator(appDbCreator: AppDbCreator): void;
27
29
  beforeLoad(): void;
28
30
  beforeEnable(): Promise<void>;
31
+ setMetrics(): void;
29
32
  load(): Promise<void>;
30
33
  }
@@ -149,6 +149,7 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
149
149
  appDbCreator = defaultDbCreator;
150
150
  appOptionsFactory = defaultAppOptionsFactory;
151
151
  subAppUpgradeHandler = defaultSubAppUpgradeHandle;
152
+ meter;
152
153
  static getDatabaseConfig(app) {
153
154
  let oldConfig = app.options.database instanceof import_database.Database ? app.options.database.options : app.options.database;
154
155
  if (!oldConfig && app.db) {
@@ -176,6 +177,10 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
176
177
  });
177
178
  subApp.runCommand("start", "--quickstart");
178
179
  }
180
+ if (type === "subAppStopped") {
181
+ const { appName } = message;
182
+ await import_server.AppSupervisor.getInstance().stopApp(appName);
183
+ }
179
184
  if (type === "removeApp") {
180
185
  const { appName } = message;
181
186
  await import_server.AppSupervisor.getInstance().removeApp(appName);
@@ -200,8 +205,44 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
200
205
  throw new Error("@nocobase/plugin-multi-app-manager can only be enabled in the main app");
201
206
  }
202
207
  }
208
+ setMetrics() {
209
+ this.meter = this.app.telemetry.metric.getMeter();
210
+ if (!this.meter) {
211
+ return;
212
+ }
213
+ const subAppStatusGauge = this.meter.createObservableGauge("sub_app_status", {
214
+ description: "Number of sub applications by cached status in supervisor.appStatus"
215
+ });
216
+ this.meter.addBatchObservableCallback(
217
+ (observableResult) => {
218
+ const supervisor = import_server.AppSupervisor.getInstance();
219
+ const allStatuses = { ...supervisor.appStatus };
220
+ const createCounts = () => ({
221
+ preparing: 0,
222
+ initializing: 0,
223
+ initialized: 0,
224
+ running: 0,
225
+ commanding: 0,
226
+ stopped: 0,
227
+ error: 0,
228
+ not_found: 0
229
+ });
230
+ const cachedCounts = createCounts();
231
+ for (let status of Object.values(allStatuses)) {
232
+ if (!status) {
233
+ status = "stopped";
234
+ }
235
+ if (cachedCounts[status] !== void 0) cachedCounts[status]++;
236
+ }
237
+ for (const [status, count] of Object.entries(cachedCounts)) {
238
+ observableResult.observe(subAppStatusGauge, count, { status });
239
+ }
240
+ },
241
+ [subAppStatusGauge]
242
+ );
243
+ }
203
244
  async load() {
204
- await this.importCollections(import_path.default.resolve(__dirname, "collections"));
245
+ this.setMetrics();
205
246
  this.db.on(
206
247
  "applications.afterCreateWithAssociations",
207
248
  async (model, options) => {
@@ -220,17 +261,33 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
220
261
  appName: name
221
262
  });
222
263
  });
223
- const quickstart = async () => {
224
- await this.appDbCreator(subApp, {
225
- transaction,
226
- applicationModel: model,
227
- context: options.context
264
+ subApp.on("afterStop", async () => {
265
+ this.sendSyncMessage({
266
+ type: "subAppStopped",
267
+ appName: name
228
268
  });
229
- await subApp.runCommand("start", "--quickstart");
269
+ });
270
+ const quickstart = async () => {
271
+ try {
272
+ await this.appDbCreator(subApp, {
273
+ transaction,
274
+ applicationModel: model,
275
+ context: options.context
276
+ });
277
+ } catch (error) {
278
+ this.log.error(error, { method: "appDbCreator" });
279
+ import_server.AppSupervisor.getInstance().setAppStatus(subApp.name, "error");
280
+ return;
281
+ }
282
+ await import_server.AppSupervisor.getInstance().getApp(subApp.name);
230
283
  };
231
- const startPromise = quickstart();
232
284
  if ((_a = options == null ? void 0 : options.context) == null ? void 0 : _a.waitSubAppInstall) {
233
- await startPromise;
285
+ await quickstart();
286
+ await subApp.runCommand("start", "--quickstart");
287
+ } else {
288
+ quickstart().catch((err) => {
289
+ this.log.error(err);
290
+ });
234
291
  }
235
292
  }
236
293
  );
@@ -258,6 +315,9 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
258
315
  return;
259
316
  }
260
317
  const mainApp = await appSupervisor.getApp("main");
318
+ if (!mainApp) {
319
+ return;
320
+ }
261
321
  const applicationRecord = await mainApp.db.getRepository("applications").findOne({
262
322
  filter: {
263
323
  name
@@ -270,9 +330,6 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
270
330
  if ((instanceOptions == null ? void 0 : instanceOptions.standaloneDeployment) && appSupervisor.runningMode !== "single") {
271
331
  return;
272
332
  }
273
- if (!applicationRecord) {
274
- return;
275
- }
276
333
  const subApp = applicationRecord.registerToSupervisor(mainApp, {
277
334
  appOptionsFactory: self.appOptionsFactory
278
335
  });
@@ -282,6 +339,12 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
282
339
  appName: name
283
340
  });
284
341
  });
342
+ subApp.on("afterStop", async () => {
343
+ this.sendSyncMessage({
344
+ type: "subAppStopped",
345
+ appName: name
346
+ });
347
+ });
285
348
  if (!loadButNotStart) {
286
349
  await subApp.runCommand("start", "--quickstart");
287
350
  }
@@ -325,21 +388,11 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
325
388
  "options.autoStart": true
326
389
  }
327
390
  });
328
- const promises = [];
329
391
  for (const subAppInstance of subApps) {
330
- promises.push(
331
- (async () => {
332
- if (!appSupervisor.hasApp(subAppInstance.name)) {
333
- await import_server.AppSupervisor.getInstance().getApp(subAppInstance.name);
334
- } else if (appSupervisor.getAppStatus(subAppInstance.name) === "initialized") {
335
- (await import_server.AppSupervisor.getInstance().getApp(subAppInstance.name)).runCommand("start", "--quickstart");
336
- }
337
- })()
338
- );
392
+ import_server.AppSupervisor.getInstance().getApp(subAppInstance.name);
339
393
  }
340
- await Promise.all(promises);
341
394
  } catch (err) {
342
- console.error("Auto register sub applications failed: ", err);
395
+ this.log.error("Auto register sub applications failed: ", err);
343
396
  }
344
397
  });
345
398
  this.app.on("afterUpgrade", async (app, options) => {
@@ -353,6 +406,29 @@ class PluginMultiAppManagerServer extends import_server.Plugin {
353
406
  }
354
407
  });
355
408
  ctx.body = items;
409
+ await next();
410
+ }
411
+ });
412
+ this.app.resourcer.registerActionHandlers({
413
+ "applications:stop": async (ctx, next) => {
414
+ const { filterByTk } = ctx.action.params;
415
+ import_server.AppSupervisor.getInstance().stopApp(filterByTk);
416
+ ctx.body = "ok";
417
+ await next();
418
+ }
419
+ });
420
+ this.app.resourcer.registerActionHandlers({
421
+ "applications:start": async (ctx, next) => {
422
+ const { filterByTk } = ctx.action.params;
423
+ import_server.AppSupervisor.getInstance().startApp(filterByTk);
424
+ ctx.body = "ok";
425
+ await next();
426
+ }
427
+ });
428
+ this.app.resourcer.registerActionHandlers({
429
+ "applications:memoryUsage": async (ctx, next) => {
430
+ ctx.body = process.memoryUsage();
431
+ await next();
356
432
  }
357
433
  });
358
434
  this.app.acl.allow("applications", "listPinned", "loggedIn");
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName.zh-CN": "多应用管理器(已废弃)",
5
5
  "description": "Multi-app runs applications in a process-sharing manner, suitable for testing and demo environments only. Do not use it in production.",
6
6
  "description.zh-CN": "多应用以进程共享的方式运行,仅适合测试和演示环境,生产环境下请勿使用。",
7
- "version": "2.0.0-alpha.4",
7
+ "version": "2.0.0-alpha.41",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./dist/server/index.js",
10
10
  "homepage": "https://docs.nocobase.com/handbook/multi-app-manager",
@@ -28,7 +28,7 @@
28
28
  "@nocobase/test": "2.x",
29
29
  "@nocobase/utils": "2.x"
30
30
  },
31
- "gitHead": "54f3cab47e7efbdc73377014d05f5fc66a4affbb",
31
+ "gitHead": "889e81eef0280c2e45571bd0a4b2db6aa004f8c1",
32
32
  "keywords": [
33
33
  "system"
34
34
  ]
@@ -1,10 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- "use strict";(self.webpackChunk_nocobase_plugin_multi_app_manager=self.webpackChunk_nocobase_plugin_multi_app_manager||[]).push([["959"],{931:function(e,n,t){t.r(n),t.d(n,{AppManager:function(){return g}});var a=t(772),c=t(721),r=t(156),o=t.n(r),u=t(570),i=t(785),p=t(875),l=function(e){var n=e.value,t=e.onChange,a=(0,i.g)().t;return o().createElement(c.Checkbox,{onChange:function(e){e.target.checked?t("".concat((0,p.uid)()).concat((0,p.uid)()).concat((0,p.uid)()).concat((0,p.uid)())):t("")},checked:!!n},a("Automatically generate a JWT secret"))},m=function(){var e=(0,a.useRecord)(),n=(0,a.useApp)();return e.cname?"//".concat(e.cname):n.getRouteUrl("/apps/".concat(e.name,"/admin/"))},s=function(){var e=(0,i.g)().t,n=m();return o().createElement("a",{href:n,target:"_blank",rel:"noreferrer"},e("View",{ns:"client"}))},g=function(){return o().createElement(c.Card,{bordered:!1},o().createElement(a.SchemaComponent,{schema:u.fK,components:{AppVisitor:s,JwtSecretInput:l}}))}}}]);