@moneko/core 2.0.19-beta.1 → 2.0.19-beta.2
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.
- package/build/common.js +1 -1
- package/build/coverage.js +1 -1
- package/build/done.js +1 -1
- package/build/envFlags.d.ts +0 -1
- package/build/envFlags.js +1 -1
- package/build/has-pkg.js +1 -1
- package/build/html-add-entry-attr.js +1 -1
- package/build/html-plugin-option.js +1 -1
- package/build/index.js +1 -1
- package/build/minify.js +1 -1
- package/build/modifyVars.js +1 -1
- package/build/module-federation.js +1 -1
- package/build/module.config.js +1 -1
- package/build/process-env.js +1 -1
- package/build/resolver-sync.js +1 -1
- package/build/seo.js +1 -1
- package/build/swcrc.js +1 -1
- package/build/tsloader.config.js +1 -1
- package/build/utils.js +1 -1
- package/build/webpack.common.js +1 -1
- package/build/webpack.dev.js +1 -1
- package/build/webpack.prod.js +1 -1
- package/build/yarn-argv.js +1 -1
- package/lib/components/app-router.js +1 -2
- package/lib/components/fallback-comp.js +1 -2
- package/lib/components/fallback.js +1 -2
- package/lib/components/layout-menu.js +1 -2
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -2
- package/lib/localizable.js +1 -2
- package/lib/menu.js +1 -2
- package/lib/packages/back-stage/app.js +1 -2
- package/lib/packages/back-stage/bootstrap.js +1 -2
- package/lib/packages/back-stage/index.js +1 -2
- package/lib/packages/back-stage/layout.js +1 -2
- package/lib/packages/library/app.js +1 -2
- package/lib/packages/library/bootstrap.js +1 -2
- package/lib/packages/library/index.js +1 -2
- package/lib/packages/mobile/app.js +1 -2
- package/lib/packages/mobile/index.js +1 -2
- package/lib/packages/single-spa/app.js +1 -2
- package/lib/packages/single-spa/bootstrap.js +1 -2
- package/lib/packages/single-spa/index.js +1 -2
- package/lib/packages/single-spa/public-path.js +1 -2
- package/lib/packages/site/app.js +1 -2
- package/lib/packages/site/bootstrap.js +1 -2
- package/lib/packages/site/index.js +1 -2
- package/lib/prefix/prefix-remote-react-refresh.js +1 -2
- package/lib/prefix/react-router-dom.js +1 -2
- package/lib/react-router-dom/link.js +1 -2
- package/lib/react-router-dom/use-navgate.js +1 -2
- package/lib/router/index.js +1 -2
- package/lib/utils/index.js +1 -2
- package/lib/utils/refresh-rem.js +1 -2
- package/package.json +4 -4
- package/lib/components/app-router.js.map +0 -1
- package/lib/components/fallback-comp.js.map +0 -1
- package/lib/components/fallback.js.map +0 -1
- package/lib/components/layout-menu.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/localizable.js.map +0 -1
- package/lib/menu.js.map +0 -1
- package/lib/packages/back-stage/app.js.map +0 -1
- package/lib/packages/back-stage/bootstrap.js.map +0 -1
- package/lib/packages/back-stage/index.js.map +0 -1
- package/lib/packages/back-stage/layout.js.map +0 -1
- package/lib/packages/library/app.js.map +0 -1
- package/lib/packages/library/bootstrap.js.map +0 -1
- package/lib/packages/library/index.js.map +0 -1
- package/lib/packages/mobile/app.js.map +0 -1
- package/lib/packages/mobile/index.js.map +0 -1
- package/lib/packages/single-spa/app.js.map +0 -1
- package/lib/packages/single-spa/bootstrap.js.map +0 -1
- package/lib/packages/single-spa/index.js.map +0 -1
- package/lib/packages/single-spa/public-path.js.map +0 -1
- package/lib/packages/site/app.js.map +0 -1
- package/lib/packages/site/bootstrap.js.map +0 -1
- package/lib/packages/site/index.js.map +0 -1
- package/lib/prefix/prefix-remote-react-refresh.js.map +0 -1
- package/lib/prefix/react-router-dom.js.map +0 -1
- package/lib/react-router-dom/link.js.map +0 -1
- package/lib/react-router-dom/use-navgate.js.map +0 -1
- package/lib/router/index.js.map +0 -1
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/refresh-rem.js.map +0 -1
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=app.js.map
|
|
1
|
+
function e(){return(e=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var o=arguments[r];for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])}return e}).apply(this,arguments)}import r,{useEffect as o}from"react";import{ConfigProvider as t}from"antd";import a from"antd/es/locale/en_US";import l from"antd/es/locale/zh_CN";import n from"dayjs";import i from"dayjs/plugin/relativeTime";import{RouterProvider as m}from"react-router-dom";import{createRouter as p,prefixRouter as f,routerData as c,RouterFragment as s}from"../../components/app-router";import u from"../../components/fallback";import{localizable as d}from"../../localizable";import{onlyLoginRouter as g}from"../../router";import"dayjs/locale/zh.js";import"dayjs/locale/en.js";import{watermark as b}from"../../utils";import{global as h}from"@/store";var v={zh_CN:l,en_US:a};n.extend(i),t.config({prefixCls:providerConfig.prefixCls,iconPrefixCls:providerConfig.iconPrefixCls,theme:providerConfig.theme});export default function(){var a=h.isLogin,n=d.language,i=d.t;return o(function(){document.body.style.backgroundImage="url("+b({text:projectName})+")"},[]),r.createElement(s,null,r.createElement(t,e({},providerConfig,{locale:v[n]||l,form:{validateMessages:{required:""+i["ph:please-fill"]+"${label}!",types:{email:"${label}"+i["wrong-format"]},pattern:{mismatch:""+i["ph:fill-correct"]+"${label}!"}}}}),r.createElement(m,{router:p(a?c:f(g,r.createElement(u,null)),{basename:programInfo.routeBaseName,window:window}),fallbackElement:r.createElement(u,null)})))};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=bootstrap.js.map
|
|
1
|
+
import o from"react";import{isFunction as t}from"@moneko/common";import e from"./app";var n=APPENTRY?require(APPENTRY):null,r=require(ReactDOMPath),l=parseFloat(o.version),a=document.getElementById("root");l>=18?(t(null==n?void 0:n.bootstrap)&&(null==n||n.bootstrap()),"ssr"===programInfo.renderMode?window.rootInstance=r.hydrateRoot(a,o.createElement(e,null)):(window.rootInstance=r.createRoot(a),window.rootInstance.render(o.createElement(e,null))),t(null==n?void 0:n.mount)&&(null==n||n.mount())):(t(null==n?void 0:n.bootstrap)&&(null==n||n.bootstrap()),(module.hot?r.render:r.hydrate)(o.createElement(e,null),a),t(null==n?void 0:n.mount)&&(null==n||n.mount()));
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"../../utils/refresh-rem";import"../../styles/normalize.css";var
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import"../../utils/refresh-rem";import"../../styles/normalize.css";var r=await import("./bootstrap");export default r;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=layout.js.map
|
|
1
|
+
function n(){return(n=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o])}return n}).apply(this,arguments)}function e(){var n,t,o=(n=["\n .",", ."," {\n z-index: 2;\n }\n ."," {\n position: sticky;\n top: 64px;\n overflow: initial !important;\n margin: 16px 16px 0 !important;\n\n > .","-tabs-nav {\n .","-tabs-tab {\n border-color: var(--border-color, rgb(5 5 5 / 6%)) !important;\n border-bottom-color: var(--border-color, rgb(5 5 5 / 6%)) !important;\n border-radius: var(--border-radius) !important;\n backdrop-filter: blur(16px);\n background-color: rgba(255, 255, 255, 0.8);\n &.","-tabs-tab-active {\n background-color: rgba(255, 255, 255, 0.9);\n }\n }\n\n &::before {\n content: none;\n }\n }\n }\n ."," {\n width: 100% !important;\n min-height: 100vh !important;\n }\n .",", ."," {\n overflow-y: auto;\n max-height: 100vh;\n }\n ."," {\n overflow-y: auto;\n }\n ."," {\n overflow-y: auto;\n }\n ."," {\n display: flex;\n margin: 0 16px;\n flex-direction: column;\n z-index: 1;\n }\n ."," {\n border-radius: var(--border-radius);\n padding: 24px;\n background: var(--component-card-bg, #fff);\n box-shadow: var(--box-shadow-lite);\n flex: 1;\n transition-property: background-color, box-shadow;\n }\n .",", .",", ."," > svg {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n ."," {\n position: sticky;\n top: 0;\n z-index: 1;\n display: flex;\n gap: 10px;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n padding: 14px;\n height: 68px;\n text-align: center;\n color: #de4553;\n transition-property: background-color, border-color;\n cursor: pointer;\n user-select: none;\n\n > svg,\n &::before {\n transition-property: opacity;\n }\n\n > svg {\n height: 32px;\n opacity: 0;\n }\n\n &::before {\n display: block;\n width: 22px;\n height: 32px;\n background: url(",") no-repeat center center / contain;\n opacity: 1;\n content: '';\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n }\n"],t||(t=n.slice(0)),n.raw=t,n);return e=function(){return o},o}import t,{useCallback as o,useEffect as r,useMemo as i,useState as a}from"react";import{ReloadOutlined as l,DeleteRowOutlined as c,CloseOutlined as s}from"@ant-design/icons";import{css as m,injectGlobal as u}from"@emotion/css";import{Tabs as d,Layout as p,Dropdown as f}from"antd";import{useAliveController as b}from"react-activation";import{useSearchParams as g,useOutlet as y,useNavigate as v}from"react-router-dom";import h from"../../components/fallback-comp";import k from"../../components/layout-menu";import{localizable as x}from"../../localizable";import{closeTab as w,menu as E,openTab as N}from"../../menu";var T=providerConfig.prefixCls,C=function(n){return T+"-dashboard-"+n},I={tabs:C("tabs"),layout:C("layout"),sider:C("sider"),header:C("header"),logo:C("logo"),section:C("section"),content:C("content"),view:C("view")},S=m(e(),I.header,I.tabs,I.tabs,T,T,T,I.layout,I.sider,I.section,I.section,I.sider,I.content,I.view,I.view,I.logo,I.logo,I.logo,require(favicon));u([S]);var j=[{label:"关闭左侧标签",icon:t.createElement(c,{style:{transform:"scaleX(-1)"}}),key:"left"},{label:"关闭右侧标签",icon:t.createElement(c,null),key:"right"},{label:"关闭其他标签",icon:t.createElement(s,null),key:"other"},{label:"刷新标签页",icon:t.createElement(l,null),key:"refresh"}];export default function(e){var l=e.children,c=E.activeKey,s=E.tabs,m=E.kv,u=x.t,T=y(),C=v(),S=b().dropScope,z=g()[0],O=a(!1),P=O[0],K=O[1],L=o(function(n){if(n)var e=window.setTimeout(function(){K(n),window.clearTimeout(e),e=null},0);else{K(n);var t=window.setTimeout(function(){window.clearTimeout(t),t=null},30)}},[]),q=o(function(n,e){if("refresh"===e){C("/refresh");return}n&&w(n,e,function(n,e){null==n||n.forEach(function(n){n.path&&S&&S(n.path)}),e&&C(e.path+"?menuId="+e.key)})},[S,C]),A=i(function(){return{menuId:z.get("menuId"),dynamicLabel:z.get("dynamicTitle")||""}},[z]),B=A.menuId,H=A.dynamicLabel;r(function(){B&&N({key:B,dynamicTitle:H})},[H,B]);var M=o(function(n){return n===c?j:j.filter(function(n){return(null==n?void 0:n.key)!=="refresh"})},[c]),X=o(function(n,e){"remove"===e&&"string"==typeof n&&q(n)},[q]),D=o(function(n){C(m[n].key+"?menuId="+m[n].key)},[m,C]),F=i(function(){return s.map(function(n){var e=n.key,o=n.icon,r=n.label,i=n.dynamicTitle,a=n.closable;return{key:e,label:t.createElement(f,{menu:{items:M(e),onClick:function(n){n.domEvent.stopPropagation(),q(e,n.key)}},trigger:["contextMenu"],destroyPopupOnHide:!0},t.createElement("div",null,o,u[r||"route-"+e]+(i||""))),closable:a}})},[q,M,u,s]);return t.createElement(p,{className:I.layout},layoutSider?t.createElement(p.Sider,n({className:I.sider,trigger:null,collapsible:!0,collapsed:P,onBreakpoint:function(n){return L(n)},onCollapse:function(n){return L(n)},theme:"light",breakpoint:"md"},layoutSider),t.createElement("div",{className:I.logo,"data-title":projectName},t.createElement(h,{compName:"logo",show:!P})),t.createElement(k,{collapsed:P,theme:layoutSider.theme})):null,t.createElement(p,{className:I.section},t.createElement(h,{compName:"layout-header",className:I.header,collapsed:P,onCollapsed:function(){return L(!P)}}),t.createElement(d,{className:I.tabs,hideAdd:!0,onTabClick:D,activeKey:c,type:"editable-card",onEdit:X,items:F,animated:!0}),t.createElement(p.Content,{className:I.content},t.createElement("div",{className:I.view},l||T),t.createElement(h,{compName:"layout-footer"}))))};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=app.js.map
|
|
1
|
+
import e from"react";import{RouterProvider as r}from"react-router-dom";import{RouterFragment as t,routerData as o,createRouter as m}from"../../components/app-router";import a from"../../components/fallback";export default function(){return e.createElement(t,null,e.createElement(r,{router:m(o,{basename:programInfo.routeBaseName}),fallbackElement:e.createElement(a,null)}))};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=bootstrap.js.map
|
|
1
|
+
import o from"react";import{isFunction as t}from"@moneko/common";import e from"./app";var n=APPENTRY?require(APPENTRY):null,r=require(ReactDOMPath),l=parseFloat(o.version),a=document.getElementById("root");l>=18?(t(null==n?void 0:n.bootstrap)&&(null==n||n.bootstrap()),"ssr"===programInfo.renderMode?window.rootInstance=r.hydrateRoot(a,o.createElement(e,null)):(window.rootInstance=r.createRoot(a),window.rootInstance.render(o.createElement(e,null))),t(null==n?void 0:n.mount)&&(null==n||n.mount())):(t(null==n?void 0:n.bootstrap)&&(null==n||n.bootstrap()),(module.hot?r.render:r.hydrate)(o.createElement(e,null),a),t(null==n?void 0:n.mount)&&(null==n||n.mount()));
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"../../utils/refresh-rem";import"../../styles/normalize.css";var
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import"../../utils/refresh-rem";import"../../styles/normalize.css";var r=await import("./bootstrap");export default r;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=app.js.map
|
|
1
|
+
import e from"react";import{RouterProvider as r}from"react-router-dom";import{RouterFragment as o,routerData as t,createRouter as m}from"../../components/app-router";import n from"../../components/fallback";export default function(){return e.createElement(o,null,e.createElement(r,{router:m(t,{basename:programInfo.routeBaseName,window:window}),fallbackElement:e.createElement(n,null)}))};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"../../utils/refresh-rem";import"../../styles/normalize.css";import
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import"../../utils/refresh-rem";import"../../styles/normalize.css";import o from"react";import{isFunction as e}from"@moneko/common";import t from"./app";var r=APPENTRY?require(APPENTRY):null,n=require(ReactDOMPath),l=parseFloat(o.version),m=document.getElementById("root"),a=function(){e(null==r?void 0:r.bootstrap)&&(null==r||r.bootstrap()),l>=18?"ssr"===programInfo.renderMode?window.rootInstance=n.hydrateRoot(m,o.createElement(t,null)):(window.rootInstance=n.createRoot(m),window.rootInstance.render(o.createElement(t,null))):(module.hot?n.render:n.hydrate)(o.createElement(t,null),m),e(null==r?void 0:r.mount)&&(null==r||r.mount())};window.H5RemoteRuntime={bootstrap:a},a();
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=app.js.map
|
|
1
|
+
import e,{useEffect as o}from"react";import{RouterProvider as r}from"react-router-dom";import{RouterFragment as a,routerData as t,createRouter as n}from"../../components/app-router";import m from"../../components/fallback";import{localizable as l,setLanguage as c}from"../../localizable";export default function(f){var i=f.basename,u=void 0===i?programInfo.routeBaseName:i,p=f.fallback,b=void 0===p?e.createElement(m,null):p,d=f.language,g=l.language;return o(function(){d&&d!==g&&c(d)},[d,g]),e.createElement(a,null,e.createElement(r,{router:n(t,{basename:u,window:window}),fallbackElement:b}))};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=bootstrap.js.map
|
|
1
|
+
function n(n,t,r,e,o,u,a){try{var i=n[u](a),l=i.value}catch(n){r(n);return}i.done?t(l):Promise.resolve(l).then(e,o)}function t(t){return function(){var r=this,e=arguments;return new Promise(function(o,u){var a=t.apply(r,e);function i(t){n(a,o,u,i,l,"next",t)}function l(t){n(a,o,u,i,l,"throw",t)}i(void 0)})}}function r(){return(r=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(n[e]=r[e])}return n}).apply(this,arguments)}var e=this&&this.__generator||function(n,t){var r,e,o,u,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return u={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function i(u){return function(i){return function(u){if(r)throw TypeError("Generator is already executing.");for(;a;)try{if(r=1,e&&(o=2&u[0]?e.return:u[0]?e.throw||((o=e.return)&&o.call(e),0):e.next)&&!(o=o.call(e,u[1])).done)return o;switch(e=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++,e=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(n,a)}catch(n){u=[6,n],e=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,i])}}};import o from"react";import{isFunction as u}from"@moneko/common";import a from"./app";var i=APPENTRY?require(APPENTRY):null,l=require(ReactDOMPath),c=parseFloat(o.version);function f(n){var t=n.container,e=n.basename,u=n.fallback,i=n.language,f=function(n,t){if(null==n)return{};var r,e,o={},u=Object.keys(n);for(e=0;e<u.length;e++)t.indexOf(r=u[e])>=0||(o[r]=n[r]);return o}(n,["container","basename","fallback","language"]),s=(null==t?void 0:t.querySelector("#root"))||document.querySelector("#root"),p={basename:e,fallback:u,language:i};window.primaryApp=r({},f,{container:s}),c>=18?"ssr"===programInfo.renderMode?window.rootInstance=l.hydrateRoot(s,o.createElement(a,r({},p))):(window.rootInstance=l.createRoot(s),window.rootInstance.render(o.createElement(a,r({},p)))):(module.hot?l.render:l.hydrate)(o.createElement(a,r({},p)),s)}window.__POWERED_BY_QIANKUN__||f({});export function bootstrap(){return s.apply(this,arguments)}function s(){return(s=t(function(){return e(this,function(n){return u(null==i?void 0:i.bootstrap)&&(null==i||i.bootstrap()),[2]})})).apply(this,arguments)}export function unmount(n){return p.apply(this,arguments)}function p(){return(p=t(function(n){var t,r;return e(this,function(e){return u(null==i?void 0:i.unmount)&&(null==i||i.unmount(n)),t=n.container,c>=18?window.rootInstance.unmount():(r=(null==t?void 0:t.querySelector("#root"))||document.querySelector("#root"),l.unmountComponentAtNode(r)),[2]})})).apply(this,arguments)}export function mount(n){return h.apply(this,arguments)}function h(){return(h=t(function(n){return e(this,function(t){return u(null==i?void 0:i.mount)&&(null==i||i.mount(n)),f(n),[2]})})).apply(this,arguments)}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"./public-path";import"../../utils/refresh-rem";import"../../styles/normalize.css";var
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import"./public-path";import"../../utils/refresh-rem";import"../../styles/normalize.css";var t=await import("./bootstrap"),o=t.bootstrap,r=t.mount,m=t.unmount;export{o as bootstrap,r as mount,m as unmount};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=public-path.js.map
|
|
1
|
+
window.__POWERED_BY_QIANKUN__&&(__webpack_public_path__=window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__);
|
package/lib/packages/site/app.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=app.js.map
|
|
1
|
+
import e from"react";import{RouterProvider as r}from"react-router-dom";import{RouterFragment as o,routerData as t,createRouter as m}from"../../components/app-router";import n from"../../components/fallback";export default function(){return e.createElement(o,null,e.createElement(r,{router:m(t,{basename:programInfo.routeBaseName,window:window}),fallbackElement:e.createElement(n,null)}))};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=bootstrap.js.map
|
|
1
|
+
import o from"react";import{isFunction as t}from"@moneko/common";import e from"./app";var n=APPENTRY?require(APPENTRY):null,r=require(ReactDOMPath),l=parseFloat(o.version),a=document.getElementById("root");l>=18?(t(null==n?void 0:n.bootstrap)&&(null==n||n.bootstrap()),"ssr"===programInfo.renderMode?window.rootInstance=r.hydrateRoot(a,o.createElement(e,null)):(window.rootInstance=r.createRoot(a),window.rootInstance.render(o.createElement(e,null))),t(null==n?void 0:n.mount)&&(null==n||n.mount())):(t(null==n?void 0:n.bootstrap)&&(null==n||n.bootstrap()),(module.hot?r.render:r.hydrate)(o.createElement(e,null),a),t(null==n?void 0:n.mount)&&(null==n||n.mount()));
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"../../utils/refresh-rem";import"../../styles/normalize.css";var
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import"../../utils/refresh-rem";import"../../styles/normalize.css";var r=await import("./bootstrap");export default r;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=prefix-remote-react-refresh.js.map
|
|
1
|
+
import e from"react-dom";export var injectRemoteReactRefresh=function(){(0,require("react-refresh/cjs/react-refresh-runtime.development.js").injectIntoGlobalHook)(window),window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject(e)};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=react-router-dom.js.map
|
|
1
|
+
function e(){return(e=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e}).apply(this,arguments)}var r=require("react-router-dom"),t=require("../react-router-dom/link").default,a=require("../react-router-dom/use-navgate").default,u=r.useNavigate,n=r.Link,i=function(e,r){if(null==e)return{};var t,a,u={},n=Object.keys(e);for(a=0;a<n.length;a++)r.indexOf(t=n[a])>=0||(u[t]=e[t]);return u}(r,["useNavigate","Link"]);module.exports=e({useNavigateForReactRouter:u,useNavigate:a,LinkReactRouter:n,Link:t},i);
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=link.js.map
|
|
1
|
+
function r(){return(r=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(r[t]=n[t])}return r}).apply(this,arguments)}import e,{useMemo as n}from"react";import{Link as t,useSearchParams as a}from"react-router-dom";export default function(i){var o=i.reserved,c=i.to,f=i.children,u=function(r,e){if(null==r)return{};var n,t,a={},i=Object.keys(r);for(t=0;t<i.length;t++)e.indexOf(n=i[t])>=0||(a[n]=r[n]);return a}(i,["reserved","to","children"]),l=Array.from(new Set(["menuId","dynamicTitle"].concat(o||""))).filter(Boolean),s=a()[0],v=n(function(){if(-1===c)return -1;var r={};s.forEach(function(e,n){if(l.includes(n)){var t;Object.assign(r,((t={})[n]=e,t))}});var e=c,n=e.indexOf("?");-1!==n&&(new URLSearchParams(e.slice(n)).forEach(function(e,n){var t;Object.assign(r,((t={})[n]=e,t))}),e=e.substring(0,n));var t=new URLSearchParams(r).toString();return(null==t?void 0:t.trim().length)?[e,t].join("?"):e},[l,s,c]);return e.createElement(t,r({},u,{to:v}),f)};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=use-navgate.js.map
|
|
1
|
+
import{useNavigate as r,useSearchParams as n}from"react-router-dom";export default function(a){var e=Array.from(new Set(["menuId","dynamicTitle"].concat(a||""))).filter(Boolean),t=r(),i=n()[0];return function(r,n){if(-1===r){t(-1);return}var a={};i.forEach(function(r,n){if(e.includes(n)){var t;Object.assign(a,((t={})[n]=r,t))}});var o=r,c=o.indexOf("?");-1!==c&&(new URLSearchParams(o.slice(c)).forEach(function(r,n){var e;Object.assign(a,((e={})[n]=r,e))}),o=o.substring(0,c));var f=new URLSearchParams(a).toString();t((null==f?void 0:f.trim().length)?[o,f].join("?"):o,n)}};
|
package/lib/router/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
function e(){return(e=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e}).apply(this,arguments)}import{createElement as r,lazy as n}from"react";import{isUndefined as t}from"@moneko/common";import{pathToRegexp as o}from"path-to-regexp";import{Outlet as i}from"react-router-dom";export function lazyImport(e){return n(function(){return new Promise(function(r){return import("@/pages/"+e.replace(/:/g,"$").replace(/^\//,"")).then(r).catch(function(){return Promise.resolve({default:i})})})})}export var myPkgs=[];export var myDemoKv={};export var mdxComponents={};function a(n,t){return r("h"+t,e({"data-prefix":"# ",role:"heading","aria-level":t},n))}if("library"===process.env.APPTYPE){var l,u,c=require.context("@pkg/",!0,/README\.mdx?$/),p={};try{p=require("@/components/components").default}catch(e){}Object.assign(mdxComponents,e({h1:function(e){return a(e,1)},h2:function(e){return a(e,2)},h3:function(e){return a(e,3)},h4:function(e){return a(e,4)},h5:function(e){return a(e,5)},h6:function(e){return a(e,6)},pre:function(e){var n=r("code",e);return e.className?r(mdxComponents.CodeBlock||"pre",{lang:e.className.replace("language-","").replace(/ .*$/,"")},n):n}},p)),null==(l=c.keys())||l.forEach(function(r){var n=r.substring(2).split("/").slice(0,-1).join("/"),t=c(r),o=t.basic,i=t.default;myPkgs.push(e({key:n,path:n,element:i},o,{props:{components:mdxComponents,path:n}}))});var s=require.context("@pkg/",!0,/\/examples\/(.+)\.mdx$/);null==(u=s.keys())||u.forEach(function(e){var r=e.substring(2).split("/"),n=r[0];Array.isArray(myDemoKv[n])||(myDemoKv[n]=[]);for(var t,o,i=s(e),a=i.matchAll(/```([^\r\n]+)?\r?\n([\s\S]*?)\r?\n```/g),l="",u="",c=null,p=function(e,r){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=unsupportedIterableToArray(e))){n&&(e=n);var t=0;return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}}}throw TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(a);!(o=p()).done;){var h=o.value;u=h[1]||"tsx",l=h[2],c=i.replace(h[0],"")}myDemoKv[n].push({language:u,code:l,description:c,title:null==(t=r.pop())?void 0:t.replace(/\.mdx$/,""),noInline:/render\([^\\)]*\);?(?=\s*$)/.test(l)})})}var h=[];try{h=require("@/router").default}catch(e){console.info("自定义路由请在 router 目录下新建 index.ts, 类型: RouterProps[]",e)}function f(e,r){return["*"===r&&"*"!==e?void 0:r,e].filter(Boolean).join("/")}var d=function(e){for(var r=[],n=0;n<e.length;n++)for(var t=e[n].split("/").slice(0,-1),o=r,i=0;i<t.length;i++){var a=t[i];if(""!==a){"."===a&&(a="*");var l=o;if(Array.isArray(o)){for(var u=0;u<o.length;u++)if(o[u].path===a){o=o[u].children;break}}if(l===o){var c=i===t.length-1?e[n]:t.slice(0,i+1).join("/")+"/",p={key:c=c.substring(2,c.lastIndexOf("/")),path:a,i18n:"route-"+c,children:[],alive:!1,element:lazyImport(c),hideMenu:c.includes(":"),props:{path:c}};Array.isArray(o)&&o.push(p),o=p.children}}}return r}(require.context("@/pages/",!0,/\.(t|j)sx$/,"lazy").keys().map(function(e){return e.replace(/\$/g,":")}));function m(r,n,t){return void 0===r&&(r=[]),r.map(function(r){var o=e({},r);return void 0===o.key&&(o.key=f(r.path,t)),void 0===o.i18n&&(o.i18n="route-"+o.key),void 0===o.alive&&(o.alive=!1),"*"===o.path&&void 0===o.hideMenu&&(o.hideMenu=!0),Array.isArray(o.children)&&(o.children=o.children.length?m(o.children,n,o.key):void 0),o.element||(o.element=lazyImport(o.key),o.props={path:o.key}),!!o.onlyLogin!==n||o.root?o:null}).filter(Boolean)}var y=[].concat(h);d.forEach(function(r){!function r(n,o,i){var a,l=n.find(function(e){return e.path===o.path});l?(l.key=f(l.path,i),t(l.i18n)&&(l.i18n="route-"+l.key),t(l.alive)&&(l.alive=!1),t(l.element)&&o.element&&(l.element=o.element,l.props=o.props),t(l.hideMenu)&&(l.hideMenu="*"===l.path||l.key.includes(":")),Object.assign(l,e({},o,l)),o.children&&(!l.children&&Array.isArray(o.children)&&(l.children=o.children),null==(a=o.children)||a.forEach(function(e){r(null==l?void 0:l.children,e,null==l?void 0:l.key)}))):n.push(o)}(y,r)});export var onlyLoginRouter=m(y,!1);export var router=m(y,!0);export function matchUtil(e){var r={key:""};return!function n(t){t.forEach(function(t){if(t.path&&"*"!==t.path&&t.key)try{if(o(t.key).exec(e.substring(1))){r=t;return}}catch(e){}Array.isArray(t.children)&&n(t.children)})}(router),r}
|
package/lib/utils/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export var translatFunction=function(func,val){try{if(
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export var translatFunction=function(func,val){try{if(void 0!==val)return eval(func)}catch(error){console.warn(error)}return func};export var watermark=function(o){var t=o.text,e=o.x,i=void 0===e?19.5:e,n=o.y,a=void 0===n?55:n,r=o.width,l=void 0===r?100:r,d=o.height,s=void 0===d?100:d,v=o.fontSize,m=void 0===v?14:v,c=o.angle,g=void 0===c?-45:c,p=o.opacity,x=void 0===p?.1:p,y=o.color,f='<svg xmlns="http://www.w3.org/2000/svg" width="'+l+'" height="'+s+'"><g><title>Layer 1</title><text x="'+i+'" y="'+a+'" textAnchor="middle" dominantBaseline="middle" stroke-opacity="'+x+'" stroke="'+(void 0===y?"#000":y)+'" fill="none" transform="rotate('+g+" "+l/2+","+s/2+')" font-size="'+m+"\" font-family=\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', 'Helvetica', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans'\">"+t+"</text></g></svg>";return"data:image/svg+xml;base64,"+window.btoa(decodeURIComponent(encodeURIComponent(f)))};
|
package/lib/utils/refresh-rem.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=refresh-rem.js.map
|
|
1
|
+
!function(o,n){var t=function(){var n=o.documentElement,t=n.clientWidth||o.body.clientWidth,e=t<=375?375:programInfo.designSize,i=t;i=t<=375?t:t<=programInfo.designSize?e:t;var l=16/e*i+"px";l!==n.style.fontSize&&(n.style.fontSize=l)};t(),"addEventListener"in o&&n.addEventListener("orientationchange"in n?"orientationchange":"resize",t,!1),window.scrollTo||(window.scrollTo=function(o){window.scrollLeft=o.left,window.scrollTop=o.top}),document.body.scrollTo||(Element.prototype.scrollTo=function(o){this.scrollLeft=o.left,this.scrollTop=o.top})}(document,window);
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moneko/core",
|
|
3
|
-
"version": "2.0.19-beta.
|
|
3
|
+
"version": "2.0.19-beta.2",
|
|
4
4
|
"description": "core",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "npm run build-conf && npm run build-src && npm run build:types",
|
|
8
|
-
"build-conf": "swc config -d build -C module.type=commonjs -C minify=true --copy-files",
|
|
9
|
-
"build-src": "swc src -d lib -C module.type=es6 -C minify=true -
|
|
8
|
+
"build-conf": "swc config -d build -C module.type=commonjs -C jsc.target=es5 -C jsc.loose=true -C jsc.minify.mangle=true -C jsc.minify.compress=true -C minify=true --copy-files",
|
|
9
|
+
"build-src": "swc src -d lib -C module.type=es6 -C jsc.loose=true -C jsc.minify.mangle=true -C jsc.minify.compress=true -C minify=true --copy-files",
|
|
10
10
|
"build:types": "tsc && tsc --project cli.json",
|
|
11
11
|
"postbuild": "node ./copy.js ./prefix ./lib",
|
|
12
12
|
"prebuild": "rm -rf ./build && rm -rf ./lib"
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"react-router-dom": "6.9.0",
|
|
46
46
|
"rehype-accessible-emojis": "0.3.2",
|
|
47
47
|
"rehype-figure": "1.0.1",
|
|
48
|
-
"shared-store-object": "1.0.
|
|
48
|
+
"shared-store-object": "1.0.1",
|
|
49
49
|
"style-loader": "3.3.1",
|
|
50
50
|
"style-resources-loader": "1.5.0",
|
|
51
51
|
"swc-loader": "0.2.3",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/app-router.tsx"],"sourcesContent":["import React, {\n Fragment as ReactFragment,\n Suspense,\n cloneElement as clone,\n createElement as create,\n useEffect,\n isValidElement,\n type ReactElement,\n} from 'react';\nimport { isObject } from '@moneko/common';\nimport { AliveScope, KeepAlive, useAliveController, type KeepAliveProps } from 'react-activation';\nimport { createBrowserRouter, createHashRouter } from 'react-router-dom';\nimport Fallback from './fallback';\nimport { router, type RouterProps } from '../router';\n\nconst PrefixKeepAlive: React.FC<Partial<KeepAliveProps>> = ({ children, name, ...args }) => {\n const { drop, dropScope, clear, getCachingNodes } = useAliveController();\n const id = window.location.pathname + window.location.hash;\n\n useEffect(() => {\n if (window.__POWERED_BY_QIANKUN__ && window.primaryApp) {\n if (!window.primaryApp.currentTarget) {\n window.primaryApp.currentTarget = {};\n }\n Object.assign(window.primaryApp.currentTarget, {\n aliveController: { drop, dropScope, clear, getCachingNodes },\n });\n }\n }, [clear, drop, dropScope, getCachingNodes]);\n\n const _children = children as ReactElement;\n\n return (\n <KeepAlive id={id} name={id} {...args}>\n {clone(_children, {\n path: name,\n selfUrl: id,\n })}\n </KeepAlive>\n );\n};\n\nlet existKeepAlive = false;\n\nexport const createRouter =\n programInfo.routerMode === 'hash' ? createHashRouter : createBrowserRouter;\nexport let RouterFragment: typeof ReactFragment | typeof AliveScope = ReactFragment;\n\nexport function prefixRouter(list: RouterProps[], fallback: ReactElement) {\n return list.map((r) => {\n const _ = Object.assign({}, r);\n\n if (!!_.alive && !existKeepAlive) {\n existKeepAlive = true;\n RouterFragment = AliveScope;\n }\n if (_.element) {\n const props = Object.assign({ path: _.key }, _.props);\n const ele = isValidElement(_.element) ? clone(_.element, props) : create(_.element, props);\n\n if (_.alive) {\n const aliveProps: Partial<KeepAliveProps> = {\n name: _.key,\n cacheKey: _.key,\n };\n\n if (isObject(_.alive)) {\n Object.assign(aliveProps, _.alive);\n }\n _.element = create(PrefixKeepAlive, aliveProps, ele);\n } else {\n _.element = <Suspense fallback={r.fallback || fallback}>{ele}</Suspense>;\n }\n }\n\n if (Array.isArray(_.children)) {\n _.children = prefixRouter(_.children, fallback);\n }\n return _;\n });\n}\n\nexport const routerData = prefixRouter(router, <Fallback />);\n"],"names":["React","Fragment","ReactFragment","Suspense","cloneElement","clone","createElement","create","useEffect","isValidElement","isObject","AliveScope","KeepAlive","useAliveController","createBrowserRouter","createHashRouter","Fallback","router","PrefixKeepAlive","children","name","args","drop","dropScope","clear","getCachingNodes","id","window","location","pathname","hash","__POWERED_BY_QIANKUN__","primaryApp","currentTarget","Object","assign","aliveController","_children","path","selfUrl","existKeepAlive","createRouter","programInfo","routerMode","RouterFragment","prefixRouter","list","fallback","map","r","_","alive","element","props","key","ele","aliveProps","cacheKey","Array","isArray","routerData"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/fallback-comp.tsx"],"sourcesContent":["/* eslint-disable no-console */\nimport * as React from 'react';\n\nexport interface FallbackCompProps {\n /** 组件所在父级目录(默认:components) */\n directory?: string;\n /** 组件所在位置(不包含父级目录) */\n compName: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\nconst FallbackComp: React.FC<FallbackCompProps> = (props: FallbackCompProps) => {\n const { directory = 'components', compName, ...prop } = props;\n\n let Comp = React.Fragment;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n Comp = require(`@/${directory}/${compName}`).default;\n } catch (error) {\n console.info(\n `${compName} 组件不存在, 请在 @/${directory}/${compName} 目录下新建 index.tsx, 并导出默认组件`\n );\n }\n\n return React.isValidElement(Comp) ? null : <Comp {...prop} />;\n};\n\nexport default React.memo(FallbackComp);\n"],"names":["React","FallbackComp","props","directory","compName","prop","Comp","Fragment","require","default","error","console","info","isValidElement","memo"],"mappings":"w9BACA,UAAYA,UAAW,OAAQ,CAU/B,IAAMC,aAA4C,SAACC,MAA6B,CAC9E,qBAAwDA,MAAhDC,UAAAA,oCAAY,8BAAcC,SAAsBF,MAAtBE,SAAaC,8BAASH,OAAhDC,YAA0BC,aAElC,IAAIE,KAAON,MAAMO,QAAQ,CAEzB,GAAI,CAEFD,KAAOE,QAAQ,AAAC,KAAiBJ,OAAbD,UAAU,KAAY,OAATC,WAAYK,OAAO,AACtD,CAAE,MAAOC,MAAO,CACdC,QAAQC,IAAI,CACV,AAAC,GAA0BT,OAAxBC,SAAS,iBAA4BA,OAAbD,UAAU,KAAY,OAATC,SAAS,6BAErD,CAEA,OAAOJ,MAAMa,cAAc,CAACP,MAAQ,IAAI,CAAG,oBAACA,iBAASD,MAAQ,AAC/D,CAEA,gBAAeL,MAAMc,IAAI,CAACb,aAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/fallback.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { useOutlet } from 'react-router-dom';\nimport FallbackComp from './fallback-comp';\n\ndeclare const fallbackCompPath: string;\n\nconst Fallback: React.FC = () => {\n const outlet = useOutlet()?.props.children;\n const [el, setEl] = useState(<>Loading...</>);\n\n useMemo(() => {\n if (typeof fallbackCompPath === 'string') {\n const pat = fallbackCompPath.replace(/@\\//, '').split('/');\n const [directory, ...path] = pat;\n\n setEl(<FallbackComp directory={directory} compName={path.join('/')} />);\n }\n }, []);\n\n return outlet ? outlet : el;\n};\n\nexport default React.memo(Fallback);\n"],"names":["React","useMemo","useState","useOutlet","FallbackComp","Fallback","outlet","props","children","el","setEl","fallbackCompPath","pat","replace","split","directory","path","compName","join","memo"],"mappings":"ykDAAA,OAAOA,OAASC,OAAO,CAAEC,QAAQ,KAAQ,OAAQ,AACjD,QAASC,SAAS,KAAQ,kBAAmB,AAC7C,QAAOC,iBAAkB,iBAAkB,CAI3C,IAAMC,SAAqB,UAAM,KAChBF,WAAf,IAAMG,OAASH,CAAAA,WAAAA,qBAAAA,oBAAAA,KAAAA,EAAAA,WAAaI,MAAMC,QAAQ,CAC1C,IAAoBN,yBAAAA,SAAS,wCAAE,kBAAxBO,GAAaP,aAATQ,MAASR,aAEpBD,QAAQ,UAAM,CACZ,GAAI,OAAOU,mBAAqB,SAAU,CACxC,IAAMC,IAAMD,iBAAiBE,OAAO,CAAC,MAAO,IAAIC,KAAK,CAAC,KACtD,IAA6BF,cAAAA,KAAtBG,UAAsBH,QAAX,AAAGI,KAAQJ,WAAX,GAElBF,MAAM,oBAACN,cAAaW,UAAWA,UAAWE,SAAUD,KAAKE,IAAI,CAAC,OAChE,CAAC,AACH,EAAG,EAAE,EAEL,OAAOZ,OAASA,OAASG,EAAE,AAC7B,CAEA,gBAAeT,MAAMmB,IAAI,CAACd,SAAU"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/layout-menu.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { classNames, isEqual } from '@moneko/common';\nimport { Menu, type MenuProps } from 'antd';\nimport { useSearchParams, Link } from 'react-router-dom';\nimport { localizable } from '../localizable';\nimport { menu, type MenuItem } from '../menu';\n\nexport interface LayoutMenuProps extends MenuProps {\n collapsed?: boolean;\n}\n\nconst LayoutMenu: React.FC<LayoutMenuProps> = (prop) => {\n const { collapsed, ...menuProps } = prop;\n const { menus, kv, activeKey } = menu;\n const { t } = localizable;\n const [search] = useSearchParams();\n const openKeysRef = useRef<string[]>();\n const [openKeys, setOpenKeys] = useState<string[]>([]);\n const handleOpenChange = useCallback(\n (keys: string[]) => {\n if (keys !== openKeys) {\n setOpenKeys(keys as string[]);\n }\n },\n [openKeys]\n );\n\n const filterMenu = useCallback(\n (list: MenuItem[]): MenuItem[] => {\n return list.map((item) => {\n const { icon, itemIcon, disabled, type, key, path, label, children } = item;\n const text = t[label as string];\n const childrens = Array.isArray(children) ? filterMenu(children) : children;\n\n return Object.assign(\n {\n path,\n type,\n disabled,\n key,\n itemIcon,\n icon,\n label:\n path && !childrens?.length ? (\n <Link preventScrollReset to={`${key}?menuId=${key}`}>\n {text}\n </Link>\n ) : (\n text\n ),\n },\n childrens?.length && {\n children: childrens,\n }\n );\n });\n },\n [t]\n );\n\n const menuId = useMemo(() => search.get('menuId'), [search]);\n const items = useMemo(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n () => filterMenu(menus.filter((m: any) => !m.hideMenu)),\n [filterMenu, menus]\n );\n const selectedKeys = useMemo(() => (activeKey ? [activeKey] : []), [activeKey]);\n\n useEffect(() => {\n Object.assign(openKeysRef, {\n current: openKeys,\n });\n }, [openKeys]);\n useEffect(() => {\n const current = menuId && kv[menuId];\n\n if (current && !collapsed && openKeysRef.current) {\n const opk = [...openKeysRef.current];\n\n if (!opk.includes(menuId as string)) opk.push(menuId as string);\n if (current.parentId && !opk.includes(current.parentId)) opk.push(current.parentId);\n if (!isEqual(openKeysRef.current, opk)) setOpenKeys(opk);\n }\n }, [collapsed, menuId, kv]);\n\n useEffect(() => {\n if (menuId !== activeKey && menuId) {\n menu.activeKey = menuId;\n }\n }, [activeKey, menuId]);\n\n return (\n <Menu\n defaultSelectedKeys={selectedKeys}\n selectedKeys={selectedKeys}\n defaultOpenKeys={openKeys}\n // eslint-disable-next-line no-undefined\n openKeys={collapsed ? undefined : openKeys}\n onOpenChange={handleOpenChange}\n mode=\"inline\"\n subMenuCloseDelay={0}\n triggerSubMenuAction=\"click\"\n items={items}\n {...menuProps}\n className={classNames('layout-menu', menuProps.className)}\n />\n );\n};\n\nexport default React.memo(LayoutMenu);\n"],"names":["React","useCallback","useEffect","useMemo","useRef","useState","classNames","isEqual","Menu","useSearchParams","Link","localizable","menu","LayoutMenu","prop","collapsed","menuProps","menus","kv","activeKey","t","search","openKeysRef","openKeys","setOpenKeys","handleOpenChange","keys","filterMenu","list","map","item","icon","itemIcon","disabled","type","key","path","label","children","text","childrens","Array","isArray","Object","assign","length","preventScrollReset","to","menuId","get","items","filter","m","hideMenu","selectedKeys","current","opk","includes","push","parentId","defaultSelectedKeys","defaultOpenKeys","undefined","onOpenChange","mode","subMenuCloseDelay","triggerSubMenuAction","className","memo"],"mappings":"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"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport * from './utils';\nexport { pathToRegexp } from 'path-to-regexp';\nexport { default as sso } from 'shared-store-object';\nexport { localizable, setLanguage, type LocaleConfig, type LocaleName } from './localizable';\nexport {\n matchUtil,\n router,\n onlyLoginRouter,\n myPkgs,\n myDemoKv,\n mdxComponents,\n type ExampleModule,\n type RouterProps,\n type MyPkg,\n} from './router';\nexport {\n addTab,\n closeTab,\n menu,\n openTab,\n setMenu,\n type TabItem,\n type MenuItem,\n type CloseTab,\n} from './menu';\nexport type { LayoutMenuProps } from './components/layout-menu';\nexport { createRouter, prefixRouter, routerData, RouterFragment } from './components/app-router';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const LayoutMenu = hasAntd ? require('./components/layout-menu').default : null;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const DashboardLayout = hasAntd ? require('./packages/back-stage/layout').default : null;\nexport type {\n ConfigType,\n AppType,\n CommomType,\n ProgramInfoType,\n MemberTransformer,\n CoverageType,\n TerserOptions,\n MinifierType,\n SourceMapDevToolPluginOptions,\n ProjectCoverageType,\n SharedConfig,\n SwcOptions,\n OptimizationSplitChunksOptions,\n SwcImportOnDemandTransform,\n} from '../typings/global';\nimport type { ConfigType, CommomType, CoverageType, ProjectCoverageType } from '../typings/global';\nexport type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;\nexport type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;\ndeclare const projectCoverage: Record<string, CoverageType & Partial<ProjectCoverageType>>;\n\n/** 一些项目基本信息 */\nexport const projectBasicInfo = {\n projectName,\n providerConfig,\n programInfo,\n coverage: projectCoverage,\n};\n"],"names":["pathToRegexp","default","sso","localizable","setLanguage","matchUtil","router","onlyLoginRouter","myPkgs","myDemoKv","mdxComponents","addTab","closeTab","menu","openTab","setMenu","createRouter","prefixRouter","routerData","RouterFragment","LayoutMenu","hasAntd","require","DashboardLayout","projectBasicInfo","projectName","providerConfig","programInfo","coverage","projectCoverage"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,YAAc,SAAU,AACxB,QAASA,YAAY,KAAQ,gBAAiB,AAC9C,QAASC,WAAWC,GAAG,KAAQ,qBAAsB,AACrD,QAASC,WAAW,CAAEC,WAAW,KAA4C,eAAgB,AAC7F,QACEC,SAAS,CACTC,MAAM,CACNC,eAAe,CACfC,MAAM,CACNC,QAAQ,CACRC,aAAa,KAIR,UAAW,AAClB,QACEC,MAAM,CACNC,QAAQ,CACRC,IAAI,CACJC,OAAO,CACPC,OAAO,KAIF,QAAS,AAEhB,QAASC,YAAY,CAAEC,YAAY,CAAEC,UAAU,CAAEC,cAAc,KAAQ,yBAA0B,AAEjG,QAAO,IAAMC,WAAaC,QAAUC,QAAQ,4BAA4BrB,OAAO,CAAG,IAAI,AAAC,AAEvF,QAAO,IAAMsB,gBAAkBF,QAAUC,QAAQ,gCAAgCrB,OAAO,CAAG,IAAI,AAAC,AAuBhG,QAAO,IAAMuB,iBAAmB,CAC9BC,YAAAA,YACAC,eAAAA,eACAC,YAAAA,YACAC,SAAUC,eACZ,CAAE"}
|
package/lib/localizable.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/localizable.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport sso from 'shared-store-object';\n\nexport type LocaleName =\n | 'ar_EG'\n | 'az_AZ'\n | 'bg_BG'\n | 'bn_BD'\n | 'by_BY'\n | 'ca_ES'\n | 'cs_CZ'\n | 'da_DK'\n | 'de_DE'\n | 'el_GR'\n | 'en_GB'\n | 'en_US'\n | 'es_ES'\n | 'et_EE'\n | 'fa_IR'\n | 'fi_FI'\n | 'fr_BE'\n | 'fr_CA'\n | 'fr_FR'\n | 'ga_IE'\n | 'gl_ES'\n | 'he_IL'\n | 'hi_IN'\n | 'hr_HR'\n | 'hu_HU'\n | 'hy_AM'\n | 'id_ID'\n | 'is_IS'\n | 'it_IT'\n | 'ja_JP'\n | 'ka_GE'\n | 'kk_KZ'\n | 'kmr_IQ'\n | 'km_KH'\n | 'kn_IN'\n | 'ko_KR'\n | 'ku_IQ'\n | 'lt_LT'\n | 'lv_LV'\n | 'mk_MK'\n | 'ml_IN'\n | 'mn_MN'\n | 'ms_MY'\n | 'nb_NO'\n | 'ne_NP'\n | 'nl_BE'\n | 'nl_NL'\n | 'pl_PL'\n | 'pt_BR'\n | 'pt_PT'\n | 'ro_RO'\n | 'ru_RU'\n | 'sk_SK'\n | 'sl_SI'\n | 'sr_RS'\n | 'sv_SE'\n | 'ta_IN'\n | 'th_TH'\n | 'tr_TR'\n | 'uk_UA'\n | 'ur_PK'\n | 'vi_VN'\n | 'zh_CN'\n | 'zh_HK'\n | 'zh_TW';\n\nlet models = {\n keys: () => [],\n} as unknown as __WebpackModuleApi.RequireContext;\n\ndeclare const hasLocales: boolean;\n\ntry {\n models = hasLocales // eslint-disable-next-line\n ? require.context('@/locales/', true, /\\.(t|j)s$/) // eslint-disable-next-line\n : ({\n keys: () => [],\n } as unknown as __WebpackModuleApi.RequireContext);\n} catch (error) {\n // eslint-disable-next-line no-console\n console.warn(error);\n}\nexport type LocaleConfig = {\n /** 语言名称 (未设置时使用文件名)*/\n language?: LocaleName;\n /** 描述 */\n title: string;\n /** Icon */\n icon?: ReactNode | string;\n /** 翻译字典 */\n translation: Record<string, string>;\n};\ntype LocaleConfigMap = Record<LocaleName, Locale>;\nconst resources: Partial<LocaleConfigMap> = {};\nconst locales: Pick<Locale, 'language' | 'icon' | 'title'>[] = [];\n\nmodels.keys?.()?.map((path: string, i: number) => {\n let item: LocaleConfigMap[LocaleName] | null = models(path).default;\n\n if (item && Object.prototype.toString.call(item) === '[object Object]') {\n const {\n language = path.replace(/(.*\\/)*([^.]+).*/gi, '$2') as LocaleName,\n title = language,\n icon,\n translation = {},\n } = item;\n\n if (i === 0) {\n locales.splice(0);\n }\n locales.push({\n language,\n title,\n icon,\n });\n resources[language] = {\n language,\n title,\n icon,\n translation: new Proxy(translation, {\n get(target, key) {\n return target[key as string] || key;\n },\n }),\n };\n }\n item = null;\n});\n\ninterface Locale extends LocaleConfig {\n language: LocaleName;\n}\nconst defaultLocale: Locale = Object.assign(\n {\n title: '简体中文',\n language: 'zh_CN',\n translation: {},\n },\n resources.zh_CN\n);\n\nexport const localizable = sso({\n /** 使用的语言 */\n language: 'zh_CN' as LocaleName,\n /** 获取本地化文本 */\n t: defaultLocale.translation,\n /** 本地化支持列表 */\n locales: locales,\n});\n\n/** 设置使用的语言\n * @param {LocaleName} lang 语言\n * @constructor\n */\nexport function setLanguage(lang: LocaleName) {\n localizable.language = lang;\n localizable.t = resources[lang]?.translation || defaultLocale.translation;\n}\n"],"names":["models","sso","keys","hasLocales","require","context","error","console","warn","resources","locales","map","path","i","item","default","Object","prototype","toString","call","language","replace","title","icon","translation","splice","push","Proxy","get","target","key","defaultLocale","assign","zh_CN","localizable","t","setLanguage","lang"],"mappings":"IAoGAA,aAAAA,iBAnGA,QAAOC,QAAS,qBAAsB,CAqEtC,IAAID,OAAS,CACXE,KAAM,iBAAM,EAAE,CAChB,EAIA,GAAI,CACFF,OAASG,WACLC,QAAQC,OAAO,CAAC,aAAc,IAAI,CAAE,aACnC,CACCH,KAAM,iBAAM,EAAE,CAChB,CAAkD,AACxD,CAAE,MAAOI,MAAO,CAEdC,QAAQC,IAAI,CAACF,MACf,CAYA,IAAMG,UAAsC,CAAC,EAC7C,IAAMC,QAAyD,EAAE,AAEjEV,EAAAA,aAAAA,OAAOE,IAAI,UAAXF,sBAAAA,KAAAA,EAAAA,CAAAA,kBAAAA,aAAAA,KAAAA,iBAAAA,2BAAAA,KAAAA,EAAAA,kBAAiBW,IAAI,SAACC,KAAcC,EAAc,CAChD,IAAIC,KAA2Cd,OAAOY,MAAMG,OAAO,CAEnE,GAAID,MAAQE,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACL,QAAU,kBAAmB,CACtE,mBAKIA,KAJFM,SAAAA,iCAAWR,KAAKS,OAAO,CAAC,qBAAsB,iCAI5CP,KAHFQ,MAAAA,2BAAQF,qBACRG,KAEET,KAFFS,uBAEET,KADFU,YAAAA,uCAAc,CAAC,oBAGjB,GAAIX,IAAM,EAAG,CACXH,QAAQe,MAAM,CAAC,EACjB,CAAC,AACDf,QAAQgB,IAAI,CAAC,CACXN,SAAAA,SACAE,MAAAA,MACAC,KAAAA,IACF,EACAd,CAAAA,SAAS,CAACW,SAAS,CAAG,CACpBA,SAAAA,SACAE,MAAAA,MACAC,KAAAA,KACAC,YAAa,IAAIG,MAAMH,YAAa,CAClCI,IAAAA,SAAAA,IAAIC,MAAM,CAAEC,GAAG,CAAE,CACf,OAAOD,MAAM,CAACC,IAAc,EAAIA,GAClC,CACF,EACF,CACF,CAAC,AACDhB,KAAO,IAAI,AACb,GAKA,IAAMiB,cAAwBf,OAAOgB,MAAM,CACzC,CACEV,MAAO,OACPF,SAAU,QACVI,YAAa,CAAC,CAChB,EACAf,UAAUwB,KAAK,CAGjB,QAAO,IAAMC,YAAcjC,IAAI,CAE7BmB,SAAU,QAEVe,EAAGJ,cAAcP,WAAW,CAE5Bd,QAASA,OACX,EAAG,AAMH,QAAO,SAAS0B,YAAYC,IAAgB,CAAE,KAE5B5B,eADhByB,CAAAA,YAAYd,QAAQ,CAAGiB,IACvBH,CAAAA,YAAYC,CAAC,CAAG1B,CAAAA,CAAAA,gBAAAA,SAAS,CAAC4B,KAAK,UAAf5B,yBAAAA,KAAAA,EAAAA,gBAAiBe,WAAW,AAAD,GAAKO,cAAcP,WAAW,AAC3E,CAAC"}
|
package/lib/menu.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/menu.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { isEqual, isFunction } from '@moneko/common';\nimport sso from 'shared-store-object';\nimport type { RouterProps } from './router';\n\nexport type CloseTab = 'left' | 'right' | 'other' | 'self';\nexport interface TabItem extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n icon?: ReactNode;\n label?: ReactNode;\n dynamicTitle?: string;\n}\nexport interface MenuItem extends RouterProps {\n key: string;\n type?: string;\n label?: ReactNode;\n children?: MenuItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n// eslint-disable-next-line no-unused-vars\ntype ClosedCallback = (closes?: TabItem[], next?: TabItem) => void;\n\nexport const menu = sso({\n /** 当前菜单 */\n activeKey: 'home',\n /** 当前用户可访问的菜单列表 */\n menus: [] as MenuItem[],\n /** 菜单列表的kv数据, 根据menus自动生成 */\n kv: {} as Record<string, MenuItem>,\n /** 选项卡数据 */\n tabs: [] as TabItem[],\n});\n\nconst getItems = (arr: MenuItem[], result: MenuItem[] = []): MenuItem[] => {\n if (arr.length === 0) {\n return result;\n }\n const { children = [], i18n, label, hideMenu, ...args } = arr[0];\n const item: MenuItem = Object.create(null);\n\n Object.assign(item, args, { label: i18n || label });\n if (children.length) {\n item.children = getItems(children);\n }\n if (!hideMenu) {\n result.push(item);\n }\n return getItems(arr.slice(1), result);\n};\nconst getMenuKV = (arr: MenuItem[], obj: Record<string, MenuItem>): void => {\n for (const item of arr) {\n const { children, ...args } = item;\n\n obj[item.key] = args;\n if (children?.length) {\n getMenuKV(children, obj);\n }\n }\n};\n\n/** 设置菜单列表\n * @param {MenuItem[]} data 菜单数据\n * @constructor\n */\nexport function setMenu(data: MenuItem[]) {\n const items = getItems(data),\n kv: Record<string, MenuItem> = {};\n\n getMenuKV(items, kv);\n menu.menus = items;\n menu.kv = kv;\n}\n/** 添加工作台选项卡\n * @param {TabItem} tab 选项卡\n * @constructor\n */\nexport function addTab(tab: TabItem) {\n const current = menu.kv[tab.key];\n\n if (current && !menu.tabs.find((item) => item.key === tab.key)) {\n const ntabs: TabItem[] = [\n ...menu.tabs,\n {\n ...current,\n i18n: current.i18n || `route-${current.key}`,\n ...tab,\n },\n ];\n\n if (!isEqual(ntabs, menu.tabs)) {\n menu.tabs = ntabs;\n }\n }\n}\n/** 打开工作台选项卡\n * @param {TabItem} tab 选项卡\n * @constructor\n */\nexport function openTab(tab: TabItem) {\n addTab(tab);\n menu.activeKey = tab.key;\n}\n/** 关闭工作台选项卡\n * @param {string} key 选项卡key\n * @param {CloseTab} type 操作类型,如何关闭\n * @param {ClosedCallback} callback 回调函数\n * @constructor\n */\nexport function closeTab(key: string, type: CloseTab = 'self', callback: ClosedCallback) {\n if (!key) return;\n const { tabs, activeKey } = menu;\n let nActiveKey = activeKey;\n const closeTabs: TabItem[] = [];\n const nTabs: TabItem[] = [];\n let nextTab: TabItem | null = null;\n // 关闭当前tab\n const isCloseSelf = type === 'self';\n const idx = tabs.findIndex((t) => t.key === key);\n const isNotClose = (item: TabItem, i: number) => {\n return (\n item.closable === false ||\n {\n left: i >= idx,\n right: i <= idx,\n other: i === idx,\n self: key !== item.key,\n }[type]\n );\n };\n\n for (let i = 0; i < tabs.length; i++) {\n const item = tabs[i];\n const notClose = isNotClose(item, i);\n\n if (isCloseSelf) {\n if (!notClose) {\n if (key === nActiveKey) {\n const adx: number | null = i ? i - 1 : i + 1;\n\n if (tabs[adx]) {\n nActiveKey = tabs[adx].key;\n nextTab = tabs[adx];\n }\n }\n }\n } else if (notClose && item.key === key && nActiveKey !== key) {\n nActiveKey = key;\n nextTab = tabs[i];\n }\n if (!notClose) {\n closeTabs.push(item);\n }\n if (notClose) {\n nTabs.push(item);\n }\n }\n\n menu.tabs = nTabs;\n menu.activeKey = nActiveKey;\n if (isFunction(callback)) {\n callback(closeTabs, nextTab);\n return;\n }\n}\n"],"names":["isEqual","isFunction","sso","menu","activeKey","menus","kv","tabs","getItems","arr","result","length","children","i18n","label","hideMenu","args","item","Object","create","assign","push","slice","getMenuKV","obj","key","setMenu","data","items","addTab","tab","current","find","ntabs","openTab","closeTab","type","callback","nActiveKey","closeTabs","nTabs","nextTab","isCloseSelf","idx","findIndex","t","isNotClose","i","closable","left","right","other","self","notClose","adx"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/back-stage/app.tsx"],"sourcesContent":["import React, { type FC, useEffect } from 'react';\nimport { ConfigProvider } from 'antd';\nimport en_US from 'antd/es/locale/en_US';\nimport zh_CN from 'antd/es/locale/zh_CN';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport { RouterProvider } from 'react-router-dom';\nimport {\n createRouter,\n prefixRouter,\n routerData,\n RouterFragment,\n} from '../../components/app-router';\nimport Fallback from '../../components/fallback';\nimport { type LocaleName, localizable } from '../../localizable';\nimport { onlyLoginRouter } from '../../router';\nimport 'dayjs/locale/zh.js';\nimport 'dayjs/locale/en.js';\nimport { watermark } from '../../utils';\nimport type { Locale } from 'antd/es/locale-provider';\nimport { global } from '@/store';\n\nconst localeDictionary: Partial<Record<LocaleName, Locale>> = {\n zh_CN,\n en_US,\n};\n\ndayjs.extend(relativeTime);\nConfigProvider.config({\n prefixCls: providerConfig.prefixCls,\n iconPrefixCls: providerConfig.iconPrefixCls,\n theme: providerConfig.theme,\n});\n\nconst App: FC = () => {\n const { isLogin } = global;\n const { language, t } = localizable;\n\n useEffect(() => {\n document.body.style.backgroundImage = `url(${watermark({\n text: projectName,\n })})`;\n }, []);\n\n return (\n <RouterFragment>\n <ConfigProvider\n {...providerConfig}\n locale={localeDictionary[language] || zh_CN}\n form={{\n validateMessages: {\n required: `${t['ph:please-fill']}\\${label}!`,\n types: {\n email: `\\${label}${t['wrong-format']}`,\n },\n pattern: {\n mismatch: `${t['ph:fill-correct']}\\${label}!`,\n },\n },\n }}\n >\n <RouterProvider\n router={createRouter(isLogin ? routerData : prefixRouter(onlyLoginRouter, <Fallback />), {\n basename: programInfo.routeBaseName,\n window: window,\n })}\n fallbackElement={<Fallback />}\n />\n </ConfigProvider>\n </RouterFragment>\n );\n};\n\nexport default App;\n"],"names":["React","useEffect","ConfigProvider","en_US","zh_CN","dayjs","relativeTime","RouterProvider","createRouter","prefixRouter","routerData","RouterFragment","Fallback","localizable","onlyLoginRouter","watermark","global","localeDictionary","extend","config","prefixCls","providerConfig","iconPrefixCls","theme","App","isLogin","language","t","document","body","style","backgroundImage","text","projectName","locale","form","validateMessages","required","types","email","pattern","mismatch","router","basename","programInfo","routeBaseName","window","fallbackElement"],"mappings":"oRAAA,OAAOA,OAAkBC,SAAS,KAAQ,OAAQ,AAClD,QAASC,cAAc,KAAQ,MAAO,AACtC,QAAOC,UAAW,sBAAuB,AACzC,QAAOC,UAAW,sBAAuB,AACzC,QAAOC,UAAW,OAAQ,AAC1B,QAAOC,iBAAkB,2BAA4B,AACrD,QAASC,cAAc,KAAQ,kBAAmB,AAClD,QACEC,YAAY,CACZC,YAAY,CACZC,UAAU,CACVC,cAAc,KACT,6BAA8B,AACrC,QAAOC,aAAc,2BAA4B,AACjD,QAA0BC,WAAW,KAAQ,mBAAoB,AACjE,QAASC,eAAe,KAAQ,cAAe,AAC/C,OAAO,oBAAqB,AAC5B,OAAO,oBAAqB,AAC5B,QAASC,SAAS,KAAQ,aAAc,AAExC,QAASC,MAAM,KAAQ,SAAU,CAEjC,IAAMC,iBAAwD,CAC5Db,MAAAA,MACAD,MAAAA,KACF,EAEAE,MAAMa,MAAM,CAACZ,cACbJ,eAAeiB,MAAM,CAAC,CACpBC,UAAWC,eAAeD,SAAS,CACnCE,cAAeD,eAAeC,aAAa,CAC3CC,MAAOF,eAAeE,KAAK,AAC7B,GAEA,IAAMC,IAAU,UAAM,CACpB,IAAM,AAAEC,QAAYT,OAAZS,QACR,IAAQC,SAAgBb,YAAhBa,SAAUC,EAAMd,YAANc,EAElB1B,UAAU,UAAM,CACd2B,SAASC,IAAI,CAACC,KAAK,CAACC,eAAe,CAAG,AAAC,OAEpC,OAF0ChB,UAAU,CACrDiB,KAAMC,WACR,GAAG,IACL,EAAG,EAAE,EAEL,OACE,oBAACtB,oBACC,oBAACT,2BACKmB,gBACJa,OAAQjB,gBAAgB,CAACS,SAAS,EAAItB,MACtC+B,KAAM,CACJC,iBAAkB,CAChBC,SAAU,AAAC,GAAsB,OAApBV,CAAC,CAAC,iBAAiB,CAAC,aACjCW,MAAO,CACLC,MAAO,AAAC,WAA6B,OAAlBZ,CAAC,CAAC,eAAe,CACtC,EACAa,QAAS,CACPC,SAAU,AAAC,GAAuB,OAArBd,CAAC,CAAC,kBAAkB,CAAC,YACpC,CACF,CACF,IAEA,oBAACpB,gBACCmC,OAAQlC,aAAaiB,QAAUf,WAAaD,aAAaK,gBAAiB,oBAACF,eAAY,CAAE,CACvF+B,SAAUC,YAAYC,aAAa,CACnCC,OAAQA,MACV,GACAC,gBAAiB,oBAACnC,kBAK5B,CAEA,gBAAeY,GAAI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/back-stage/bootstrap.tsx"],"sourcesContent":["import React from 'react';\nimport { isFunction } from '@moneko/common';\nimport App from './app';\n\nconst appEntry: AppEntryMethods | null = APPENTRY ? require(APPENTRY) : null;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst SafeReactDOM = require(ReactDOMPath);\nconst version = parseFloat(React.version);\nconst container = document.getElementById('root') as HTMLElement;\n\nif (version >= 18) {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(container, <App />);\n } else {\n window.rootInstance = SafeReactDOM.createRoot(container);\n window.rootInstance.render(<App />);\n }\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n} else {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n const render = module.hot ? SafeReactDOM.render : SafeReactDOM.hydrate;\n\n render(<App />, container);\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n}\n"],"names":["React","isFunction","App","appEntry","APPENTRY","require","SafeReactDOM","ReactDOMPath","version","parseFloat","container","document","getElementById","bootstrap","programInfo","renderMode","window","rootInstance","hydrateRoot","createRoot","render","mount","module","hot","hydrate"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,gBAAiB,AAC5C,QAAOC,QAAS,OAAQ,CAExB,IAAMC,SAAmCC,SAAWC,QAAQD,UAAY,IAAI,CAE5E,IAAME,aAAeD,QAAQE,cAC7B,IAAMC,QAAUC,WAAWT,MAAMQ,OAAO,EACxC,IAAME,UAAYC,SAASC,cAAc,CAAC,QAE1C,GAAIJ,SAAW,GAAI,CACjB,GAAIP,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EAAG,CACnCV,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EACrB,CAAC,AACD,GAAIC,YAAYC,UAAU,GAAK,MAAO,CACpCC,OAAOC,YAAY,CAAGX,aAAaY,WAAW,CAACR,UAAW,oBAACR,UAC7D,KAAO,CACLc,OAAOC,YAAY,CAAGX,aAAaa,UAAU,CAACT,WAC9CM,OAAOC,YAAY,CAACG,MAAM,CAAC,oBAAClB,UAC9B,CAAC,AACD,GAAID,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EAAG,CAC/BlB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EACjB,CAAC,AACH,KAAO,CACL,GAAIpB,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EAAG,CACnCV,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EACrB,CAAC,AACD,IAAMO,OAASE,OAAOC,GAAG,CAAGjB,aAAac,MAAM,CAAGd,aAAakB,OAAO,CAEtEJ,OAAO,oBAAClB,UAAQQ,WAChB,GAAIT,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EAAG,CAC/BlB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EACjB,CAAC,AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/back-stage/index.ts"],"sourcesContent":["import '../../utils/refresh-rem';\nimport '../../styles/normalize.css';\n\nconst bootstrap = await import('./bootstrap');\n\nexport default bootstrap;\n"],"names":["bootstrap"],"mappings":"AAAA,MAAO,yBAA0B,AACjC,OAAO,4BAA6B,CAEpC,IAAMA,UAAY,MAAM,MAAM,CAAC,cAE/B,gBAAeA,SAAU"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/back-stage/layout.tsx"],"sourcesContent":["import React, { type ReactNode, useCallback, useEffect, useMemo, useState, type FC } from 'react';\nimport { ReloadOutlined, DeleteRowOutlined, CloseOutlined } from '@ant-design/icons';\nimport { css, injectGlobal } from '@emotion/css';\nimport { Tabs, Layout, Dropdown } from 'antd';\nimport { useAliveController } from 'react-activation';\nimport { useSearchParams, useOutlet, useNavigate } from 'react-router-dom';\nimport FallbackComp from '../../components/fallback-comp';\nimport LayoutMenu from '../../components/layout-menu';\nimport { localizable } from '../../localizable';\nimport { closeTab, menu, openTab, type CloseTab, type TabItem } from '../../menu';\nimport type { MenuItemType } from 'antd/es/menu/hooks/useItems';\n\ndeclare const favicon: string;\n\nconst { prefixCls } = providerConfig;\nconst c = (s: string) => `${prefixCls}-dashboard-${s}`;\nconst cls = {\n tabs: c('tabs'),\n layout: c('layout'),\n sider: c('sider'),\n header: c('header'),\n logo: c('logo'),\n section: c('section'),\n content: c('content'),\n view: c('view'),\n};\nconst layoutCss = css`\n .${cls.header}, .${cls.tabs} {\n z-index: 2;\n }\n .${cls.tabs} {\n position: sticky;\n top: 64px;\n overflow: initial !important;\n margin: 16px 16px 0 !important;\n\n > .${prefixCls}-tabs-nav {\n .${prefixCls}-tabs-tab {\n border-color: var(--border-color, rgb(5 5 5 / 6%)) !important;\n border-bottom-color: var(--border-color, rgb(5 5 5 / 6%)) !important;\n border-radius: var(--border-radius) !important;\n backdrop-filter: blur(16px);\n background-color: rgba(255, 255, 255, 0.8);\n &.${prefixCls}-tabs-tab-active {\n background-color: rgba(255, 255, 255, 0.9);\n }\n }\n\n &::before {\n content: none;\n }\n }\n }\n .${cls.layout} {\n width: 100% !important;\n min-height: 100vh !important;\n }\n .${cls.sider}, .${cls.section} {\n overflow-y: auto;\n max-height: 100vh;\n }\n .${cls.section} {\n overflow-y: auto;\n }\n .${cls.sider} {\n overflow-y: auto;\n }\n .${cls.content} {\n display: flex;\n margin: 0 16px;\n flex-direction: column;\n z-index: 1;\n }\n .${cls.view} {\n border-radius: var(--border-radius);\n padding: 24px;\n background: var(--component-card-bg, #fff);\n box-shadow: var(--box-shadow-lite);\n flex: 1;\n transition-property: background-color, box-shadow;\n }\n .${cls.view}, .${cls.logo}, .${cls.logo} > svg {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n .${cls.logo} {\n position: sticky;\n top: 0;\n z-index: 1;\n display: flex;\n gap: 10px;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n padding: 14px;\n height: 68px;\n text-align: center;\n color: #de4553;\n transition-property: background-color, border-color;\n cursor: pointer;\n user-select: none;\n\n > svg,\n &::before {\n transition-property: opacity;\n }\n\n > svg {\n height: 32px;\n opacity: 0;\n }\n\n &::before {\n display: block;\n width: 22px;\n height: 32px;\n background: url(${require(favicon)}) no-repeat center center / contain;\n opacity: 1;\n content: '';\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n }\n`;\n\ninjectGlobal([layoutCss]);\n\nconst closeTabs: ({ key: CloseTab | 'refresh' } & Omit<MenuItemType, 'key'>)[] = [\n {\n label: '关闭左侧标签',\n icon: <DeleteRowOutlined style={{ transform: 'scaleX(-1)' }} />,\n key: 'left',\n },\n {\n label: '关闭右侧标签',\n icon: <DeleteRowOutlined />,\n key: 'right',\n },\n {\n label: '关闭其他标签',\n icon: <CloseOutlined />,\n key: 'other',\n },\n {\n label: '刷新标签页',\n icon: <ReloadOutlined />,\n key: 'refresh',\n },\n];\nconst DashboardLayout: FC<{ children?: ReactNode }> = ({ children }) => {\n const { activeKey, tabs, kv } = menu;\n const { t } = localizable;\n const outlet = useOutlet();\n const navigate = useNavigate();\n const { dropScope } = useAliveController();\n const [search] = useSearchParams();\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const handleCollapsed = useCallback((value: boolean) => {\n if (value) {\n let _timer: number | null = window.setTimeout(() => {\n setCollapsed(value);\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 0);\n } else {\n setCollapsed(value);\n let _timer: number | null = window.setTimeout(() => {\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 30);\n }\n }, []);\n const closedTab = useCallback(\n (tabKey?: string, type?: CloseTab | 'refresh') => {\n if (type === 'refresh') {\n navigate('/refresh');\n return;\n }\n if (tabKey) {\n closeTab(tabKey, type, function (closes?: TabItem[], next?: TabItem) {\n closes?.forEach((item) => {\n if (item.path && dropScope) {\n dropScope(item.path);\n }\n });\n if (next) {\n navigate(`${next.path}?menuId=${next.key}`);\n }\n });\n }\n },\n [dropScope, navigate]\n );\n\n const { menuId, dynamicLabel } = useMemo(\n () => ({\n menuId: search.get('menuId'),\n dynamicLabel: search.get('dynamicTitle') || '',\n }),\n [search]\n );\n\n useEffect(() => {\n if (menuId) {\n openTab({\n key: menuId,\n dynamicTitle: dynamicLabel,\n });\n }\n }, [dynamicLabel, menuId]);\n\n const getItems = useCallback(\n (key: string) =>\n key === activeKey ? closeTabs : closeTabs.filter((i) => i?.key !== 'refresh'),\n [activeKey]\n );\n const handleTabEdit = useCallback(\n (\n targetKey: string | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\n action: 'add' | 'remove'\n ) => {\n if (action === 'remove' && typeof targetKey === 'string') {\n closedTab(targetKey);\n }\n },\n [closedTab]\n );\n const handleClick = useCallback(\n (key: string) => {\n navigate(`${kv[key].key}?menuId=${kv[key].key}`);\n },\n [kv, navigate]\n );\n const tabPanel = useMemo(() => {\n return tabs.map(({ key, icon, label, dynamicTitle, closable }: TabItem) => {\n return {\n key,\n label: (\n <Dropdown\n menu={{\n items: getItems(key),\n onClick: (info) => {\n info.domEvent.stopPropagation();\n closedTab(key, info.key as CloseTab);\n },\n }}\n trigger={['contextMenu']}\n destroyPopupOnHide\n >\n <div>\n {icon}\n {t[(label as string) || `route-${key}`] + (dynamicTitle || '')}\n </div>\n </Dropdown>\n ),\n closable,\n };\n });\n }, [closedTab, getItems, t, tabs]);\n\n return (\n <Layout className={cls.layout}>\n {layoutSider ? (\n <Layout.Sider\n className={cls.sider}\n trigger={null}\n collapsible\n collapsed={collapsed}\n onBreakpoint={(broken: boolean) => handleCollapsed(broken)}\n onCollapse={(_collapsed: boolean) => handleCollapsed(_collapsed)}\n theme=\"light\"\n breakpoint=\"md\"\n {...layoutSider}\n >\n <div className={cls.logo} data-title={projectName}>\n <FallbackComp compName=\"logo\" show={!collapsed} />\n </div>\n <LayoutMenu collapsed={collapsed} theme={layoutSider.theme} />\n </Layout.Sider>\n ) : null}\n <Layout className={cls.section}>\n <FallbackComp\n compName=\"layout-header\"\n className={cls.header}\n collapsed={collapsed}\n onCollapsed={() => handleCollapsed(!collapsed)}\n />\n <Tabs\n className={cls.tabs}\n hideAdd\n onTabClick={handleClick}\n activeKey={activeKey}\n type=\"editable-card\"\n onEdit={handleTabEdit}\n items={tabPanel}\n animated\n />\n <Layout.Content className={cls.content}>\n <div className={cls.view}>{children || outlet}</div>\n <FallbackComp compName=\"layout-footer\" />\n </Layout.Content>\n </Layout>\n </Layout>\n );\n};\n\nexport default DashboardLayout;\n"],"names":["React","useCallback","useEffect","useMemo","useState","ReloadOutlined","DeleteRowOutlined","CloseOutlined","css","injectGlobal","Tabs","Layout","Dropdown","useAliveController","useSearchParams","useOutlet","useNavigate","FallbackComp","LayoutMenu","localizable","closeTab","menu","openTab","prefixCls","providerConfig","c","s","cls","tabs","layout","sider","header","logo","section","content","view","layoutCss","require","favicon","closeTabs","label","icon","style","transform","key","DashboardLayout","children","activeKey","kv","t","outlet","navigate","dropScope","search","collapsed","setCollapsed","handleCollapsed","value","_timer","window","setTimeout","clearTimeout","closedTab","tabKey","type","closes","next","forEach","item","path","menuId","get","dynamicLabel","dynamicTitle","getItems","filter","i","handleTabEdit","targetKey","action","handleClick","tabPanel","map","closable","items","onClick","info","domEvent","stopPropagation","trigger","destroyPopupOnHide","div","className","layoutSider","Sider","collapsible","onBreakpoint","broken","onCollapse","_collapsed","theme","breakpoint","data-title","projectName","compName","show","onCollapsed","hideAdd","onTabClick","onEdit","animated","Content"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/library/app.tsx"],"sourcesContent":["import React from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\n\nconst App: React.FC = () => {\n return (\n <RouterFragment>\n <RouterProvider\n router={createRouter(routerData, {\n basename: programInfo.routeBaseName,\n })}\n fallbackElement={<Fallback />}\n />\n </RouterFragment>\n );\n};\n\nexport default App;\n"],"names":["React","RouterProvider","RouterFragment","routerData","createRouter","Fallback","App","router","basename","programInfo","routeBaseName","fallbackElement"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,cAAc,KAAQ,kBAAmB,AAClD,QAASC,cAAc,CAAEC,UAAU,CAAEC,YAAY,KAAQ,6BAA8B,AACvF,QAAOC,aAAc,2BAA4B,CAEjD,IAAMC,IAAgB,UAAM,CAC1B,OACE,oBAACJ,oBACC,oBAACD,gBACCM,OAAQH,aAAaD,WAAY,CAC/BK,SAAUC,YAAYC,aAAa,AACrC,GACAC,gBAAiB,oBAACN,iBAI1B,CAEA,gBAAeC,GAAI"}
|