@moneko/core 2.0.18 → 2.0.19

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/seo.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"seo",{enumerable:true,get:function(){return seo}});var _fs=require("fs");var _path=require("path");var _common=require("./common");var _processEnv=require("./process-env");var _webpackCommon=require("./webpack.common");function getLibDocsPages(dir,domain,basename){var results=[];var list=(0,_fs.readdirSync)(dir);list.forEach(function(_file){if(_file==="static"){return false}var file=dir+"/"+_file;var stat=(0,_fs.statSync)(file);if(stat&&stat.isDirectory()){results=results.concat(getLibDocsPages(file,domain,basename))}else if(file.endsWith("README.mdx")){results.push("https://"+domain+basename+file.replace(_processEnv.PROGRAMPATH+"/components/","").replace("/README.mdx",""))}});return results}var seo=function(){var _ref=_common.CONFIG.seo||{},domain=_ref.domain,nojekyll=_ref.nojekyll;if(!domain){return}var baseDir=(_webpackCommon.outputConfig===null||_webpackCommon.outputConfig===void 0?void 0:_webpackCommon.outputConfig.path)||process.cwd();var call=function(err){if(err){throw err}};(0,_fs.writeFile)((0,_path.join)(baseDir,"CNAME"),domain,"utf-8",call);(0,_fs.writeFile)((0,_path.join)(baseDir,"robots"),"Sitemap: https://".concat(domain).concat(_common.CONFIG.routeBaseName,"sitemap.txt"),"utf-8",call);var sitemap="";switch(_processEnv.APPTYPE){case"library":sitemap=getLibDocsPages((0,_path.join)(_processEnv.PROGRAMPATH,"./components"),domain,_common.CONFIG.routeBaseName).join("\n");break;case"single-component":case"mobile":case"site":case"back-stage":case"single-spa":default:break}(0,_fs.writeFile)((0,_path.join)(baseDir,"sitemap.txt"),sitemap,"utf-8",call);if(nojekyll){(0,_fs.writeFile)((0,_path.join)(baseDir,".nojekyll"),"","utf-8",call)}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"seo",{enumerable:true,get:function(){return seo}});var _fs=require("fs");var _path=require("path");var _common=require("./common");var _processEnv=require("./process-env");var _utils=require("./utils");var _webpackCommon=require("./webpack.common");function getLibDocsPages(dir,domain,basename){var results=[];var list=(0,_fs.readdirSync)(dir);list.forEach(function(_file){if(_file==="static"){return false}var file=dir+"/"+_file;var stat=(0,_fs.statSync)(file);if(stat&&stat.isDirectory()){results=results.concat(getLibDocsPages(file,domain,basename))}else if(file.endsWith("README.mdx")){results.push("https://"+domain+basename+file.replace(_processEnv.PROGRAMPATH+"/components/","").replace("/README.mdx",""))}});return results}var seo=function(){var _ref=_common.CONFIG.seo||{},domain=_ref.domain,nojekyll=_ref.nojekyll,path=_ref.path;if(!domain){return}var baseDir=path&&(0,_utils.resolveProgramPath)(path)||(_webpackCommon.outputConfig===null||_webpackCommon.outputConfig===void 0?void 0:_webpackCommon.outputConfig.path)||process.cwd();var call=function(err){if(err){throw err}};(0,_fs.writeFile)((0,_path.join)(baseDir,"CNAME"),domain,"utf-8",call);(0,_fs.writeFile)((0,_path.join)(baseDir,"robots"),"Sitemap: https://".concat(domain).concat(_common.CONFIG.routeBaseName,"sitemap.txt"),"utf-8",call);var sitemap="";switch(_processEnv.APPTYPE){case"library":sitemap=getLibDocsPages((0,_path.join)(_processEnv.PROGRAMPATH,"./components"),domain,_common.CONFIG.routeBaseName).join("\n");break;case"single-component":case"mobile":case"site":case"back-stage":case"single-spa":default:break}(0,_fs.writeFile)((0,_path.join)(baseDir,"sitemap.txt"),sitemap,"utf-8",call);if(nojekyll){(0,_fs.writeFile)((0,_path.join)(baseDir,".nojekyll"),"","utf-8",call)}};
@@ -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,{outputConfig:function(){return outputConfig},default:function(){return _default}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _addAssetHtmlWebpackPlugin=_interopRequireDefault(require("add-asset-html-webpack-plugin"));var _htmlWebpackPlugin=_interopRequireDefault(require("html-webpack-plugin"));var _webpack=require("webpack");var _webpackbar=_interopRequireDefault(require("webpackbar"));var _common=require("./common");var _done=_interopRequireDefault(require("./done"));var _envFlags=_interopRequireDefault(require("./envFlags"));var _htmlAddEntryAttr=_interopRequireDefault(require("./html-add-entry-attr"));var _htmlPluginOption=_interopRequireDefault(require("./html-plugin-option"));var _moduleFederation=require("./module-federation");var _moduleConfig=_interopRequireDefault(require("./module.config"));var _processEnv=require("./process-env");var _seo=require("./seo");var _utils=require("./utils");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 _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default: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 _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 eslintrc=[".eslintrc.js",".eslintrc.json",".eslintrc.yaml",".eslintrc.json"];var stylelintrc=[".stylelintrc",".stylelintrc.json",".stylelintrc.yaml",".stylelintrc.yml",".stylelintrc.js","stylelint.config.js","stylelint.config.cjs"];var rootFiles=_fs.default.readdirSync(_processEnv.PROGRAMPATH);var hasEslint=false,hasStylelint=false;for(var i=0,len=rootFiles.length;i<len;i++){if(stylelintrc.includes(rootFiles[i])){hasStylelint=true}if(eslintrc.includes(rootFiles[i])){hasEslint=true}}if(!hasEslint){hasEslint=_processEnv.hasEslintConfig}if(!hasStylelint){hasStylelint=_processEnv.hasStylelintConfig}var StylelintPlugin=hasStylelint?require("stylelint-webpack-plugin"):null;var ESLintPlugin=hasEslint?require("eslint-webpack-plugin"):null;var alias={"@":(0,_utils.resolveProgramPath)("src")};Object.assign(alias,_common.CONFIG.alias);if(_processEnv.APPTYPE==="library"){Object.assign(alias,_defineProperty({"@":(0,_utils.resolveProgramPath)("site"),"@pkg":(0,_utils.resolveProgramPath)("components")},_processEnv.PACKAGENAME,(0,_utils.resolveProgramPath)("components")))}var assetHtmlOption=_common.CONFIG.assetHtml.map(function(item){return _objectSpread({publicPath:""},item)});var outputConfig={path:(0,_utils.resolveProgramPath)(_processEnv.APPTYPE==="library"?"docs":"dist"),filename:"js/[name].bundle.js",chunkFilename:"js/[name].chunk.js",assetModuleFilename:"assets/[name].[hash][ext]",library:_processEnv.PACKAGENAME,libraryTarget:"window",globalObject:"window",chunkLoadingGlobal:"webpackJsonp_".concat(_processEnv.PACKAGENAME),pathinfo:false,clean:true,publicPath:_common.PUBLICPATH};var mainEntry=_path.default.join(__dirname,"../lib/packages/".concat(_common.ENTRYPATH[_processEnv.APPTYPE],"/index.js"));if(_processEnv.APPTYPE==="single-component"){Object.assign(alias,_defineProperty({},_processEnv.PACKAGENAME,(0,_utils.resolveProgramPath)("umd")));mainEntry=(0,_utils.resolveProgramPath)(_processEnv.DEV?"example/index.ts":"src/index.ts");outputConfig.path=(0,_utils.resolveProgramPath)(_processEnv.DEV?"dist":"umd");outputConfig.filename="index.js";outputConfig.library=_processEnv.PACKAGENAME;outputConfig.libraryTarget="umd";outputConfig.libraryExport="default"}var entryMap={main:mainEntry};if(_common.CONFIG.entry){if(typeof _common.CONFIG.entry==="string"){entryMap=_common.CONFIG.entry}else if(Object.keys(_common.CONFIG.entry)){Object.assign(entryMap,_common.CONFIG.entry)}}if(_common.CONFIG.output){if(typeof _common.CONFIG.output==="string"){outputConfig.path=_common.CONFIG.output}else if(Object.keys(_common.CONFIG.output)){Object.assign(outputConfig,_common.CONFIG.output)}}var dirDeep=_common.CONFIG.routeBaseName.split("/").filter(Boolean).length;var page404=Array(dirDeep).fill("..").join("/")+(dirDeep?"/":"")+"404.html";var config={entry:entryMap,stats:"errors-only",infrastructureLogging:{level:"none"},target:"web",plugins:[new _webpack.AutomaticPrefetchPlugin].concat(_toConsumableArray(_moduleFederation.moduleFederation),[ESLintPlugin&&new ESLintPlugin({threads:true,extensions:["js","md","mdx","cjs","ejs","mjs","jsx","ts","tsx","json","html","coffee","vue"]}),StylelintPlugin&&new StylelintPlugin({fix:true,threads:true,extensions:["css","scss","sass","less","ts","tsx","js","jsx"],exclude:["node_modules/","es/","lib/","docs/","coverage/","dist/"]}),new _htmlWebpackPlugin.default(_htmlPluginOption.default),_common.CONFIG.fixBrowserRouter&&new _htmlWebpackPlugin.default({filename:page404,inject:false,templateContent:function(){return"<html html><head><title>".concat(_htmlPluginOption.default.title,"</title><script>var pathSegmentsToKeep = 1;var l = window.location;l.replace(l.protocol + '//' + l.hostname + (l.port ? ':' + l.port : '') + l.pathname.split('/').slice(0, 1 + pathSegmentsToKeep).join('/') + '/?/' + l.pathname.slice(1).split('/').slice(pathSegmentsToKeep).join('/').replace(/&/g, '~and~') + (l.search ? '&' + l.search.slice(1).replace(/&/g, '~and~') : '') + l.hash);</script></head><body></body></html>")}}),new _addAssetHtmlWebpackPlugin.default(assetHtmlOption),_processEnv.APPTYPE==="single-spa"&&new _htmlAddEntryAttr.default(function(src){return!!(src.match(/main\.(.*)\.bundle.js$/)||src.match("main.bundle.js"))}),new _webpack.DefinePlugin(_envFlags.default),new _webpack.WatchIgnorePlugin({paths:[/\.d\.ts$/]}),_common.CONFIG.sourceMap&&new _webpack.SourceMapDevToolPlugin(_common.CONFIG.sourceMap),new _webpackbar.default({name:"编译中",color:"#6f42c1"}),new _done.default({done:function(){var _CONFIG_done;if(!_processEnv.DEV&&_common.CONFIG.seo){(0,_seo.seo)()}(_CONFIG_done=_common.CONFIG.done)===null||_CONFIG_done===void 0?void 0:_CONFIG_done.call(_common.CONFIG)}})],_toConsumableArray(_common.CONFIG.plugins)).filter(Boolean),experiments:{topLevelAwait:true,syncWebAssembly:true,asyncWebAssembly:true},resolve:{extensions:[".tsx",".ts",".js",".jsx"],alias:alias,fallback:{path:false,fs:false,crypto:false,assert:false}},module:_moduleConfig.default,externals:_common.CONFIG.externals,output:outputConfig};var _default=config;
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,{outputConfig:function(){return outputConfig},default:function(){return _default}});var _fs=_interopRequireDefault(require("fs"));var _path=require("path");var _addAssetHtmlWebpackPlugin=_interopRequireDefault(require("add-asset-html-webpack-plugin"));var _htmlWebpackPlugin=_interopRequireDefault(require("html-webpack-plugin"));var _webpack=require("webpack");var _webpackbar=_interopRequireDefault(require("webpackbar"));var _common=require("./common");var _done=_interopRequireDefault(require("./done"));var _envFlags=_interopRequireDefault(require("./envFlags"));var _htmlAddEntryAttr=_interopRequireDefault(require("./html-add-entry-attr"));var _htmlPluginOption=_interopRequireDefault(require("./html-plugin-option"));var _moduleFederation=require("./module-federation");var _moduleConfig=_interopRequireDefault(require("./module.config"));var _processEnv=require("./process-env");var _seo=require("./seo");var _utils=require("./utils");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 _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default: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 _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 eslintrc=[".eslintrc.js",".eslintrc.json",".eslintrc.yaml",".eslintrc.json"];var stylelintrc=[".stylelintrc",".stylelintrc.json",".stylelintrc.yaml",".stylelintrc.yml",".stylelintrc.js","stylelint.config.js","stylelint.config.cjs"];var rootFiles=_fs.default.readdirSync(_processEnv.PROGRAMPATH);var hasEslint=false,hasStylelint=false;for(var i=0,len=rootFiles.length;i<len;i++){if(stylelintrc.includes(rootFiles[i])){hasStylelint=true}if(eslintrc.includes(rootFiles[i])){hasEslint=true}}if(!hasEslint){hasEslint=_processEnv.hasEslintConfig}if(!hasStylelint){hasStylelint=_processEnv.hasStylelintConfig}var StylelintPlugin=hasStylelint?require("stylelint-webpack-plugin"):null;var ESLintPlugin=hasEslint?require("eslint-webpack-plugin"):null;var alias={"@":(0,_utils.resolveProgramPath)("src")};Object.assign(alias,_common.CONFIG.alias);if(_processEnv.APPTYPE==="library"){Object.assign(alias,_defineProperty({"@":(0,_utils.resolveProgramPath)("site"),"@pkg":(0,_utils.resolveProgramPath)("components")},_processEnv.PACKAGENAME,(0,_utils.resolveProgramPath)("components")))}var assetHtmlOption=_common.CONFIG.assetHtml.map(function(item){return _objectSpread({publicPath:""},item)});var outputConfig={path:(0,_utils.resolveProgramPath)(_processEnv.APPTYPE==="library"?"docs":"dist"),filename:"js/[name].bundle.js",chunkFilename:"js/[name].chunk.js",assetModuleFilename:"assets/[name].[hash][ext]",library:_processEnv.PACKAGENAME,libraryTarget:"window",globalObject:"window",chunkLoadingGlobal:"webpackJsonp_".concat(_processEnv.PACKAGENAME),pathinfo:false,clean:true,publicPath:_common.PUBLICPATH};var mainEntry=(0,_path.join)(__dirname,"../lib/packages/".concat(_common.ENTRYPATH[_processEnv.APPTYPE],"/index.js"));if(_processEnv.APPTYPE==="single-component"){Object.assign(alias,_defineProperty({},_processEnv.PACKAGENAME,(0,_utils.resolveProgramPath)("umd")));mainEntry=(0,_utils.resolveProgramPath)(_processEnv.DEV?"example/index.ts":"src/index.ts");outputConfig.path=(0,_utils.resolveProgramPath)(_processEnv.DEV?"dist":"umd");outputConfig.filename="index.js";outputConfig.library=_processEnv.PACKAGENAME;outputConfig.libraryTarget="umd";outputConfig.libraryExport="default"}var entryMap={main:mainEntry};if(_common.CONFIG.entry){if(typeof _common.CONFIG.entry==="string"){entryMap=_common.CONFIG.entry}else if(Object.keys(_common.CONFIG.entry)){Object.assign(entryMap,_common.CONFIG.entry)}}if(_common.CONFIG.output){if(typeof _common.CONFIG.output==="string"){outputConfig.path=_common.CONFIG.output}else if(Object.keys(_common.CONFIG.output)){Object.assign(outputConfig,_common.CONFIG.output)}}var dirDeep=_common.CONFIG.routeBaseName.split("/").filter(Boolean).length;var page404=Array(dirDeep).fill("..").join("/")+(dirDeep?"/":"")+"404.html";var _ref=_common.CONFIG.fixBrowserRouter||{},_ref_pathSegmentsToKeep=_ref.pathSegmentsToKeep,pathSegmentsToKeep=_ref_pathSegmentsToKeep===void 0?dirDeep:_ref_pathSegmentsToKeep,_ref_path=_ref.path,path=_ref_path===void 0?page404:_ref_path;var config={entry:entryMap,stats:"errors-only",infrastructureLogging:{level:"none"},target:"web",plugins:[new _webpack.AutomaticPrefetchPlugin].concat(_toConsumableArray(_moduleFederation.moduleFederation),[ESLintPlugin&&new ESLintPlugin({threads:true,extensions:["js","md","mdx","cjs","ejs","mjs","jsx","ts","tsx","json","html","coffee","vue"]}),StylelintPlugin&&new StylelintPlugin({fix:true,threads:true,extensions:["css","scss","sass","less","ts","tsx","js","jsx"],exclude:["node_modules/","es/","lib/","docs/","coverage/","dist/"]}),new _htmlWebpackPlugin.default(_htmlPluginOption.default),_common.CONFIG.fixBrowserRouter&&new _htmlWebpackPlugin.default({filename:path,inject:false,templateContent:function(){return"<html html><head><title>".concat(_htmlPluginOption.default.title,"</title><script>var pathSegmentsToKeep = ").concat(pathSegmentsToKeep||dirDeep,";var l = window.location;l.replace(l.protocol + '//' + l.hostname + (l.port ? ':' + l.port : '') + l.pathname.split('/').slice(0, 1 + pathSegmentsToKeep).join('/') + '/?/' + l.pathname.slice(1).split('/').slice(pathSegmentsToKeep).join('/').replace(/&/g, '~and~') + (l.search ? '&' + l.search.slice(1).replace(/&/g, '~and~') : '') + l.hash);</script></head><body></body></html>")}}),new _addAssetHtmlWebpackPlugin.default(assetHtmlOption),_processEnv.APPTYPE==="single-spa"&&new _htmlAddEntryAttr.default(function(src){return!!(src.match(/main\.(.*)\.bundle.js$/)||src.match("main.bundle.js"))}),new _webpack.DefinePlugin(_envFlags.default),new _webpack.WatchIgnorePlugin({paths:[/\.d\.ts$/]}),_common.CONFIG.sourceMap&&new _webpack.SourceMapDevToolPlugin(_common.CONFIG.sourceMap),new _webpackbar.default({name:"编译中",color:"#6f42c1"}),new _done.default({done:function(){var _CONFIG_done;if(!_processEnv.DEV&&_common.CONFIG.seo){(0,_seo.seo)()}(_CONFIG_done=_common.CONFIG.done)===null||_CONFIG_done===void 0?void 0:_CONFIG_done.call(_common.CONFIG)}})],_toConsumableArray(_common.CONFIG.plugins)).filter(Boolean),experiments:{topLevelAwait:true,syncWebAssembly:true,asyncWebAssembly:true},resolve:{extensions:[".tsx",".ts",".js",".jsx"],alias:alias,fallback:{path:false,fs:false,crypto:false,assert:false}},module:_moduleConfig.default,externals:_common.CONFIG.externals,output:outputConfig};var _default=config;
package/lib/index.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  export * from './prefix/react-router-dom.js';
3
3
  export * from './utils';
4
4
  export { pathToRegexp } from 'path-to-regexp';
5
- export { default as sso } from './sso';
5
+ export { default as sso } from 'shared-store-object';
6
6
  export { type LocaleConfig, localizable, type LocaleName } from './localizable';
7
7
  export { matchUtil, router, onlyLoginRouter, myPkgs, myDemoKv, mdxComponents, type ExampleModule, type RouterProps, type MyPkg, } from './router';
8
8
  export { type TabItem, type MenuItem, type CloseTab, menu } from './menu';
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export*from"./prefix/react-router-dom.js";export*from"./utils";export{pathToRegexp}from"path-to-regexp";export{default as sso}from"./sso";export{localizable}from"./localizable";export{matchUtil,router,onlyLoginRouter,myPkgs,myDemoKv,mdxComponents}from"./router";export{menu}from"./menu";export{createRouter,prefixRouter,routerData,RouterFragment}from"./components/app-router";export var LayoutMenu=hasAntd?require("./components/layout-menu").default:null;export var DashboardLayout=hasAntd?require("./packages/back-stage/layout").default:null;export var projectBasicInfo={projectName:projectName,providerConfig:providerConfig,programInfo:programInfo,coverage:projectCoverage};
1
+ export*from"./prefix/react-router-dom.js";export*from"./utils";export{pathToRegexp}from"path-to-regexp";export{default as sso}from"shared-store-object";export{localizable}from"./localizable";export{matchUtil,router,onlyLoginRouter,myPkgs,myDemoKv,mdxComponents}from"./router";export{menu}from"./menu";export{createRouter,prefixRouter,routerData,RouterFragment}from"./components/app-router";export var LayoutMenu=hasAntd?require("./components/layout-menu").default:null;export var DashboardLayout=hasAntd?require("./packages/back-stage/layout").default:null;export var projectBasicInfo={projectName:projectName,providerConfig:providerConfig,programInfo:programInfo,coverage:projectCoverage};
2
2
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport * from './utils';\nexport { pathToRegexp } from 'path-to-regexp';\nexport { default as sso } from './sso';\nexport { type LocaleConfig, localizable, type LocaleName } from './localizable';\nexport {\n matchUtil,\n router,\n onlyLoginRouter,\n myPkgs,\n myDemoKv,\n mdxComponents,\n type ExampleModule,\n type RouterProps,\n type MyPkg,\n} from './router';\nexport { type TabItem, type MenuItem, type CloseTab, menu } from './menu';\nexport type { LayoutMenuProps } from './components/layout-menu';\nexport { createRouter, prefixRouter, routerData, RouterFragment } from './components/app-router';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const LayoutMenu = hasAntd ? require('./components/layout-menu').default : null;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const DashboardLayout = hasAntd ? require('./packages/back-stage/layout').default : null;\nexport type {\n ConfigType,\n AppType,\n CommomType,\n ProgramInfoType,\n MemberTransformer,\n CoverageType,\n TerserOptions,\n MinifierType,\n SourceMapDevToolPluginOptions,\n ProjectCoverageType,\n SharedConfig,\n SwcOptions,\n OptimizationSplitChunksOptions,\n SwcImportOnDemandTransform,\n} from '../typings/global';\nimport type { ConfigType, CommomType, CoverageType, ProjectCoverageType } from '../typings/global';\nexport type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;\nexport type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;\ndeclare const projectCoverage: Record<string, CoverageType & Partial<ProjectCoverageType>>;\n\n/** 一些项目基本信息 */\nexport const projectBasicInfo = {\n projectName,\n providerConfig,\n programInfo,\n coverage: projectCoverage,\n};\n"],"names":["pathToRegexp","default","sso","localizable","matchUtil","router","onlyLoginRouter","myPkgs","myDemoKv","mdxComponents","menu","createRouter","prefixRouter","routerData","RouterFragment","LayoutMenu","hasAntd","require","DashboardLayout","projectBasicInfo","projectName","providerConfig","programInfo","coverage","projectCoverage"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,YAAc,SAAU,AACxB,QAASA,YAAY,KAAQ,gBAAiB,AAC9C,QAASC,WAAWC,GAAG,KAAQ,OAAQ,AACvC,QAA4BC,WAAW,KAAyB,eAAgB,AAChF,QACEC,SAAS,CACTC,MAAM,CACNC,eAAe,CACfC,MAAM,CACNC,QAAQ,CACRC,aAAa,KAIR,UAAW,AAClB,QAAqDC,IAAI,KAAQ,QAAS,AAE1E,QAASC,YAAY,CAAEC,YAAY,CAAEC,UAAU,CAAEC,cAAc,KAAQ,yBAA0B,AAEjG,QAAO,IAAMC,WAAaC,QAAUC,QAAQ,4BAA4BhB,OAAO,CAAG,IAAI,AAAC,AAEvF,QAAO,IAAMiB,gBAAkBF,QAAUC,QAAQ,gCAAgChB,OAAO,CAAG,IAAI,AAAC,AAuBhG,QAAO,IAAMkB,iBAAmB,CAC9BC,YAAAA,YACAC,eAAAA,eACAC,YAAAA,YACAC,SAAUC,eACZ,CAAE"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport * from './utils';\nexport { pathToRegexp } from 'path-to-regexp';\nexport { default as sso } from 'shared-store-object';\nexport { type LocaleConfig, localizable, type LocaleName } from './localizable';\nexport {\n matchUtil,\n router,\n onlyLoginRouter,\n myPkgs,\n myDemoKv,\n mdxComponents,\n type ExampleModule,\n type RouterProps,\n type MyPkg,\n} from './router';\nexport { type TabItem, type MenuItem, type CloseTab, menu } from './menu';\nexport type { LayoutMenuProps } from './components/layout-menu';\nexport { createRouter, prefixRouter, routerData, RouterFragment } from './components/app-router';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const LayoutMenu = hasAntd ? require('./components/layout-menu').default : null;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const DashboardLayout = hasAntd ? require('./packages/back-stage/layout').default : null;\nexport type {\n ConfigType,\n AppType,\n CommomType,\n ProgramInfoType,\n MemberTransformer,\n CoverageType,\n TerserOptions,\n MinifierType,\n SourceMapDevToolPluginOptions,\n ProjectCoverageType,\n SharedConfig,\n SwcOptions,\n OptimizationSplitChunksOptions,\n SwcImportOnDemandTransform,\n} from '../typings/global';\nimport type { ConfigType, CommomType, CoverageType, ProjectCoverageType } from '../typings/global';\nexport type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;\nexport type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;\ndeclare const projectCoverage: Record<string, CoverageType & Partial<ProjectCoverageType>>;\n\n/** 一些项目基本信息 */\nexport const projectBasicInfo = {\n projectName,\n providerConfig,\n programInfo,\n coverage: projectCoverage,\n};\n"],"names":["pathToRegexp","default","sso","localizable","matchUtil","router","onlyLoginRouter","myPkgs","myDemoKv","mdxComponents","menu","createRouter","prefixRouter","routerData","RouterFragment","LayoutMenu","hasAntd","require","DashboardLayout","projectBasicInfo","projectName","providerConfig","programInfo","coverage","projectCoverage"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,YAAc,SAAU,AACxB,QAASA,YAAY,KAAQ,gBAAiB,AAC9C,QAASC,WAAWC,GAAG,KAAQ,qBAAsB,AACrD,QAA4BC,WAAW,KAAyB,eAAgB,AAChF,QACEC,SAAS,CACTC,MAAM,CACNC,eAAe,CACfC,MAAM,CACNC,QAAQ,CACRC,aAAa,KAIR,UAAW,AAClB,QAAqDC,IAAI,KAAQ,QAAS,AAE1E,QAASC,YAAY,CAAEC,YAAY,CAAEC,UAAU,CAAEC,cAAc,KAAQ,yBAA0B,AAEjG,QAAO,IAAMC,WAAaC,QAAUC,QAAQ,4BAA4BhB,OAAO,CAAG,IAAI,AAAC,AAEvF,QAAO,IAAMiB,gBAAkBF,QAAUC,QAAQ,gCAAgChB,OAAO,CAAG,IAAI,AAAC,AAuBhG,QAAO,IAAMkB,iBAAmB,CAC9BC,YAAAA,YACAC,eAAAA,eACAC,YAAAA,YACAC,SAAUC,eACZ,CAAE"}
@@ -1,2 +1,2 @@
1
- var _models_keys,_models_keys_call;import sso from"./sso";var models={keys:function(){return[]}};try{models=hasLocales?require.context("@/locales/",true,/\.(t|j)s$/):{keys:function(){return[]}}}catch(error){console.warn(error)}var resources={};var locales=[];(_models_keys=models.keys)===null||_models_keys===void 0?void 0:(_models_keys_call=_models_keys.call(models))===null||_models_keys_call===void 0?void 0:_models_keys_call.map(function(path,i){var item=models(path).default;if(item&&Object.prototype.toString.call(item)==="[object Object]"){var _item_language=item.language,language=_item_language===void 0?path.replace(/(.*\/)*([^.]+).*/gi,"$2"):_item_language,_item_title=item.title,title=_item_title===void 0?language:_item_title,icon=item.icon,_item_translation=item.translation,translation=_item_translation===void 0?{}:_item_translation;if(i===0){locales.splice(0)}locales.push({language:language,title:title,icon:icon});resources[language]={language:language,title:title,icon:icon,translation:new Proxy(translation,{get:function get(target,key){return target[key]||key}})}}item=null});var defaultLocale=Object.assign({title:"简体中文",language:"zh_CN",translation:{}},resources.zh_CN);export var localizable=sso({language:"zh_CN",t:defaultLocale.translation,locales:locales,set:function set(lang){var _resources_lang;localizable.language=lang;localizable.t=((_resources_lang=resources[lang])===null||_resources_lang===void 0?void 0:_resources_lang.translation)||defaultLocale.translation}});
1
+ var _models_keys,_models_keys_call;import sso from"shared-store-object";var models={keys:function(){return[]}};try{models=hasLocales?require.context("@/locales/",true,/\.(t|j)s$/):{keys:function(){return[]}}}catch(error){console.warn(error)}var resources={};var locales=[];(_models_keys=models.keys)===null||_models_keys===void 0?void 0:(_models_keys_call=_models_keys.call(models))===null||_models_keys_call===void 0?void 0:_models_keys_call.map(function(path,i){var item=models(path).default;if(item&&Object.prototype.toString.call(item)==="[object Object]"){var _item_language=item.language,language=_item_language===void 0?path.replace(/(.*\/)*([^.]+).*/gi,"$2"):_item_language,_item_title=item.title,title=_item_title===void 0?language:_item_title,icon=item.icon,_item_translation=item.translation,translation=_item_translation===void 0?{}:_item_translation;if(i===0){locales.splice(0)}locales.push({language:language,title:title,icon:icon});resources[language]={language:language,title:title,icon:icon,translation:new Proxy(translation,{get:function get(target,key){return target[key]||key}})}}item=null});var defaultLocale=Object.assign({title:"简体中文",language:"zh_CN",translation:{}},resources.zh_CN);export var localizable=sso({language:"zh_CN",t:defaultLocale.translation,locales:locales,set:function set(lang){var _resources_lang;localizable.language=lang;localizable.t=((_resources_lang=resources[lang])===null||_resources_lang===void 0?void 0:_resources_lang.translation)||defaultLocale.translation}});
2
2
  //# sourceMappingURL=localizable.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/localizable.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport sso from './sso';\n\nexport type LocaleName =\n | 'ar_EG'\n | 'az_AZ'\n | 'bg_BG'\n | 'bn_BD'\n | 'by_BY'\n | 'ca_ES'\n | 'cs_CZ'\n | 'da_DK'\n | 'de_DE'\n | 'el_GR'\n | 'en_GB'\n | 'en_US'\n | 'es_ES'\n | 'et_EE'\n | 'fa_IR'\n | 'fi_FI'\n | 'fr_BE'\n | 'fr_CA'\n | 'fr_FR'\n | 'ga_IE'\n | 'gl_ES'\n | 'he_IL'\n | 'hi_IN'\n | 'hr_HR'\n | 'hu_HU'\n | 'hy_AM'\n | 'id_ID'\n | 'is_IS'\n | 'it_IT'\n | 'ja_JP'\n | 'ka_GE'\n | 'kk_KZ'\n | 'kmr_IQ'\n | 'km_KH'\n | 'kn_IN'\n | 'ko_KR'\n | 'ku_IQ'\n | 'lt_LT'\n | 'lv_LV'\n | 'mk_MK'\n | 'ml_IN'\n | 'mn_MN'\n | 'ms_MY'\n | 'nb_NO'\n | 'ne_NP'\n | 'nl_BE'\n | 'nl_NL'\n | 'pl_PL'\n | 'pt_BR'\n | 'pt_PT'\n | 'ro_RO'\n | 'ru_RU'\n | 'sk_SK'\n | 'sl_SI'\n | 'sr_RS'\n | 'sv_SE'\n | 'ta_IN'\n | 'th_TH'\n | 'tr_TR'\n | 'uk_UA'\n | 'ur_PK'\n | 'vi_VN'\n | 'zh_CN'\n | 'zh_HK'\n | 'zh_TW';\n\nlet models = {\n keys: () => [],\n} as unknown as __WebpackModuleApi.RequireContext;\n\ndeclare const hasLocales: boolean;\n\ntry {\n models = hasLocales // eslint-disable-next-line\n ? require.context('@/locales/', true, /\\.(t|j)s$/) // eslint-disable-next-line\n : ({\n keys: () => [],\n } as unknown as __WebpackModuleApi.RequireContext);\n} catch (error) {\n // eslint-disable-next-line no-console\n console.warn(error);\n}\nexport type LocaleConfig = {\n /** 语言名称 (未设置时使用文件名)*/\n language?: LocaleName;\n /** 描述 */\n title: string;\n /** Icon */\n icon?: ReactNode | string;\n /** 翻译字典 */\n translation: Record<string, string>;\n};\ntype LocaleConfigMap = Record<LocaleName, Locale>;\nconst resources: Partial<LocaleConfigMap> = {};\nconst locales: Pick<Locale, 'language' | 'icon' | 'title'>[] = [];\n\nmodels.keys?.()?.map((path: string, i: number) => {\n let item: LocaleConfigMap[LocaleName] | null = models(path).default;\n\n if (item && Object.prototype.toString.call(item) === '[object Object]') {\n const {\n language = path.replace(/(.*\\/)*([^.]+).*/gi, '$2') as LocaleName,\n title = language,\n icon,\n translation = {},\n } = item;\n\n if (i === 0) {\n locales.splice(0);\n }\n locales.push({\n language,\n title,\n icon,\n });\n resources[language] = {\n language,\n title,\n icon,\n translation: new Proxy(translation, {\n get(target, key) {\n return target[key as string] || key;\n },\n }),\n };\n }\n item = null;\n});\n\ninterface Locale extends LocaleConfig {\n language: LocaleName;\n}\nconst defaultLocale: Locale = Object.assign(\n {\n title: '简体中文',\n language: 'zh_CN',\n translation: {},\n },\n resources.zh_CN\n);\n\nexport const localizable = sso({\n /** 使用的语言 */\n language: 'zh_CN' as LocaleName,\n /** 获取本地化文本 */\n t: defaultLocale.translation,\n /** 本地化支持列表 */\n locales: locales,\n /** 设置使用的语言\n * @param {LocaleName} lang 语言\n * @constructor\n */\n set(lang: LocaleName) {\n localizable.language = lang;\n localizable.t = resources[lang]?.translation || defaultLocale.translation;\n },\n});\n"],"names":["models","sso","keys","hasLocales","require","context","error","console","warn","resources","locales","map","path","i","item","default","Object","prototype","toString","call","language","replace","title","icon","translation","splice","push","Proxy","get","target","key","defaultLocale","assign","zh_CN","localizable","t","set","lang"],"mappings":"IAoGAA,aAAAA,iBAnGA,QAAOC,QAAS,OAAQ,CAqExB,IAAID,OAAS,CACXE,KAAM,iBAAM,EAAE,CAChB,EAIA,GAAI,CACFF,OAASG,WACLC,QAAQC,OAAO,CAAC,aAAc,IAAI,CAAE,aACnC,CACCH,KAAM,iBAAM,EAAE,CAChB,CAAkD,AACxD,CAAE,MAAOI,MAAO,CAEdC,QAAQC,IAAI,CAACF,MACf,CAYA,IAAMG,UAAsC,CAAC,EAC7C,IAAMC,QAAyD,EAAE,AAEjEV,EAAAA,aAAAA,OAAOE,IAAI,UAAXF,sBAAAA,KAAAA,EAAAA,CAAAA,kBAAAA,aAAAA,KAAAA,iBAAAA,2BAAAA,KAAAA,EAAAA,kBAAiBW,IAAI,SAACC,KAAcC,EAAc,CAChD,IAAIC,KAA2Cd,OAAOY,MAAMG,OAAO,CAEnE,GAAID,MAAQE,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACL,QAAU,kBAAmB,CACtE,mBAKIA,KAJFM,SAAAA,iCAAWR,KAAKS,OAAO,CAAC,qBAAsB,iCAI5CP,KAHFQ,MAAAA,2BAAQF,qBACRG,KAEET,KAFFS,uBAEET,KADFU,YAAAA,uCAAc,CAAC,oBAGjB,GAAIX,IAAM,EAAG,CACXH,QAAQe,MAAM,CAAC,EACjB,CAAC,AACDf,QAAQgB,IAAI,CAAC,CACXN,SAAAA,SACAE,MAAAA,MACAC,KAAAA,IACF,EACAd,CAAAA,SAAS,CAACW,SAAS,CAAG,CACpBA,SAAAA,SACAE,MAAAA,MACAC,KAAAA,KACAC,YAAa,IAAIG,MAAMH,YAAa,CAClCI,IAAAA,SAAAA,IAAIC,MAAM,CAAEC,GAAG,CAAE,CACf,OAAOD,MAAM,CAACC,IAAc,EAAIA,GAClC,CACF,EACF,CACF,CAAC,AACDhB,KAAO,IAAI,AACb,GAKA,IAAMiB,cAAwBf,OAAOgB,MAAM,CACzC,CACEV,MAAO,OACPF,SAAU,QACVI,YAAa,CAAC,CAChB,EACAf,UAAUwB,KAAK,CAGjB,QAAO,IAAMC,YAAcjC,IAAI,CAE7BmB,SAAU,QAEVe,EAAGJ,cAAcP,WAAW,CAE5Bd,QAASA,QAKT0B,IAAAA,SAAAA,IAAIC,IAAgB,CAAE,KAEJ5B,eADhByB,CAAAA,YAAYd,QAAQ,CAAGiB,IACvBH,CAAAA,YAAYC,CAAC,CAAG1B,CAAAA,CAAAA,gBAAAA,SAAS,CAAC4B,KAAK,UAAf5B,yBAAAA,KAAAA,EAAAA,gBAAiBe,WAAW,AAAD,GAAKO,cAAcP,WAAW,AAC3E,CACF,EAAG"}
1
+ {"version":3,"sources":["../src/localizable.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport sso from 'shared-store-object';\n\nexport type LocaleName =\n | 'ar_EG'\n | 'az_AZ'\n | 'bg_BG'\n | 'bn_BD'\n | 'by_BY'\n | 'ca_ES'\n | 'cs_CZ'\n | 'da_DK'\n | 'de_DE'\n | 'el_GR'\n | 'en_GB'\n | 'en_US'\n | 'es_ES'\n | 'et_EE'\n | 'fa_IR'\n | 'fi_FI'\n | 'fr_BE'\n | 'fr_CA'\n | 'fr_FR'\n | 'ga_IE'\n | 'gl_ES'\n | 'he_IL'\n | 'hi_IN'\n | 'hr_HR'\n | 'hu_HU'\n | 'hy_AM'\n | 'id_ID'\n | 'is_IS'\n | 'it_IT'\n | 'ja_JP'\n | 'ka_GE'\n | 'kk_KZ'\n | 'kmr_IQ'\n | 'km_KH'\n | 'kn_IN'\n | 'ko_KR'\n | 'ku_IQ'\n | 'lt_LT'\n | 'lv_LV'\n | 'mk_MK'\n | 'ml_IN'\n | 'mn_MN'\n | 'ms_MY'\n | 'nb_NO'\n | 'ne_NP'\n | 'nl_BE'\n | 'nl_NL'\n | 'pl_PL'\n | 'pt_BR'\n | 'pt_PT'\n | 'ro_RO'\n | 'ru_RU'\n | 'sk_SK'\n | 'sl_SI'\n | 'sr_RS'\n | 'sv_SE'\n | 'ta_IN'\n | 'th_TH'\n | 'tr_TR'\n | 'uk_UA'\n | 'ur_PK'\n | 'vi_VN'\n | 'zh_CN'\n | 'zh_HK'\n | 'zh_TW';\n\nlet models = {\n keys: () => [],\n} as unknown as __WebpackModuleApi.RequireContext;\n\ndeclare const hasLocales: boolean;\n\ntry {\n models = hasLocales // eslint-disable-next-line\n ? require.context('@/locales/', true, /\\.(t|j)s$/) // eslint-disable-next-line\n : ({\n keys: () => [],\n } as unknown as __WebpackModuleApi.RequireContext);\n} catch (error) {\n // eslint-disable-next-line no-console\n console.warn(error);\n}\nexport type LocaleConfig = {\n /** 语言名称 (未设置时使用文件名)*/\n language?: LocaleName;\n /** 描述 */\n title: string;\n /** Icon */\n icon?: ReactNode | string;\n /** 翻译字典 */\n translation: Record<string, string>;\n};\ntype LocaleConfigMap = Record<LocaleName, Locale>;\nconst resources: Partial<LocaleConfigMap> = {};\nconst locales: Pick<Locale, 'language' | 'icon' | 'title'>[] = [];\n\nmodels.keys?.()?.map((path: string, i: number) => {\n let item: LocaleConfigMap[LocaleName] | null = models(path).default;\n\n if (item && Object.prototype.toString.call(item) === '[object Object]') {\n const {\n language = path.replace(/(.*\\/)*([^.]+).*/gi, '$2') as LocaleName,\n title = language,\n icon,\n translation = {},\n } = item;\n\n if (i === 0) {\n locales.splice(0);\n }\n locales.push({\n language,\n title,\n icon,\n });\n resources[language] = {\n language,\n title,\n icon,\n translation: new Proxy(translation, {\n get(target, key) {\n return target[key as string] || key;\n },\n }),\n };\n }\n item = null;\n});\n\ninterface Locale extends LocaleConfig {\n language: LocaleName;\n}\nconst defaultLocale: Locale = Object.assign(\n {\n title: '简体中文',\n language: 'zh_CN',\n translation: {},\n },\n resources.zh_CN\n);\n\nexport const localizable = sso({\n /** 使用的语言 */\n language: 'zh_CN' as LocaleName,\n /** 获取本地化文本 */\n t: defaultLocale.translation,\n /** 本地化支持列表 */\n locales: locales,\n /** 设置使用的语言\n * @param {LocaleName} lang 语言\n * @constructor\n */\n set(lang: LocaleName) {\n localizable.language = lang;\n localizable.t = resources[lang]?.translation || defaultLocale.translation;\n },\n});\n"],"names":["models","sso","keys","hasLocales","require","context","error","console","warn","resources","locales","map","path","i","item","default","Object","prototype","toString","call","language","replace","title","icon","translation","splice","push","Proxy","get","target","key","defaultLocale","assign","zh_CN","localizable","t","set","lang"],"mappings":"IAoGAA,aAAAA,iBAnGA,QAAOC,QAAS,qBAAsB,CAqEtC,IAAID,OAAS,CACXE,KAAM,iBAAM,EAAE,CAChB,EAIA,GAAI,CACFF,OAASG,WACLC,QAAQC,OAAO,CAAC,aAAc,IAAI,CAAE,aACnC,CACCH,KAAM,iBAAM,EAAE,CAChB,CAAkD,AACxD,CAAE,MAAOI,MAAO,CAEdC,QAAQC,IAAI,CAACF,MACf,CAYA,IAAMG,UAAsC,CAAC,EAC7C,IAAMC,QAAyD,EAAE,AAEjEV,EAAAA,aAAAA,OAAOE,IAAI,UAAXF,sBAAAA,KAAAA,EAAAA,CAAAA,kBAAAA,aAAAA,KAAAA,iBAAAA,2BAAAA,KAAAA,EAAAA,kBAAiBW,IAAI,SAACC,KAAcC,EAAc,CAChD,IAAIC,KAA2Cd,OAAOY,MAAMG,OAAO,CAEnE,GAAID,MAAQE,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACL,QAAU,kBAAmB,CACtE,mBAKIA,KAJFM,SAAAA,iCAAWR,KAAKS,OAAO,CAAC,qBAAsB,iCAI5CP,KAHFQ,MAAAA,2BAAQF,qBACRG,KAEET,KAFFS,uBAEET,KADFU,YAAAA,uCAAc,CAAC,oBAGjB,GAAIX,IAAM,EAAG,CACXH,QAAQe,MAAM,CAAC,EACjB,CAAC,AACDf,QAAQgB,IAAI,CAAC,CACXN,SAAAA,SACAE,MAAAA,MACAC,KAAAA,IACF,EACAd,CAAAA,SAAS,CAACW,SAAS,CAAG,CACpBA,SAAAA,SACAE,MAAAA,MACAC,KAAAA,KACAC,YAAa,IAAIG,MAAMH,YAAa,CAClCI,IAAAA,SAAAA,IAAIC,MAAM,CAAEC,GAAG,CAAE,CACf,OAAOD,MAAM,CAACC,IAAc,EAAIA,GAClC,CACF,EACF,CACF,CAAC,AACDhB,KAAO,IAAI,AACb,GAKA,IAAMiB,cAAwBf,OAAOgB,MAAM,CACzC,CACEV,MAAO,OACPF,SAAU,QACVI,YAAa,CAAC,CAChB,EACAf,UAAUwB,KAAK,CAGjB,QAAO,IAAMC,YAAcjC,IAAI,CAE7BmB,SAAU,QAEVe,EAAGJ,cAAcP,WAAW,CAE5Bd,QAASA,QAKT0B,IAAAA,SAAAA,IAAIC,IAAgB,CAAE,KAEJ5B,eADhByB,CAAAA,YAAYd,QAAQ,CAAGiB,IACvBH,CAAAA,YAAYC,CAAC,CAAG1B,CAAAA,CAAAA,gBAAAA,SAAS,CAAC4B,KAAK,UAAf5B,yBAAAA,KAAAA,EAAAA,gBAAiBe,WAAW,AAAD,GAAKO,cAAcP,WAAW,AAC3E,CACF,EAAG"}
package/lib/menu.js CHANGED
@@ -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 _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import{isEqual,isFunction}from"@moneko/common";import sso from"./sso";var getItems=function(arr){var result=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(arr.length===0){return result}var _arr_=arr[0],_arr__children=_arr_.children,children=_arr__children===void 0?[]:_arr__children,i18n=_arr_.i18n,label=_arr_.label,hideMenu=_arr_.hideMenu,args=_objectWithoutProperties(_arr_,["children","i18n","label","hideMenu"]);var item=Object.create(null);Object.assign(item,args,{label:i18n||label});if(children.length){item.children=getItems(children)}if(!hideMenu){result.push(item)}return getItems(arr.slice(1),result)};var getMenuKV=function(arr,obj){var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=arr[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _ref=_step.value;var item=_ref;var children=item.children,args=_objectWithoutProperties(item,["children"]);obj[item.key]=args;if(children===null||children===void 0?void 0:children.length){getMenuKV(children,obj)}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}};export var menu=sso({activeKey:"home",menus:[],kv:{},tabs:[],setMenu:function setMenu(data){var items=getItems(data),kv={};getMenuKV(items,kv);menu.menus=items;menu.kv=kv},addTab:function addTab(tab){var current=menu.kv[tab.key];if(current&&!menu.tabs.find(function(item){return item.key===tab.key})){var ntabs=_toConsumableArray(menu.tabs).concat([_objectSpread(_objectSpreadProps(_objectSpread({},current),{i18n:current.i18n||"route-".concat(current.key)}),tab)]);if(!isEqual(ntabs,menu.tabs)){menu.tabs=ntabs}}},openTab:function openTab(tab){menu.addTab(tab);menu.activeKey=tab.key},closeTab:function closeTab(key){var type=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"self",callback=arguments.length>2?arguments[2]:void 0;if(!key)return;var tabs=menu.tabs,activeKey=menu.activeKey;var nActiveKey=activeKey;var closeTabs=[];var nTabs=[];var nextTab=null;var isCloseSelf=type==="self";var idx=tabs.findIndex(function(t){return t.key===key});var isNotClose=function(item,i){return item.closable===false||({left:i>=idx,right:i<=idx,other:i===idx,self:key!==item.key})[type]};for(var i=0;i<tabs.length;i++){var item=tabs[i];var notClose=isNotClose(item,i);if(isCloseSelf){if(!notClose){if(key===nActiveKey){var adx=i?i-1:i+1;if(tabs[adx]){nActiveKey=tabs[adx].key;nextTab=tabs[adx]}}}}else if(notClose&&item.key===key&&nActiveKey!==key){nActiveKey=key;nextTab=tabs[i]}if(!notClose){closeTabs.push(item)}if(notClose){nTabs.push(item)}}menu.tabs=nTabs;menu.activeKey=nActiveKey;if(isFunction(callback)){callback(closeTabs,nextTab);return}}});
1
+ function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import{isEqual,isFunction}from"@moneko/common";import sso from"shared-store-object";var getItems=function(arr){var result=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(arr.length===0){return result}var _arr_=arr[0],_arr__children=_arr_.children,children=_arr__children===void 0?[]:_arr__children,i18n=_arr_.i18n,label=_arr_.label,hideMenu=_arr_.hideMenu,args=_objectWithoutProperties(_arr_,["children","i18n","label","hideMenu"]);var item=Object.create(null);Object.assign(item,args,{label:i18n||label});if(children.length){item.children=getItems(children)}if(!hideMenu){result.push(item)}return getItems(arr.slice(1),result)};var getMenuKV=function(arr,obj){var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=arr[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _ref=_step.value;var item=_ref;var children=item.children,args=_objectWithoutProperties(item,["children"]);obj[item.key]=args;if(children===null||children===void 0?void 0:children.length){getMenuKV(children,obj)}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}};export var menu=sso({activeKey:"home",menus:[],kv:{},tabs:[],setMenu:function setMenu(data){var items=getItems(data),kv={};getMenuKV(items,kv);menu.menus=items;menu.kv=kv},addTab:function addTab(tab){var current=menu.kv[tab.key];if(current&&!menu.tabs.find(function(item){return item.key===tab.key})){var ntabs=_toConsumableArray(menu.tabs).concat([_objectSpread(_objectSpreadProps(_objectSpread({},current),{i18n:current.i18n||"route-".concat(current.key)}),tab)]);if(!isEqual(ntabs,menu.tabs)){menu.tabs=ntabs}}},openTab:function openTab(tab){menu.addTab(tab);menu.activeKey=tab.key},closeTab:function closeTab(key){var type=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"self",callback=arguments.length>2?arguments[2]:void 0;if(!key)return;var tabs=menu.tabs,activeKey=menu.activeKey;var nActiveKey=activeKey;var closeTabs=[];var nTabs=[];var nextTab=null;var isCloseSelf=type==="self";var idx=tabs.findIndex(function(t){return t.key===key});var isNotClose=function(item,i){return item.closable===false||({left:i>=idx,right:i<=idx,other:i===idx,self:key!==item.key})[type]};for(var i=0;i<tabs.length;i++){var item=tabs[i];var notClose=isNotClose(item,i);if(isCloseSelf){if(!notClose){if(key===nActiveKey){var adx=i?i-1:i+1;if(tabs[adx]){nActiveKey=tabs[adx].key;nextTab=tabs[adx]}}}}else if(notClose&&item.key===key&&nActiveKey!==key){nActiveKey=key;nextTab=tabs[i]}if(!notClose){closeTabs.push(item)}if(notClose){nTabs.push(item)}}menu.tabs=nTabs;menu.activeKey=nActiveKey;if(isFunction(callback)){callback(closeTabs,nextTab);return}}});
2
2
  //# sourceMappingURL=menu.js.map
package/lib/menu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/menu.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { isEqual, isFunction } from '@moneko/common';\nimport sso from './sso';\nimport type { RouterProps } from './router';\n\nexport type CloseTab = 'left' | 'right' | 'other' | 'self';\nexport interface TabItem extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n icon?: ReactNode;\n label?: ReactNode;\n dynamicTitle?: string;\n}\nexport interface MenuItem extends RouterProps {\n key: string;\n type?: string;\n label?: ReactNode;\n children?: MenuItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n// eslint-disable-next-line no-unused-vars\ntype ClosedCallback = (closes?: TabItem[], next?: TabItem) => void;\n\nconst getItems = (arr: MenuItem[], result: MenuItem[] = []): MenuItem[] => {\n if (arr.length === 0) {\n return result;\n }\n const { children = [], i18n, label, hideMenu, ...args } = arr[0];\n const item: MenuItem = Object.create(null);\n\n Object.assign(item, args, { label: i18n || label });\n if (children.length) {\n item.children = getItems(children);\n }\n if (!hideMenu) {\n result.push(item);\n }\n return getItems(arr.slice(1), result);\n};\nconst getMenuKV = (arr: MenuItem[], obj: Record<string, MenuItem>): void => {\n for (const item of arr) {\n const { children, ...args } = item;\n\n obj[item.key] = args;\n if (children?.length) {\n getMenuKV(children, obj);\n }\n }\n};\n\nexport const menu = sso({\n /** 当前菜单 */\n activeKey: 'home',\n /** 当前用户可访问的菜单列表 */\n menus: [] as MenuItem[],\n /** 菜单列表的kv数据, 根据menus自动生成 */\n kv: {} as Record<string, MenuItem>,\n /** 选项卡数据 */\n tabs: [] as TabItem[],\n /** 设置菜单列表\n * @param {MenuItem[]} data 菜单数据\n * @constructor\n */\n setMenu(data: MenuItem[]) {\n const items = getItems(data),\n kv: Record<string, MenuItem> = {};\n\n getMenuKV(items, kv);\n menu.menus = items;\n menu.kv = kv;\n },\n /** 添加选项卡\n * @param {TabItem} tab 选项卡\n * @constructor\n */\n addTab(tab: TabItem) {\n const current = menu.kv[tab.key];\n\n if (current && !menu.tabs.find((item) => item.key === tab.key)) {\n const ntabs: TabItem[] = [\n ...menu.tabs,\n {\n ...current,\n i18n: current.i18n || `route-${current.key}`,\n ...tab,\n },\n ];\n\n if (!isEqual(ntabs, menu.tabs)) {\n menu.tabs = ntabs;\n }\n }\n },\n /** 打开选项卡\n * @param {TabItem} tab 选项卡\n * @constructor\n */\n openTab(tab: TabItem) {\n menu.addTab(tab);\n menu.activeKey = tab.key;\n },\n /** 关闭选项卡\n * @param {string} key 选项卡key\n * @param {CloseTab} type 操作类型,如何关闭\n * @param {ClosedCallback} callback 回调函数\n * @constructor\n */\n closeTab(key: string, type: CloseTab = 'self', callback: ClosedCallback) {\n if (!key) return;\n const { tabs, activeKey } = menu;\n let nActiveKey = activeKey;\n const closeTabs: TabItem[] = [];\n const nTabs: TabItem[] = [];\n let nextTab: TabItem | null = null;\n // 关闭当前tab\n const isCloseSelf = type === 'self';\n const idx = tabs.findIndex((t) => t.key === key);\n const isNotClose = (item: TabItem, i: number) => {\n return (\n item.closable === false ||\n {\n left: i >= idx,\n right: i <= idx,\n other: i === idx,\n self: key !== item.key,\n }[type]\n );\n };\n\n for (let i = 0; i < tabs.length; i++) {\n const item = tabs[i];\n const notClose = isNotClose(item, i);\n\n if (isCloseSelf) {\n if (!notClose) {\n if (key === nActiveKey) {\n const adx: number | null = i ? i - 1 : i + 1;\n\n if (tabs[adx]) {\n nActiveKey = tabs[adx].key;\n nextTab = tabs[adx];\n }\n }\n }\n } else if (notClose && item.key === key && nActiveKey !== key) {\n nActiveKey = key;\n nextTab = tabs[i];\n }\n if (!notClose) {\n closeTabs.push(item);\n }\n if (notClose) {\n nTabs.push(item);\n }\n }\n\n menu.tabs = nTabs;\n menu.activeKey = nActiveKey;\n if (isFunction(callback)) {\n callback(closeTabs, nextTab);\n return;\n }\n },\n});\n"],"names":["isEqual","isFunction","sso","getItems","arr","result","length","children","i18n","label","hideMenu","args","item","Object","create","assign","push","slice","getMenuKV","obj","key","menu","activeKey","menus","kv","tabs","setMenu","data","items","addTab","tab","current","find","ntabs","openTab","closeTab","type","callback","nActiveKey","closeTabs","nTabs","nextTab","isCloseSelf","idx","findIndex","t","isNotClose","i","closable","left","right","other","self","notClose","adx"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/menu.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { isEqual, isFunction } from '@moneko/common';\nimport sso from 'shared-store-object';\nimport type { RouterProps } from './router';\n\nexport type CloseTab = 'left' | 'right' | 'other' | 'self';\nexport interface TabItem extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n icon?: ReactNode;\n label?: ReactNode;\n dynamicTitle?: string;\n}\nexport interface MenuItem extends RouterProps {\n key: string;\n type?: string;\n label?: ReactNode;\n children?: MenuItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n// eslint-disable-next-line no-unused-vars\ntype ClosedCallback = (closes?: TabItem[], next?: TabItem) => void;\n\nconst getItems = (arr: MenuItem[], result: MenuItem[] = []): MenuItem[] => {\n if (arr.length === 0) {\n return result;\n }\n const { children = [], i18n, label, hideMenu, ...args } = arr[0];\n const item: MenuItem = Object.create(null);\n\n Object.assign(item, args, { label: i18n || label });\n if (children.length) {\n item.children = getItems(children);\n }\n if (!hideMenu) {\n result.push(item);\n }\n return getItems(arr.slice(1), result);\n};\nconst getMenuKV = (arr: MenuItem[], obj: Record<string, MenuItem>): void => {\n for (const item of arr) {\n const { children, ...args } = item;\n\n obj[item.key] = args;\n if (children?.length) {\n getMenuKV(children, obj);\n }\n }\n};\n\nexport const menu = sso({\n /** 当前菜单 */\n activeKey: 'home',\n /** 当前用户可访问的菜单列表 */\n menus: [] as MenuItem[],\n /** 菜单列表的kv数据, 根据menus自动生成 */\n kv: {} as Record<string, MenuItem>,\n /** 选项卡数据 */\n tabs: [] as TabItem[],\n /** 设置菜单列表\n * @param {MenuItem[]} data 菜单数据\n * @constructor\n */\n setMenu(data: MenuItem[]) {\n const items = getItems(data),\n kv: Record<string, MenuItem> = {};\n\n getMenuKV(items, kv);\n menu.menus = items;\n menu.kv = kv;\n },\n /** 添加选项卡\n * @param {TabItem} tab 选项卡\n * @constructor\n */\n addTab(tab: TabItem) {\n const current = menu.kv[tab.key];\n\n if (current && !menu.tabs.find((item) => item.key === tab.key)) {\n const ntabs: TabItem[] = [\n ...menu.tabs,\n {\n ...current,\n i18n: current.i18n || `route-${current.key}`,\n ...tab,\n },\n ];\n\n if (!isEqual(ntabs, menu.tabs)) {\n menu.tabs = ntabs;\n }\n }\n },\n /** 打开选项卡\n * @param {TabItem} tab 选项卡\n * @constructor\n */\n openTab(tab: TabItem) {\n menu.addTab(tab);\n menu.activeKey = tab.key;\n },\n /** 关闭选项卡\n * @param {string} key 选项卡key\n * @param {CloseTab} type 操作类型,如何关闭\n * @param {ClosedCallback} callback 回调函数\n * @constructor\n */\n closeTab(key: string, type: CloseTab = 'self', callback: ClosedCallback) {\n if (!key) return;\n const { tabs, activeKey } = menu;\n let nActiveKey = activeKey;\n const closeTabs: TabItem[] = [];\n const nTabs: TabItem[] = [];\n let nextTab: TabItem | null = null;\n // 关闭当前tab\n const isCloseSelf = type === 'self';\n const idx = tabs.findIndex((t) => t.key === key);\n const isNotClose = (item: TabItem, i: number) => {\n return (\n item.closable === false ||\n {\n left: i >= idx,\n right: i <= idx,\n other: i === idx,\n self: key !== item.key,\n }[type]\n );\n };\n\n for (let i = 0; i < tabs.length; i++) {\n const item = tabs[i];\n const notClose = isNotClose(item, i);\n\n if (isCloseSelf) {\n if (!notClose) {\n if (key === nActiveKey) {\n const adx: number | null = i ? i - 1 : i + 1;\n\n if (tabs[adx]) {\n nActiveKey = tabs[adx].key;\n nextTab = tabs[adx];\n }\n }\n }\n } else if (notClose && item.key === key && nActiveKey !== key) {\n nActiveKey = key;\n nextTab = tabs[i];\n }\n if (!notClose) {\n closeTabs.push(item);\n }\n if (notClose) {\n nTabs.push(item);\n }\n }\n\n menu.tabs = nTabs;\n menu.activeKey = nActiveKey;\n if (isFunction(callback)) {\n callback(closeTabs, nextTab);\n return;\n }\n },\n});\n"],"names":["isEqual","isFunction","sso","getItems","arr","result","length","children","i18n","label","hideMenu","args","item","Object","create","assign","push","slice","getMenuKV","obj","key","menu","activeKey","menus","kv","tabs","setMenu","data","items","addTab","tab","current","find","ntabs","openTab","closeTab","type","callback","nActiveKey","closeTabs","nTabs","nextTab","isCloseSelf","idx","findIndex","t","isNotClose","i","closable","left","right","other","self","notClose","adx"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import"../../utils/refresh-rem";import"../../styles/normalize.css";import React from"react";import{isFunction}from"@moneko/common";import fastClick from"fastclick";import App from"./app";var appEntry=APPENTRY?require(APPENTRY):null;var SafeReactDOM=require(ReactDOMPath);fastClick.attach(document.body);var version=parseFloat(React.version);var container=document.getElementById("root");var bootstrap=function(){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}if(version>=18){if(programInfo.renderMode==="ssr"){window.rootInstance=SafeReactDOM.hydrateRoot(container,React.createElement(App,null))}else{window.rootInstance=SafeReactDOM.createRoot(container);window.rootInstance.render(React.createElement(App,null))}}else{var render=module.hot?SafeReactDOM.render:SafeReactDOM.hydrate;render(React.createElement(App,null),container)}if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}};window.H5RemoteRuntime={bootstrap:bootstrap};bootstrap();
1
+ import"../../utils/refresh-rem";import"../../styles/normalize.css";import React from"react";import{isFunction}from"@moneko/common";import App from"./app";var appEntry=APPENTRY?require(APPENTRY):null;var SafeReactDOM=require(ReactDOMPath);var version=parseFloat(React.version);var container=document.getElementById("root");var bootstrap=function(){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}if(version>=18){if(programInfo.renderMode==="ssr"){window.rootInstance=SafeReactDOM.hydrateRoot(container,React.createElement(App,null))}else{window.rootInstance=SafeReactDOM.createRoot(container);window.rootInstance.render(React.createElement(App,null))}}else{var render=module.hot?SafeReactDOM.render:SafeReactDOM.hydrate;render(React.createElement(App,null),container)}if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}};window.H5RemoteRuntime={bootstrap:bootstrap};bootstrap();
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/packages/mobile/index.tsx"],"sourcesContent":["import '../../utils/refresh-rem';\nimport '../../styles/normalize.css';\nimport React from 'react';\nimport { isFunction } from '@moneko/common';\nimport fastClick from 'fastclick';\nimport App from './app';\n\nconst appEntry: AppEntryMethods | null = APPENTRY ? require(APPENTRY) : null;\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst SafeReactDOM = require(ReactDOMPath);\n\n(fastClick as unknown as FastClickStatic).attach(document.body);\n\nconst version = parseFloat(React.version);\nconst container = document.getElementById('root') as HTMLElement;\n\nconst bootstrap = () => {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n if (version >= 18) {\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(container, <App />);\n } else {\n window.rootInstance = SafeReactDOM.createRoot(container);\n window.rootInstance.render(<App />);\n }\n } else {\n const render = module.hot ? SafeReactDOM.render : SafeReactDOM.hydrate;\n\n render(<App />, container);\n }\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n};\n\ninterface Window {\n H5RemoteRuntime: {\n bootstrap: () => void;\n };\n}\n\n(window as unknown as Window).H5RemoteRuntime = {\n bootstrap: bootstrap,\n};\n\nbootstrap();\n"],"names":["React","isFunction","fastClick","App","appEntry","APPENTRY","require","SafeReactDOM","ReactDOMPath","attach","document","body","version","parseFloat","container","getElementById","bootstrap","programInfo","renderMode","window","rootInstance","hydrateRoot","createRoot","render","module","hot","hydrate","mount","H5RemoteRuntime"],"mappings":"AAAA,MAAO,yBAA0B,AACjC,OAAO,4BAA6B,AACpC,QAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,gBAAiB,AAC5C,QAAOC,cAAe,WAAY,AAClC,QAAOC,QAAS,OAAQ,CAExB,IAAMC,SAAmCC,SAAWC,QAAQD,UAAY,IAAI,CAG5E,IAAME,aAAeD,QAAQE,cAE7B,AAACN,UAAyCO,MAAM,CAACC,SAASC,IAAI,EAE9D,IAAMC,QAAUC,WAAWb,MAAMY,OAAO,EACxC,IAAME,UAAYJ,SAASK,cAAc,CAAC,QAE1C,IAAMC,UAAY,UAAM,CACtB,GAAIf,WAAWG,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUY,SAAS,EAAG,CACnCZ,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUY,SAAS,EACrB,CAAC,AACD,GAAIJ,SAAW,GAAI,CACjB,GAAIK,YAAYC,UAAU,GAAK,MAAO,CACpCC,OAAOC,YAAY,CAAGb,aAAac,WAAW,CAACP,UAAW,oBAACX,UAC7D,KAAO,CACLgB,OAAOC,YAAY,CAAGb,aAAae,UAAU,CAACR,WAC9CK,OAAOC,YAAY,CAACG,MAAM,CAAC,oBAACpB,UAC9B,CAAC,AACH,KAAO,CACL,IAAMoB,OAASC,OAAOC,GAAG,CAAGlB,aAAagB,MAAM,CAAGhB,aAAamB,OAAO,CAEtEH,OAAO,oBAACpB,UAAQW,UAClB,CAAC,AACD,GAAIb,WAAWG,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUuB,KAAK,EAAG,CAC/BvB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUuB,KAAK,EACjB,CAAC,AACH,CAQA,CAACR,OAA6BS,eAAe,CAAG,CAC9CZ,UAAWA,SACb,EAEAA"}
1
+ {"version":3,"sources":["../../../src/packages/mobile/index.tsx"],"sourcesContent":["import '../../utils/refresh-rem';\nimport '../../styles/normalize.css';\nimport React from 'react';\nimport { isFunction } from '@moneko/common';\nimport App from './app';\n\nconst appEntry: AppEntryMethods | null = APPENTRY ? require(APPENTRY) : null;\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst SafeReactDOM = require(ReactDOMPath);\n\nconst version = parseFloat(React.version);\nconst container = document.getElementById('root') as HTMLElement;\n\nconst bootstrap = () => {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n if (version >= 18) {\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(container, <App />);\n } else {\n window.rootInstance = SafeReactDOM.createRoot(container);\n window.rootInstance.render(<App />);\n }\n } else {\n const render = module.hot ? SafeReactDOM.render : SafeReactDOM.hydrate;\n\n render(<App />, container);\n }\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n};\n\ninterface Window {\n H5RemoteRuntime: {\n bootstrap: () => void;\n };\n}\n\n(window as unknown as Window).H5RemoteRuntime = {\n bootstrap: bootstrap,\n};\n\nbootstrap();\n"],"names":["React","isFunction","App","appEntry","APPENTRY","require","SafeReactDOM","ReactDOMPath","version","parseFloat","container","document","getElementById","bootstrap","programInfo","renderMode","window","rootInstance","hydrateRoot","createRoot","render","module","hot","hydrate","mount","H5RemoteRuntime"],"mappings":"AAAA,MAAO,yBAA0B,AACjC,OAAO,4BAA6B,AACpC,QAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,gBAAiB,AAC5C,QAAOC,QAAS,OAAQ,CAExB,IAAMC,SAAmCC,SAAWC,QAAQD,UAAY,IAAI,CAG5E,IAAME,aAAeD,QAAQE,cAE7B,IAAMC,QAAUC,WAAWT,MAAMQ,OAAO,EACxC,IAAME,UAAYC,SAASC,cAAc,CAAC,QAE1C,IAAMC,UAAY,UAAM,CACtB,GAAIZ,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EAAG,CACnCV,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EACrB,CAAC,AACD,GAAIL,SAAW,GAAI,CACjB,GAAIM,YAAYC,UAAU,GAAK,MAAO,CACpCC,OAAOC,YAAY,CAAGX,aAAaY,WAAW,CAACR,UAAW,oBAACR,UAC7D,KAAO,CACLc,OAAOC,YAAY,CAAGX,aAAaa,UAAU,CAACT,WAC9CM,OAAOC,YAAY,CAACG,MAAM,CAAC,oBAAClB,UAC9B,CAAC,AACH,KAAO,CACL,IAAMkB,OAASC,OAAOC,GAAG,CAAGhB,aAAac,MAAM,CAAGd,aAAaiB,OAAO,CAEtEH,OAAO,oBAAClB,UAAQQ,UAClB,CAAC,AACD,GAAIT,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUqB,KAAK,EAAG,CAC/BrB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUqB,KAAK,EACjB,CAAC,AACH,CAQA,CAACR,OAA6BS,eAAe,CAAG,CAC9CZ,UAAWA,SACb,EAEAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "2.0.18",
3
+ "version": "2.0.19",
4
4
  "description": "core",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -31,7 +31,6 @@
31
31
  "css-minimizer-webpack-plugin": "4.2.2",
32
32
  "css-unicode-loader": "1.0.3",
33
33
  "external-remotes-plugin": "1.0.0",
34
- "fastclick": "1.0.6",
35
34
  "html-webpack-plugin": "5.5.0",
36
35
  "less": "4.1.3",
37
36
  "less-loader": "11.1.0",
@@ -46,6 +45,7 @@
46
45
  "react-router-dom": "6.9.0",
47
46
  "rehype-accessible-emojis": "0.3.2",
48
47
  "rehype-figure": "1.0.1",
48
+ "shared-store-object": "1.0.0",
49
49
  "style-loader": "3.3.1",
50
50
  "style-resources-loader": "1.5.0",
51
51
  "swc-loader": "0.2.3",
@@ -53,7 +53,6 @@
53
53
  "ts-import-plugin": "2.0.0",
54
54
  "ts-loader": "9.4.2",
55
55
  "typescript": "4.9.5",
56
- "use-sync-external-store": "1.2.0",
57
56
  "webpack": "5.76.1",
58
57
  "webpack-bundle-analyzer": "4.8.0",
59
58
  "webpack-cli": "5.0.1",
@@ -69,7 +68,6 @@
69
68
  "@types/react-dom": "^18.0.11",
70
69
  "@types/react-router-dom": "^5.3.3",
71
70
  "@types/shelljs": "^0.8.11",
72
- "@types/use-sync-external-store": "^0.0.3",
73
71
  "@types/webpack-bundle-analyzer": "^4.6.0",
74
72
  "@types/webpack-env": "^1.18.0",
75
73
  "antd": "5.3.1",
@@ -147,14 +147,22 @@ export declare type ConfigType<T = 'tsc'> = {
147
147
  /** 路由模式
148
148
  * @description
149
149
  * 当在不支持 browserRouter 的环境(GitHub pages)使用 browserRouter,
150
- * 则需要添加设置 fixBrowserRouter: true
150
+ * 则需要添加设置 fixBrowserRouter
151
151
  * @default 'browser'
152
152
  * */
153
153
  routerMode: 'hash' | 'browser' | 'memory';
154
154
  /** 在不支持 browserRouter 的环境(GitHub pages)使用 browserRouter
155
- * @default false
156
155
  */
157
- fixBrowserRouter: boolean;
156
+ fixBrowserRouter?:
157
+ | false
158
+ | {
159
+ /** 在不支持 browserRouter 的环境(GitHub pages)使用 browserRouter
160
+ * @default 1
161
+ */
162
+ pathSegmentsToKeep: number;
163
+ /** 文件输出路径 */
164
+ path?: string;
165
+ };
158
166
  /** webpack 插件 */
159
167
  plugins: WebpackPluginInstance[];
160
168
  /** 对生产chunk进行拆分 */
@@ -194,6 +202,8 @@ export declare type ConfigType<T = 'tsc'> = {
194
202
  * @default true
195
203
  **/
196
204
  nojekyll?: boolean;
205
+ /** 文件输出路径 */
206
+ path?: string;
197
207
  }
198
208
  | false;
199
209
  /** 📦 打包完成 */
@@ -1,23 +0,0 @@
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
- /** 创建共享存储对象 Shared Store Object
8
- * @example
9
- * // 创建状态
10
- * const store = sso({ count: 0 });
11
- * // 使用
12
- * console.log(store.count); // 0
13
- * // 修改
14
- * store.count++;
15
- * console.log(store.count); // 1
16
- */
17
- declare const sso: {
18
- <T extends Data>(data: T): Store<T>;
19
- config({ batch }: {
20
- batch: typeof run;
21
- }): void;
22
- };
23
- export default sso;
package/lib/sso/index.js DELETED
@@ -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 _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 sso=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"))}}})};sso.config=function(param){var batch=param.batch;run=batch};export default sso;
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/sso/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\n// eslint-disable-next-line valid-jsdoc\n/** 创建共享存储对象 Shared Store Object\n * @example\n * // 创建状态\n * const store = sso({ count: 0 });\n * // 使用\n * console.log(store.count); // 0\n * // 修改\n * store.count++;\n * console.log(store.count); // 1\n */\nconst sso = <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\nsso.config = ({ batch }: { batch: typeof run }) => {\n run = batch;\n};\n\nexport default sso;\n"],"names":["useSyncExternalStore","__DEV__","process","env","NODE_ENV","__DEV_ERR__","msg","Error","isInMethod","run","fn","sso","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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"}