@moneko/core 2.0.16-beta.1 → 2.0.16-beta.11
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/envFlags.d.ts +0 -1
- package/build/envFlags.js +1 -1
- package/build/index.d.ts +2 -0
- package/build/index.js +1 -0
- package/build/utils.js +1 -1
- package/lib/components/layout-menu/index.js +1 -1
- package/lib/components/layout-menu/index.js.map +1 -1
- package/lib/hooks/navgate.d.ts +1 -1
- package/lib/hooks/navgate.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- 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/layout/index.js +1 -1
- package/lib/packages/back-stage/layout/index.js.map +1 -1
- package/lib/packages/library/app.js +1 -1
- package/lib/packages/library/app.js.map +1 -1
- package/lib/packages/mobile/app.js +1 -1
- package/lib/packages/mobile/app.js.map +1 -1
- package/lib/packages/single-spa/app.d.ts +2 -0
- 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/site/app.js +1 -1
- package/lib/packages/site/app.js.map +1 -1
- package/lib/router/index.d.ts +6 -0
- package/lib/router/index.js.map +1 -1
- package/lib/store/index.d.ts +13 -0
- package/lib/store/index.js +2 -0
- package/lib/store/index.js.map +1 -0
- package/package.json +7 -6
- 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/mini-idc.d.ts +0 -1
- package/lib/prefix/mini-idc.js +0 -2
- package/lib/prefix/mini-idc.js.map +0 -1
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),miniIdc:JSON.stringify(_common.CONFIG.miniIdc),hasLocales:JSON.stringify(_fs.default.existsSync(_path.default.join(_processEnv.PROGRAMPATH,"./".concat(entryName,"/locales")))),
|
|
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),miniIdc:JSON.stringify(_common.CONFIG.miniIdc),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;
|
package/build/index.d.ts
ADDED
package/build/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});_exportStar(require("./process-env"),exports);_exportStar(require("./utils"),exports);function _exportStar(from,to){Object.keys(from).forEach(function(k){if(k!=="default"&&!Object.prototype.hasOwnProperty.call(to,k))Object.defineProperty(to,k,{enumerable:true,get:function(){return from[k]}})});return from}
|
package/build/utils.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,{tfc:function(){return tfc},toUpperCaseString:function(){return toUpperCaseString},getIPAdress:function(){return getIPAdress},resolveProgramPath:function(){return resolveProgramPath},resolveNodeModulesPath:function(){return resolveNodeModulesPath},resolve:function(){return resolve},isObject:function(){return isObject},isFunction:function(){return isFunction}});var _path=_interopRequireDefault(require("path"));var _core=require("@swc/core");var
|
|
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,{tfc:function(){return tfc},toUpperCaseString:function(){return toUpperCaseString},getIPAdress:function(){return getIPAdress},resolveProgramPath:function(){return resolveProgramPath},resolveNodeModulesPath:function(){return resolveNodeModulesPath},resolve:function(){return resolve},isObject:function(){return isObject},isFunction:function(){return isFunction}});var _os=require("os");var _path=_interopRequireDefault(require("path"));var _core=require("@swc/core");var _resolverSync=_interopRequireDefault(require("./resolver-sync"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _typeof=function(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj};var swcOption={inputSourceMap:false,sourceMaps:false,module:{type:"commonjs"},jsc:{parser:{syntax:"typescript"},loose:false}};var tfc=function(filepath){var out=(0,_core.transformFileSync)(filepath,swcOption).code||"{}";try{return eval(out)}catch(error){return out}};function toUpperCaseString(string){return string===null||string===void 0?void 0:string.replace(/\b\w/g,function(th){return th.toUpperCase()}).replace(/\./g," ")}function getIPAdress(){var interfaces=(0,_os.networkInterfaces)();for(var devName in interfaces){if(Object.prototype.hasOwnProperty.call(interfaces,devName)){var iface=interfaces[devName];for(var i=0;i<iface.length;i++){var alias=iface[i];if(alias.family==="IPv4"&&alias.address!=="127.0.0.1"&&!alias.address.startsWith("169.254")&&!alias.internal){return alias.address}}}}}function resolveProgramPath(src){return _path.default.resolve(process.cwd(),"./"+src)}var resolveNodeModulesPath=function(src){return resolveProgramPath("node_modules/".concat(src))};var resolve=function(url){return _resolverSync.default.resolveSync({},process.cwd(),url)||url};var funcTag="[object Function]";var asyncTag="[object AsyncFunction]";var genTag="[object GeneratorFunction]";var proxyTag="[object Proxy]";function isObject(target){var type=typeof target==="undefined"?"undefined":_typeof(target);return target!==null&&(type=="object"||type=="function")}function isFunction(target){if(!isObject(target))return false;var tagType=Object.prototype.toString.call(target);return tagType==funcTag||tagType==asyncTag||tagType==genTag||tagType==proxyTag}
|
|
@@ -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{useLocale}from"i18n-hooks";import{
|
|
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{useLocale}from"i18n-hooks";import{useSearchParams,Link}from"react-router-dom";import{menu}from"@/store";var LayoutMenu=function(prop){var collapsed=prop.collapsed,menuProps=_objectWithoutProperties(prop,["collapsed"]);var menus=menu.menus,kv=menu.kv,activeKey=menu.activeKey;var _useSearchParams=_slicedToArray(useSearchParams(),1),search=_useSearchParams[0];var getLanguage=useLocale().getLanguage;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=label?getLanguage(label):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})})},[getLanguage]);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!==menu.activeKey){menu.activeKey=menuId}},[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
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/layout-menu/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { classNames, isEqual } from '@moneko/common';\nimport { Menu, type MenuProps } from 'antd';\nimport { useLocale } from 'i18n-hooks';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/layout-menu/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { classNames, isEqual } from '@moneko/common';\nimport { Menu, type MenuProps } from 'antd';\nimport { useLocale } from 'i18n-hooks';\nimport { useSearchParams, Link } from 'react-router-dom';\nimport { menu } from '@/store';\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 [search] = useSearchParams();\n const { getLanguage } = useLocale();\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: ItemTypes[]): ItemTypes[] => {\n return list.map((item) => {\n const { icon, itemIcon, disabled, type, key, path, label, children } = item;\n const text = label ? getLanguage(label as string) : label;\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 [getLanguage]\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 !== menu.activeKey) {\n menu.activeKey = menuId;\n }\n }, [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","useLocale","useSearchParams","Link","menu","LayoutMenu","prop","collapsed","menuProps","menus","kv","activeKey","search","getLanguage","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/hooks/navgate.d.ts
CHANGED
package/lib/hooks/navgate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/navgate.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/navgate.ts"],"sourcesContent":["import {\n useNavigate as useNavigateReactRouter,\n useSearchParams,\n type NavigateOptions,\n type To,\n} from 'react-router-dom';\n\nconst useNavigate = (\n /** search保留字 */\n reserved?: string | string[]\n) => {\n const reservedWord = Array.from(\n new Set(['menuId', 'dynamicTitle'].concat(reserved || ''))\n ).filter(Boolean);\n const navigates = useNavigateReactRouter();\n const [search] = useSearchParams();\n\n const navigate = (to: To | -1, options?: NavigateOptions) => {\n if (to === -1) {\n navigates(-1);\n return;\n }\n /** 提取保留字属性 */\n const nextSerach: Record<string, string> = {};\n\n search.forEach((val, key) => {\n if (reservedWord.includes(key)) {\n Object.assign(nextSerach, {\n [key]: val,\n });\n }\n });\n\n let entryUrl = to as string;\n const entrySearchIdx = (entryUrl as string).indexOf('?');\n\n if (entrySearchIdx !== -1) {\n const searchByToUrl = new URLSearchParams(entryUrl.slice(entrySearchIdx));\n\n searchByToUrl.forEach((val, key) => {\n Object.assign(nextSerach, {\n [key]: val,\n });\n });\n entryUrl = entryUrl.substring(0, entrySearchIdx);\n }\n\n const searchObj = new URLSearchParams(nextSerach);\n const searchString = searchObj.toString();\n const toUrl = searchString?.trim().length ? [entryUrl, searchString].join('?') : entryUrl;\n\n navigates(toUrl, options);\n };\n\n return navigate;\n};\n\nexport default useNavigate;\n"],"names":["useNavigate","useNavigateReactRouter","useSearchParams","reserved","reservedWord","Array","from","Set","concat","filter","Boolean","navigates","search","navigate","to","options","nextSerach","forEach","val","key","includes","Object","assign","entryUrl","entrySearchIdx","indexOf","searchByToUrl","URLSearchParams","slice","substring","searchObj","searchString","toString","toUrl","trim","length","join"],"mappings":"8+CAAA,OACEA,eAAeC,sBAAsB,CACrCC,eAAe,KAGV,kBAAmB,CAE1B,IAAMF,YAAc,SAElBG,SACG,CACH,IAAMC,aAAeC,MAAMC,IAAI,CAC7B,IAAIC,IAAI,CAAC,SAAU,eAAe,CAACC,MAAM,CAACL,UAAY,MACtDM,MAAM,CAACC,SACT,IAAMC,UAAYV,yBAClB,IAAiBC,gCAAAA,qBAAVU,OAAUV,oBAEjB,IAAMW,SAAW,SAACC,GAAaC,QAA8B,CAC3D,GAAID,KAAO,CAAC,EAAG,CACbH,UAAU,CAAC,GACX,MACF,CAAC,AAED,IAAMK,WAAqC,CAAC,EAE5CJ,OAAOK,OAAO,CAAC,SAACC,IAAKC,IAAQ,CAC3B,GAAIf,aAAagB,QAAQ,CAACD,KAAM,CAC9BE,OAAOC,MAAM,CAACN,WACZ,mBAACG,IAAMD,KAEX,CAAC,AACH,GAEA,IAAIK,SAAWT,GACf,IAAMU,eAAiB,AAACD,SAAoBE,OAAO,CAAC,KAEpD,GAAID,iBAAmB,CAAC,EAAG,CACzB,IAAME,cAAgB,IAAIC,gBAAgBJ,SAASK,KAAK,CAACJ,iBAEzDE,cAAcT,OAAO,CAAC,SAACC,IAAKC,IAAQ,CAClCE,OAAOC,MAAM,CAACN,WACZ,mBAACG,IAAMD,KAEX,GACAK,SAAWA,SAASM,SAAS,CAAC,EAAGL,eACnC,CAAC,AAED,IAAMM,UAAY,IAAIH,gBAAgBX,YACtC,IAAMe,aAAeD,UAAUE,QAAQ,GACvC,IAAMC,MAAQF,CAAAA,qBAAAA,sBAAAA,KAAAA,EAAAA,aAAcG,IAAI,GAAGC,MAAM,EAAG,CAACZ,SAAUQ,aAAa,CAACK,IAAI,CAAC,KAAOb,QAAQ,CAEzFZ,UAAUsB,MAAOlB,QACnB,EAEA,OAAOF,QACT,CAEA,gBAAeb,WAAY"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export * from './prefix/react-router-dom.js';
|
|
3
3
|
export * from './prefix/i18n-hooks.js';
|
|
4
|
-
export * from './prefix/mini-idc.js';
|
|
5
4
|
export * from './utils';
|
|
5
|
+
export { default as createStore } from './store';
|
|
6
6
|
export { matchUtil, router, onlyLoginRouter, myPkgs, myDemoKv, mdxComponents, type ExampleModule, type RouterProps, type MyPkg, } from './router';
|
|
7
|
+
export { createRouter, prefixRouter, routerData, RouterFragment } from './components/app-router';
|
|
7
8
|
export declare const LayoutMenu: any;
|
|
8
9
|
export declare const DashboardLayout: any;
|
|
9
10
|
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"./prefix/i18n-hooks.js";export*from"./
|
|
1
|
+
export*from"./prefix/react-router-dom.js";export*from"./prefix/i18n-hooks.js";export*from"./utils";export{default as createStore}from"./store";export{matchUtil,router,onlyLoginRouter,myPkgs,myDemoKv,mdxComponents}from"./router";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 './prefix/i18n-hooks.js';\nexport * from './
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport * from './prefix/i18n-hooks.js';\nexport * from './utils';\nexport { default as createStore } from './store';\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 { 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":["default","createStore","matchUtil","router","onlyLoginRouter","myPkgs","myDemoKv","mdxComponents","createRouter","prefixRouter","routerData","RouterFragment","LayoutMenu","hasAntd","require","DashboardLayout","projectBasicInfo","projectName","providerConfig","programInfo","coverage","projectCoverage"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,YAAc,wBAAyB,AACvC,YAAc,SAAU,AACxB,QAASA,WAAWC,WAAW,KAAQ,SAAU,AACjD,QACEC,SAAS,CACTC,MAAM,CACNC,eAAe,CACfC,MAAM,CACNC,QAAQ,CACRC,aAAa,KAIR,UAAW,AAClB,QAASC,YAAY,CAAEC,YAAY,CAAEC,UAAU,CAAEC,cAAc,KAAQ,yBAA0B,AAEjG,QAAO,IAAMC,WAAaC,QAAUC,QAAQ,4BAA4Bd,OAAO,CAAG,IAAI,AAAC,AAEvF,QAAO,IAAMe,gBAAkBF,QAAUC,QAAQ,gCAAgCd,OAAO,CAAG,IAAI,AAAC,AAuBhG,QAAO,IAAMgB,iBAAmB,CAC9BC,YAAAA,YACAC,eAAAA,eACAC,YAAAA,YACAC,SAAUC,eACZ,CAAE"}
|
|
@@ -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{useLocale}from"i18n-hooks";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{useLocale}from"i18n-hooks";import{RouterProvider}from"react-router-dom";import{createRouter,prefixRouter,routerData,RouterFragment}from"../../components/app-router";import Fallback from"../../components/fallback";import{onlyLoginRouter}from"../../router";import"dayjs/locale/zh.js";import"dayjs/locale/en.js";import{watermark}from"../../utils";import{account}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=!!account.info;var _useLocale=useLocale(),lang=_useLocale.lang,getLanguage=_useLocale.getLanguage;useEffect(function(){document.body.style.backgroundImage="url(".concat(watermark({text:projectName}),")")},[]);return React.createElement(RouterFragment,null,React.createElement(ConfigProvider,_extends({},providerConfig,{locale:localeDictionary[lang]||zh_CN,form:{validateMessages:{required:"".concat(getLanguage("ph:please-fill"),"${label}!"),types:{email:"${label}".concat(getLanguage("wrong-format"))},pattern:{mismatch:"".concat(getLanguage("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 { type LocaleName, useLocale } from 'i18n-hooks';\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 { 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 { account } 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 = !!account.info;\n const { lang, getLanguage } = useLocale();\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[lang] || zh_CN}\n form={{\n validateMessages: {\n required: `${getLanguage('ph:please-fill')}\\${label}!`,\n types: {\n email: `\\${label}${getLanguage('wrong-format')}`,\n },\n pattern: {\n mismatch: `${getLanguage('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","useLocale","RouterProvider","createRouter","prefixRouter","routerData","RouterFragment","Fallback","onlyLoginRouter","watermark","account","localeDictionary","extend","config","prefixCls","providerConfig","iconPrefixCls","theme","App","isLogin","info","lang","getLanguage","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,QAA0BC,SAAS,KAAQ,YAAa,AACxD,QAASC,cAAc,KAAQ,kBAAmB,AAClD,QACEC,YAAY,CACZC,YAAY,CACZC,UAAU,CACVC,cAAc,KACT,6BAA8B,AACrC,QAAOC,aAAc,2BAA4B,AACjD,QAASC,eAAe,KAAQ,cAAe,AAC/C,OAAO,oBAAqB,AAC5B,OAAO,oBAAqB,AAC5B,QAASC,SAAS,KAAQ,aAAc,AAExC,QAASC,OAAO,KAAQ,SAAU,CAElC,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,IAAMC,QAAU,CAAC,CAACT,QAAQU,IAAI,CAC9B,IAA8BnB,WAAAA,YAAtBoB,KAAsBpB,WAAtBoB,KAAMC,YAAgBrB,WAAhBqB,YAEd3B,UAAU,UAAM,CACd4B,SAASC,IAAI,CAACC,KAAK,CAACC,eAAe,CAAG,AAAC,OAEpC,OAF0CjB,UAAU,CACrDkB,KAAMC,WACR,GAAG,IACL,EAAG,EAAE,EAEL,OACE,oBAACtB,oBACC,oBAACV,2BACKmB,gBACJc,OAAQlB,gBAAgB,CAACU,KAAK,EAAIvB,MAClCgC,KAAM,CACJC,iBAAkB,CAChBC,SAAU,AAAC,GAAgC,OAA9BV,YAAY,kBAAkB,aAC3CW,MAAO,CACLC,MAAO,AAAC,WAAuC,OAA5BZ,YAAY,gBACjC,EACAa,QAAS,CACPC,SAAU,AAAC,GAAiC,OAA/Bd,YAAY,mBAAmB,YAC9C,CACF,CACF,IAEA,oBAACpB,gBACCmC,OAAQlC,aAAagB,QAAUd,WAAaD,aAAaI,gBAAiB,oBAACD,eAAY,CAAE,CACvF+B,SAAUC,YAAYC,aAAa,CACnCC,OAAQA,MACV,GACAC,gBAAiB,oBAACnC,kBAK5B,CAEA,gBAAeW,GAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React from"react";import{isFunction}from"@moneko/common";import{I18nProvider}from"i18n-hooks";import
|
|
1
|
+
import React from"react";import{isFunction}from"@moneko/common";import{I18nProvider}from"i18n-hooks";import App from"./app";var appEntry=APPENTRY?require(APPENTRY):null;var SafeReactDOM=require(ReactDOMPath);var version=parseFloat(React.version);var container=document.getElementById("root");var Main=function(){return React.createElement(I18nProvider,null,React.createElement(App,null))};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(Main,null))}else{window.rootInstance=SafeReactDOM.createRoot(container);window.rootInstance.render(React.createElement(Main,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(Main,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 { I18nProvider } from 'i18n-hooks';\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/back-stage/bootstrap.tsx"],"sourcesContent":["import React from 'react';\nimport { isFunction } from '@moneko/common';\nimport { I18nProvider } from 'i18n-hooks';\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\nconst Main = () => (\n <I18nProvider>\n <App />\n </I18nProvider>\n);\n\nif (version >= 18) {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(container, <Main />);\n } else {\n window.rootInstance = SafeReactDOM.createRoot(container);\n window.rootInstance.render(<Main />);\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(<Main />, container);\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n}\n"],"names":["React","isFunction","I18nProvider","App","appEntry","APPENTRY","require","SafeReactDOM","ReactDOMPath","version","parseFloat","container","document","getElementById","Main","bootstrap","programInfo","renderMode","window","rootInstance","hydrateRoot","createRoot","render","mount","module","hot","hydrate"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,gBAAiB,AAC5C,QAASC,YAAY,KAAQ,YAAa,AAC1C,QAAOC,QAAS,OAAQ,CAExB,IAAMC,SAAmCC,SAAWC,QAAQD,UAAY,IAAI,CAE5E,IAAME,aAAeD,QAAQE,cAC7B,IAAMC,QAAUC,WAAWV,MAAMS,OAAO,EACxC,IAAME,UAAYC,SAASC,cAAc,CAAC,QAE1C,IAAMC,KAAO,kBACX,oBAACZ,kBACC,oBAACC,YAIL,GAAIM,SAAW,GAAI,CACjB,GAAIR,WAAWG,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUW,SAAS,EAAG,CACnCX,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUW,SAAS,EACrB,CAAC,AACD,GAAIC,YAAYC,UAAU,GAAK,MAAO,CACpCC,OAAOC,YAAY,CAAGZ,aAAaa,WAAW,CAACT,UAAW,oBAACG,WAC7D,KAAO,CACLI,OAAOC,YAAY,CAAGZ,aAAac,UAAU,CAACV,WAC9CO,OAAOC,YAAY,CAACG,MAAM,CAAC,oBAACR,WAC9B,CAAC,AACD,GAAIb,WAAWG,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUmB,KAAK,EAAG,CAC/BnB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUmB,KAAK,EACjB,CAAC,AACH,KAAO,CACL,GAAItB,WAAWG,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUW,SAAS,EAAG,CACnCX,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUW,SAAS,EACrB,CAAC,AACD,IAAMO,OAASE,OAAOC,GAAG,CAAGlB,aAAae,MAAM,CAAGf,aAAamB,OAAO,CAEtEJ,OAAO,oBAACR,WAASH,WACjB,GAAIV,WAAWG,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUmB,KAAK,EAAG,CAC/BnB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUmB,KAAK,EACjB,CAAC,AACH,CAAC"}
|
|
@@ -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 _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 _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,useState}from"react";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{Tabs,Layout,Dropdown}from"antd";import{useLocale}from"i18n-hooks";import{
|
|
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 _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,useState}from"react";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{Tabs,Layout,Dropdown}from"antd";import{useLocale}from"i18n-hooks";import{useAliveController}from"react-activation";import{useSearchParams,useOutlet,useNavigate}from"react-router-dom";import styles from"./index.less";import FallbackComp from"../../../components/fallback-comp";import LayoutMenu from"../../../components/layout-menu";import{menu}from"@/store";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;var outlet=useOutlet();var navigate=useNavigate();var dropScope=useAliveController().dropScope;var _useSearchParams=_slicedToArray(useSearchParams(),1),search=_useSearchParams[0];var getLanguage=useLocale().getLanguage;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}menu.closeTab(tabKey,type,function(closes,nextTab){closes===null||closes===void 0?void 0:closes.forEach(function(item){if(item.path&&dropScope){dropScope(item.path)}});if(nextTab){navigate("".concat(nextTab.path,"?menuId=").concat(nextTab.key))}})},[dropScope,navigate]);var _useMemo=useMemo(function(){return{menuId:search.get("menuId"),dynamicTitle:search.get("dynamicTitle")||""}},[search]),menuId=_useMemo.menuId,dynamicTitle=_useMemo.dynamicTitle;useEffect(function(){if(menuId){menu.openTab({key:menuId,dynamicTitle:dynamicTitle})}},[dynamicTitle,menuId]);var getItems=useCallback(function(key){return key===activeKey?closeTabs:closeTabs.filter(function(t){return(t===null||t===void 0?void 0:t.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(menu.kv[key].key,"?menuId=").concat(menu.kv[key].key))},[navigate]);var tabPanel=useMemo(function(){return tabs.map(function(item){return{key:item.key,label:React.createElement(Dropdown,{menu:{items:getItems(item.key),onClick:function(info){info.domEvent.stopPropagation();closedTab(item.key,info.key)}},trigger:["contextMenu"],destroyPopupOnHide:true},React.createElement("div",null,item.icon,getLanguage(item.i18n||"route-".concat(item.key))+item.dynamicTitle||"")),closable:item.closable}})},[closedTab,getItems,getLanguage,tabs]);return React.createElement(Layout,{className:styles.layout},layoutSider?React.createElement(Layout.Sider,_extends({className:styles.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:styles.logo,"data-title":projectName},React.createElement(FallbackComp,{compName:"logo",show:!collapsed})),React.createElement(LayoutMenu,{collapsed:collapsed,theme:layoutSider.theme})):null,React.createElement(Layout,{className:styles.section},React.createElement(FallbackComp,{compName:"layout-header",collapsed:collapsed,onCollapsed:function(){return handleCollapsed(!collapsed)}}),React.createElement(Tabs,{className:styles.tabs,hideAdd:true,onTabClick:handleClick,activeKey:activeKey,size:"middle",type:"editable-card",onEdit:handleTabEdit,items:tabPanel}),React.createElement(Layout.Content,{className:styles.layoutContent},React.createElement("div",{className:styles.content},children||outlet),React.createElement(FallbackComp,{compName:"layout-footer"}))))};export default DashboardLayout;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/packages/back-stage/layout/index.tsx"],"sourcesContent":["import React, { type ReactNode, useCallback, useEffect, useMemo, useState, type FC } from 'react';\nimport { ReloadOutlined, DeleteRowOutlined, CloseOutlined } from '@ant-design/icons';\nimport { Tabs, Layout, Dropdown, type MenuProps } from 'antd';\nimport { useLocale } from 'i18n-hooks';\nimport { shallowEqual, useSelector, useDispatch } from 'mini-idc';\nimport { useAliveController } from 'react-activation';\nimport { useSearchParams, useOutlet, useNavigate, type RouterProps } from 'react-router-dom';\nimport styles from './index.less';\nimport FallbackComp from '../../../components/fallback-comp';\nimport LayoutMenu from '../../../components/layout-menu';\nimport type { AppProgramModel } from '../../back-stage/models/app-program';\n\ninterface TabProps extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n}\n\nconst closeTabs: MenuProps['items'] = [\n {\n label: '关闭左侧标签',\n icon: <DeleteRowOutlined style={{ transform: 'scaleX(-1)' }} />,\n key: 'left',\n },\n {\n label: '关闭右侧标签',\n icon: <DeleteRowOutlined />,\n key: 'right',\n },\n {\n label: '关闭其他标签',\n icon: <CloseOutlined />,\n key: 'other',\n },\n {\n label: '刷新标签页',\n icon: <ReloadOutlined />,\n key: 'refresh',\n },\n];\n\nconst DashboardLayout: FC<{ children?: ReactNode }> = ({ children }) => {\n const outlet = useOutlet();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const { dropScope } = useAliveController();\n const activeKey = useSelector((store: AppStore) => store.appProgram.activeKey, shallowEqual);\n const tabs = useSelector((store: AppStore) => store.appProgram.tabs, shallowEqual);\n const menuKV = useSelector(\n (store: { appProgram: AppProgramModel }) => store.appProgram.menuKV || {},\n shallowEqual\n );\n const [search] = useSearchParams();\n const { getLanguage } = useLocale();\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const handleCollapsed = useCallback((value: boolean) => {\n if (value) {\n let _timer: number | null = window.setTimeout(() => {\n setCollapsed(value);\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 0);\n } else {\n setCollapsed(value);\n let _timer: number | null = window.setTimeout(() => {\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 30);\n }\n }, []);\n const closedTab = useCallback(\n (tabKey?: string, type?: string) => {\n if (type === 'refresh') {\n navigate('/refresh');\n return;\n }\n dispatch({\n type: 'appProgram/closeTab',\n payload: {\n key: tabKey,\n type: type,\n callback(closes?: TabProps[], nextTab?: TabProps) {\n closes?.forEach((item) => {\n if (item.path && dropScope) {\n dropScope(item.path);\n }\n });\n if (nextTab) {\n navigate(`${nextTab.path}?menuId=${nextTab.key}`);\n }\n },\n },\n });\n },\n [dispatch, dropScope, navigate]\n );\n\n const { menuId, dynamicTitle } = useMemo(\n () => ({\n menuId: search.get('menuId') || '',\n dynamicTitle: search.get('dynamicTitle') || '',\n }),\n [search]\n );\n const current = menuKV[menuId];\n\n useEffect(() => {\n if (menuId) {\n dispatch({\n type: 'appProgram/openTab',\n payload: {\n key: menuId,\n dynamicTitle: dynamicTitle,\n },\n });\n }\n }, [dispatch, dynamicTitle, menuId, current]);\n\n const getItems = useCallback(\n (key: string) =>\n key === activeKey ? closeTabs : closeTabs.filter((t) => t?.key !== 'refresh'),\n [activeKey]\n );\n const handleTabEdit = useCallback(\n (\n targetKey: string | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\n action: 'add' | 'remove'\n ) => {\n if (action === 'remove' && typeof targetKey === 'string') {\n closedTab(targetKey);\n }\n },\n [closedTab]\n );\n const handleClick = useCallback(\n (key: string) => {\n navigate(`${menuKV[key].key}?menuId=${menuKV[key].key}`);\n },\n [menuKV, navigate]\n );\n const tabPanel = useMemo(() => {\n return tabs.map((item) => {\n return {\n key: item.key,\n label: (\n <Dropdown\n menu={{\n items: getItems(item.key),\n onClick: (info) => {\n info.domEvent.stopPropagation();\n closedTab(item.key, info.key);\n },\n }}\n trigger={['contextMenu']}\n destroyPopupOnHide\n >\n <div>\n {item.icon}\n {getLanguage(item.i18n || `route-${item.key}`) + item.dynamicTitle || ''}\n </div>\n </Dropdown>\n ),\n closable: item.closable,\n };\n });\n }, [closedTab, getItems, getLanguage, tabs]);\n\n return (\n <Layout className={styles.layout}>\n {layoutSider ? (\n <Layout.Sider\n className={styles.sider}\n trigger={null}\n collapsible\n collapsed={collapsed}\n onBreakpoint={(broken: boolean) => handleCollapsed(broken)}\n onCollapse={(_collapsed: boolean) => handleCollapsed(_collapsed)}\n theme=\"light\"\n breakpoint=\"md\"\n {...layoutSider}\n >\n <div className={styles.logo} data-title={projectName}>\n <FallbackComp compName=\"logo\" show={!collapsed} />\n </div>\n <LayoutMenu collapsed={collapsed} theme={layoutSider.theme} />\n </Layout.Sider>\n ) : null}\n <Layout className={styles.section}>\n <FallbackComp\n compName=\"layout-header\"\n collapsed={collapsed}\n onCollapsed={() => handleCollapsed(!collapsed)}\n />\n <Tabs\n className={styles.tabs}\n hideAdd\n onTabClick={handleClick}\n activeKey={activeKey}\n size=\"middle\"\n type=\"editable-card\"\n onEdit={handleTabEdit}\n items={tabPanel}\n />\n <Layout.Content className={styles.layoutContent}>\n <div className={styles.content}>{children || outlet}</div>\n <FallbackComp compName=\"layout-footer\" />\n </Layout.Content>\n </Layout>\n </Layout>\n );\n};\n\nexport default DashboardLayout;\n"],"names":["React","useCallback","useEffect","useMemo","useState","ReloadOutlined","DeleteRowOutlined","CloseOutlined","Tabs","Layout","Dropdown","useLocale","shallowEqual","useSelector","useDispatch","useAliveController","useSearchParams","useOutlet","useNavigate","styles","FallbackComp","LayoutMenu","closeTabs","label","icon","style","transform","key","DashboardLayout","children","outlet","navigate","dispatch","dropScope","activeKey","store","appProgram","tabs","menuKV","search","getLanguage","collapsed","setCollapsed","handleCollapsed","value","_timer","window","setTimeout","clearTimeout","closedTab","tabKey","type","payload","callback","closes","nextTab","forEach","item","path","menuId","get","dynamicTitle","current","getItems","filter","t","handleTabEdit","targetKey","action","handleClick","tabPanel","map","menu","items","onClick","info","domEvent","stopPropagation","trigger","destroyPopupOnHide","div","i18n","closable","className","layout","layoutSider","Sider","sider","collapsible","onBreakpoint","broken","onCollapse","_collapsed","theme","breakpoint","logo","data-title","projectName","compName","show","section","onCollapsed","hideAdd","onTabClick","size","onEdit","Content","layoutContent","content"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/packages/back-stage/layout/index.tsx"],"sourcesContent":["import React, { type ReactNode, useCallback, useEffect, useMemo, useState, type FC } from 'react';\nimport { ReloadOutlined, DeleteRowOutlined, CloseOutlined } from '@ant-design/icons';\nimport { Tabs, Layout, Dropdown, type MenuProps } from 'antd';\nimport { useLocale } from 'i18n-hooks';\nimport { useAliveController } from 'react-activation';\nimport { useSearchParams, useOutlet, useNavigate } from 'react-router-dom';\nimport styles from './index.less';\nimport FallbackComp from '../../../components/fallback-comp';\nimport LayoutMenu from '../../../components/layout-menu';\nimport { type RouterProps } from '../../../index';\nimport { menu } from '@/store';\n\ninterface TabProps extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n}\n\nconst closeTabs: MenuProps['items'] = [\n {\n label: '关闭左侧标签',\n icon: <DeleteRowOutlined style={{ transform: 'scaleX(-1)' }} />,\n key: 'left',\n },\n {\n label: '关闭右侧标签',\n icon: <DeleteRowOutlined />,\n key: 'right',\n },\n {\n label: '关闭其他标签',\n icon: <CloseOutlined />,\n key: 'other',\n },\n {\n label: '刷新标签页',\n icon: <ReloadOutlined />,\n key: 'refresh',\n },\n];\nconst DashboardLayout: FC<{ children?: ReactNode }> = ({ children }) => {\n const { activeKey, tabs } = menu;\n const outlet = useOutlet();\n const navigate = useNavigate();\n const { dropScope } = useAliveController();\n const [search] = useSearchParams();\n const { getLanguage } = useLocale();\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const handleCollapsed = useCallback((value: boolean) => {\n if (value) {\n let _timer: number | null = window.setTimeout(() => {\n setCollapsed(value);\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 0);\n } else {\n setCollapsed(value);\n let _timer: number | null = window.setTimeout(() => {\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 30);\n }\n }, []);\n const closedTab = useCallback(\n (tabKey?: string, type?: string) => {\n if (type === 'refresh') {\n navigate('/refresh');\n return;\n }\n menu.closeTab(tabKey, type, function (closes?: TabProps[], nextTab?: TabProps) {\n closes?.forEach((item) => {\n if (item.path && dropScope) {\n dropScope(item.path);\n }\n });\n if (nextTab) {\n navigate(`${nextTab.path}?menuId=${nextTab.key}`);\n }\n });\n },\n [dropScope, navigate]\n );\n\n const { menuId, dynamicTitle } = useMemo(\n () => ({\n menuId: search.get('menuId'),\n dynamicTitle: search.get('dynamicTitle') || '',\n }),\n [search]\n );\n\n useEffect(() => {\n if (menuId) {\n menu.openTab({\n key: menuId,\n dynamicTitle: dynamicTitle,\n });\n }\n }, [dynamicTitle, menuId]);\n\n const getItems = useCallback(\n (key: string) =>\n key === activeKey ? closeTabs : closeTabs.filter((t) => t?.key !== 'refresh'),\n [activeKey]\n );\n const handleTabEdit = useCallback(\n (\n targetKey: string | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\n action: 'add' | 'remove'\n ) => {\n if (action === 'remove' && typeof targetKey === 'string') {\n closedTab(targetKey);\n }\n },\n [closedTab]\n );\n const handleClick = useCallback(\n (key: string) => {\n navigate(`${menu.kv[key].key}?menuId=${menu.kv[key].key}`);\n },\n [navigate]\n );\n const tabPanel = useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return tabs.map((item: any) => {\n return {\n key: item.key,\n label: (\n <Dropdown\n menu={{\n items: getItems(item.key),\n onClick: (info) => {\n info.domEvent.stopPropagation();\n closedTab(item.key, info.key);\n },\n }}\n trigger={['contextMenu']}\n destroyPopupOnHide\n >\n <div>\n {item.icon}\n {getLanguage(item.i18n || `route-${item.key}`) + item.dynamicTitle || ''}\n </div>\n </Dropdown>\n ),\n closable: item.closable,\n };\n });\n }, [closedTab, getItems, getLanguage, tabs]);\n\n return (\n <Layout className={styles.layout}>\n {layoutSider ? (\n <Layout.Sider\n className={styles.sider}\n trigger={null}\n collapsible\n collapsed={collapsed}\n onBreakpoint={(broken: boolean) => handleCollapsed(broken)}\n onCollapse={(_collapsed: boolean) => handleCollapsed(_collapsed)}\n theme=\"light\"\n breakpoint=\"md\"\n {...layoutSider}\n >\n <div className={styles.logo} data-title={projectName}>\n <FallbackComp compName=\"logo\" show={!collapsed} />\n </div>\n <LayoutMenu collapsed={collapsed} theme={layoutSider.theme} />\n </Layout.Sider>\n ) : null}\n <Layout className={styles.section}>\n <FallbackComp\n compName=\"layout-header\"\n collapsed={collapsed}\n onCollapsed={() => handleCollapsed(!collapsed)}\n />\n <Tabs\n className={styles.tabs}\n hideAdd\n onTabClick={handleClick}\n activeKey={activeKey}\n size=\"middle\"\n type=\"editable-card\"\n onEdit={handleTabEdit}\n items={tabPanel}\n />\n <Layout.Content className={styles.layoutContent}>\n <div className={styles.content}>{children || outlet}</div>\n <FallbackComp compName=\"layout-footer\" />\n </Layout.Content>\n </Layout>\n </Layout>\n );\n};\n\nexport default DashboardLayout;\n"],"names":["React","useCallback","useEffect","useMemo","useState","ReloadOutlined","DeleteRowOutlined","CloseOutlined","Tabs","Layout","Dropdown","useLocale","useAliveController","useSearchParams","useOutlet","useNavigate","styles","FallbackComp","LayoutMenu","menu","closeTabs","label","icon","style","transform","key","DashboardLayout","children","activeKey","tabs","outlet","navigate","dropScope","search","getLanguage","collapsed","setCollapsed","handleCollapsed","value","_timer","window","setTimeout","clearTimeout","closedTab","tabKey","type","closeTab","closes","nextTab","forEach","item","path","menuId","get","dynamicTitle","openTab","getItems","filter","t","handleTabEdit","targetKey","action","handleClick","kv","tabPanel","map","items","onClick","info","domEvent","stopPropagation","trigger","destroyPopupOnHide","div","i18n","closable","className","layout","layoutSider","Sider","sider","collapsible","onBreakpoint","broken","onCollapse","_collapsed","theme","breakpoint","logo","data-title","projectName","compName","show","section","onCollapsed","hideAdd","onTabClick","size","onEdit","Content","layoutContent","content"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import React from"react";import{RouterProvider}from"react-router-dom";import{RouterFragment,routerData,createRouter}from"../../components/app-router";import Fallback from"../../components/fallback";var I18n=hasLocales?require("i18n-hooks").I18nProvider:React.Fragment;var App=function(){return React.createElement(RouterFragment,null,React.createElement(I18n,null,React.createElement(RouterProvider,{router:createRouter(routerData,{basename:programInfo.routeBaseName}),fallbackElement:React.createElement(Fallback,null)})))};export default App;
|
|
2
2
|
//# sourceMappingURL=app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/library/app.tsx"],"sourcesContent":["import React from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst I18n = hasLocales ? require('i18n-hooks').I18nProvider : React.Fragment;\
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/library/app.tsx"],"sourcesContent":["import React from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst I18n = hasLocales ? require('i18n-hooks').I18nProvider : React.Fragment;\n\nconst App: React.FC = () => {\n return (\n <RouterFragment>\n <I18n>\n <RouterProvider\n router={createRouter(routerData, {\n basename: programInfo.routeBaseName,\n })}\n fallbackElement={<Fallback />}\n />\n </I18n>\n </RouterFragment>\n );\n};\n\nexport default App;\n"],"names":["React","RouterProvider","RouterFragment","routerData","createRouter","Fallback","I18n","hasLocales","require","I18nProvider","Fragment","App","router","basename","programInfo","routeBaseName","fallbackElement"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,cAAc,KAAQ,kBAAmB,AAClD,QAASC,cAAc,CAAEC,UAAU,CAAEC,YAAY,KAAQ,6BAA8B,AACvF,QAAOC,aAAc,2BAA4B,CAGjD,IAAMC,KAAOC,WAAaC,QAAQ,cAAcC,YAAY,CAAGT,MAAMU,QAAQ,CAE7E,IAAMC,IAAgB,UAAM,CAC1B,OACE,oBAACT,oBACC,oBAACI,UACC,oBAACL,gBACCW,OAAQR,aAAaD,WAAY,CAC/BU,SAAUC,YAAYC,aAAa,AACrC,GACAC,gBAAiB,oBAACX,kBAK5B,CAEA,gBAAeM,GAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import React from"react";import{RouterProvider}from"react-router-dom";import{RouterFragment,routerData,createRouter}from"../../components/app-router";import Fallback from"../../components/fallback";var I18n=hasLocales?require("i18n-hooks").I18nProvider:React.Fragment;var App=function(){return React.createElement(RouterFragment,null,React.createElement(I18n,null,React.createElement(RouterProvider,{router:createRouter(routerData,{basename:programInfo.routeBaseName}),fallbackElement:React.createElement(Fallback,null)})))};export default App;
|
|
2
2
|
//# sourceMappingURL=app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/mobile/app.tsx"],"sourcesContent":["import React from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst I18n = hasLocales ? require('i18n-hooks').I18nProvider : React.Fragment;\
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/mobile/app.tsx"],"sourcesContent":["import React from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst I18n = hasLocales ? require('i18n-hooks').I18nProvider : React.Fragment;\n\nconst App: React.FC = () => {\n return (\n <RouterFragment>\n <I18n>\n <RouterProvider\n router={createRouter(routerData, {\n basename: programInfo.routeBaseName,\n })}\n fallbackElement={<Fallback />}\n />\n </I18n>\n </RouterFragment>\n );\n};\n\nexport default App;\n"],"names":["React","RouterProvider","RouterFragment","routerData","createRouter","Fallback","I18n","hasLocales","require","I18nProvider","Fragment","App","router","basename","programInfo","routeBaseName","fallbackElement"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,cAAc,KAAQ,kBAAmB,AAClD,QAASC,cAAc,CAAEC,UAAU,CAAEC,YAAY,KAAQ,6BAA8B,AACvF,QAAOC,aAAc,2BAA4B,CAGjD,IAAMC,KAAOC,WAAaC,QAAQ,cAAcC,YAAY,CAAGT,MAAMU,QAAQ,CAE7E,IAAMC,IAAgB,UAAM,CAC1B,OACE,oBAACT,oBACC,oBAACI,UACC,oBAACL,gBACCW,OAAQR,aAAaD,WAAY,CAC/BU,SAAUC,YAAYC,aAAa,AACrC,GACAC,gBAAiB,oBAACX,kBAK5B,CAEA,gBAAeM,GAAI"}
|
|
@@ -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 from"react";import{RouterProvider}from"react-router-dom";import{RouterFragment,routerData,createRouter}from"../../components/app-router";import Fallback from"../../components/fallback";var
|
|
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 from"react";import{RouterProvider}from"react-router-dom";import{RouterFragment,routerData,createRouter}from"../../components/app-router";import Fallback from"../../components/fallback";var I18nProvider=hasLocales?require("i18n-hooks").I18nProvider:React.Fragment;var App=function(param){var _param_basename=param.basename,basename=_param_basename===void 0?programInfo.routeBaseName:_param_basename,_param_fallback=param.fallback,fallback=_param_fallback===void 0?React.createElement(Fallback,null):_param_fallback,i18nStore=param.i18nStore;return React.createElement(RouterFragment,null,React.createElement(I18nProvider,_extends({},hasLocales?{store:i18nStore}:{}),React.createElement(RouterProvider,{router:createRouter(routerData,{basename:basename,window:window}),fallbackElement:fallback})))};export default App;
|
|
2
2
|
//# sourceMappingURL=app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/single-spa/app.tsx"],"sourcesContent":["import React, { type FC, type ReactElement } from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/single-spa/app.tsx"],"sourcesContent":["import React, { type FC, type ReactElement } from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\nimport type { I18nState } from 'i18n-hooks';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst I18nProvider = hasLocales ? require('i18n-hooks').I18nProvider : React.Fragment;\n\nconst App: FC<{ basename?: string; fallback?: ReactElement; i18nStore?: I18nState }> = ({\n basename = programInfo.routeBaseName,\n fallback = <Fallback />,\n i18nStore,\n}) => {\n return (\n <RouterFragment>\n <I18nProvider {...(hasLocales ? { store: i18nStore } : {})}>\n <RouterProvider\n router={createRouter(routerData, {\n basename: basename,\n window: window,\n })}\n fallbackElement={fallback}\n />\n </I18nProvider>\n </RouterFragment>\n );\n};\n\nexport default App;\n"],"names":["React","RouterProvider","RouterFragment","routerData","createRouter","Fallback","I18nProvider","hasLocales","require","Fragment","App","basename","programInfo","routeBaseName","fallback","i18nStore","store","router","window","fallbackElement"],"mappings":"oRAAA,OAAOA,UAA2C,OAAQ,AAC1D,QAASC,cAAc,KAAQ,kBAAmB,AAClD,QAASC,cAAc,CAAEC,UAAU,CAAEC,YAAY,KAAQ,6BAA8B,AACvF,QAAOC,aAAc,2BAA4B,CAIjD,IAAMC,aAAeC,WAAaC,QAAQ,cAAcF,YAAY,CAAGN,MAAMS,QAAQ,CAErF,IAAMC,IAAiF,eAIjF,2BAHJC,SAAAA,kCAAWC,YAAYC,aAAa,uCACpCC,SAAAA,kCAAW,oBAACT,+BACZU,gBAAAA,UAEA,OACE,oBAACb,oBACC,oBAACI,yBAAkBC,WAAa,CAAES,MAAOD,SAAU,EAAI,CAAC,CAAC,EACvD,oBAACd,gBACCgB,OAAQb,aAAaD,WAAY,CAC/BQ,SAAUA,SACVO,OAAQA,MACV,GACAC,gBAAiBL,YAK3B,CAEA,gBAAeJ,GAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}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 _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}var __generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};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);function render(props){var container=props.container,basename=props.basename,fallback=props.fallback,args=_objectWithoutProperties(props,["container","basename","fallback"]);var _container=(container===null||container===void 0?void 0:container.querySelector("#root"))||document.querySelector("#root");window.primaryApp=_objectSpreadProps(_objectSpread({},args),{container:_container});if(_version>=18){if(programInfo.renderMode==="ssr"){window.rootInstance=SafeReactDOM.hydrateRoot(_container,React.createElement(App,{
|
|
1
|
+
function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}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 _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 _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}var __generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};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);function render(props){var container=props.container,basename=props.basename,fallback=props.fallback,i18nStore=props.i18nStore,args=_objectWithoutProperties(props,["container","basename","fallback","i18nStore"]);var _container=(container===null||container===void 0?void 0:container.querySelector("#root"))||document.querySelector("#root");var appProps={basename:basename,fallback:fallback,i18nStore:i18nStore};window.primaryApp=_objectSpreadProps(_objectSpread({},args),{container:_container});if(_version>=18){if(programInfo.renderMode==="ssr"){window.rootInstance=SafeReactDOM.hydrateRoot(_container,React.createElement(App,_extends({},appProps)))}else{window.rootInstance=SafeReactDOM.createRoot(_container);window.rootInstance.render(React.createElement(App,_extends({},appProps)))}}else{var reactRender=module.hot?SafeReactDOM.render:SafeReactDOM.hydrate;reactRender(React.createElement(App,_extends({},appProps)),_container)}}if(!window.__POWERED_BY_QIANKUN__){render({})}export function bootstrap(){return _bootstrap.apply(this,arguments)}function _bootstrap(){_bootstrap=_asyncToGenerator(function(){return __generator(this,function(_state){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}return[2]})});return _bootstrap.apply(this,arguments)}export function unmount(props){return _unmount.apply(this,arguments)}function _unmount(){_unmount=_asyncToGenerator(function(props){var container,_container;return __generator(this,function(_state){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.unmount)){appEntry===null||appEntry===void 0?void 0:appEntry.unmount(props)}container=props.container;if(_version>=18){window.rootInstance.unmount()}else{_container=(container===null||container===void 0?void 0:container.querySelector("#root"))||document.querySelector("#root");SafeReactDOM.unmountComponentAtNode(_container)}return[2]})});return _unmount.apply(this,arguments)}export function mount(props){return _mount.apply(this,arguments)}function _mount(){_mount=_asyncToGenerator(function(props){return __generator(this,function(_state){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount(props)}render(props);return[2]})});return _mount.apply(this,arguments)}
|
|
2
2
|
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/single-spa/bootstrap.tsx"],"sourcesContent":["import React from 'react';\nimport { isFunction } from '@moneko/common';\nimport App from './app';\n\ntype AppEntryMethods = {\n unmount?: Promise<void>;\n mount?: Promise<void>;\n bootstrap?: Promise<void>;\n};\n\nconst appEntry: AppEntryMethods | null = APPENTRY ? require(APPENTRY) : null;\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst SafeReactDOM = require(ReactDOMPath);\nconst _version = parseFloat(React.version);\n\ntype RenderParamsType = {\n container?: HTMLElement;\n basename?: string;\n fallback?: React.ReactElement;\n};\n\nfunction render(props: RenderParamsType) {\n const { container, basename, fallback, ...args } = props;\n const _container = container?.querySelector('#root') || document.querySelector('#root');\n\n window.primaryApp = {\n ...args,\n container: _container,\n };\n if (_version >= 18) {\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(\n _container as HTMLElement,\n <App
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/single-spa/bootstrap.tsx"],"sourcesContent":["import React from 'react';\nimport { isFunction } from '@moneko/common';\nimport App from './app';\nimport type { I18nState } from 'i18n-hooks';\n\ntype AppEntryMethods = {\n unmount?: Promise<void>;\n mount?: Promise<void>;\n bootstrap?: Promise<void>;\n};\n\nconst appEntry: AppEntryMethods | null = APPENTRY ? require(APPENTRY) : null;\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst SafeReactDOM = require(ReactDOMPath);\nconst _version = parseFloat(React.version);\n\ntype RenderParamsType = {\n container?: HTMLElement;\n basename?: string;\n fallback?: React.ReactElement;\n i18nStore?: I18nState;\n};\n\nfunction render(props: RenderParamsType) {\n const { container, basename, fallback, i18nStore, ...args } = props;\n const _container = container?.querySelector('#root') || document.querySelector('#root');\n const appProps = {\n basename,\n fallback,\n i18nStore,\n };\n\n window.primaryApp = {\n ...args,\n container: _container,\n };\n if (_version >= 18) {\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(\n _container as HTMLElement,\n <App {...appProps} />\n );\n } else {\n window.rootInstance = SafeReactDOM.createRoot(_container as HTMLElement);\n window.rootInstance.render(<App {...appProps} />);\n }\n } else {\n const reactRender = module.hot ? SafeReactDOM.render : SafeReactDOM.hydrate;\n\n reactRender(<App {...appProps} />, _container);\n }\n}\n\nif (!window.__POWERED_BY_QIANKUN__) {\n render({});\n}\n\nexport async function bootstrap(): Promise<void> {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function unmount(props: any): Promise<void> {\n if (isFunction(appEntry?.unmount)) {\n appEntry?.unmount(props);\n }\n const { container } = props;\n\n if (_version >= 18) {\n window.rootInstance.unmount();\n } else {\n const _container = container?.querySelector('#root') || document.querySelector('#root');\n\n SafeReactDOM.unmountComponentAtNode(_container);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function mount(props: any): Promise<void> {\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount(props);\n }\n render(props);\n}\n"],"names":["React","isFunction","App","appEntry","APPENTRY","require","SafeReactDOM","ReactDOMPath","_version","parseFloat","version","render","props","container","basename","fallback","i18nStore","args","_container","querySelector","document","appProps","window","primaryApp","programInfo","renderMode","rootInstance","hydrateRoot","createRoot","reactRender","module","hot","hydrate","__POWERED_BY_QIANKUN__","bootstrap","unmount","unmountComponentAtNode","mount"],"mappings":"s5HAAA,QAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,gBAAiB,AAC5C,QAAOC,QAAS,OAAQ,CASxB,IAAMC,SAAmCC,SAAWC,QAAQD,UAAY,IAAI,CAG5E,IAAME,aAAeD,QAAQE,cAC7B,IAAMC,SAAWC,WAAWT,MAAMU,OAAO,EASzC,SAASC,OAAOC,KAAuB,CAAE,CACvC,IAAQC,UAAsDD,MAAtDC,UAAWC,SAA2CF,MAA3CE,SAAUC,SAAiCH,MAAjCG,SAAUC,UAAuBJ,MAAvBI,UAAcC,8BAASL,OAAtDC,YAAWC,WAAUC,WAAUC,cACvC,IAAME,WAAaL,CAAAA,kBAAAA,mBAAAA,KAAAA,EAAAA,UAAWM,aAAa,CAAC,WAAYC,SAASD,aAAa,CAAC,SAC/E,IAAME,SAAW,CACfP,SAAAA,SACAC,SAAAA,SACAC,UAAAA,SACF,CAEAM,CAAAA,OAAOC,UAAU,CAAG,oCACfN,OACHJ,UAAWK,aAEb,GAAIV,UAAY,GAAI,CAClB,GAAIgB,YAAYC,UAAU,GAAK,MAAO,CACpCH,OAAOI,YAAY,CAAGpB,aAAaqB,WAAW,CAC5CT,WACA,oBAAChB,gBAAQmB,WAEb,KAAO,CACLC,OAAOI,YAAY,CAAGpB,aAAasB,UAAU,CAACV,YAC9CI,OAAOI,YAAY,CAACf,MAAM,CAAC,oBAACT,gBAAQmB,WACtC,CAAC,AACH,KAAO,CACL,IAAMQ,YAAcC,OAAOC,GAAG,CAAGzB,aAAaK,MAAM,CAAGL,aAAa0B,OAAO,CAE3EH,YAAY,oBAAC3B,gBAAQmB,WAAcH,WACrC,CAAC,AACH,CAEA,GAAI,CAACI,OAAOW,sBAAsB,CAAE,CAClCtB,OAAO,CAAC,EACV,CAAC,AAED,gBAAsBuB,mBAAAA,iCAIrB,SAJqBA,aAAAA,WAAf,kBAAA,UAA0C,0CAC/C,GAAIjC,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAU+B,SAAS,EAAG,CACnC/B,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAU+B,SAAS,EACrB,CAAC,WACH,UAJsBA,iCAOtB,gBAAsBC,QAAQvB,KAAU,SAAlBuB,+BAarB,SAbqBA,WAAAA,SAAf,kBAAA,SAAuBvB,KAAU,CAAiB,KAI/CC,UAKAK,oDARR,GAAIjB,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUgC,OAAO,EAAG,CACjChC,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUgC,OAAO,CAACvB,MACpB,CAAC,AACOC,UAAcD,MAAdC,UAER,GAAIL,UAAY,GAAI,CAClBc,OAAOI,YAAY,CAACS,OAAO,EAC7B,KAAO,CACCjB,WAAaL,CAAAA,kBAAAA,mBAAAA,KAAAA,EAAAA,UAAWM,aAAa,CAAC,WAAYC,SAASD,aAAa,CAAC,SAE/Eb,aAAa8B,sBAAsB,CAAClB,WACtC,CAAC,WACH,UAbsBiB,+BAgBtB,gBAAsBE,MAAMzB,KAAU,SAAhByB,6BAKrB,SALqBA,SAAAA,OAAf,kBAAA,SAAqBzB,KAAU,CAAiB,0CACrD,GAAIX,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkC,KAAK,EAAG,CAC/BlC,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkC,KAAK,CAACzB,MAClB,CAAC,AACDD,OAAOC,kBACT,UALsByB"}
|
package/lib/packages/site/app.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import React from"react";import{RouterProvider}from"react-router-dom";import{RouterFragment,routerData,createRouter}from"../../components/app-router";import Fallback from"../../components/fallback";var I18n=hasLocales?require("i18n-hooks").I18nProvider:React.Fragment;var App=function(){return React.createElement(RouterFragment,null,React.createElement(I18n,null,React.createElement(RouterProvider,{router:createRouter(routerData,{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/site/app.tsx"],"sourcesContent":["import React from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst I18n = hasLocales ? require('i18n-hooks').I18nProvider : React.Fragment;\
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/site/app.tsx"],"sourcesContent":["import React from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst I18n = hasLocales ? require('i18n-hooks').I18nProvider : React.Fragment;\n\nconst App: React.FC = () => {\n return (\n <RouterFragment>\n <I18n>\n <RouterProvider\n router={createRouter(routerData, {\n basename: programInfo.routeBaseName,\n window: window,\n })}\n fallbackElement={<Fallback />}\n />\n </I18n>\n </RouterFragment>\n );\n};\n\nexport default App;\n"],"names":["React","RouterProvider","RouterFragment","routerData","createRouter","Fallback","I18n","hasLocales","require","I18nProvider","Fragment","App","router","basename","programInfo","routeBaseName","window","fallbackElement"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,cAAc,KAAQ,kBAAmB,AAClD,QAASC,cAAc,CAAEC,UAAU,CAAEC,YAAY,KAAQ,6BAA8B,AACvF,QAAOC,aAAc,2BAA4B,CAGjD,IAAMC,KAAOC,WAAaC,QAAQ,cAAcC,YAAY,CAAGT,MAAMU,QAAQ,CAE7E,IAAMC,IAAgB,UAAM,CAC1B,OACE,oBAACT,oBACC,oBAACI,UACC,oBAACL,gBACCW,OAAQR,aAAaD,WAAY,CAC/BU,SAAUC,YAAYC,aAAa,CACnCC,OAAQA,MACV,GACAC,gBAAiB,oBAACZ,kBAK5B,CAEA,gBAAeM,GAAI"}
|
package/lib/router/index.d.ts
CHANGED
|
@@ -3,20 +3,26 @@ import type { KeepAliveProps } from 'react-activation';
|
|
|
3
3
|
type Any = any;
|
|
4
4
|
type MDXComponents = Record<string, FC<Any>>;
|
|
5
5
|
export interface RouterProps {
|
|
6
|
+
/** 菜单id */
|
|
6
7
|
key: string;
|
|
7
8
|
alive?: KeepAliveProps | boolean;
|
|
9
|
+
/** 菜单图标 */
|
|
8
10
|
icon?: ReactNode;
|
|
9
11
|
dynamicTitle?: string;
|
|
12
|
+
/** 菜单名 */
|
|
10
13
|
i18n?: string | null;
|
|
11
14
|
hideMenu?: boolean;
|
|
12
15
|
hideTabs?: boolean;
|
|
13
16
|
onlyLogin?: boolean;
|
|
17
|
+
/** 菜单父id */
|
|
18
|
+
parentId?: string;
|
|
14
19
|
root?: boolean;
|
|
15
20
|
path?: string;
|
|
16
21
|
element?: Any;
|
|
17
22
|
fallback?: ReactNode;
|
|
18
23
|
/** 可否关闭标签 */
|
|
19
24
|
closable?: boolean;
|
|
25
|
+
/** 子菜单 */
|
|
20
26
|
children?: RouterProps[];
|
|
21
27
|
props?: {
|
|
22
28
|
path: string;
|
package/lib/router/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/router/index.ts"],"sourcesContent":["import { createElement, type FC, lazy, type ReactNode } from 'react';\nimport { isUndefined } from '@moneko/common';\nimport { pathToRegexp } from 'path-to-regexp';\nimport { Outlet } from 'react-router-dom';\nimport type { KeepAliveProps } from 'react-activation';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Any = any;\n// eslint-disable-next-line no-unused-vars\ntype MDXComponents = Record<string, FC<Any>>;\nexport interface RouterProps {\n key: string;\n alive?: KeepAliveProps | boolean;\n icon?: ReactNode;\n dynamicTitle?: string;\n i18n?: string | null;\n hideMenu?: boolean;\n hideTabs?: boolean;\n onlyLogin?: boolean;\n root?: boolean;\n path?: string;\n element?: Any;\n fallback?: ReactNode;\n /** 可否关闭标签 */\n closable?: boolean;\n children?: RouterProps[];\n props?: {\n path: string;\n components?: MDXComponents;\n [key: string]: Any;\n };\n}\nexport function lazyImport(filePath: string) {\n return lazy(function () {\n return new Promise(function (resolve) {\n return import(\n /* webpackChunkName: \"[request]\" */\n '@/pages/' + filePath.replace(/:/g, '$').replace(/^\\//, '')\n )\n .then(resolve)\n .catch(function () {\n return Promise.resolve({\n default: Outlet,\n });\n });\n });\n });\n}\n\nexport interface ExampleModule {\n code: string;\n title?: string;\n description?: string | null;\n noInline: boolean;\n language: never;\n}\nexport type MyPkg = RouterProps & {\n type: string;\n title: string;\n subtitle?: string;\n icon?: string;\n};\nexport const myPkgs: MyPkg[] = [];\nexport const myDemoKv: Record<string, ExampleModule[]> = {};\nexport const mdxComponents: MDXComponents = {};\n\n// function getLastJsx(str: string) {\n// const matchArr = str.match(\n// /<(\\w+)(?:(?!\\/>|>)[\\s\\S])*?(?:(\\/>|>((?:(?!<\\1(?:(?!\\/>|>|\\s)[\\s\\S])*?(?:\\/\\s*)?>)[\\s\\S])*?)<\\/\\1\\s*>))/gms\n// );\n\n// if (matchArr !== null) {\n// return matchArr[matchArr.length - 1];\n// }\n// return '';\n// }\nfunction heading(p: Any, level: number) {\n return createElement(`h${level}`, {\n 'data-prefix': '# ',\n role: 'heading',\n 'aria-level': level,\n ...p,\n });\n}\nfunction pre(p: Any) {\n const c = createElement('code', p);\n\n if (p.className) {\n return createElement(\n mdxComponents.CodeBlock || 'pre',\n { lang: p.className.replace('language-', '').replace(/ .*$/, '') },\n c\n );\n }\n return c;\n}\nif (APPTYPE === 'library') {\n const models = require.context('@pkg/', true, /README\\.mdx?$/);\n let overrideComps: MDXComponents = {};\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n overrideComps = require('@/components/components').default;\n } catch (error) {\n /* empty */\n }\n\n Object.assign(mdxComponents, {\n h1: function (p: Any) {\n return heading(p, 1);\n },\n h2: function (p: Any) {\n return heading(p, 2);\n },\n h3: function (p: Any) {\n return heading(p, 3);\n },\n h4: function (p: Any) {\n return heading(p, 4);\n },\n h5: function (p: Any) {\n return heading(p, 5);\n },\n h6: function (p: Any) {\n return heading(p, 6);\n },\n pre: pre,\n ...overrideComps,\n });\n\n models.keys()?.forEach(function (item: string) {\n const key = item.substring(2).split('/').slice(0, -1).join('/');\n const { basic, default: Child } = models(item);\n\n myPkgs.push({\n key: key,\n path: key,\n element: Child,\n ...basic,\n props: {\n components: mdxComponents,\n path: key,\n },\n });\n });\n\n const allDemo = require.context('@pkg/', true, /\\/examples\\/(.+)\\.mdx$/);\n\n allDemo.keys()?.forEach(function (e: string) {\n const k = e.substring(2),\n arr = k.split('/'),\n name = arr[0];\n\n if (!Array.isArray(myDemoKv[name])) {\n myDemoKv[name] = [];\n }\n\n const exampleStr = allDemo(e);\n const m = exampleStr.matchAll(/```([^\\r\\n]+)?\\r?\\n([\\s\\S]*?)\\r?\\n```/g);\n let code = '',\n language = '';\n let description: string | null = null;\n\n for (const match of m) {\n language = match[1] || 'tsx';\n code = match[2];\n description = exampleStr.replace(match[0], '');\n }\n\n myDemoKv[name].push({\n language: language as never,\n code: code,\n description: description,\n title: arr.pop()?.replace(/\\.mdx$/, ''),\n noInline: /render\\([^\\\\)]*\\);?(?=\\s*$)/.test(code),\n });\n });\n}\n\nlet list: RouterProps[] = [];\n\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n list = require('@/router').default;\n} catch (error) {\n // eslint-disable-next-line no-console\n console.info('自定义路由请在 router 目录下新建 index.ts, 类型: RouterProps[]', error);\n}\nfunction prefixKey(path?: string, prev?: string) {\n // eslint-disable-next-line no-undefined\n return [prev === '*' && path !== '*' ? undefined : prev, path].filter(Boolean).join('/');\n}\n\nconst models = require.context('@/pages/', true, /\\.(t|j)sx$/, 'lazy');\n\nfunction pathToTree(input: string[]) {\n const root: RouterProps[] = [];\n\n for (let i = 0; i < input.length; i++) {\n const chain = input[i].split('/').slice(0, -1);\n let curr = root;\n\n for (let j = 0; j < chain.length; j++) {\n let pathRule = chain[j];\n\n if (pathRule === '') {\n continue;\n }\n if (pathRule === '.') {\n pathRule = '*';\n }\n const lastHierarchy = curr;\n\n // 遍历root是否已有该层级\n if (Array.isArray(curr)) {\n for (let k = 0; k < curr.length; k++) {\n if (curr[k].path === pathRule) {\n curr = curr[k].children as RouterProps[];\n break;\n }\n }\n }\n\n if (lastHierarchy === curr) {\n let key: string = j === chain.length - 1 ? input[i] : chain.slice(0, j + 1).join('/') + '/';\n\n // 截取最后一个 / 前面的数据\n key = key.substring(2, key.lastIndexOf('/'));\n\n const node: RouterProps = {\n key: key,\n path: pathRule,\n i18n: 'route-' + key,\n children: [],\n alive: false,\n element: lazyImport(key) as unknown as ReactNode,\n hideMenu: key.includes(':'),\n props: { path: key },\n };\n\n // 文件,最后一个字符不是\"/“符号\n // if (j === chain.length - 1) delete node.children;\n if (Array.isArray(curr)) {\n curr.push(node);\n }\n curr = node.children as RouterProps[];\n }\n }\n }\n\n return root;\n}\nconst routers: RouterProps[] = pathToTree(\n models.keys().map(function (item: string) {\n return item.replace(/\\$/g, ':');\n })\n);\n\nfunction merge(source: RouterProps[], child: RouterProps, prev?: string) {\n const _ = source.find(function (item) {\n return item.path === child.path;\n });\n\n if (!_) {\n source.push(child);\n } else {\n // 处理key\n _.key = prefixKey(_.path, prev);\n if (isUndefined(_.i18n)) {\n _.i18n = 'route-' + _.key;\n }\n if (isUndefined(_.alive)) {\n _.alive = false;\n }\n if (isUndefined(_.element) && child.element) {\n _.element = child.element;\n _.props = child.props;\n }\n if (isUndefined(_.hideMenu)) {\n _.hideMenu = _.path === '*' ? true : _.key.includes(':');\n }\n\n Object.assign(_, {\n ...child,\n ..._,\n });\n if (child.children) {\n if (!_.children && Array.isArray(child.children)) {\n _.children = child.children;\n }\n child.children?.forEach(function (childData) {\n merge(_?.children as RouterProps[], childData, _?.key);\n });\n }\n }\n}\nfunction findLogin(rs: RouterProps[] = [], onlyLogin: boolean, prevKey?: string): RouterProps[] {\n return rs\n .map(function (e) {\n const _ = { ...e };\n\n if (typeof _.key === 'undefined') {\n _.key = prefixKey(e.path, prevKey);\n }\n if (typeof _.i18n === 'undefined') {\n _.i18n = 'route-' + _.key;\n }\n if (typeof _.alive === 'undefined') {\n _.alive = false;\n }\n if (_.path === '*' && typeof _.hideMenu === 'undefined') {\n _.hideMenu = true;\n }\n if (Array.isArray(_.children)) {\n // eslint-disable-next-line no-undefined\n _.children = _.children.length ? findLogin(_.children, onlyLogin, _.key) : undefined;\n }\n if (!_.element) {\n _.element = lazyImport(_.key) as unknown as ReactNode;\n _.props = { path: _.key };\n }\n return !!_.onlyLogin === onlyLogin && !_.root ? null : _;\n })\n .filter(Boolean) as RouterProps[];\n}\nconst _router: RouterProps[] = [...list];\n\nrouters.forEach(function (item: RouterProps) {\n merge(_router, item);\n});\n\n/* 登录前注册的路由 */\nexport const onlyLoginRouter = findLogin(_router, false);\n/* 登录后注册的路由 */\nexport const router = findLogin(_router, true);\n\nexport function matchUtil(pathname: string) {\n let p: RouterProps = { key: '' };\n\n function findPath(rs: RouterProps[]) {\n rs.forEach(function (item) {\n if (item.path && item.path !== '*' && item.key) {\n try {\n if (pathToRegexp(item.key).exec(pathname.substring(1) as string)) {\n p = item;\n return;\n }\n } catch (error) {\n /* empty */\n }\n }\n if (Array.isArray(item.children)) findPath(item.children);\n });\n }\n\n findPath(router);\n return p;\n}\n"],"names":["createElement","lazy","isUndefined","pathToRegexp","Outlet","lazyImport","filePath","Promise","resolve","replace","then","catch","default","myPkgs","myDemoKv","mdxComponents","heading","p","level","role","pre","c","className","CodeBlock","lang","APPTYPE","models","allDemo","require","context","overrideComps","error","Object","assign","h1","h2","h3","h4","h5","h6","keys","forEach","item","key","substring","split","slice","join","basic","Child","push","path","element","props","components","e","arr","k","name","Array","isArray","exampleStr","m","matchAll","code","language","description","match","title","pop","noInline","test","list","console","info","prefixKey","prev","undefined","filter","Boolean","pathToTree","input","root","i","length","chain","curr","j","pathRule","lastHierarchy","children","lastIndexOf","node","i18n","alive","hideMenu","includes","routers","map","merge","source","child","_","find","childData","findLogin","rs","onlyLogin","prevKey","_router","onlyLoginRouter","router","matchUtil","pathname","findPath","exec"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/router/index.ts"],"sourcesContent":["import { createElement, type FC, lazy, type ReactNode } from 'react';\nimport { isUndefined } from '@moneko/common';\nimport { pathToRegexp } from 'path-to-regexp';\nimport { Outlet } from 'react-router-dom';\nimport type { KeepAliveProps } from 'react-activation';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Any = any;\n// eslint-disable-next-line no-unused-vars\ntype MDXComponents = Record<string, FC<Any>>;\nexport interface RouterProps {\n /** 菜单id */\n key: string;\n alive?: KeepAliveProps | boolean;\n /** 菜单图标 */\n icon?: ReactNode;\n dynamicTitle?: string;\n /** 菜单名 */\n i18n?: string | null;\n hideMenu?: boolean;\n hideTabs?: boolean;\n onlyLogin?: boolean;\n /** 菜单父id */\n parentId?: string;\n root?: boolean;\n path?: string;\n element?: Any;\n fallback?: ReactNode;\n /** 可否关闭标签 */\n closable?: boolean;\n /** 子菜单 */\n children?: RouterProps[];\n props?: {\n path: string;\n components?: MDXComponents;\n [key: string]: Any;\n };\n}\nexport function lazyImport(filePath: string) {\n return lazy(function () {\n return new Promise(function (resolve) {\n return import(\n /* webpackChunkName: \"[request]\" */\n '@/pages/' + filePath.replace(/:/g, '$').replace(/^\\//, '')\n )\n .then(resolve)\n .catch(function () {\n return Promise.resolve({\n default: Outlet,\n });\n });\n });\n });\n}\n\nexport interface ExampleModule {\n code: string;\n title?: string;\n description?: string | null;\n noInline: boolean;\n language: never;\n}\nexport type MyPkg = RouterProps & {\n type: string;\n title: string;\n subtitle?: string;\n icon?: string;\n};\nexport const myPkgs: MyPkg[] = [];\nexport const myDemoKv: Record<string, ExampleModule[]> = {};\nexport const mdxComponents: MDXComponents = {};\n\n// function getLastJsx(str: string) {\n// const matchArr = str.match(\n// /<(\\w+)(?:(?!\\/>|>)[\\s\\S])*?(?:(\\/>|>((?:(?!<\\1(?:(?!\\/>|>|\\s)[\\s\\S])*?(?:\\/\\s*)?>)[\\s\\S])*?)<\\/\\1\\s*>))/gms\n// );\n\n// if (matchArr !== null) {\n// return matchArr[matchArr.length - 1];\n// }\n// return '';\n// }\nfunction heading(p: Any, level: number) {\n return createElement(`h${level}`, {\n 'data-prefix': '# ',\n role: 'heading',\n 'aria-level': level,\n ...p,\n });\n}\nfunction pre(p: Any) {\n const c = createElement('code', p);\n\n if (p.className) {\n return createElement(\n mdxComponents.CodeBlock || 'pre',\n { lang: p.className.replace('language-', '').replace(/ .*$/, '') },\n c\n );\n }\n return c;\n}\nif (APPTYPE === 'library') {\n const models = require.context('@pkg/', true, /README\\.mdx?$/);\n let overrideComps: MDXComponents = {};\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n overrideComps = require('@/components/components').default;\n } catch (error) {\n /* empty */\n }\n\n Object.assign(mdxComponents, {\n h1: function (p: Any) {\n return heading(p, 1);\n },\n h2: function (p: Any) {\n return heading(p, 2);\n },\n h3: function (p: Any) {\n return heading(p, 3);\n },\n h4: function (p: Any) {\n return heading(p, 4);\n },\n h5: function (p: Any) {\n return heading(p, 5);\n },\n h6: function (p: Any) {\n return heading(p, 6);\n },\n pre: pre,\n ...overrideComps,\n });\n\n models.keys()?.forEach(function (item: string) {\n const key = item.substring(2).split('/').slice(0, -1).join('/');\n const { basic, default: Child } = models(item);\n\n myPkgs.push({\n key: key,\n path: key,\n element: Child,\n ...basic,\n props: {\n components: mdxComponents,\n path: key,\n },\n });\n });\n\n const allDemo = require.context('@pkg/', true, /\\/examples\\/(.+)\\.mdx$/);\n\n allDemo.keys()?.forEach(function (e: string) {\n const k = e.substring(2),\n arr = k.split('/'),\n name = arr[0];\n\n if (!Array.isArray(myDemoKv[name])) {\n myDemoKv[name] = [];\n }\n\n const exampleStr = allDemo(e);\n const m = exampleStr.matchAll(/```([^\\r\\n]+)?\\r?\\n([\\s\\S]*?)\\r?\\n```/g);\n let code = '',\n language = '';\n let description: string | null = null;\n\n for (const match of m) {\n language = match[1] || 'tsx';\n code = match[2];\n description = exampleStr.replace(match[0], '');\n }\n\n myDemoKv[name].push({\n language: language as never,\n code: code,\n description: description,\n title: arr.pop()?.replace(/\\.mdx$/, ''),\n noInline: /render\\([^\\\\)]*\\);?(?=\\s*$)/.test(code),\n });\n });\n}\n\nlet list: RouterProps[] = [];\n\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n list = require('@/router').default;\n} catch (error) {\n // eslint-disable-next-line no-console\n console.info('自定义路由请在 router 目录下新建 index.ts, 类型: RouterProps[]', error);\n}\nfunction prefixKey(path?: string, prev?: string) {\n // eslint-disable-next-line no-undefined\n return [prev === '*' && path !== '*' ? undefined : prev, path].filter(Boolean).join('/');\n}\n\nconst models = require.context('@/pages/', true, /\\.(t|j)sx$/, 'lazy');\n\nfunction pathToTree(input: string[]) {\n const root: RouterProps[] = [];\n\n for (let i = 0; i < input.length; i++) {\n const chain = input[i].split('/').slice(0, -1);\n let curr = root;\n\n for (let j = 0; j < chain.length; j++) {\n let pathRule = chain[j];\n\n if (pathRule === '') {\n continue;\n }\n if (pathRule === '.') {\n pathRule = '*';\n }\n const lastHierarchy = curr;\n\n // 遍历root是否已有该层级\n if (Array.isArray(curr)) {\n for (let k = 0; k < curr.length; k++) {\n if (curr[k].path === pathRule) {\n curr = curr[k].children as RouterProps[];\n break;\n }\n }\n }\n\n if (lastHierarchy === curr) {\n let key: string = j === chain.length - 1 ? input[i] : chain.slice(0, j + 1).join('/') + '/';\n\n // 截取最后一个 / 前面的数据\n key = key.substring(2, key.lastIndexOf('/'));\n\n const node: RouterProps = {\n key: key,\n path: pathRule,\n i18n: 'route-' + key,\n children: [],\n alive: false,\n element: lazyImport(key) as unknown as ReactNode,\n hideMenu: key.includes(':'),\n props: { path: key },\n };\n\n // 文件,最后一个字符不是\"/“符号\n // if (j === chain.length - 1) delete node.children;\n if (Array.isArray(curr)) {\n curr.push(node);\n }\n curr = node.children as RouterProps[];\n }\n }\n }\n\n return root;\n}\nconst routers: RouterProps[] = pathToTree(\n models.keys().map(function (item: string) {\n return item.replace(/\\$/g, ':');\n })\n);\n\nfunction merge(source: RouterProps[], child: RouterProps, prev?: string) {\n const _ = source.find(function (item) {\n return item.path === child.path;\n });\n\n if (!_) {\n source.push(child);\n } else {\n // 处理key\n _.key = prefixKey(_.path, prev);\n if (isUndefined(_.i18n)) {\n _.i18n = 'route-' + _.key;\n }\n if (isUndefined(_.alive)) {\n _.alive = false;\n }\n if (isUndefined(_.element) && child.element) {\n _.element = child.element;\n _.props = child.props;\n }\n if (isUndefined(_.hideMenu)) {\n _.hideMenu = _.path === '*' ? true : _.key.includes(':');\n }\n\n Object.assign(_, {\n ...child,\n ..._,\n });\n if (child.children) {\n if (!_.children && Array.isArray(child.children)) {\n _.children = child.children;\n }\n child.children?.forEach(function (childData) {\n merge(_?.children as RouterProps[], childData, _?.key);\n });\n }\n }\n}\nfunction findLogin(rs: RouterProps[] = [], onlyLogin: boolean, prevKey?: string): RouterProps[] {\n return rs\n .map(function (e) {\n const _ = { ...e };\n\n if (typeof _.key === 'undefined') {\n _.key = prefixKey(e.path, prevKey);\n }\n if (typeof _.i18n === 'undefined') {\n _.i18n = 'route-' + _.key;\n }\n if (typeof _.alive === 'undefined') {\n _.alive = false;\n }\n if (_.path === '*' && typeof _.hideMenu === 'undefined') {\n _.hideMenu = true;\n }\n if (Array.isArray(_.children)) {\n // eslint-disable-next-line no-undefined\n _.children = _.children.length ? findLogin(_.children, onlyLogin, _.key) : undefined;\n }\n if (!_.element) {\n _.element = lazyImport(_.key) as unknown as ReactNode;\n _.props = { path: _.key };\n }\n return !!_.onlyLogin === onlyLogin && !_.root ? null : _;\n })\n .filter(Boolean) as RouterProps[];\n}\nconst _router: RouterProps[] = [...list];\n\nrouters.forEach(function (item: RouterProps) {\n merge(_router, item);\n});\n\n/* 登录前注册的路由 */\nexport const onlyLoginRouter = findLogin(_router, false);\n/* 登录后注册的路由 */\nexport const router = findLogin(_router, true);\n\nexport function matchUtil(pathname: string) {\n let p: RouterProps = { key: '' };\n\n function findPath(rs: RouterProps[]) {\n rs.forEach(function (item) {\n if (item.path && item.path !== '*' && item.key) {\n try {\n if (pathToRegexp(item.key).exec(pathname.substring(1) as string)) {\n p = item;\n return;\n }\n } catch (error) {\n /* empty */\n }\n }\n if (Array.isArray(item.children)) findPath(item.children);\n });\n }\n\n findPath(router);\n return p;\n}\n"],"names":["createElement","lazy","isUndefined","pathToRegexp","Outlet","lazyImport","filePath","Promise","resolve","replace","then","catch","default","myPkgs","myDemoKv","mdxComponents","heading","p","level","role","pre","c","className","CodeBlock","lang","APPTYPE","models","allDemo","require","context","overrideComps","error","Object","assign","h1","h2","h3","h4","h5","h6","keys","forEach","item","key","substring","split","slice","join","basic","Child","push","path","element","props","components","e","arr","k","name","Array","isArray","exampleStr","m","matchAll","code","language","description","match","title","pop","noInline","test","list","console","info","prefixKey","prev","undefined","filter","Boolean","pathToTree","input","root","i","length","chain","curr","j","pathRule","lastHierarchy","children","lastIndexOf","node","i18n","alive","hideMenu","includes","routers","map","merge","source","child","_","find","childData","findLogin","rs","onlyLogin","prevKey","_router","onlyLoginRouter","router","matchUtil","pathname","findPath","exec"],"mappings":"yxEAAA,OAASA,aAAa,CAAWC,IAAI,KAAwB,OAAQ,AACrE,QAASC,WAAW,KAAQ,gBAAiB,AAC7C,QAASC,YAAY,KAAQ,gBAAiB,AAC9C,QAASC,MAAM,KAAQ,kBAAmB,AAmC1C,QAAO,SAASC,WAAWC,QAAgB,CAAE,CAC3C,OAAOL,KAAK,UAAY,CACtB,OAAO,IAAIM,QAAQ,SAAUC,OAAO,CAAE,CACpC,OAAO,MAAM,CAEX,WAAaF,SAASG,OAAO,CAAC,KAAM,KAAKA,OAAO,CAAC,MAAO,KAEvDC,IAAI,CAACF,SACLG,KAAK,CAAC,UAAY,CACjB,OAAOJ,QAAQC,OAAO,CAAC,CACrBI,QAASR,MACX,EACF,EACJ,EACF,EACF,CAAC,AAeD,OAAO,IAAMS,OAAkB,EAAE,AAAC,AAClC,QAAO,IAAMC,SAA4C,CAAC,CAAE,AAC5D,QAAO,IAAMC,cAA+B,CAAC,CAAE,CAY/C,SAASC,QAAQC,CAAM,CAAEC,KAAa,CAAE,CACtC,OAAOlB,cAAc,AAAC,IAAS,OAANkB,OAAS,eAChC,cAAe,KACfC,KAAM,UACN,aAAcD,OACXD,GAEP,CACA,SAASG,IAAIH,CAAM,CAAE,CACnB,IAAMI,EAAIrB,cAAc,OAAQiB,GAEhC,GAAIA,EAAEK,SAAS,CAAE,CACf,OAAOtB,cACLe,cAAcQ,SAAS,EAAI,MAC3B,CAAEC,KAAMP,EAAEK,SAAS,CAACb,OAAO,CAAC,YAAa,IAAIA,OAAO,CAAC,OAAQ,GAAI,EACjEY,EAEJ,CAAC,AACD,OAAOA,CACT,CACA,GAAII,UAAY,UAAW,KAkCzBC,aAkBAC,cAnDA,IAAMD,OAASE,QAAQC,OAAO,CAAC,QAAS,IAAI,CAAE,iBAC9C,IAAIC,cAA+B,CAAC,EAEpC,GAAI,CAEFA,cAAgBF,QAAQ,2BAA2BhB,OAAO,AAC5D,CAAE,MAAOmB,MAAO,CAEhB,CAEAC,OAAOC,MAAM,CAAClB,cAAe,eAC3BmB,GAAI,SAAJA,GAAcjB,CAAM,CAAE,CACpB,OAAOD,QAAQC,EAAG,EACpB,EACAkB,GAAI,SAAJA,GAAclB,CAAM,CAAE,CACpB,OAAOD,QAAQC,EAAG,EACpB,EACAmB,GAAI,SAAJA,GAAcnB,CAAM,CAAE,CACpB,OAAOD,QAAQC,EAAG,EACpB,EACAoB,GAAI,SAAJA,GAAcpB,CAAM,CAAE,CACpB,OAAOD,QAAQC,EAAG,EACpB,EACAqB,GAAI,SAAJA,GAAcrB,CAAM,CAAE,CACpB,OAAOD,QAAQC,EAAG,EACpB,EACAsB,GAAI,SAAJA,GAActB,CAAM,CAAE,CACpB,OAAOD,QAAQC,EAAG,EACpB,EACAG,IAAKA,KACFU,eAGLJ,EAAAA,aAAAA,OAAOc,IAAI,YAAXd,sBAAAA,KAAAA,EAAAA,aAAee,QAAQ,SAAUC,IAAY,CAAE,CAC7C,IAAMC,IAAMD,KAAKE,SAAS,CAAC,GAAGC,KAAK,CAAC,KAAKC,KAAK,CAAC,EAAG,CAAC,GAAGC,IAAI,CAAC,KAC3D,IAAkCrB,QAAAA,OAAOgB,MAAjCM,MAA0BtB,QAA1BsB,MAAOpC,AAASqC,MAAUvB,QAAnBd,QAEfC,OAAOqC,IAAI,CAAC,kCACVP,IAAKA,IACLQ,KAAMR,IACNS,QAASH,OACND,QACHK,MAAO,CACLC,WAAYvC,cACZoC,KAAMR,GACR,IAEJ,GAEA,IAAMhB,QAAUC,QAAQC,OAAO,CAAC,QAAS,IAAI,CAAE,yBAE/CF,EAAAA,cAAAA,QAAQa,IAAI,YAAZb,uBAAAA,KAAAA,EAAAA,cAAgBc,QAAQ,SAAUc,CAAS,CAAE,KAyBlCC,SAxBT,IAAMC,EAAIF,EAAEX,SAAS,CAAC,GACpBY,IAAMC,EAAEZ,KAAK,CAAC,KACda,KAAOF,GAAG,CAAC,EAAE,CAEf,GAAI,CAACG,MAAMC,OAAO,CAAC9C,QAAQ,CAAC4C,KAAK,EAAG,CAClC5C,QAAQ,CAAC4C,KAAK,CAAG,EAAE,AACrB,CAAC,AAED,IAAMG,WAAalC,QAAQ4B,GAC3B,IAAMO,EAAID,WAAWE,QAAQ,CAAC,0CAC9B,IAAIC,KAAO,GACTC,SAAW,GACb,IAAIC,YAA6B,IAAI,KAEhC,+BAAA,wBAAA,6BAAL,QAAK,UAAeJ,qBAAf,QAAA,2BAAA,MAAA,wBAAA,+BAAkB,CAAlB,IAAMK,MAAN,YACHF,SAAWE,KAAK,CAAC,EAAE,EAAI,MACvBH,KAAOG,KAAK,CAAC,EAAE,CACfD,YAAcL,WAAWpD,OAAO,CAAC0D,KAAK,CAAC,EAAE,CAAE,GAC7C,aAJK,uBAAA,mCAAA,2BAAA,wBAAA,+BAAA,yBAAA,iBAMLrD,QAAQ,CAAC4C,KAAK,CAACR,IAAI,CAAC,CAClBe,SAAUA,SACVD,KAAMA,KACNE,YAAaA,YACbE,KAAK,CAAEZ,CAAAA,SAAAA,IAAIa,GAAG,YAAPb,kBAAAA,KAAAA,EAAAA,SAAW/C,QAAQ,SAAU,IACpC6D,SAAU,8BAA8BC,IAAI,CAACP,KAC/C,EACF,EACF,CAAC,AAED,IAAIQ,KAAsB,EAAE,CAE5B,GAAI,CAEFA,KAAO5C,QAAQ,YAAYhB,OAAO,AACpC,CAAE,MAAOmB,MAAO,CAEd0C,QAAQC,IAAI,CAAC,mDAAoD3C,MACnE,CACA,SAAS4C,UAAUxB,IAAa,CAAEyB,IAAa,CAAE,CAE/C,MAAO,CAACA,OAAS,KAAOzB,OAAS,IAAM0B,UAAYD,IAAI,CAAEzB,KAAK,CAAC2B,MAAM,CAACC,SAAShC,IAAI,CAAC,IACtF,CAEA,IAAMrB,QAASE,QAAQC,OAAO,CAAC,WAAY,IAAI,CAAE,aAAc,QAE/D,SAASmD,WAAWC,KAAe,CAAE,CACnC,IAAMC,KAAsB,EAAE,CAE9B,IAAK,IAAIC,EAAI,EAAGA,EAAIF,MAAMG,MAAM,CAAED,IAAK,CACrC,IAAME,MAAQJ,KAAK,CAACE,EAAE,CAACtC,KAAK,CAAC,KAAKC,KAAK,CAAC,EAAG,CAAC,GAC5C,IAAIwC,KAAOJ,KAEX,IAAK,IAAIK,EAAI,EAAGA,EAAIF,MAAMD,MAAM,CAAEG,IAAK,CACrC,IAAIC,SAAWH,KAAK,CAACE,EAAE,CAEvB,GAAIC,WAAa,GAAI,CACnB,QAAS,AACX,CAAC,AACD,GAAIA,WAAa,IAAK,CACpBA,SAAW,GACb,CAAC,AACD,IAAMC,cAAgBH,KAGtB,GAAI3B,MAAMC,OAAO,CAAC0B,MAAO,CACvB,IAAK,IAAI7B,EAAI,EAAGA,EAAI6B,KAAKF,MAAM,CAAE3B,IAAK,CACpC,GAAI6B,IAAI,CAAC7B,EAAE,CAACN,IAAI,GAAKqC,SAAU,CAC7BF,KAAOA,IAAI,CAAC7B,EAAE,CAACiC,QAAQ,CACvB,KAAM,AACR,CAAC,AACH,CACF,CAAC,AAED,GAAID,gBAAkBH,KAAM,CAC1B,IAAI3C,IAAc4C,IAAMF,MAAMD,MAAM,CAAG,EAAIH,KAAK,CAACE,EAAE,CAAGE,MAAMvC,KAAK,CAAC,EAAGyC,EAAI,GAAGxC,IAAI,CAAC,KAAO,GAAG,CAG3FJ,IAAMA,IAAIC,SAAS,CAAC,EAAGD,IAAIgD,WAAW,CAAC,MAEvC,IAAMC,KAAoB,CACxBjD,IAAKA,IACLQ,KAAMqC,SACNK,KAAM,SAAWlD,IACjB+C,SAAU,EAAE,CACZI,MAAO,KAAK,CACZ1C,QAAS/C,WAAWsC,KACpBoD,SAAUpD,IAAIqD,QAAQ,CAAC,KACvB3C,MAAO,CAAEF,KAAMR,GAAI,CACrB,EAIA,GAAIgB,MAAMC,OAAO,CAAC0B,MAAO,CACvBA,KAAKpC,IAAI,CAAC0C,KACZ,CAAC,AACDN,KAAOM,KAAKF,QAAQ,AACtB,CAAC,AACH,CACF,CAEA,OAAOR,IACT,CACA,IAAMe,QAAyBjB,WAC7BtD,QAAOc,IAAI,GAAG0D,GAAG,CAAC,SAAUxD,IAAY,CAAE,CACxC,OAAOA,KAAKjC,OAAO,CAAC,MAAO,IAC7B,IAGF,SAAS0F,MAAMC,MAAqB,CAAEC,KAAkB,CAAEzB,IAAa,CAAE,CACvE,IAAM0B,EAAIF,OAAOG,IAAI,CAAC,SAAU7D,IAAI,CAAE,CACpC,OAAOA,KAAKS,IAAI,GAAKkD,MAAMlD,IAAI,AACjC,GAEA,GAAI,CAACmD,EAAG,CACNF,OAAOlD,IAAI,CAACmD,MACd,KAAO,CAELC,EAAE3D,GAAG,CAAGgC,UAAU2B,EAAEnD,IAAI,CAAEyB,MAC1B,GAAI1E,YAAYoG,EAAET,IAAI,EAAG,CACvBS,EAAET,IAAI,CAAG,SAAWS,EAAE3D,GAAG,AAC3B,CAAC,AACD,GAAIzC,YAAYoG,EAAER,KAAK,EAAG,CACxBQ,EAAER,KAAK,CAAG,KAAK,AACjB,CAAC,AACD,GAAI5F,YAAYoG,EAAElD,OAAO,GAAKiD,MAAMjD,OAAO,CAAE,CAC3CkD,EAAElD,OAAO,CAAGiD,MAAMjD,OAAO,AACzBkD,CAAAA,EAAEjD,KAAK,CAAGgD,MAAMhD,KAAK,AACvB,CAAC,AACD,GAAInD,YAAYoG,EAAEP,QAAQ,EAAG,CAC3BO,EAAEP,QAAQ,CAAGO,EAAEnD,IAAI,GAAK,IAAM,IAAI,CAAGmD,EAAE3D,GAAG,CAACqD,QAAQ,CAAC,IAAI,AAC1D,CAAC,AAEDhE,OAAOC,MAAM,CAACqE,EAAG,iBACZD,MACAC,IAEL,GAAID,MAAMX,QAAQ,CAAE,KAIlBW,gBAHA,GAAI,CAACC,EAAEZ,QAAQ,EAAI/B,MAAMC,OAAO,CAACyC,MAAMX,QAAQ,EAAG,CAChDY,EAAEZ,QAAQ,CAAGW,MAAMX,QAAQ,AAC7B,CAAC,AACDW,CAAAA,gBAAAA,MAAMX,QAAQ,UAAdW,yBAAAA,KAAAA,EAAAA,gBAAgB5D,QAAQ,SAAU+D,SAAS,CAAE,CAC3CL,MAAMG,UAAAA,WAAAA,KAAAA,EAAAA,EAAGZ,QAAQ,CAAmBc,UAAWF,UAAAA,WAAAA,KAAAA,EAAAA,EAAG3D,GAAG,CACvD,EACF,CAAC,AACH,CAAC,AACH,CACA,SAAS8D,WAAuF,KAA7EC,GAAAA,uDAAoB,EAAE,CAAEC,iDAAoBC,+CAC7D,OAAOF,GACJR,GAAG,CAAC,SAAU3C,CAAC,CAAE,CAChB,IAAM+C,EAAI,iBAAK/C,GAEf,GAAI,OAAO+C,EAAE3D,GAAG,GAAK,YAAa,CAChC2D,EAAE3D,GAAG,CAAGgC,UAAUpB,EAAEJ,IAAI,CAAEyD,QAC5B,CAAC,AACD,GAAI,OAAON,EAAET,IAAI,GAAK,YAAa,CACjCS,EAAET,IAAI,CAAG,SAAWS,EAAE3D,GAAG,AAC3B,CAAC,AACD,GAAI,OAAO2D,EAAER,KAAK,GAAK,YAAa,CAClCQ,EAAER,KAAK,CAAG,KAAK,AACjB,CAAC,AACD,GAAIQ,EAAEnD,IAAI,GAAK,KAAO,OAAOmD,EAAEP,QAAQ,GAAK,YAAa,CACvDO,EAAEP,QAAQ,CAAG,IAAI,AACnB,CAAC,AACD,GAAIpC,MAAMC,OAAO,CAAC0C,EAAEZ,QAAQ,EAAG,CAE7BY,EAAEZ,QAAQ,CAAGY,EAAEZ,QAAQ,CAACN,MAAM,CAAGqB,UAAUH,EAAEZ,QAAQ,CAAEiB,UAAWL,EAAE3D,GAAG,EAAIkC,SAAS,AACtF,CAAC,AACD,GAAI,CAACyB,EAAElD,OAAO,CAAE,CACdkD,EAAElD,OAAO,CAAG/C,WAAWiG,EAAE3D,GAAG,CAC5B2D,CAAAA,EAAEjD,KAAK,CAAG,CAAEF,KAAMmD,EAAE3D,GAAG,AAAC,CAC1B,CAAC,AACD,MAAO,CAAC,CAAC2D,EAAEK,SAAS,GAAKA,WAAa,CAACL,EAAEpB,IAAI,CAAG,IAAI,CAAGoB,CAAC,AAC1D,GACCxB,MAAM,CAACC,QACZ,CACA,IAAM8B,QAA0B,mBAAGrC,MAEnCyB,QAAQxD,OAAO,CAAC,SAAUC,IAAiB,CAAE,CAC3CyD,MAAMU,QAASnE,KACjB,EAGA,QAAO,IAAMoE,gBAAkBL,UAAUI,QAAS,KAAK,CAAE,AAEzD,QAAO,IAAME,OAASN,UAAUI,QAAS,IAAI,CAAE,AAE/C,QAAO,SAASG,UAAUC,QAAgB,CAAE,CAC1C,IAAIhG,EAAiB,CAAE0B,IAAK,EAAG,EAE/B,SAASuE,SAASR,EAAiB,CAAE,CACnCA,GAAGjE,OAAO,CAAC,SAAUC,IAAI,CAAE,CACzB,GAAIA,KAAKS,IAAI,EAAIT,KAAKS,IAAI,GAAK,KAAOT,KAAKC,GAAG,CAAE,CAC9C,GAAI,CACF,GAAIxC,aAAauC,KAAKC,GAAG,EAAEwE,IAAI,CAACF,SAASrE,SAAS,CAAC,IAAe,CAChE3B,EAAIyB,KACJ,MACF,CAAC,AACH,CAAE,MAAOX,MAAO,CAEhB,CACF,CAAC,AACD,GAAI4B,MAAMC,OAAO,CAAClB,KAAKgD,QAAQ,EAAGwB,SAASxE,KAAKgD,QAAQ,CAAE,AAC5D,EACF,CAEAwB,SAASH,QACT,OAAO9F,CACT,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type VoidFn = () => void;
|
|
2
|
+
type Updater<V> = (val: V) => V;
|
|
3
|
+
type Data = Record<string, unknown>;
|
|
4
|
+
type Setter<T> = <K extends keyof T>(key: K, updater: Updater<T[K]>) => void;
|
|
5
|
+
type Store<T> = T & Setter<T>;
|
|
6
|
+
declare let run: (fn: VoidFn) => void;
|
|
7
|
+
declare const createStore: {
|
|
8
|
+
<T extends Data>(data: T): Store<T>;
|
|
9
|
+
config({ batch }: {
|
|
10
|
+
batch: typeof run;
|
|
11
|
+
}): void;
|
|
12
|
+
};
|
|
13
|
+
export default createStore;
|
|
@@ -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 _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}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 _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{useSyncExternalStore}from"use-sync-external-store/shim";var __DEV__=process.env.NODE_ENV!=="production";var __DEV_ERR__=function(msg){if(__DEV__){throw new Error(msg)}};var isInMethod=false;var run=function(fn){fn()};var createStore=function(data){if(__DEV__&&Object.prototype.toString.call(data)!=="[object Object]"){throw new Error("object required")}var state={};var methods={};Object.keys(data).forEach(function(key){var initVal=data[key];if(_instanceof(initVal,Function)){methods[key]=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}isInMethod=true;var res=initVal.apply(void 0,_toConsumableArray(args));isInMethod=false;return res};return}var listeners=new Set;state[key]={subscribe:function(listener){listeners.add(listener);return function(){return listeners.delete(listener)}},getSnapshot:function(){return data[key]},setSnapshot:function(val){if(val!==data[key]){data[key]=val;run(function(){return listeners.forEach(function(listener){return listener()})})}},useSnapshot:function(){return useSyncExternalStore(state[key].subscribe,state[key].getSnapshot,state[key].getSnapshot)}}});var setState=function(key,val){if(key in data){if(key in state){var newVal=_instanceof(val,Function)?val(data[key]):val;state[key].setSnapshot(newVal)}else{__DEV_ERR__("`".concat(key,"` is a method, can not update"))}}else{__DEV_ERR__("`".concat(key,"` is not initialized in store"))}};return new Proxy(function(){return undefined},{get:function(_,key){if(key in methods){return methods[key]}if(isInMethod){return data[key]}try{return state[key].useSnapshot()}catch(err){return data[key]}},set:function(_,key,val){setState(key,val);return true},apply:function(_,__,param){var _param=_slicedToArray(param,2),key=_param[0],updater=_param[1];if(typeof updater==="function"){setState(key,updater)}else{__DEV_ERR__("updater for `".concat(key,"` should be a function"))}}})};createStore.config=function(param){var batch=param.batch;run=batch};export default createStore;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/store/index.ts"],"sourcesContent":["import { useSyncExternalStore } from 'use-sync-external-store/shim';\n\ntype VoidFn = () => void;\n// eslint-disable-next-line no-unused-vars\ntype AnyFn = (...args: unknown[]) => unknown;\n// eslint-disable-next-line no-unused-vars\ntype Updater<V> = (val: V) => V;\n\ntype Data = Record<string, unknown>;\ntype State<T> = {\n [K in keyof T]: {\n // eslint-disable-next-line no-unused-vars\n subscribe: (listener: VoidFn) => VoidFn;\n getSnapshot: () => T[K];\n useSnapshot: () => T[K];\n // eslint-disable-next-line no-unused-vars\n setSnapshot: (val: T[K]) => void;\n };\n};\ntype Methods<T> = Record<keyof T, AnyFn>;\n// eslint-disable-next-line no-unused-vars\ntype Setter<T> = <K extends keyof T>(key: K, updater: Updater<T[K]>) => void;\ntype Store<T> = T & Setter<T>;\n\nconst __DEV__ = process.env.NODE_ENV !== 'production';\nconst __DEV_ERR__ = (msg: string) => {\n if (__DEV__) {\n throw new Error(msg);\n }\n};\n\nlet isInMethod = false;\nlet run = (fn: VoidFn) => {\n fn();\n};\n\nconst createStore = <T extends Data>(data: T): Store<T> => {\n if (__DEV__ && Object.prototype.toString.call(data) !== '[object Object]') {\n throw new Error('object required');\n }\n\n const state: State<T> = {} as State<T>;\n const methods: Methods<T> = {} as Methods<T>;\n\n Object.keys(data).forEach((key: keyof T) => {\n const initVal = data[key];\n\n if (initVal instanceof Function) {\n methods[key] = (...args: unknown[]) => {\n isInMethod = true;\n const res = initVal(...args);\n\n isInMethod = false;\n return res;\n };\n return;\n }\n\n const listeners = new Set<VoidFn>();\n\n state[key] = {\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n getSnapshot: () => data[key],\n setSnapshot: (val) => {\n if (val !== data[key]) {\n data[key] = val;\n run(() => listeners.forEach((listener) => listener()));\n }\n },\n useSnapshot: () => {\n return useSyncExternalStore(\n state[key].subscribe,\n state[key].getSnapshot,\n state[key].getSnapshot\n );\n },\n };\n });\n\n const setState = (key: keyof T, val: T[keyof T] | Updater<T[keyof T]>) => {\n if (key in data) {\n if (key in state) {\n const newVal = val instanceof Function ? val(data[key]) : val;\n\n state[key].setSnapshot(newVal);\n } else {\n __DEV_ERR__(`\\`${key as string}\\` is a method, can not update`);\n }\n } else {\n __DEV_ERR__(`\\`${key as string}\\` is not initialized in store`);\n }\n };\n\n return new Proxy(\n // eslint-disable-next-line no-undefined\n (() => undefined) as unknown as Store<T>,\n {\n get: (_, key: keyof T) => {\n if (key in methods) {\n return methods[key];\n }\n\n if (isInMethod) {\n return data[key];\n }\n\n try {\n return state[key].useSnapshot();\n } catch (err) {\n return data[key];\n }\n },\n set: (_, key: keyof T, val: T[keyof T]) => {\n setState(key, val);\n return true;\n },\n apply: (_, __, [key, updater]: [keyof T, Updater<T[keyof T]>]) => {\n if (typeof updater === 'function') {\n setState(key, updater);\n } else {\n __DEV_ERR__(`updater for \\`${key as string}\\` should be a function`);\n }\n },\n } as ProxyHandler<Store<T>>\n );\n};\n\ncreateStore.config = ({ batch }: { batch: typeof run }) => {\n run = batch;\n};\n\nexport default createStore;\n"],"names":["useSyncExternalStore","__DEV__","process","env","NODE_ENV","__DEV_ERR__","msg","Error","isInMethod","run","fn","createStore","data","Object","prototype","toString","call","state","methods","keys","forEach","key","initVal","Function","args","res","listeners","Set","subscribe","listener","add","delete","getSnapshot","setSnapshot","val","useSnapshot","setState","newVal","Proxy","undefined","get","_","err","set","apply","__","updater","config","batch"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moneko/core",
|
|
3
|
-
"version": "2.0.16-beta.
|
|
3
|
+
"version": "2.0.16-beta.11",
|
|
4
4
|
"description": "core",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -33,11 +33,10 @@
|
|
|
33
33
|
"external-remotes-plugin": "1.0.0",
|
|
34
34
|
"fastclick": "1.0.6",
|
|
35
35
|
"html-webpack-plugin": "5.5.0",
|
|
36
|
-
"i18n-hooks": "1.0.
|
|
36
|
+
"i18n-hooks": "1.0.17",
|
|
37
37
|
"less": "4.1.3",
|
|
38
38
|
"less-loader": "11.1.0",
|
|
39
39
|
"mini-css-extract-plugin": "2.7.3",
|
|
40
|
-
"mini-idc": "1.0.19",
|
|
41
40
|
"mini-svg-data-uri": "1.4.4",
|
|
42
41
|
"path-to-regexp": "6.2.1",
|
|
43
42
|
"portfinder": "1.0.32",
|
|
@@ -50,11 +49,12 @@
|
|
|
50
49
|
"rehype-figure": "1.0.1",
|
|
51
50
|
"style-loader": "3.3.1",
|
|
52
51
|
"style-resources-loader": "1.5.0",
|
|
53
|
-
"swc-plugin-another-transform-imports": "0.2.1",
|
|
54
52
|
"swc-loader": "0.2.3",
|
|
53
|
+
"swc-plugin-another-transform-imports": "0.2.1",
|
|
55
54
|
"ts-import-plugin": "2.0.0",
|
|
56
55
|
"ts-loader": "9.4.2",
|
|
57
56
|
"typescript": "4.9.5",
|
|
57
|
+
"use-sync-external-store": "^1.2.0",
|
|
58
58
|
"webpack": "5.76.1",
|
|
59
59
|
"webpack-bundle-analyzer": "4.8.0",
|
|
60
60
|
"webpack-cli": "5.0.1",
|
|
@@ -66,10 +66,11 @@
|
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@swc/cli": "0.1.62",
|
|
68
68
|
"@types/mini-css-extract-plugin": "^2.5.1",
|
|
69
|
-
"@types/react": "^18.0.
|
|
70
|
-
"@types/react-dom": "^18.0.
|
|
69
|
+
"@types/react": "^18.0.28",
|
|
70
|
+
"@types/react-dom": "^18.0.11",
|
|
71
71
|
"@types/react-router-dom": "^5.3.3",
|
|
72
72
|
"@types/shelljs": "^0.8.11",
|
|
73
|
+
"@types/use-sync-external-store": "^0.0.3",
|
|
73
74
|
"@types/webpack-bundle-analyzer": "^4.6.0",
|
|
74
75
|
"@types/webpack-env": "^1.18.0",
|
|
75
76
|
"antd": "5.3.1",
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type ReactNode } from 'react';
|
|
2
|
-
import { type Model } from 'mini-idc';
|
|
3
|
-
import type { RouterProps } from '../../../router';
|
|
4
|
-
export interface ItemTypes extends RouterProps {
|
|
5
|
-
key: string;
|
|
6
|
-
path?: string;
|
|
7
|
-
type?: string;
|
|
8
|
-
label?: ReactNode | null;
|
|
9
|
-
children?: ItemTypes[];
|
|
10
|
-
[key: string]: any;
|
|
11
|
-
}
|
|
12
|
-
export interface AppProgramModel {
|
|
13
|
-
menu: ItemTypes[];
|
|
14
|
-
menuKV: Record<string, ItemTypes>;
|
|
15
|
-
activeKey?: string;
|
|
16
|
-
tabs: TabProps[];
|
|
17
|
-
}
|
|
18
|
-
export interface TabProps extends RouterProps {
|
|
19
|
-
key: string;
|
|
20
|
-
url?: string;
|
|
21
|
-
path?: string;
|
|
22
|
-
closable?: boolean;
|
|
23
|
-
}
|
|
24
|
-
declare const model: Model<AppProgramModel>;
|
|
25
|
-
export default model;
|
|
@@ -1,2 +0,0 @@
|
|
|
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)}var __generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};import{isEqual,isFunction}from"@moneko/common";import{shallowEqual}from"mini-idc";var getItems=function(arr){return arr.map(function(item){var children=item.children,args=_objectWithoutProperties(item,["children"]);var _item=_objectSpreadProps(_objectSpread({},args),{label:args.i18n});if(Array.isArray(children)&&children.length){Object.assign(_item,{children:getItems(children)})}return _item}).filter(function(m){return!m.hideMenu})};var getMenuKV=function(arr,obj){arr.forEach(function(item){var children=item.children,args=_objectWithoutProperties(item,["children"]);Object.assign(obj,_defineProperty({},item.key,args));if(Array.isArray(children)&&children.length){getMenuKV(children,obj)}})};var model={namespace:"appProgram",state:{menu:[],menuKV:{},tabs:[],activeKey:"home"},reducers:{setMenu:function(state,param){var _param_payload=param.payload,payload=_param_payload===void 0?[]:_param_payload;var items=getItems(payload),im={};getMenuKV(items,im);return _objectSpreadProps(_objectSpread({},state),{menu:items,menuKV:im})},setTabs:function(state,action){return _objectSpreadProps(_objectSpread({},state),{tabs:action.payload})},addTab:function(state,param){var payload=param.payload;var tabs=state.tabs,menuKV=state.menuKV;var current=menuKV[payload.key];if(current&&!tabs.find(function(item){return item.key===payload.key})){var ntabs=_toConsumableArray(tabs).concat([_objectSpread(_objectSpreadProps(_objectSpread({},current),{i18n:current.i18n||"route-".concat(current.key)}),payload)]);if(!isEqual(ntabs,tabs)){return _objectSpreadProps(_objectSpread({},state),{tabs:ntabs})}}return state},setActiveKey:function(state,action){return _objectSpreadProps(_objectSpread({},state),{activeKey:action.payload})}},effects:{openTab:function openTab(param,param1){var payload,put,key,_payload_dynamicTitle,dynamicTitle;return __generator(this,function(_state){switch(_state.label){case 0:payload=param.payload,put=param1.put;key=payload.key,_payload_dynamicTitle=payload.dynamicTitle,dynamicTitle=_payload_dynamicTitle===void 0?"":_payload_dynamicTitle;return[4,put({type:"appProgram/addTab",payload:{key:key,dynamicTitle:dynamicTitle}})];case 1:_state.sent();return[4,put({type:"appProgram/setActiveKey",payload:key})];case 2:_state.sent();return[2]}})},closeTab:function closeTab(param,param1){var payload,put,select,key,_payload_type,type,callback,_ref,tabs,activeKey,nActiveKey,closeTabs,nextTab,isCloseSelf,idx,nTabs;return __generator(this,function(_state){switch(_state.label){case 0:payload=param.payload,put=param1.put,select=param1.select;key=payload.key,_payload_type=payload.type,type=_payload_type===void 0?"self":_payload_type,callback=payload.callback;if(!key)return[2];return[4,select(function(store){return store.appProgram},shallowEqual)];case 1:_ref=_state.sent(),tabs=_ref.tabs,activeKey=_ref.activeKey;nActiveKey=activeKey;closeTabs=[];nextTab=null;isCloseSelf=type==="self";idx=tabs.findIndex(function(t){return t.key===key});nTabs=tabs.filter(function(item,i){var notClose=item.closable===false;if(!notClose){notClose=({left:i>=idx,right:i<=idx,other:i===idx,self:key!==item.key})[type]}if(isCloseSelf){if(!notClose){if(key===nActiveKey&&isCloseSelf){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)}return notClose});if(isFunction(callback)){payload.callback(closeTabs,nextTab)}return[4,put({type:"appProgram/setTabs",payload:nTabs})];case 2:_state.sent();return[4,put({type:"appProgram/setActiveKey",payload:nActiveKey})];case 3:_state.sent();return[2]}})}}};export default model;
|
|
2
|
-
//# sourceMappingURL=app-program.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/packages/back-stage/models/app-program.ts"],"sourcesContent":["import { type ReactNode } from 'react';\nimport { isEqual, isFunction } from '@moneko/common';\nimport { type ModelAction, type ModelEffect, type Model, shallowEqual } from 'mini-idc';\nimport type { RouterProps } from '../../../router';\n\nexport interface ItemTypes extends RouterProps {\n key: string;\n path?: string;\n type?: string;\n label?: ReactNode | null;\n children?: ItemTypes[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\nconst getItems = (arr: ItemTypes[]): ItemTypes[] => {\n return arr\n .map((item) => {\n const { children, ...args } = item;\n const _item = { ...args, label: args.i18n };\n\n if (Array.isArray(children) && children.length) {\n Object.assign(_item, {\n children: getItems(children),\n });\n }\n return _item;\n })\n .filter((m) => !m.hideMenu);\n};\nconst getMenuKV = (arr: ItemTypes[], obj: Record<string, ItemTypes>): void => {\n arr.forEach((item) => {\n const { children, ...args } = item;\n\n Object.assign(obj, {\n [item.key]: args,\n });\n if (Array.isArray(children) && children.length) {\n getMenuKV(children, obj);\n }\n });\n};\n\nexport interface AppProgramModel {\n menu: ItemTypes[];\n menuKV: Record<string, ItemTypes>;\n activeKey?: string;\n tabs: TabProps[];\n}\nexport interface TabProps extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n}\ntype RemoveTabType = 'left' | 'right' | 'other' | 'self';\n\nconst model: Model<AppProgramModel> = {\n namespace: 'appProgram',\n state: {\n menu: [],\n menuKV: {},\n tabs: [],\n activeKey: 'home',\n },\n reducers: {\n setMenu: (state, { payload = [] }) => {\n const items = getItems(payload),\n im: Record<string, ItemTypes> = {};\n\n getMenuKV(items, im);\n return {\n ...state,\n menu: items,\n menuKV: im,\n };\n },\n setTabs: (state, action) => {\n return {\n ...state,\n tabs: action.payload,\n };\n },\n addTab: (state, { payload }) => {\n const { tabs, menuKV } = state;\n const current = menuKV[payload.key];\n\n if (current && !tabs.find((item: TabProps) => item.key === payload.key)) {\n const ntabs = [\n ...tabs,\n {\n ...current,\n i18n: current.i18n || `route-${current.key}`,\n ...payload,\n },\n ];\n\n if (!isEqual(ntabs, tabs)) {\n return {\n ...state,\n tabs: ntabs,\n };\n }\n }\n\n return state;\n },\n setActiveKey: (state, action) => {\n return {\n ...state,\n activeKey: action.payload,\n };\n },\n },\n effects: {\n *openTab(\n { payload }: Partial<ModelAction>,\n { put }: ModelEffect\n ): Generator<unknown, void, TabProps[]> {\n const { key, dynamicTitle = '' } = payload;\n\n yield put({\n type: 'appProgram/addTab',\n payload: {\n key,\n dynamicTitle,\n },\n });\n yield put({\n type: 'appProgram/setActiveKey',\n payload: key,\n });\n },\n *closeTab(\n { payload }: Partial<ModelAction>,\n { put, select }: ModelEffect\n ): Generator<unknown, void, AppProgramModel> {\n const { key, type = 'self', callback } = payload;\n\n if (!key) return;\n\n const { tabs, activeKey } = yield select((store: AppStore) => store.appProgram, shallowEqual);\n\n let nActiveKey = activeKey;\n const closeTabs: TabProps[] = [];\n let nextTab: TabProps | null = null;\n // 关闭当前tab\n const isCloseSelf = type === 'self';\n const idx = tabs.findIndex((t) => t.key === key);\n const nTabs = tabs.filter((item, i) => {\n let notClose = item.closable === false;\n\n if (!notClose) {\n notClose = {\n left: i >= idx,\n right: i <= idx,\n other: i === idx,\n self: key !== item.key,\n }[type as RemoveTabType];\n }\n\n if (isCloseSelf) {\n if (!notClose) {\n if (key === nActiveKey && isCloseSelf) {\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 return notClose;\n });\n\n if (isFunction(callback)) {\n payload.callback(closeTabs, nextTab);\n }\n\n yield put({\n type: 'appProgram/setTabs',\n payload: nTabs,\n });\n yield put({\n type: 'appProgram/setActiveKey',\n payload: nActiveKey,\n });\n },\n },\n};\n\nexport default model;\n"],"names":["isEqual","isFunction","shallowEqual","getItems","arr","map","item","children","args","_item","label","i18n","Array","isArray","length","Object","assign","filter","m","hideMenu","getMenuKV","obj","forEach","key","model","namespace","state","menu","menuKV","tabs","activeKey","reducers","setMenu","payload","items","im","setTabs","action","addTab","current","find","ntabs","setActiveKey","effects","openTab","put","dynamicTitle","type","closeTab","select","callback","nActiveKey","closeTabs","nextTab","isCloseSelf","idx","nTabs","store","appProgram","findIndex","t","i","notClose","closable","left","right","other","self","adx","push"],"mappings":"+nIACA,QAASA,OAAO,CAAEC,UAAU,KAAQ,gBAAiB,AACrD,QAAyDC,YAAY,KAAQ,UAAW,CAaxF,IAAMC,SAAW,SAACC,IAAkC,CAClD,OAAOA,IACJC,GAAG,CAAC,SAACC,KAAS,CACb,IAAM,AAAEC,SAAsBD,KAAtBC,SAAaC,8BAASF,MAAtBC,aACR,IAAME,MAAQ,oCAAKD,OAAME,MAAOF,KAAKG,IAAI,GAEzC,GAAIC,MAAMC,OAAO,CAACN,WAAaA,SAASO,MAAM,CAAE,CAC9CC,OAAOC,MAAM,CAACP,MAAO,CACnBF,SAAUJ,SAASI,SACrB,EACF,CAAC,AACD,OAAOE,KACT,GACCQ,MAAM,CAAC,SAACC,SAAM,CAACA,EAAEC,QAAQ,EAC9B,EACA,IAAMC,UAAY,SAAChB,IAAkBiB,IAAyC,CAC5EjB,IAAIkB,OAAO,CAAC,SAAChB,KAAS,CACpB,IAAM,AAAEC,SAAsBD,KAAtBC,SAAaC,8BAASF,MAAtBC,aAERQ,OAAOC,MAAM,CAACK,IACZ,mBAACf,KAAKiB,GAAG,CAAGf,OAEd,GAAII,MAAMC,OAAO,CAACN,WAAaA,SAASO,MAAM,CAAE,CAC9CM,UAAUb,SAAUc,IACtB,CAAC,AACH,EACF,EAgBA,IAAMG,MAAgC,CACpCC,UAAW,aACXC,MAAO,CACLC,KAAM,EAAE,CACRC,OAAQ,CAAC,EACTC,KAAM,EAAE,CACRC,UAAW,MACb,EACAC,SAAU,CACRC,QAAS,SAACN,YAA4B,0BAAnBO,QAAAA,gCAAU,EAAE,gBAC7B,IAAMC,MAAQ/B,SAAS8B,SACrBE,GAAgC,CAAC,EAEnCf,UAAUc,MAAOC,IACjB,OAAO,oCACFT,QACHC,KAAMO,MACNN,OAAQO,IAEZ,EACAC,QAAS,SAACV,MAAOW,OAAW,CAC1B,OAAO,oCACFX,QACHG,KAAMQ,OAAOJ,OAAO,EAExB,EACAK,OAAQ,SAACZ,YAAuB,KAAdO,cAAAA,QAChB,IAAQJ,KAAiBH,MAAjBG,KAAMD,OAAWF,MAAXE,OACd,IAAMW,QAAUX,MAAM,CAACK,QAAQV,GAAG,CAAC,CAEnC,GAAIgB,SAAW,CAACV,KAAKW,IAAI,CAAC,SAAClC,aAAmBA,KAAKiB,GAAG,GAAKU,QAAQV,GAAG,GAAG,CACvE,IAAMkB,MAAQ,AACZ,mBAAGZ,aADS,CAEZ,kDACKU,UACH5B,KAAM4B,QAAQ5B,IAAI,EAAI,AAAC,SAAoB,OAAZ4B,QAAQhB,GAAG,IACvCU,SAEN,EAED,GAAI,CAACjC,QAAQyC,MAAOZ,MAAO,CACzB,OAAO,oCACFH,QACHG,KAAMY,OAEV,CAAC,AACH,CAAC,AAED,OAAOf,KACT,EACAgB,aAAc,SAAChB,MAAOW,OAAW,CAC/B,OAAO,oCACFX,QACHI,UAAWO,OAAOJ,OAAO,EAE7B,CACF,EACAU,QAAS,CACNC,QAAD,SAACA,QACC,KAAiC,CACjC,MAAoB,CACkB,KAFpCX,QACAY,IAEMtB,0BAAKuB,kFAHXb,QAAF,MAAEA,QACAY,IAAF,OAAEA,IAEMtB,IAA2BU,QAA3BV,0BAA2BU,QAAtBa,aAAAA,4CAAe,yBAE5B,SAAMD,IAAI,CACRE,KAAM,oBACNd,QAAS,CACPV,IAAAA,IACAuB,aAAAA,YACF,CACF,WANA,cAOA,SAAMD,IAAI,CACRE,KAAM,0BACNd,QAASV,GACX,WAHA,0BAIF,EACCyB,SAAD,SAACA,SACC,KAAiC,CACjC,MAA4B,CACe,KAFzCf,QACAY,IAAKI,OAEC1B,kBAAKwB,KAAeG,SAIA,KAApBrB,KAAMC,UAEVqB,WACEC,UACFC,QAEEC,YACAC,IACAC,2EAfJvB,QAAF,MAAEA,QACAY,IAAF,OAAEA,IAAKI,OAAP,OAAOA,OAEC1B,IAAiCU,QAAjCV,kBAAiCU,QAA5Bc,KAAAA,4BAAO,qBAAQG,SAAajB,QAAbiB,SAE5B,GAAI,CAAC3B,IAAK,SAAO,CAEW,SAAM0B,OAAO,SAACQ,cAAoBA,MAAMC,UAAU,EAAExD,sBAApD,KAAA,cAApB2B,KAAoB,KAApBA,KAAMC,UAAc,KAAdA,UAEVqB,WAAarB,UACXsB,aACFC,QAA2B,IAAI,CAE7BC,YAAcP,OAAS,OACvBQ,IAAM1B,KAAK8B,SAAS,CAAC,SAACC,UAAMA,EAAErC,GAAG,GAAKA,MACtCiC,MAAQ3B,KAAKZ,MAAM,CAAC,SAACX,KAAMuD,EAAM,CACrC,IAAIC,SAAWxD,KAAKyD,QAAQ,GAAK,KAAK,CAEtC,GAAI,CAACD,SAAU,CACbA,SAAW,CAAA,CACTE,KAAMH,GAAKN,IACXU,MAAOJ,GAAKN,IACZW,MAAOL,IAAMN,IACbY,KAAM5C,MAAQjB,KAAKiB,GAAG,AACxB,CAAA,CAAC,CAACwB,KAAsB,AAC1B,CAAC,AAED,GAAIO,YAAa,CACf,GAAI,CAACQ,SAAU,CACb,GAAIvC,MAAQ4B,YAAcG,YAAa,CACrC,IAAMc,IAAqBP,EAAIA,EAAI,EAAIA,EAAI,CAAC,CAE5C,GAAIhC,IAAI,CAACuC,IAAI,CAAE,CACbjB,WAAatB,IAAI,CAACuC,IAAI,CAAC7C,GAAG,CAC1B8B,QAAUxB,IAAI,CAACuC,IAAI,AACrB,CAAC,AACH,CAAC,AACH,CAAC,AACH,MAAO,GAAIN,UAAYxD,KAAKiB,GAAG,GAAKA,KAAO4B,aAAe5B,IAAK,CAC7D4B,WAAa5B,IACb8B,QAAUxB,IAAI,CAACgC,EAAE,AACnB,CAAC,AACD,GAAI,CAACC,SAAU,CACbV,UAAUiB,IAAI,CAAC/D,KACjB,CAAC,AACD,OAAOwD,QACT,GAEA,GAAI7D,WAAWiD,UAAW,CACxBjB,QAAQiB,QAAQ,CAACE,UAAWC,QAC9B,CAAC,AAED,SAAMR,IAAI,CACRE,KAAM,qBACNd,QAASuB,KACX,WAHA,cAIA,SAAMX,IAAI,CACRE,KAAM,0BACNd,QAASkB,UACX,WAHA,0BAIF,CACF,CACF,CAEA,gBAAe3B,KAAM"}
|
package/lib/prefix/mini-idc.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from 'mini-idc';
|
package/lib/prefix/mini-idc.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/prefix/mini-idc.js"],"sourcesContent":["module.exports = hasModels ? require('mini-idc') : {};\n"],"names":["module","exports","hasModels","require"],"mappings":"AAAAA,OAAOC,OAAO,CAAGC,UAAYC,QAAQ,YAAc,CAAC,CAAC"}
|