@moneko/core 2.0.16-beta.8 → 2.0.16
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/envFlags.d.ts +1 -2
- package/build/envFlags.js +1 -1
- package/lib/components/{app-router/index.d.ts → app-router.d.ts} +1 -1
- package/lib/components/app-router.js +2 -0
- package/lib/components/app-router.js.map +1 -0
- package/lib/components/{fallback-comp/index.js → fallback-comp.js} +1 -1
- package/lib/components/fallback-comp.js.map +1 -0
- package/lib/components/{fallback/index.js → fallback.js} +2 -2
- package/lib/components/fallback.js.map +1 -0
- package/lib/components/{layout-menu/index.js → layout-menu.js} +2 -2
- package/lib/components/layout-menu.js.map +1 -0
- package/lib/index.d.ts +6 -3
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/localizable.d.ts +53 -0
- package/lib/localizable.js +2 -0
- package/lib/localizable.js.map +1 -0
- package/lib/menu.d.ts +115 -0
- package/lib/menu.js +2 -0
- package/lib/menu.js.map +1 -0
- package/lib/packages/back-stage/app.js +1 -1
- package/lib/packages/back-stage/app.js.map +1 -1
- package/lib/packages/back-stage/bootstrap.js +1 -1
- package/lib/packages/back-stage/bootstrap.js.map +1 -1
- package/lib/packages/back-stage/index.d.ts +0 -1
- package/lib/packages/back-stage/index.js +1 -1
- package/lib/packages/back-stage/index.js.map +1 -1
- package/lib/packages/back-stage/layout.js +2 -0
- package/lib/packages/back-stage/layout.js.map +1 -0
- package/lib/packages/library/app.js +1 -1
- package/lib/packages/library/app.js.map +1 -1
- package/lib/packages/library/index.d.ts +0 -1
- package/lib/packages/library/index.js +1 -1
- package/lib/packages/library/index.js.map +1 -1
- package/lib/packages/mobile/app.js +1 -1
- package/lib/packages/mobile/app.js.map +1 -1
- package/lib/packages/mobile/index.d.ts +0 -1
- package/lib/packages/mobile/index.js +1 -1
- package/lib/packages/mobile/index.js.map +1 -1
- package/lib/packages/single-spa/app.d.ts +2 -2
- package/lib/packages/single-spa/app.js +1 -1
- package/lib/packages/single-spa/app.js.map +1 -1
- package/lib/packages/single-spa/bootstrap.js +1 -1
- package/lib/packages/single-spa/bootstrap.js.map +1 -1
- package/lib/packages/single-spa/index.d.ts +0 -1
- package/lib/packages/single-spa/index.js +1 -1
- package/lib/packages/single-spa/index.js.map +1 -1
- package/lib/packages/site/app.js +1 -1
- package/lib/packages/site/app.js.map +1 -1
- package/lib/packages/site/index.d.ts +0 -1
- package/lib/packages/site/index.js +1 -1
- package/lib/packages/site/index.js.map +1 -1
- package/lib/prefix/react-router-dom.js +1 -1
- package/lib/prefix/react-router-dom.js.map +1 -1
- package/lib/react-router-dom/link.d.ts +9 -0
- package/lib/react-router-dom/link.js +2 -0
- package/lib/react-router-dom/link.js.map +1 -0
- package/lib/{hooks/navgate.d.ts → react-router-dom/use-navgate.d.ts} +1 -1
- package/lib/{hooks/navgate.js → react-router-dom/use-navgate.js} +1 -1
- package/lib/react-router-dom/use-navgate.js.map +1 -0
- package/lib/router/index.d.ts +6 -0
- package/lib/router/index.js.map +1 -1
- package/lib/{store → sso}/index.d.ts +12 -2
- package/lib/{store → sso}/index.js +1 -1
- package/lib/sso/index.js.map +1 -0
- package/lib/styles/normalize.css +26 -18
- package/lib/styles/variables.css +33 -33
- package/package.json +2 -4
- package/typings/global.d.ts +2 -7
- package/lib/components/app-router/index.js +0 -2
- package/lib/components/app-router/index.js.map +0 -1
- package/lib/components/fallback/index.js.map +0 -1
- package/lib/components/fallback-comp/index.js.map +0 -1
- package/lib/components/layout-menu/index.js.map +0 -1
- package/lib/hooks/navgate.js.map +0 -1
- package/lib/packages/back-stage/layout/index.js +0 -2
- package/lib/packages/back-stage/layout/index.js.map +0 -1
- package/lib/packages/back-stage/layout/index.less +0 -81
- package/lib/packages/back-stage/models/app-program.d.ts +0 -25
- package/lib/packages/back-stage/models/app-program.js +0 -2
- package/lib/packages/back-stage/models/app-program.js.map +0 -1
- package/lib/prefix/i18n-hooks.d.ts +0 -1
- package/lib/prefix/i18n-hooks.js +0 -2
- package/lib/prefix/i18n-hooks.js.map +0 -1
- package/lib/prefix/mini-idc.d.ts +0 -1
- package/lib/prefix/mini-idc.js +0 -2
- package/lib/prefix/mini-idc.js.map +0 -1
- package/lib/store/index.js.map +0 -1
- package/lib/styles/animation.css +0 -24
- package/lib/utils/env.d.ts +0 -0
- package/lib/utils/env.js +0 -2
- package/lib/utils/env.js.map +0 -1
- /package/lib/components/{fallback-comp/index.d.ts → fallback-comp.d.ts} +0 -0
- /package/lib/components/{fallback/index.d.ts → fallback.d.ts} +0 -0
- /package/lib/components/{layout-menu/index.d.ts → layout-menu.d.ts} +0 -0
- /package/lib/packages/back-stage/{layout/index.d.ts → layout.d.ts} +0 -0
package/build/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{ENTRYPATH:function(){return ENTRYPATH},log:function(){return log},CONFIG:function(){return CONFIG},PUBLICPATH:function(){return PUBLICPATH}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _readline=_interopRequireDefault(require("readline"));var _chalk=_interopRequireDefault(require("chalk"));var _webpackMerge=require("webpack-merge");var _processEnv=require("./process-env");var _utils=require("./utils");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _customConf_minifier;var ENTRYPATH={mobile:"mobile",site:"site","back-stage":"back-stage","single-spa":"single-spa",library:"library","single-component":"single-component"};var includeModule=[_processEnv.pkgName,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design"];var defaultSplitChunk={chunks:"all",minSize:1024,minChunks:1};if(_processEnv.APPTYPE==="single-component"){defaultSplitChunk=false}var defaultConfig={mode:"csr",compiler:"swc",bundleAnalyzer:{analyzerMode:"static",reportFilename:"report.html",openAnalyzer:false},entry:{},minifier:{options:{},css:"cssnano"},sourceMap:{filename:"[file].map",publicPath:""},env:{},
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{ENTRYPATH:function(){return ENTRYPATH},log:function(){return log},CONFIG:function(){return CONFIG},PUBLICPATH:function(){return PUBLICPATH}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _readline=_interopRequireDefault(require("readline"));var _chalk=_interopRequireDefault(require("chalk"));var _webpackMerge=require("webpack-merge");var _processEnv=require("./process-env");var _utils=require("./utils");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _customConf_minifier;var ENTRYPATH={mobile:"mobile",site:"site","back-stage":"back-stage","single-spa":"single-spa",library:"library","single-component":"single-component"};var includeModule=[_processEnv.pkgName,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design"];var defaultSplitChunk={chunks:"all",minSize:1024,minChunks:1};if(_processEnv.APPTYPE==="single-component"){defaultSplitChunk=false}var defaultConfig={mode:"csr",compiler:"swc",bundleAnalyzer:{analyzerMode:"static",reportFilename:"report.html",openAnalyzer:false},entry:{},minifier:{options:{},css:"cssnano"},sourceMap:{filename:"[file].map",publicPath:""},env:{},persistence:"".concat(_processEnv.PACKAGENAME,"-program:").concat(_processEnv.PACKAGEVERSION),routeBaseName:"/",publicPath:"/",designSize:_processEnv.APPTYPE==="mobile"?375:1680,fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:{},layoutSider:{},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:_processEnv.PROGRAMPATH+"/node_modules/.temp_cache",devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:false,compress:false},htmlPluginOption:{template:"./node_modules/".concat(_processEnv.pkgName,"/template/index.html"),favicon:"./node_modules/".concat(_processEnv.pkgName,"/template/favicon.ico")},assetHtml:[],routerMode:"browser",plugins:[],splitChunk:defaultSplitChunk,runtimeChunk:_processEnv.APPTYPE==="single-component"?false:"single",moduleFederation:[],rulesInclude:{less:includeModule,css:includeModule,js:includeModule,media:includeModule,fonts:includeModule}};var log=function(msg){_readline.default.cursorTo(process.stdout,0);process.stdout.write(msg)};var customConf=defaultConfig;var configPath=null;var normalConf={};var envConf={};try{configPath=_path.default.join(_processEnv.PROGRAMPATH,"./config/index.ts");_fs.default.accessSync(configPath,_fs.default.constants.R_OK)}catch(error){configPath=null}if(configPath){try{var conf=eval((0,_utils.tfc)(configPath)).default;normalConf=(0,_utils.isFunction)(conf)?conf(process):conf}catch(error){process.stdout.write(_chalk.default.red(error))}}if(_processEnv.CUSTOMCONFIG){var customConfigPath=null;try{customConfigPath=_path.default.join(_processEnv.PROGRAMPATH,"./config/".concat(_processEnv.CUSTOMCONFIG,".ts"));_fs.default.accessSync(customConfigPath,_fs.default.constants.R_OK)}catch(error){customConfigPath=null}if(customConfigPath!==null){try{var conf=eval((0,_utils.tfc)(customConfigPath)).default;envConf=(0,_utils.isFunction)(conf)?conf(process):conf}catch(error){process.stdout.write(_chalk.default.red(error))}}}customConf=(0,_webpackMerge.merge)(customConf,normalConf,envConf);if(!(customConf===null||customConf===void 0?void 0:(_customConf_minifier=customConf.minifier)===null||_customConf_minifier===void 0?void 0:_customConf_minifier.type)){customConf.minifier.type=customConf.compiler==="swc"?"swc":"terser"}if(customConf.devtool===false)customConf.sourceMap=false;if(customConf.sourceMap===false)customConf.devtool=false;var CONFIG=customConf;var PUBLICPATH=CONFIG.publicPath||"/";global.NEKOCLICONFIG={CONFIG:CONFIG,log:log};
|
package/build/envFlags.d.ts
CHANGED
package/build/envFlags.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _common=require("./common");var _coverage=require("./coverage");var _processEnv=require("./process-env");var _utils=require("./utils");function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}var reactVersion=_processEnv.hasReact?require("react/package.json").version:"18";var ReactDOMPath=parseFloat(reactVersion)>=18?"react-dom/client":"react-dom";var entryName=_processEnv.APPTYPE==="library"?"site":"src";var APPENTRY=false;try{var appEntryPath=_path.default.join(_processEnv.PROGRAMPATH,"./src/index.ts");_fs.default.accessSync(appEntryPath,_fs.default.constants.R_OK);APPENTRY=appEntryPath}catch(error){APPENTRY=false}var envFlags={projectName:JSON.stringify((0,_utils.toUpperCaseString)(_processEnv.PACKAGENAME)),projectCoverage:JSON.stringify(_coverage.coverage),providerConfig:JSON.stringify({prefixCls:_common.CONFIG.prefixCls,iconPrefixCls:_common.CONFIG.prefixCls+"-icon",input:{autoComplete:"off"}}),fallbackCompPath:JSON.stringify(_common.CONFIG.fallbackCompPath),ReactDOMPath:JSON.stringify(ReactDOMPath),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _common=require("./common");var _coverage=require("./coverage");var _htmlPluginOption=_interopRequireDefault(require("./html-plugin-option"));var _processEnv=require("./process-env");var _utils=require("./utils");function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}var reactVersion=_processEnv.hasReact?require("react/package.json").version:"18";var ReactDOMPath=parseFloat(reactVersion)>=18?"react-dom/client":"react-dom";var entryName=_processEnv.APPTYPE==="library"?"site":"src";var APPENTRY=false;try{var appEntryPath=_path.default.join(_processEnv.PROGRAMPATH,"./src/index.ts");_fs.default.accessSync(appEntryPath,_fs.default.constants.R_OK);APPENTRY=appEntryPath}catch(error){APPENTRY=false}var envFlags={projectName:JSON.stringify((0,_utils.toUpperCaseString)(_processEnv.PACKAGENAME)),projectCoverage:JSON.stringify(_coverage.coverage),providerConfig:JSON.stringify({prefixCls:_common.CONFIG.prefixCls,iconPrefixCls:_common.CONFIG.prefixCls+"-icon",input:{autoComplete:"off"}}),fallbackCompPath:JSON.stringify(_common.CONFIG.fallbackCompPath),ReactDOMPath:JSON.stringify(ReactDOMPath),favicon:JSON.stringify(_htmlPluginOption.default.favicon),hasLocales:JSON.stringify(_fs.default.existsSync(_path.default.join(_processEnv.PROGRAMPATH,"./".concat(entryName,"/locales")))),layoutSider:JSON.stringify(_common.CONFIG.layoutSider),hasAntd:JSON.stringify(_processEnv.hasAntd),APPTYPE:JSON.stringify(_processEnv.APPTYPE),APPENTRY:JSON.stringify(APPENTRY),programInfo:JSON.stringify(_objectSpreadProps(_objectSpread({},_processEnv.programInfo),{routeBaseName:_common.CONFIG.routeBaseName,designSize:_common.CONFIG.designSize,routerMode:_common.CONFIG.routerMode,renderMode:_common.CONFIG.mode})),"process.env":JSON.stringify(_objectSpread({NODE_ENV:_processEnv.NODE_ENV,APPTYPE:_processEnv.APPTYPE},_common.CONFIG.env))};var _default=envFlags;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Fragment as ReactFragment, type ReactElement } from 'react';
|
|
2
2
|
import { AliveScope } from 'react-activation';
|
|
3
3
|
import { createHashRouter } from 'react-router-dom';
|
|
4
|
-
import { type RouterProps } from '
|
|
4
|
+
import { type RouterProps } from '../router';
|
|
5
5
|
export declare const createRouter: typeof createHashRouter;
|
|
6
6
|
export declare let RouterFragment: typeof ReactFragment | typeof AliveScope;
|
|
7
7
|
export declare function prefixRouter(list: RouterProps[], fallback: ReactElement): RouterProps[];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{Fragment as ReactFragment,Suspense,cloneElement as clone,createElement as create,useEffect,isValidElement}from"react";import{isObject}from"@moneko/common";import{AliveScope,KeepAlive,useAliveController}from"react-activation";import{createBrowserRouter,createHashRouter}from"react-router-dom";import Fallback from"./fallback";import{router}from"../router";var PrefixKeepAlive=function(_param){var children=_param.children,name=_param.name,args=_objectWithoutProperties(_param,["children","name"]);var _useAliveController=useAliveController(),drop=_useAliveController.drop,dropScope=_useAliveController.dropScope,clear=_useAliveController.clear,getCachingNodes=_useAliveController.getCachingNodes;var id=window.location.pathname+window.location.hash;useEffect(function(){if(window.__POWERED_BY_QIANKUN__&&window.primaryApp){if(!window.primaryApp.currentTarget){window.primaryApp.currentTarget={}}Object.assign(window.primaryApp.currentTarget,{aliveController:{drop:drop,dropScope:dropScope,clear:clear,getCachingNodes:getCachingNodes}})}},[clear,drop,dropScope,getCachingNodes]);var _children=children;return React.createElement(KeepAlive,_extends({id:id,name:id},args),clone(_children,{path:name,selfUrl:id}))};var existKeepAlive=false;export var createRouter=programInfo.routerMode==="hash"?createHashRouter:createBrowserRouter;export var RouterFragment=ReactFragment;export function prefixRouter(list,fallback){return list.map(function(r){var _=Object.assign({},r);if(!!_.alive&&!existKeepAlive){existKeepAlive=true;RouterFragment=AliveScope}if(_.element){var props=Object.assign({path:_.key},_.props);var ele=isValidElement(_.element)?clone(_.element,props):create(_.element,props);if(_.alive){var aliveProps={name:_.key,cacheKey:_.key};if(isObject(_.alive)){Object.assign(aliveProps,_.alive)}_.element=create(PrefixKeepAlive,aliveProps,ele)}else{_.element=React.createElement(Suspense,{fallback:r.fallback||fallback},ele)}}if(Array.isArray(_.children)){_.children=prefixRouter(_.children,fallback)}return _})}export var routerData=prefixRouter(router,React.createElement(Fallback,null));
|
|
2
|
+
//# sourceMappingURL=app-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,2 +1,2 @@
|
|
|
1
1
|
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import*as React from"react";var FallbackComp=function(props){var _props_directory=props.directory,directory=_props_directory===void 0?"components":_props_directory,compName=props.compName,prop=_objectWithoutProperties(props,["directory","compName"]);var Comp=React.Fragment;try{Comp=require("@/".concat(directory,"/").concat(compName)).default}catch(error){console.info("".concat(compName," 组件不存在, 请在 @/").concat(directory,"/").concat(compName," 目录下新建 index.tsx, 并导出默认组件"))}return React.isValidElement(Comp)?null:React.createElement(Comp,_extends({},prop))};export default React.memo(FallbackComp);
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=fallback-comp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,2 +1,2 @@
|
|
|
1
|
-
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _toArray(arr){return _arrayWithHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useMemo,useState}from"react";import{useOutlet}from"react-router-dom";import FallbackComp from"
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _toArray(arr){return _arrayWithHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useMemo,useState}from"react";import{useOutlet}from"react-router-dom";import FallbackComp from"./fallback-comp";var Fallback=function(){var _useOutlet;var outlet=(_useOutlet=useOutlet())===null||_useOutlet===void 0?void 0:_useOutlet.props.children;var _useState=_slicedToArray(useState(React.createElement(React.Fragment,null,"Loading...")),2),el=_useState[0],setEl=_useState[1];useMemo(function(){if(typeof fallbackCompPath==="string"){var pat=fallbackCompPath.replace(/@\//,"").split("/");var _pat=_toArray(pat),directory=_pat[0],path=_pat.slice(1);setEl(React.createElement(FallbackComp,{directory:directory,compName:path.join("/")}))}},[]);return outlet?outlet:el};export default React.memo(Fallback);
|
|
2
|
+
//# sourceMappingURL=fallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,2 +1,2 @@
|
|
|
1
|
-
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{classNames,isEqual}from"@moneko/common";import{Menu}from"antd";import{
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{classNames,isEqual}from"@moneko/common";import{Menu}from"antd";import{useSearchParams,Link}from"react-router-dom";import{localizable}from"../localizable";import{menu}from"../menu";var LayoutMenu=function(prop){var collapsed=prop.collapsed,menuProps=_objectWithoutProperties(prop,["collapsed"]);var menus=menu.menus,kv=menu.kv,activeKey=menu.activeKey;var t=localizable.t;var _useSearchParams=_slicedToArray(useSearchParams(),1),search=_useSearchParams[0];var openKeysRef=useRef();var _useState=_slicedToArray(useState([]),2),openKeys=_useState[0],setOpenKeys=_useState[1];var handleOpenChange=useCallback(function(keys){if(keys!==openKeys){setOpenKeys(keys)}},[openKeys]);var filterMenu=useCallback(function(list){return list.map(function(item){var icon=item.icon,itemIcon=item.itemIcon,disabled=item.disabled,type=item.type,key=item.key,path=item.path,label=item.label,children=item.children;var text=t[label];var childrens=Array.isArray(children)?filterMenu(children):children;return Object.assign({path:path,type:type,disabled:disabled,key:key,itemIcon:itemIcon,icon:icon,label:path&&!(childrens===null||childrens===void 0?void 0:childrens.length)?React.createElement(Link,{preventScrollReset:true,to:"".concat(key,"?menuId=").concat(key)},text):text},(childrens===null||childrens===void 0?void 0:childrens.length)&&{children:childrens})})},[t]);var menuId=useMemo(function(){return search.get("menuId")},[search]);var items=useMemo(function(){return filterMenu(menus.filter(function(m){return!m.hideMenu}))},[filterMenu,menus]);var selectedKeys=useMemo(function(){return activeKey?[activeKey]:[]},[activeKey]);useEffect(function(){Object.assign(openKeysRef,{current:openKeys})},[openKeys]);useEffect(function(){var current=menuId&&kv[menuId];if(current&&!collapsed&&openKeysRef.current){var opk=_toConsumableArray(openKeysRef.current);if(!opk.includes(menuId))opk.push(menuId);if(current.parentId&&!opk.includes(current.parentId))opk.push(current.parentId);if(!isEqual(openKeysRef.current,opk))setOpenKeys(opk)}},[collapsed,menuId,kv]);useEffect(function(){if(menuId!==activeKey&&menuId){menu.activeKey=menuId}},[activeKey,menuId]);return React.createElement(Menu,_extends({defaultSelectedKeys:selectedKeys,selectedKeys:selectedKeys,defaultOpenKeys:openKeys,openKeys:collapsed?undefined:openKeys,onOpenChange:handleOpenChange,mode:"inline",subMenuCloseDelay:0,triggerSubMenuAction:"click",items:items},menuProps,{className:classNames("layout-menu",menuProps.className)}))};export default React.memo(LayoutMenu);
|
|
2
|
+
//# sourceMappingURL=layout-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export * from './prefix/react-router-dom.js';
|
|
3
|
-
export * from './prefix/i18n-hooks.js';
|
|
4
|
-
export * from './prefix/mini-idc.js';
|
|
5
3
|
export * from './utils';
|
|
6
|
-
export {
|
|
4
|
+
export { pathToRegexp } from 'path-to-regexp';
|
|
5
|
+
export { default as sso } from './sso';
|
|
6
|
+
export { type LocaleConfig, localizable, type LocaleName } from './localizable';
|
|
7
7
|
export { matchUtil, router, onlyLoginRouter, myPkgs, myDemoKv, mdxComponents, type ExampleModule, type RouterProps, type MyPkg, } from './router';
|
|
8
|
+
export { type TabItem, type MenuItem, type CloseTab, menu } from './menu';
|
|
9
|
+
export type { LayoutMenuProps } from './components/layout-menu';
|
|
10
|
+
export { createRouter, prefixRouter, routerData, RouterFragment } from './components/app-router';
|
|
8
11
|
export declare const LayoutMenu: any;
|
|
9
12
|
export declare const DashboardLayout: any;
|
|
10
13
|
export type { ConfigType, AppType, CommomType, ProgramInfoType, MemberTransformer, CoverageType, TerserOptions, MinifierType, SourceMapDevToolPluginOptions, ProjectCoverageType, SharedConfig, SwcOptions, OptimizationSplitChunksOptions, SwcImportOnDemandTransform, } from '../typings/global';
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export*from"./prefix/react-router-dom.js";export*from"./
|
|
1
|
+
export*from"./prefix/react-router-dom.js";export*from"./utils";export{pathToRegexp}from"path-to-regexp";export{default as sso}from"./sso";export{localizable}from"./localizable";export{matchUtil,router,onlyLoginRouter,myPkgs,myDemoKv,mdxComponents}from"./router";export{menu}from"./menu";export{createRouter,prefixRouter,routerData,RouterFragment}from"./components/app-router";export var LayoutMenu=hasAntd?require("./components/layout-menu").default:null;export var DashboardLayout=hasAntd?require("./packages/back-stage/layout").default:null;export var projectBasicInfo={projectName:projectName,providerConfig:providerConfig,programInfo:programInfo,coverage:projectCoverage};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport * from './
|
|
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 './sso';\nexport { type LocaleConfig, localizable, 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 { type TabItem, type MenuItem, type CloseTab, menu } 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","matchUtil","router","onlyLoginRouter","myPkgs","myDemoKv","mdxComponents","menu","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,OAAQ,AACvC,QAA4BC,WAAW,KAAyB,eAAgB,AAChF,QACEC,SAAS,CACTC,MAAM,CACNC,eAAe,CACfC,MAAM,CACNC,QAAQ,CACRC,aAAa,KAIR,UAAW,AAClB,QAAqDC,IAAI,KAAQ,QAAS,AAE1E,QAASC,YAAY,CAAEC,YAAY,CAAEC,UAAU,CAAEC,cAAc,KAAQ,yBAA0B,AAEjG,QAAO,IAAMC,WAAaC,QAAUC,QAAQ,4BAA4BhB,OAAO,CAAG,IAAI,AAAC,AAEvF,QAAO,IAAMiB,gBAAkBF,QAAUC,QAAQ,gCAAgChB,OAAO,CAAG,IAAI,AAAC,AAuBhG,QAAO,IAAMkB,iBAAmB,CAC9BC,YAAAA,YACAC,eAAAA,eACAC,YAAAA,YACAC,SAAUC,eACZ,CAAE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type LocaleName = 'ar_EG' | 'az_AZ' | 'bg_BG' | 'bn_BD' | 'by_BY' | 'ca_ES' | 'cs_CZ' | 'da_DK' | 'de_DE' | 'el_GR' | 'en_GB' | 'en_US' | 'es_ES' | 'et_EE' | 'fa_IR' | 'fi_FI' | 'fr_BE' | 'fr_CA' | 'fr_FR' | 'ga_IE' | 'gl_ES' | 'he_IL' | 'hi_IN' | 'hr_HR' | 'hu_HU' | 'hy_AM' | 'id_ID' | 'is_IS' | 'it_IT' | 'ja_JP' | 'ka_GE' | 'kk_KZ' | 'kmr_IQ' | 'km_KH' | 'kn_IN' | 'ko_KR' | 'ku_IQ' | 'lt_LT' | 'lv_LV' | 'mk_MK' | 'ml_IN' | 'mn_MN' | 'ms_MY' | 'nb_NO' | 'ne_NP' | 'nl_BE' | 'nl_NL' | 'pl_PL' | 'pt_BR' | 'pt_PT' | 'ro_RO' | 'ru_RU' | 'sk_SK' | 'sl_SI' | 'sr_RS' | 'sv_SE' | 'ta_IN' | 'th_TH' | 'tr_TR' | 'uk_UA' | 'ur_PK' | 'vi_VN' | 'zh_CN' | 'zh_HK' | 'zh_TW';
|
|
3
|
+
export type LocaleConfig = {
|
|
4
|
+
/** 语言名称 (未设置时使用文件名)*/
|
|
5
|
+
language?: LocaleName;
|
|
6
|
+
/** 描述 */
|
|
7
|
+
title: string;
|
|
8
|
+
/** Icon */
|
|
9
|
+
icon?: ReactNode | string;
|
|
10
|
+
/** 翻译字典 */
|
|
11
|
+
translation: Record<string, string>;
|
|
12
|
+
};
|
|
13
|
+
interface Locale extends LocaleConfig {
|
|
14
|
+
language: LocaleName;
|
|
15
|
+
}
|
|
16
|
+
export declare const localizable: {
|
|
17
|
+
/** 使用的语言 */
|
|
18
|
+
language: LocaleName;
|
|
19
|
+
/** 获取本地化文本 */
|
|
20
|
+
t: Record<string, string>;
|
|
21
|
+
/** 本地化支持列表 */
|
|
22
|
+
locales: Pick<Locale, "language" | "icon" | "title">[];
|
|
23
|
+
/** 设置使用的语言
|
|
24
|
+
* @param {LocaleName} lang 语言
|
|
25
|
+
* @constructor
|
|
26
|
+
*/
|
|
27
|
+
set(lang: LocaleName): void;
|
|
28
|
+
} & (<K extends "language" | "t" | "locales" | "set">(key: K, updater: (val: {
|
|
29
|
+
/** 使用的语言 */
|
|
30
|
+
language: LocaleName;
|
|
31
|
+
/** 获取本地化文本 */
|
|
32
|
+
t: Record<string, string>;
|
|
33
|
+
/** 本地化支持列表 */
|
|
34
|
+
locales: Pick<Locale, "language" | "icon" | "title">[];
|
|
35
|
+
/** 设置使用的语言
|
|
36
|
+
* @param {LocaleName} lang 语言
|
|
37
|
+
* @constructor
|
|
38
|
+
*/
|
|
39
|
+
set(lang: LocaleName): void;
|
|
40
|
+
}[K]) => {
|
|
41
|
+
/** 使用的语言 */
|
|
42
|
+
language: LocaleName;
|
|
43
|
+
/** 获取本地化文本 */
|
|
44
|
+
t: Record<string, string>;
|
|
45
|
+
/** 本地化支持列表 */
|
|
46
|
+
locales: Pick<Locale, "language" | "icon" | "title">[];
|
|
47
|
+
/** 设置使用的语言
|
|
48
|
+
* @param {LocaleName} lang 语言
|
|
49
|
+
* @constructor
|
|
50
|
+
*/
|
|
51
|
+
set(lang: LocaleName): void;
|
|
52
|
+
}[K]) => void);
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var _models_keys,_models_keys_call;import sso from"./sso";var models={keys:function(){return[]}};try{models=hasLocales?require.context("@/locales/",true,/\.(t|j)s$/):{keys:function(){return[]}}}catch(error){console.warn(error)}var resources={};var locales=[];(_models_keys=models.keys)===null||_models_keys===void 0?void 0:(_models_keys_call=_models_keys.call(models))===null||_models_keys_call===void 0?void 0:_models_keys_call.map(function(path,i){var item=models(path).default;if(item&&Object.prototype.toString.call(item)==="[object Object]"){var _item_language=item.language,language=_item_language===void 0?path.replace(/(.*\/)*([^.]+).*/gi,"$2"):_item_language,_item_title=item.title,title=_item_title===void 0?language:_item_title,icon=item.icon,_item_translation=item.translation,translation=_item_translation===void 0?{}:_item_translation;if(i===0){locales.splice(0)}locales.push({language:language,title:title,icon:icon});resources[language]={language:language,title:title,icon:icon,translation:new Proxy(translation,{get:function get(target,key){return target[key]||key}})}}item=null});var defaultLocale=Object.assign({title:"简体中文",language:"zh_CN",translation:{}},resources.zh_CN);export var localizable=sso({language:"zh_CN",t:defaultLocale.translation,locales:locales,set:function set(lang){var _resources_lang;localizable.language=lang;localizable.t=((_resources_lang=resources[lang])===null||_resources_lang===void 0?void 0:_resources_lang.translation)||defaultLocale.translation}});
|
|
2
|
+
//# sourceMappingURL=localizable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/localizable.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport sso from './sso';\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 * @param {LocaleName} lang 语言\n * @constructor\n */\n set(lang: LocaleName) {\n localizable.language = lang;\n localizable.t = resources[lang]?.translation || defaultLocale.translation;\n },\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","set","lang"],"mappings":"IAoGAA,aAAAA,iBAnGA,QAAOC,QAAS,OAAQ,CAqExB,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,QAKT0B,IAAAA,SAAAA,IAAIC,IAAgB,CAAE,KAEJ5B,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,CACF,EAAG"}
|
package/lib/menu.d.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { RouterProps } from './router';
|
|
3
|
+
export type CloseTab = 'left' | 'right' | 'other' | 'self';
|
|
4
|
+
export interface TabItem extends RouterProps {
|
|
5
|
+
key: string;
|
|
6
|
+
url?: string;
|
|
7
|
+
path?: string;
|
|
8
|
+
closable?: boolean;
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
label?: ReactNode;
|
|
11
|
+
dynamicTitle?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface MenuItem extends RouterProps {
|
|
14
|
+
key: string;
|
|
15
|
+
type?: string;
|
|
16
|
+
label?: ReactNode;
|
|
17
|
+
children?: MenuItem[];
|
|
18
|
+
[key: string]: any;
|
|
19
|
+
}
|
|
20
|
+
type ClosedCallback = (closes?: TabItem[], next?: TabItem) => void;
|
|
21
|
+
export declare const menu: {
|
|
22
|
+
/** 当前菜单 */
|
|
23
|
+
activeKey: string;
|
|
24
|
+
/** 当前用户可访问的菜单列表 */
|
|
25
|
+
menus: MenuItem[];
|
|
26
|
+
/** 菜单列表的kv数据, 根据menus自动生成 */
|
|
27
|
+
kv: Record<string, MenuItem>;
|
|
28
|
+
/** 选项卡数据 */
|
|
29
|
+
tabs: TabItem[];
|
|
30
|
+
/** 设置菜单列表
|
|
31
|
+
* @param {MenuItem[]} data 菜单数据
|
|
32
|
+
* @constructor
|
|
33
|
+
*/
|
|
34
|
+
setMenu(data: MenuItem[]): void;
|
|
35
|
+
/** 添加选项卡
|
|
36
|
+
* @param {TabItem} tab 选项卡
|
|
37
|
+
* @constructor
|
|
38
|
+
*/
|
|
39
|
+
addTab(tab: TabItem): void;
|
|
40
|
+
/** 打开选项卡
|
|
41
|
+
* @param {TabItem} tab 选项卡
|
|
42
|
+
* @constructor
|
|
43
|
+
*/
|
|
44
|
+
openTab(tab: TabItem): void;
|
|
45
|
+
/** 关闭选项卡
|
|
46
|
+
* @param {string} key 选项卡key
|
|
47
|
+
* @param {CloseTab} type 操作类型,如何关闭
|
|
48
|
+
* @param {ClosedCallback} callback 回调函数
|
|
49
|
+
* @constructor
|
|
50
|
+
*/
|
|
51
|
+
closeTab(key: string, type: CloseTab | undefined, callback: ClosedCallback): void;
|
|
52
|
+
} & (<K extends "activeKey" | "menus" | "kv" | "tabs" | "setMenu" | "addTab" | "openTab" | "closeTab">(key: K, updater: (val: {
|
|
53
|
+
/** 当前菜单 */
|
|
54
|
+
activeKey: string;
|
|
55
|
+
/** 当前用户可访问的菜单列表 */
|
|
56
|
+
menus: MenuItem[];
|
|
57
|
+
/** 菜单列表的kv数据, 根据menus自动生成 */
|
|
58
|
+
kv: Record<string, MenuItem>;
|
|
59
|
+
/** 选项卡数据 */
|
|
60
|
+
tabs: TabItem[];
|
|
61
|
+
/** 设置菜单列表
|
|
62
|
+
* @param {MenuItem[]} data 菜单数据
|
|
63
|
+
* @constructor
|
|
64
|
+
*/
|
|
65
|
+
setMenu(data: MenuItem[]): void;
|
|
66
|
+
/** 添加选项卡
|
|
67
|
+
* @param {TabItem} tab 选项卡
|
|
68
|
+
* @constructor
|
|
69
|
+
*/
|
|
70
|
+
addTab(tab: TabItem): void;
|
|
71
|
+
/** 打开选项卡
|
|
72
|
+
* @param {TabItem} tab 选项卡
|
|
73
|
+
* @constructor
|
|
74
|
+
*/
|
|
75
|
+
openTab(tab: TabItem): void;
|
|
76
|
+
/** 关闭选项卡
|
|
77
|
+
* @param {string} key 选项卡key
|
|
78
|
+
* @param {CloseTab} type 操作类型,如何关闭
|
|
79
|
+
* @param {ClosedCallback} callback 回调函数
|
|
80
|
+
* @constructor
|
|
81
|
+
*/
|
|
82
|
+
closeTab(key: string, type: CloseTab | undefined, callback: ClosedCallback): void;
|
|
83
|
+
}[K]) => {
|
|
84
|
+
/** 当前菜单 */
|
|
85
|
+
activeKey: string;
|
|
86
|
+
/** 当前用户可访问的菜单列表 */
|
|
87
|
+
menus: MenuItem[];
|
|
88
|
+
/** 菜单列表的kv数据, 根据menus自动生成 */
|
|
89
|
+
kv: Record<string, MenuItem>;
|
|
90
|
+
/** 选项卡数据 */
|
|
91
|
+
tabs: TabItem[];
|
|
92
|
+
/** 设置菜单列表
|
|
93
|
+
* @param {MenuItem[]} data 菜单数据
|
|
94
|
+
* @constructor
|
|
95
|
+
*/
|
|
96
|
+
setMenu(data: MenuItem[]): void;
|
|
97
|
+
/** 添加选项卡
|
|
98
|
+
* @param {TabItem} tab 选项卡
|
|
99
|
+
* @constructor
|
|
100
|
+
*/
|
|
101
|
+
addTab(tab: TabItem): void;
|
|
102
|
+
/** 打开选项卡
|
|
103
|
+
* @param {TabItem} tab 选项卡
|
|
104
|
+
* @constructor
|
|
105
|
+
*/
|
|
106
|
+
openTab(tab: TabItem): void;
|
|
107
|
+
/** 关闭选项卡
|
|
108
|
+
* @param {string} key 选项卡key
|
|
109
|
+
* @param {CloseTab} type 操作类型,如何关闭
|
|
110
|
+
* @param {ClosedCallback} callback 回调函数
|
|
111
|
+
* @constructor
|
|
112
|
+
*/
|
|
113
|
+
closeTab(key: string, type: CloseTab | undefined, callback: ClosedCallback): void;
|
|
114
|
+
}[K]) => void);
|
|
115
|
+
export {};
|
package/lib/menu.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import{isEqual,isFunction}from"@moneko/common";import sso from"./sso";var getItems=function(arr){var result=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(arr.length===0){return result}var _arr_=arr[0],_arr__children=_arr_.children,children=_arr__children===void 0?[]:_arr__children,i18n=_arr_.i18n,label=_arr_.label,hideMenu=_arr_.hideMenu,args=_objectWithoutProperties(_arr_,["children","i18n","label","hideMenu"]);var item=Object.create(null);Object.assign(item,args,{label:i18n||label});if(children.length){item.children=getItems(children)}if(!hideMenu){result.push(item)}return getItems(arr.slice(1),result)};var getMenuKV=function(arr,obj){var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=arr[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _ref=_step.value;var item=_ref;var children=item.children,args=_objectWithoutProperties(item,["children"]);obj[item.key]=args;if(children===null||children===void 0?void 0:children.length){getMenuKV(children,obj)}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}};export var menu=sso({activeKey:"home",menus:[],kv:{},tabs:[],setMenu:function setMenu(data){var items=getItems(data),kv={};getMenuKV(items,kv);menu.menus=items;menu.kv=kv},addTab:function addTab(tab){var current=menu.kv[tab.key];if(current&&!menu.tabs.find(function(item){return item.key===tab.key})){var ntabs=_toConsumableArray(menu.tabs).concat([_objectSpread(_objectSpreadProps(_objectSpread({},current),{i18n:current.i18n||"route-".concat(current.key)}),tab)]);if(!isEqual(ntabs,menu.tabs)){menu.tabs=ntabs}}},openTab:function openTab(tab){menu.addTab(tab);menu.activeKey=tab.key},closeTab:function closeTab(key){var type=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"self",callback=arguments.length>2?arguments[2]:void 0;if(!key)return;var tabs=menu.tabs,activeKey=menu.activeKey;var nActiveKey=activeKey;var closeTabs=[];var nTabs=[];var nextTab=null;var isCloseSelf=type==="self";var idx=tabs.findIndex(function(t){return t.key===key});var isNotClose=function(item,i){return item.closable===false||({left:i>=idx,right:i<=idx,other:i===idx,self:key!==item.key})[type]};for(var i=0;i<tabs.length;i++){var item=tabs[i];var notClose=isNotClose(item,i);if(isCloseSelf){if(!notClose){if(key===nActiveKey){var adx=i?i-1:i+1;if(tabs[adx]){nActiveKey=tabs[adx].key;nextTab=tabs[adx]}}}}else if(notClose&&item.key===key&&nActiveKey!==key){nActiveKey=key;nextTab=tabs[i]}if(!notClose){closeTabs.push(item)}if(notClose){nTabs.push(item)}}menu.tabs=nTabs;menu.activeKey=nActiveKey;if(isFunction(callback)){callback(closeTabs,nextTab);return}}});
|
|
2
|
+
//# sourceMappingURL=menu.js.map
|
package/lib/menu.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/menu.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { isEqual, isFunction } from '@moneko/common';\nimport sso from './sso';\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\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\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 * @param {MenuItem[]} data 菜单数据\n * @constructor\n */\n 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 */\n 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 */\n openTab(tab: TabItem) {\n menu.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 */\n 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});\n"],"names":["isEqual","isFunction","sso","getItems","arr","result","length","children","i18n","label","hideMenu","args","item","Object","create","assign","push","slice","getMenuKV","obj","key","menu","activeKey","menus","kv","tabs","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,2 +1,2 @@
|
|
|
1
|
-
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}import React,{useEffect}from"react";import{ConfigProvider}from"antd";import en_US from"antd/es/locale/en_US";import zh_CN from"antd/es/locale/zh_CN";import dayjs from"dayjs";import relativeTime from"dayjs/plugin/relativeTime";import{
|
|
1
|
+
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}import React,{useEffect}from"react";import{ConfigProvider}from"antd";import en_US from"antd/es/locale/en_US";import zh_CN from"antd/es/locale/zh_CN";import dayjs from"dayjs";import relativeTime from"dayjs/plugin/relativeTime";import{RouterProvider}from"react-router-dom";import{createRouter,prefixRouter,routerData,RouterFragment}from"../../components/app-router";import Fallback from"../../components/fallback";import{localizable}from"../../localizable";import{onlyLoginRouter}from"../../router";import"dayjs/locale/zh.js";import"dayjs/locale/en.js";import{watermark}from"../../utils";import{global}from"@/store";var localeDictionary={zh_CN:zh_CN,en_US:en_US};dayjs.extend(relativeTime);ConfigProvider.config({prefixCls:providerConfig.prefixCls,iconPrefixCls:providerConfig.iconPrefixCls,theme:providerConfig.theme});var App=function(){var isLogin=global.isLogin;var language=localizable.language,t=localizable.t;useEffect(function(){document.body.style.backgroundImage="url(".concat(watermark({text:projectName}),")")},[]);return React.createElement(RouterFragment,null,React.createElement(ConfigProvider,_extends({},providerConfig,{locale:localeDictionary[language]||zh_CN,form:{validateMessages:{required:"".concat(t["ph:please-fill"],"${label}!"),types:{email:"${label}".concat(t["wrong-format"])},pattern:{mismatch:"".concat(t["ph:fill-correct"],"${label}!")}}}}),React.createElement(RouterProvider,{router:createRouter(isLogin?routerData:prefixRouter(onlyLoginRouter,React.createElement(Fallback,null)),{basename:programInfo.routeBaseName,window:window}),fallbackElement:React.createElement(Fallback,null)})))};export default App;
|
|
2
2
|
//# sourceMappingURL=app.js.map
|
|
@@ -1 +1 @@
|
|
|
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 {
|
|
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,2 +1,2 @@
|
|
|
1
|
-
import React from"react";import{isFunction}from"@moneko/common";import
|
|
1
|
+
import React from"react";import{isFunction}from"@moneko/common";import App from"./app";var appEntry=APPENTRY?require(APPENTRY):null;var SafeReactDOM=require(ReactDOMPath);var version=parseFloat(React.version);var container=document.getElementById("root");if(version>=18){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}if(programInfo.renderMode==="ssr"){window.rootInstance=SafeReactDOM.hydrateRoot(container,React.createElement(App,null))}else{window.rootInstance=SafeReactDOM.createRoot(container);window.rootInstance.render(React.createElement(App,null))}if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}else{if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}var render=module.hot?SafeReactDOM.render:SafeReactDOM.hydrate;render(React.createElement(App,null),container);if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}
|
|
2
2
|
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/back-stage/bootstrap.tsx"],"sourcesContent":["import React from 'react';\nimport { isFunction } from '@moneko/common';\nimport
|
|
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,2 +1,2 @@
|
|
|
1
|
-
import"../../utils/
|
|
1
|
+
import"../../utils/refresh-rem";import"../../styles/normalize.css";var bootstrap=await import("./bootstrap");export default bootstrap;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/back-stage/index.ts"],"sourcesContent":["import '../../utils/
|
|
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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _taggedTemplateLiteral(strings,raw){if(!raw){raw=strings.slice(0)}return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _templateObject(){var data=_taggedTemplateLiteral(["\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"]);_templateObject=function _templateObject(){return data};return data}import React,{useCallback,useEffect,useMemo,useState}from"react";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{css,injectGlobal}from"@emotion/css";import{Tabs,Layout,Dropdown}from"antd";import{useAliveController}from"react-activation";import{useSearchParams,useOutlet,useNavigate}from"react-router-dom";import FallbackComp from"../../components/fallback-comp";import LayoutMenu from"../../components/layout-menu";import{localizable}from"../../localizable";import{menu}from"../../menu";var prefixCls=providerConfig.prefixCls;var c=function(s){return"".concat(prefixCls,"-dashboard-").concat(s)};var cls={tabs:c("tabs"),layout:c("layout"),sider:c("sider"),header:c("header"),logo:c("logo"),section:c("section"),content:c("content"),view:c("view")};var layoutCss=css(_templateObject(),cls.header,cls.tabs,cls.tabs,prefixCls,prefixCls,prefixCls,cls.layout,cls.sider,cls.section,cls.section,cls.sider,cls.content,cls.view,cls.view,cls.logo,cls.logo,cls.logo,require(favicon));injectGlobal([layoutCss]);var closeTabs=[{label:"关闭左侧标签",icon:React.createElement(DeleteRowOutlined,{style:{transform:"scaleX(-1)"}}),key:"left"},{label:"关闭右侧标签",icon:React.createElement(DeleteRowOutlined,null),key:"right"},{label:"关闭其他标签",icon:React.createElement(CloseOutlined,null),key:"other"},{label:"刷新标签页",icon:React.createElement(ReloadOutlined,null),key:"refresh"}];var DashboardLayout=function(param){var children=param.children;var activeKey=menu.activeKey,tabs=menu.tabs,openTab=menu.openTab,closeTab=menu.closeTab,kv=menu.kv;var t=localizable.t;var outlet=useOutlet();var navigate=useNavigate();var dropScope=useAliveController().dropScope;var _useSearchParams=_slicedToArray(useSearchParams(),1),search=_useSearchParams[0];var _useState=_slicedToArray(useState(false),2),collapsed=_useState[0],setCollapsed=_useState[1];var handleCollapsed=useCallback(function(value){if(value){var _timer=window.setTimeout(function(){setCollapsed(value);window.clearTimeout(_timer);_timer=null},0)}else{setCollapsed(value);var _timer1=window.setTimeout(function(){window.clearTimeout(_timer1);_timer1=null},30)}},[]);var closedTab=useCallback(function(tabKey,type){if(type==="refresh"){navigate("/refresh");return}if(tabKey){closeTab(tabKey,type,function(closes,next){closes===null||closes===void 0?void 0:closes.forEach(function(item){if(item.path&&dropScope){dropScope(item.path)}});if(next){navigate("".concat(next.path,"?menuId=").concat(next.key))}})}},[closeTab,dropScope,navigate]);var _useMemo=useMemo(function(){return{menuId:search.get("menuId"),dynamicLabel:search.get("dynamicTitle")||""}},[search]),menuId=_useMemo.menuId,dynamicLabel=_useMemo.dynamicLabel;useEffect(function(){if(menuId){openTab({key:menuId,dynamicTitle:dynamicLabel})}},[dynamicLabel,menuId,openTab]);var getItems=useCallback(function(key){return key===activeKey?closeTabs:closeTabs.filter(function(i){return(i===null||i===void 0?void 0:i.key)!=="refresh"})},[activeKey]);var handleTabEdit=useCallback(function(targetKey,action){if(action==="remove"&&typeof targetKey==="string"){closedTab(targetKey)}},[closedTab]);var handleClick=useCallback(function(key){navigate("".concat(kv[key].key,"?menuId=").concat(kv[key].key))},[kv,navigate]);var tabPanel=useMemo(function(){return tabs.map(function(param){var key=param.key,icon=param.icon,label=param.label,dynamicTitle=param.dynamicTitle,closable=param.closable;return{key:key,label:React.createElement(Dropdown,{menu:{items:getItems(key),onClick:function(info){info.domEvent.stopPropagation();closedTab(key,info.key)}},trigger:["contextMenu"],destroyPopupOnHide:true},React.createElement("div",null,icon,t[label||"route-".concat(key)]+(dynamicTitle||""))),closable:closable}})},[closedTab,getItems,t,tabs]);return React.createElement(Layout,{className:cls.layout},layoutSider?React.createElement(Layout.Sider,_extends({className:cls.sider,trigger:null,collapsible:true,collapsed:collapsed,onBreakpoint:function(broken){return handleCollapsed(broken)},onCollapse:function(_collapsed){return handleCollapsed(_collapsed)},theme:"light",breakpoint:"md"},layoutSider),React.createElement("div",{className:cls.logo,"data-title":projectName},React.createElement(FallbackComp,{compName:"logo",show:!collapsed})),React.createElement(LayoutMenu,{collapsed:collapsed,theme:layoutSider.theme})):null,React.createElement(Layout,{className:cls.section},React.createElement(FallbackComp,{compName:"layout-header",className:cls.header,collapsed:collapsed,onCollapsed:function(){return handleCollapsed(!collapsed)}}),React.createElement(Tabs,{className:cls.tabs,hideAdd:true,onTabClick:handleClick,activeKey:activeKey,type:"editable-card",onEdit:handleTabEdit,items:tabPanel,animated:true}),React.createElement(Layout.Content,{className:cls.content},React.createElement("div",{className:cls.view},children||outlet),React.createElement(FallbackComp,{compName:"layout-footer"}))))};export default DashboardLayout;
|
|
2
|
+
//# sourceMappingURL=layout.js.map
|