@moneko/core 1.0.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/common.js +1 -1
- package/build/module.config.js +1 -1
- package/build/webpack.common.js +1 -1
- package/build/webpack.dev.js +1 -1
- package/build/webpack.prod.js +1 -1
- package/lib/packages/back-stage/layout/index.js +1 -1
- package/lib/packages/back-stage/layout/index.js.map +1 -1
- package/lib/packages/back-stage/models/app-program.js +1 -1
- package/lib/packages/back-stage/models/app-program.js.map +1 -1
- package/package.json +9 -9
package/build/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{ENTRYPATH:function(){return ENTRYPATH},log:function(){return log},CONFIG:function(){return CONFIG},PUBLICPATH:function(){return PUBLICPATH}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _readline=_interopRequireDefault(require("readline"));var _isFunction=_interopRequireDefault(require("lodash/isFunction"));var _utils=require("./utils");var _webpackMerge=require("webpack-merge");var _chalk=_interopRequireDefault(require("chalk"));var _processEnv=require("./process-env");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ref;var ENTRYPATH={mobile:"mobile",site:"site","back-stage":"back-stage","single-spa":"single-spa",library:"library"};var includeModule=[_processEnv.pkgName,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{ENTRYPATH:function(){return ENTRYPATH},log:function(){return log},CONFIG:function(){return CONFIG},PUBLICPATH:function(){return PUBLICPATH}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _readline=_interopRequireDefault(require("readline"));var _isFunction=_interopRequireDefault(require("lodash/isFunction"));var _utils=require("./utils");var _webpackMerge=require("webpack-merge");var _chalk=_interopRequireDefault(require("chalk"));var _processEnv=require("./process-env");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ref;var ENTRYPATH={mobile:"mobile",site:"site","back-stage":"back-stage","single-spa":"single-spa",library:"library"};var includeModule=[_processEnv.pkgName,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite"];var defaultConfig={clean:true,mode:"csr",compiler:"swc",entry:{},minifier:{options:{},css:"cssnano"},sourceMap:{filename:"[file].map",publicPath:""},env:{},miniIdc:{programName:"".concat(_processEnv.PACKAGENAME,"-").concat(_processEnv.PACKAGEVERSION,"-program-state"),encrypt:false},routeBaseName:"/",publicPath:"auto",designSize:ENTRYPATH[_processEnv.APPTYPE]==="mobile"?375:1680,fallbackCompPath:null,modifyVars:{},antdThemeVariables:{},prefixCls:"sky",alias:{},layoutSider:{},moduleRules:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:_processEnv.PROGRAMPATH+"/node_modules/.temp_cache",devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:false,compress:false},htmlPluginOption:{template:"./node_modules/".concat(_processEnv.pkgName,"/template/index.html"),favicon:"./node_modules/".concat(_processEnv.pkgName,"/template/favicon.ico")},assetHtml:[],routerMode:"browser",plugins:[],splitChunk:{chunks:"all",minSize:1024,minChunks:1},runtimeChunk:"single",webFontLoader:[],output:_path.default.join(_processEnv.PROGRAMPATH,_processEnv.APPTYPE==="library"?"./docs":"./dist"),moduleFederation:[],rulesInclude:{less:includeModule,css:includeModule,js:includeModule,media:includeModule,fonts:includeModule}};var log=function(msg){_readline.default.cursorTo(process.stdout,0);process.stdout.write(msg)};var customConf=defaultConfig;var configPath=null;var normalConf={};var envConf={};try{configPath=_path.default.join(_processEnv.PROGRAMPATH,"./config/index.ts");_fs.default.accessSync(configPath,_fs.default.constants.R_OK)}catch(error){configPath=null}if(configPath){try{var conf=eval((0,_utils.tfc)(configPath)).default;normalConf=(0,_isFunction.default)(conf)?conf(process):conf}catch(error){process.stdout.write(_chalk.default.red(error))}}if(_processEnv.CUSTOMCONFIG){var customConfigPath=null;try{customConfigPath=_path.default.join(_processEnv.PROGRAMPATH,"./config/".concat(_processEnv.CUSTOMCONFIG,".ts"));_fs.default.accessSync(customConfigPath,_fs.default.constants.R_OK)}catch(error){customConfigPath=null}if(customConfigPath!==null){try{var conf=eval((0,_utils.tfc)(customConfigPath)).default;envConf=(0,_isFunction.default)(conf)?conf(process):conf}catch(error){process.stdout.write(_chalk.default.red(error))}}}customConf=(0,_webpackMerge.merge)(customConf,normalConf,envConf);if(!(customConf===null||customConf===void 0?void 0:(ref=customConf.minifier)===null||ref===void 0?void 0:ref.type)){customConf.minifier.type=customConf.compiler==="swc"?"swc":"terser"}if(customConf.devtool===false)customConf.sourceMap=false;if(customConf.sourceMap===false)customConf.devtool=false;var CONFIG=customConf;var PUBLICPATH=CONFIG.publicPath||"auto";global.NEKOCLICONFIG={CONFIG:CONFIG,log:log};
|
package/build/module.config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _miniCssExtractPlugin=_interopRequireDefault(require("mini-css-extract-plugin"));var _miniSvgDataUri=_interopRequireDefault(require("mini-svg-data-uri"));var _common=require("./common");var _modifyVars=_interopRequireDefault(require("./modifyVars"));var _swcrc=_interopRequireDefault(require("./swcrc"));var _utils=require("./utils");var _hasPkg=require("./has-pkg");var _processEnv=require("./process-env");var _tsloaderConfig=_interopRequireDefault(require("./tsloader.config"));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 _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 _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 ref,ref1,ref2,ref3,ref4;var cssAssetsPublicPath=_common.ENTRYPATH[_processEnv.APPTYPE]==="single-spa"?_common.PUBLICPATH:"../";var styleLoader={loader:_miniCssExtractPlugin.default.loader,options:{publicPath:cssAssetsPublicPath!=="/"?cssAssetsPublicPath:"../"}};var postcssLoader=(0,_hasPkg.hasPkg)("@moneko/postcss")&&{loader:"postcss-loader",options:{postcssOptions:require("@moneko/postcss")}};if(_processEnv.DEV){styleLoader="style-loader"}var customCssModules=(0,_utils.resolveNodeModulesPath)(_toConsumableArray(_common.CONFIG.cssModules).concat([_processEnv.pkgName,"neko-ui"]));var styleResources=_toConsumableArray((0,_utils.resolveNodeModulesPath)(["".concat(_processEnv.pkgName,"/lib/styles/eval/*.less")])).concat(_toConsumableArray((0,_utils.resolveProgramPath)(["src/styles/variables/*.less","src/styles/mixins/*.less","site/styles/variables/*.less","site/styles/mixins/*.less"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _miniCssExtractPlugin=_interopRequireDefault(require("mini-css-extract-plugin"));var _miniSvgDataUri=_interopRequireDefault(require("mini-svg-data-uri"));var _common=require("./common");var _modifyVars=_interopRequireDefault(require("./modifyVars"));var _swcrc=_interopRequireDefault(require("./swcrc"));var _utils=require("./utils");var _hasPkg=require("./has-pkg");var _processEnv=require("./process-env");var _tsloaderConfig=_interopRequireDefault(require("./tsloader.config"));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 _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 _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 ref,ref1,ref2,ref3,ref4;var cssAssetsPublicPath=_common.ENTRYPATH[_processEnv.APPTYPE]==="single-spa"?_common.PUBLICPATH:"../";var styleLoader={loader:_miniCssExtractPlugin.default.loader,options:{publicPath:cssAssetsPublicPath!=="/"?cssAssetsPublicPath:"../"}};var postcssLoader=(0,_hasPkg.hasPkg)("@moneko/postcss")&&{loader:"postcss-loader",options:{postcssOptions:require("@moneko/postcss")}};if(_processEnv.DEV){styleLoader="style-loader"}var customCssModules=(0,_utils.resolveNodeModulesPath)(_toConsumableArray(_common.CONFIG.cssModules).concat([_processEnv.pkgName,"neko-ui"]));var styleResources=_toConsumableArray((0,_utils.resolveNodeModulesPath)(["".concat(_processEnv.pkgName,"/lib/styles/eval/*.less")])).concat(_toConsumableArray((0,_utils.resolveProgramPath)(["src/styles/variables/*.less","src/styles/mixins/*.less","site/styles/variables/*.less","site/styles/mixins/*.less"])));var entryResolveProgramPath=(0,_utils.resolveProgramPath)(["components","mock","site","src"]);var lessLoaderRule=[styleLoader,{loader:"css-loader",options:{modules:{auto:function(resourcePath){for(var i=0,len=customCssModules.length;i<len;i++){if(resourcePath&&(resourcePath===null||resourcePath===void 0?void 0:resourcePath.includes(customCssModules[i]))){return RegExp("(.*(?<!\\.global\\.(le|c)ss)$)","i").test(resourcePath)}}return RegExp("(^(?!.*node_modules))(.*(?<!\\.global\\.(le|c)ss)$)","i").test(resourcePath)},localIdentName:"[path][name]__[local]",exportLocalsConvention:"dashesOnly"},importLoaders:2}},postcssLoader,{loader:"css-unicode-loader"},{loader:"less-loader",options:{sourceMap:!!_common.CONFIG.sourceMap,lessOptions:{modifyVars:_modifyVars.default,javascriptEnabled:true}}},{loader:"style-resources-loader",options:{patterns:styleResources}}].filter(Boolean);var tsLoader={loader:_common.CONFIG.compiler==="tsc"?"ts-loader":"swc-loader",options:_common.CONFIG.compiler==="tsc"?_tsloaderConfig.default:(0,_swcrc.default)(_processEnv.DEV)};var moduleOptions={rules:[{oneOf:[{resourceQuery:/raw/,type:"asset/source"},{test:/\.less$/,use:lessLoaderRule,include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((ref=_common.CONFIG.rulesInclude)===null||ref===void 0?void 0:ref.less)||[]))},{test:/\.css$/,use:[styleLoader,"css-loader",postcssLoader].filter(Boolean),include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((ref1=_common.CONFIG.rulesInclude)===null||ref1===void 0?void 0:ref1.css)||[]))},{test:/\.(gif|png|jpe?g|ico|mp4)$/i,type:"asset",generator:{filename:"assets/images/[name][ext][query]"},include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((ref2=_common.CONFIG.rulesInclude)===null||ref2===void 0?void 0:ref2.media)||[]))},{test:/\.(eot|ttf|otf|woff(|2))$/,type:"asset",generator:{filename:"assets/fonts/[name][ext][query]"},include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((ref3=_common.CONFIG.rulesInclude)===null||ref3===void 0?void 0:ref3.fonts)||[]))},{test:/\.svg$/,type:"asset/inline",generator:{dataUrl:function(content){return(0,_miniSvgDataUri.default)(typeof content!=="string"?content.toString():content)}}},{test:/\.txt$/,type:"asset/source"},{test:/\.(cj|mj|t|j)s(|x)$/,use:[tsLoader],include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((ref4=_common.CONFIG.rulesInclude)===null||ref4===void 0?void 0:ref4.js)||[]))},{test:/\.mdx?$/,use:[tsLoader,{loader:"@mdx-js/loader",options:{rehypePlugins:[require("@mapbox/rehype-prism"),require("rehype-accessible-emojis").rehypeAccessibleEmojis,require("rehype-figure")],remarkPlugins:[]}}],include:entryResolveProgramPath}]}].concat(_toConsumableArray(_common.CONFIG.moduleRules))};var _default=moduleOptions;
|
package/build/webpack.common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _path=_interopRequireDefault(require("path"));var _fs=_interopRequireDefault(require("fs"));var _htmlWebpackPlugin=_interopRequireDefault(require("html-webpack-plugin"));var _webpack=require("webpack");var _webpackbar=_interopRequireDefault(require("webpackbar"));var _common=require("./common");var _moduleConfig=_interopRequireDefault(require("./module.config"));var _envFlags=_interopRequireDefault(require("./envFlags"));var _addAssetHtmlWebpackPlugin=_interopRequireDefault(require("add-asset-html-webpack-plugin"));var _htmlAddEntryAttr=_interopRequireDefault(require("./html-add-entry-attr"));var _moduleFederation=require("./module-federation");var _hasAntd=require("./has-antd");var _processEnv=require("./process-env");var _htmlPluginOption=_interopRequireDefault(require("./html-plugin-option"));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"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _path=_interopRequireDefault(require("path"));var _fs=_interopRequireDefault(require("fs"));var _htmlWebpackPlugin=_interopRequireDefault(require("html-webpack-plugin"));var _webpack=require("webpack");var _webpackbar=_interopRequireDefault(require("webpackbar"));var _common=require("./common");var _moduleConfig=_interopRequireDefault(require("./module.config"));var _envFlags=_interopRequireDefault(require("./envFlags"));var _addAssetHtmlWebpackPlugin=_interopRequireDefault(require("add-asset-html-webpack-plugin"));var _htmlAddEntryAttr=_interopRequireDefault(require("./html-add-entry-attr"));var _moduleFederation=require("./module-federation");var _hasAntd=require("./has-antd");var _processEnv=require("./process-env");var _htmlPluginOption=_interopRequireDefault(require("./html-plugin-option"));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={"@":_path.default.resolve(_processEnv.PROGRAMPATH,"./src")};Object.assign(alias,_common.CONFIG.alias);if(_processEnv.APPTYPE==="library"){Object.assign(alias,_defineProperty({"@":_path.default.resolve(_processEnv.PROGRAMPATH,"./site"),"@pkg":_path.default.resolve(_processEnv.PROGRAMPATH,"./components")},_processEnv.PACKAGENAME,_path.default.resolve(_processEnv.PROGRAMPATH,"./components")))}var assetHtmlOption=_common.CONFIG.assetHtml.map(function(item){return _objectSpread({publicPath:""},item)});var entryMap={main:[_path.default.join(__dirname,"../lib/packages/".concat(_common.ENTRYPATH[_processEnv.APPTYPE],"/index.js"))]};if(_common.CONFIG.entry&&Object.keys(_common.CONFIG.entry)){Object.assign(_common.CONFIG.entry,entryMap)}var config={entry:entryMap,stats:"errors-only",infrastructureLogging:{level:"none"},target:"web",plugins:[new _webpack.AutomaticPrefetchPlugin,_hasAntd.AntdDayjsWebpackPlugin&&new _hasAntd.AntdDayjsWebpackPlugin].concat(_toConsumableArray(_moduleFederation.moduleFederation),[ESLintPlugin&&new ESLintPlugin({threads:true,extensions:["js","cjs","ejs","mjs","jsx","ts","tsx","json","html","coffee","vue"]}),StylelintPlugin&&new StylelintPlugin({fix:true,threads:true,extensions:["css","less"]}),new _htmlWebpackPlugin.default(_htmlPluginOption.default),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"})],_toConsumableArray(_common.CONFIG.plugins)).filter(Boolean),experiments:{topLevelAwait:true},resolve:{extensions:[".tsx",".ts",".js",".jsx"],alias:alias,fallback:{path:false,fs:false,crypto:false}},module:_moduleConfig.default,externals:_common.CONFIG.externals,output:{path:_common.CONFIG.output,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),publicPath:_common.PUBLICPATH,pathinfo:false,clean:_common.CONFIG.clean}};var _default=config;
|
package/build/webpack.dev.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _webpackMerge=require("webpack-merge");var _path=_interopRequireDefault(require("path"));var _friendlyErrorsWebpackPlugin=_interopRequireDefault(require("@soda/friendly-errors-webpack-plugin"));var _reactRefreshWebpackPlugin=_interopRequireDefault(require("@pmmmwh/react-refresh-webpack-plugin"));var _webpack=require("webpack");var _webpackCommon=_interopRequireDefault(require("./webpack.common"));var _portfinder=require("portfinder");var _common=require("./common");var _utils=require("./utils");var _processEnv=require("./process-env");var _hasPkg=require("./has-pkg");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var hasMockMiddlewares=(0,_hasPkg.hasPkg)("@moneko/mock");var mockMiddlewares=hasMockMiddlewares?require("@moneko/mock").default:null;var cacheConfig=false;if(_common.CONFIG.cacheDirectory){cacheConfig={type:"filesystem",allowCollectingMemory:true,cacheDirectory:_common.CONFIG.cacheDirectory}}var webpackConfig=new Promise(function(resolve){(0,_portfinder.getPort)({port:_common.CONFIG.devServer.port,stopPort:9999},function(_err,port){_common.CONFIG.devServer.port=port;var initRouteBase=_common.CONFIG.routeBaseName==="/";var protocol=_common.CONFIG.devServer.https?"https:":"http:";var routeBase=initRouteBase?"":_common.CONFIG.routeBaseName;var conf=(0,_webpackMerge.merge)(_webpackCommon.default,{devtool:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _webpackMerge=require("webpack-merge");var _path=_interopRequireDefault(require("path"));var _friendlyErrorsWebpackPlugin=_interopRequireDefault(require("@soda/friendly-errors-webpack-plugin"));var _reactRefreshWebpackPlugin=_interopRequireDefault(require("@pmmmwh/react-refresh-webpack-plugin"));var _webpack=require("webpack");var _webpackCommon=_interopRequireDefault(require("./webpack.common"));var _portfinder=require("portfinder");var _common=require("./common");var _utils=require("./utils");var _processEnv=require("./process-env");var _hasPkg=require("./has-pkg");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var hasMockMiddlewares=(0,_hasPkg.hasPkg)("@moneko/mock");var mockMiddlewares=hasMockMiddlewares?require("@moneko/mock").default:null;var cacheConfig=false;if(_common.CONFIG.cacheDirectory){cacheConfig={type:"filesystem",allowCollectingMemory:true,cacheDirectory:_common.CONFIG.cacheDirectory}}var devtool=_common.CONFIG.devtool===false||_common.CONFIG.devtool?_common.CONFIG.devtool:"eval-cheap-module-source-map";var webpackConfig=new Promise(function(resolve){(0,_portfinder.getPort)({port:_common.CONFIG.devServer.port,stopPort:9999},function(_err,port){_common.CONFIG.devServer.port=port;var initRouteBase=_common.CONFIG.routeBaseName==="/";var protocol=_common.CONFIG.devServer.https?"https:":"http:";var routeBase=initRouteBase?"":_common.CONFIG.routeBaseName;var conf=(0,_webpackMerge.merge)(_webpackCommon.default,{devtool:devtool,mode:"development",cache:cacheConfig,devServer:{headers:{"Access-Control-Allow-Origin":"*"},compress:_common.CONFIG.devServer.compress,host:"0.0.0.0",port:port,historyApiFallback:initRouteBase||{index:routeBase},https:_common.CONFIG.devServer.https,proxy:_common.CONFIG.proxy,allowedHosts:_common.CONFIG.devServer.allowedHosts,client:{progress:false,logging:"info",overlay:false},static:{watch:{ignored:function(f){return f.endsWith(".d.ts")}}},setupMiddlewares:function(middlewares,devServer){if(!devServer){throw new Error("webpack-dev-server is not defined")}if(devServer.app&&hasMockMiddlewares){mockMiddlewares(devServer.app,_path.default.resolve(_processEnv.PROGRAMPATH,"./mock/"))}return middlewares},open:false,hot:true},plugins:[new _webpack.HotModuleReplacementPlugin,new _reactRefreshWebpackPlugin.default,new _friendlyErrorsWebpackPlugin.default({compilationSuccessInfo:{messages:["App running at:\n\n - Local: ".concat(protocol,"//").concat(_common.CONFIG.devServer.host,":").concat(port).concat(routeBase,"\n - Network: ").concat(protocol,"//").concat((0,_utils.getIPAdress)(),":").concat(port).concat(routeBase,"\n")]},clearConsole:true})]});resolve(conf)})});var _default=webpackConfig;
|
package/build/webpack.prod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _webpackMerge=require("webpack-merge");var _webpackCommon=_interopRequireDefault(require("./webpack.common"));var _common=require("./common");var _webpack=require("webpack");var _terserWebpackPlugin=_interopRequireDefault(require("terser-webpack-plugin"));var _minify=require("./minify");var _miniCssExtractPlugin=_interopRequireDefault(require("mini-css-extract-plugin"));var _cssMinimizerWebpackPlugin=_interopRequireWildcard(require("css-minimizer-webpack-plugin"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}var optimization={splitChunks:_common.CONFIG.splitChunk,runtimeChunk:_common.CONFIG.runtimeChunk,chunkIds:"named",moduleIds:"named",removeAvailableModules:true,removeEmptyChunks:true,mergeDuplicateChunks:true,minimize:true,minimizer:[new _terserWebpackPlugin.default((0,_minify.getMinifyOption)(_common.CONFIG.minifier.type||"swc",_common.CONFIG.minifier.options)),new _cssMinimizerWebpackPlugin.default({minify:_common.CONFIG.minifier.css==="parcelCss"?_cssMinimizerWebpackPlugin.parcelCssMinify:_cssMinimizerWebpackPlugin.cssnanoMinify})
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _webpackMerge=require("webpack-merge");var _webpackCommon=_interopRequireDefault(require("./webpack.common"));var _common=require("./common");var _webpack=require("webpack");var _terserWebpackPlugin=_interopRequireDefault(require("terser-webpack-plugin"));var _minify=require("./minify");var _miniCssExtractPlugin=_interopRequireDefault(require("mini-css-extract-plugin"));var _cssMinimizerWebpackPlugin=_interopRequireWildcard(require("css-minimizer-webpack-plugin"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}var optimization={splitChunks:_common.CONFIG.splitChunk,runtimeChunk:_common.CONFIG.runtimeChunk,chunkIds:"named",moduleIds:"named",removeAvailableModules:true,removeEmptyChunks:true,mergeDuplicateChunks:true,minimize:true,minimizer:[new _terserWebpackPlugin.default((0,_minify.getMinifyOption)(_common.CONFIG.minifier.type||"swc",_common.CONFIG.minifier.options)),new _cssMinimizerWebpackPlugin.default({minify:_common.CONFIG.minifier.css==="parcelCss"?_cssMinimizerWebpackPlugin.parcelCssMinify:_cssMinimizerWebpackPlugin.cssnanoMinify})]};var cacheConfig=false;if(_common.CONFIG.cacheDirectory){cacheConfig={type:"filesystem",allowCollectingMemory:true,cacheDirectory:_common.CONFIG.cacheDirectory}}var _default=(0,_webpackMerge.merge)(_webpackCommon.default,{devtool:_common.CONFIG.devtool===false||_common.CONFIG.devtool?_common.CONFIG.devtool:"cheap-module-source-map",mode:"production",cache:cacheConfig,optimization:optimization,plugins:[new _miniCssExtractPlugin.default({filename:"style/[name].bundle.css",chunkFilename:"style/[name].chunk.css",experimentalUseImportModule:true}),_common.CONFIG.splitChunk&&new _webpack.optimize.MinChunkSizePlugin({minChunkSize:1e4})].filter(Boolean)});
|
|
@@ -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{useSearchParams}from"react-router-dom";import{useLocale}from"i18n-hooks";import{Tabs,Layout,Menu,Dropdown}from"antd";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{isEqual}from"lodash";import{useAliveController}from"react-activation";import{shallowEqual,useSelector,useDispatch}from"react-redux";import LayoutMenu from"../../../components/layout-menu";import AppRouter from"../../../components/app-router";import FallbackComp from"../../../components/fallback-comp";import{router}from"../../../router";import useNavigate from"../../../hooks/navgate";import styles from"./index.less";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"}
|
|
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{useSearchParams}from"react-router-dom";import{useLocale}from"i18n-hooks";import{Tabs,Layout,Menu,Dropdown}from"antd";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{isEqual}from"lodash";import{useAliveController}from"react-activation";import{shallowEqual,useSelector,useDispatch}from"react-redux";import LayoutMenu from"../../../components/layout-menu";import AppRouter from"../../../components/app-router";import FallbackComp from"../../../components/fallback-comp";import{router}from"../../../router";import useNavigate from"../../../hooks/navgate";import styles from"./index.less";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 SiderLayout=function(){var dispatch=useDispatch();var activeKey=useSelector(function(store){return store.appProgram.activeKey},shallowEqual);var tabs=useSelector(function(store){return store.appProgram.tabs},shallowEqual);var menuKV=useSelector(function(store){return store.appProgram.menuKV||{}},shallowEqual);var navigate=useNavigate();var dropScope=useAliveController().dropScope;var ref=_slicedToArray(useSearchParams(),1),search=ref[0];var getLanguage=useLocale().getLanguage;var ref1=_slicedToArray(useState(false),2),collapsed=ref1[0],setCollapsed=ref1[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}dispatch({type:"appProgram/closeTab",payload:{key:tabKey,type:type,callback:function callback(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))}}}})},[dispatch,dropScope,navigate]);var ref2=useMemo(function(){return{menuId:search.get("menuId")||"",dynamicTitle:search.get("dynamicTitle")||""}},[search]),menuId=ref2.menuId,dynamicTitle=ref2.dynamicTitle;var current=menuKV[menuId];useEffect(function(){if(menuId){dispatch({type:"appProgram/openTab",payload:{key:menuId,dynamicTitle:dynamicTitle}})}},[dispatch,dynamicTitle,menuId,current]);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]);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:function(key){navigate("".concat(menuKV[key].path,"?menuId=").concat(menuKV[key].key))},activeKey:activeKey,size:"middle",type:"editable-card",onEdit:function(targetKey,action){if(action==="remove"&&typeof targetKey==="string"){closedTab(targetKey)}}},tabs.map(function(item){return React.createElement(Tabs.TabPane,{tab:React.createElement(Dropdown,{overlay:React.createElement(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||"")),key:item.key,closable:item.closable})})),React.createElement(Layout.Content,{className:styles.layoutContent},React.createElement("div",{className:styles.content},React.createElement(AppRouter,{router:router})),React.createElement(FallbackComp,{compName:"layout-footer"}))))};export default React.memo(SiderLayout,isEqual);
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/packages/back-stage/layout/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { useLocale } from 'i18n-hooks';\nimport { Tabs, Layout, Menu, Dropdown } from 'antd';\nimport { ReloadOutlined, DeleteRowOutlined, CloseOutlined } from '@ant-design/icons';\nimport { isEqual } from 'lodash';\nimport { useAliveController } from 'react-activation';\nimport { shallowEqual, useSelector, useDispatch } from 'react-redux';\nimport LayoutMenu from '../../../components/layout-menu';\nimport AppRouter from '../../../components/app-router';\nimport FallbackComp from '../../../components/fallback-comp';\nimport { router } from '../../../router';\nimport useNavigate from '../../../hooks/navgate';\nimport type { RouterProps } from '../../../router';\nimport type { AppProgramModelType } from '../models/app-program';\nimport type { ItemType } from 'antd/es/menu/hooks/useItems';\nimport styles from './index.less';\n\ninterface TabProps extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n}\n\nconst closeTabs: ItemType[] = [\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 SiderLayout: React.FC = () => {\n const dispatch = useDispatch();\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: AppProgramModelType }) => store.appProgram.menuKV || {},\n shallowEqual\n );\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\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,\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\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={(key: string) => {\n navigate(`${menuKV[key].path}?menuId=${menuKV[key].key}`);\n }}\n activeKey={activeKey}\n size=\"middle\"\n type=\"editable-card\"\n onEdit={(targetKey, action) => {\n if (action === 'remove' && typeof targetKey === 'string') {\n closedTab(targetKey);\n }\n }}\n >\n {tabs.map((item: TabProps) => (\n <Tabs.TabPane\n tab={\n <Dropdown\n overlay={\n <Menu\n items={getItems(item.key)}\n onClick={(info) => {\n info.domEvent.stopPropagation();\n closedTab(item.key, info.key);\n }}\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 key={item.key}\n closable={item.closable}\n />\n ))}\n </Tabs>\n <Layout.Content className={styles.layoutContent}>\n <div className={styles.content}>\n <AppRouter router={router} />\n </div>\n <FallbackComp compName=\"layout-footer\" />\n </Layout.Content>\n </Layout>\n </Layout>\n );\n};\n\nexport default React.memo(SiderLayout, isEqual);\n"],"names":["React","useCallback","useEffect","useMemo","useState","useSearchParams","useLocale","Tabs","Layout","Menu","Dropdown","ReloadOutlined","DeleteRowOutlined","CloseOutlined","isEqual","useAliveController","shallowEqual","useSelector","useDispatch","LayoutMenu","AppRouter","FallbackComp","router","useNavigate","styles","closeTabs","label","icon","style","transform","key","SiderLayout","dispatch","activeKey","store","appProgram","tabs","menuKV","navigate","dropScope","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","className","layout","layoutSider","Sider","sider","trigger","collapsible","onBreakpoint","broken","onCollapse","_collapsed","theme","breakpoint","div","logo","data-title","projectName","compName","show","section","onCollapsed","hideAdd","onTabClick","size","onEdit","targetKey","action","map","TabPane","tab","overlay","items","onClick","info","domEvent","stopPropagation","destroyPopupOnHide","i18n","closable","Content","layoutContent","content","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/packages/back-stage/layout/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { useLocale } from 'i18n-hooks';\nimport { Tabs, Layout, Menu, Dropdown } from 'antd';\nimport { ReloadOutlined, DeleteRowOutlined, CloseOutlined } from '@ant-design/icons';\nimport { isEqual } from 'lodash';\nimport { useAliveController } from 'react-activation';\nimport { shallowEqual, useSelector, useDispatch } from 'react-redux';\nimport LayoutMenu from '../../../components/layout-menu';\nimport AppRouter from '../../../components/app-router';\nimport FallbackComp from '../../../components/fallback-comp';\nimport { router } from '../../../router';\nimport useNavigate from '../../../hooks/navgate';\nimport type { RouterProps } from '../../../router';\nimport type { AppProgramModelType } from '../models/app-program';\nimport type { ItemType } from 'antd/es/menu/hooks/useItems';\nimport styles from './index.less';\n\ninterface TabProps extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n}\n\nconst closeTabs: ItemType[] = [\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 SiderLayout: React.FC = () => {\n const dispatch = useDispatch();\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: AppProgramModelType }) => store.appProgram.menuKV || {},\n shallowEqual\n );\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\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,\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\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={(key: string) => {\n navigate(`${menuKV[key].path}?menuId=${menuKV[key].key}`);\n }}\n activeKey={activeKey}\n size=\"middle\"\n type=\"editable-card\"\n onEdit={(targetKey, action) => {\n if (action === 'remove' && typeof targetKey === 'string') {\n closedTab(targetKey);\n }\n }}\n >\n {tabs.map((item: TabProps) => (\n <Tabs.TabPane\n tab={\n <Dropdown\n overlay={\n <Menu\n items={getItems(item.key)}\n onClick={(info) => {\n info.domEvent.stopPropagation();\n closedTab(item.key, info.key);\n }}\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 key={item.key}\n closable={item.closable}\n />\n ))}\n </Tabs>\n <Layout.Content className={styles.layoutContent}>\n <div className={styles.content}>\n <AppRouter router={router} />\n </div>\n <FallbackComp compName=\"layout-footer\" />\n </Layout.Content>\n </Layout>\n </Layout>\n );\n};\n\nexport default React.memo(SiderLayout, isEqual);\n"],"names":["React","useCallback","useEffect","useMemo","useState","useSearchParams","useLocale","Tabs","Layout","Menu","Dropdown","ReloadOutlined","DeleteRowOutlined","CloseOutlined","isEqual","useAliveController","shallowEqual","useSelector","useDispatch","LayoutMenu","AppRouter","FallbackComp","router","useNavigate","styles","closeTabs","label","icon","style","transform","key","SiderLayout","dispatch","activeKey","store","appProgram","tabs","menuKV","navigate","dropScope","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","className","layout","layoutSider","Sider","sider","trigger","collapsible","onBreakpoint","broken","onCollapse","_collapsed","theme","breakpoint","div","logo","data-title","projectName","compName","show","section","onCollapsed","hideAdd","onTabClick","size","onEdit","targetKey","action","map","TabPane","tab","overlay","items","onClick","info","domEvent","stopPropagation","destroyPopupOnHide","i18n","closable","Content","layoutContent","content","memo"],"mappings":"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"}
|
|
@@ -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)}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"lodash";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})};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 _payload=param.payload,payload=_payload===void 0?[]:_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)
|
|
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"lodash";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})};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 _payload=param.payload,payload=_payload===void 0?[]:_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,_dynamicTitle,dynamicTitle;return __generator(this,function(_state){switch(_state.label){case 0:payload=param.payload,put=param1.put;key=payload.key,_dynamicTitle=payload.dynamicTitle,dynamicTitle=_dynamicTitle===void 0?"":_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,_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,_type=payload.type,type=_type===void 0?"self":_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
2
|
//# sourceMappingURL=app-program.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/packages/back-stage/models/app-program.ts"],"sourcesContent":["import { isEqual, isFunction } from 'lodash';\nimport { ModelActionType, ModelEffectMap, ModelType, 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?: string | 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.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};\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 AppProgramModelType {\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: ModelType<AppProgramModelType> = {\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<ModelActionType>,\n { put }: ModelEffectMap\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<ModelActionType>,\n { put, select }: ModelEffectMap\n ): Generator<unknown, void, AppProgramModelType> {\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","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","filter","i","notClose","closable","left","right","other","self","adx","push"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/packages/back-stage/models/app-program.ts"],"sourcesContent":["import { isEqual, isFunction } from 'lodash';\nimport { ModelActionType, ModelEffectMap, ModelType, 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?: string | 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.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};\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 AppProgramModelType {\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: ModelType<AppProgramModelType> = {\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<ModelActionType>,\n { put }: ModelEffectMap\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<ModelActionType>,\n { put, select }: ModelEffectMap\n ): Generator<unknown, void, AppProgramModelType> {\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","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","filter","i","notClose","closable","left","right","other","self","adx","push"],"mappings":"AAAA,+nIAAA,QAASA,OAAO,CAAEC,UAAU,KAAQ,QAAQ,AAAC,AAC7C,QAAqDC,YAAY,KAAQ,UAAU,AAAC,AAapF,KAAMC,QAAQ,CAAG,SAACC,GAAgB,CAAkB,CAClD,OAAOA,GAAG,CAACC,GAAG,CAAC,SAACC,IAAI,CAAK,CACvB,IAAM,AAAEC,QAAQ,CAAcD,IAAI,CAA1BC,QAAQ,AAAkB,CAAbC,IAAI,0BAAKF,IAAI,EAA1BC,UAAQ,EAAmB,AACnC,KAAME,KAAK,CAAG,oCAAKD,IAAI,GAAEE,KAAK,CAAEF,IAAI,CAACG,IAAI,EAAE,AAAC,AAE5C,IAAIC,KAAK,CAACC,OAAO,CAACN,QAAQ,CAAC,EAAIA,QAAQ,CAACO,MAAM,CAAE,CAC9CC,MAAM,CAACC,MAAM,CAACP,KAAK,CAAE,CACnBF,QAAQ,CAAEJ,QAAQ,CAACI,QAAQ,CAAC,CAC7B,CAAC,AACJ,CAAC,AACD,OAAOE,KAAK,AAAC,AACf,CAAC,CAAC,AAAC,AACL,CAAC,AAAC,AACF,KAAMQ,SAAS,CAAG,SAACb,GAAgB,CAAEc,GAA8B,CAAW,CAC5Ed,GAAG,CAACe,OAAO,CAAC,SAACb,IAAI,CAAK,CACpB,IAAM,AAAEC,QAAQ,CAAcD,IAAI,CAA1BC,QAAQ,AAAkB,CAAbC,IAAI,0BAAKF,IAAI,EAA1BC,UAAQ,EAAmB,AAEnCQ,CAAAA,MAAM,CAACC,MAAM,CAACE,GAAG,CACf,mBAACZ,IAAI,CAACc,GAAG,CAAGZ,IAAI,CAAA,CAChB,AACF,CADG,GACCI,KAAK,CAACC,OAAO,CAACN,QAAQ,CAAC,EAAIA,QAAQ,CAACO,MAAM,CAAE,CAC9CG,SAAS,CAACV,QAAQ,CAAEW,GAAG,CAAC,AAC1B,CAAC,AACH,CAAC,CAAC,AACJ,CAAC,AAAC,AAgBF,KAAMG,KAAK,CAAmC,CAC5CC,SAAS,CAAE,YAAY,CACvBC,KAAK,CAAE,CACLC,IAAI,CAAE,EAAE,CACRC,MAAM,CAAE,EAAE,CACVC,IAAI,CAAE,EAAE,CACRC,SAAS,CAAE,MAAM,CAClB,CACDC,QAAQ,CAAE,CACRC,OAAO,CAAE,SAACN,KAAK,OAAuB,oBAAnBO,OAAO,CAAPA,OAAO,mBAAG,EAAE,SAAA,AAC7B,KAAMC,KAAK,CAAG5B,QAAQ,CAAC2B,OAAO,CAAC,CAC7BE,EAAE,CAA8B,EAAE,AAAC,AAErCf,CAAAA,SAAS,CAACc,KAAK,CAAEC,EAAE,CAAC,AACpB,CADqB,OACd,oCACFT,KAAK,GACRC,IAAI,CAAEO,KAAK,CACXN,MAAM,CAAEO,EAAE,EACX,AAAC,AACJ,CAAC,CACDC,OAAO,CAAE,SAACV,KAAK,CAAEW,MAAM,CAAK,CAC1B,OAAO,oCACFX,KAAK,GACRG,IAAI,CAAEQ,MAAM,CAACJ,OAAO,EACrB,AAAC,AACJ,CAAC,CACDK,MAAM,CAAE,SAACZ,KAAK,OAAkB,KAAdO,OAAO,OAAPA,OAAO,AACvB,KAAQJ,IAAI,CAAaH,KAAK,CAAtBG,IAAI,CAAED,MAAM,CAAKF,KAAK,CAAhBE,MAAM,AAAW,AAC/B,KAAMW,OAAO,CAAGX,MAAM,CAACK,OAAO,CAACV,GAAG,CAAC,AAAC,AAEpC,IAAIgB,OAAO,EAAI,CAACV,IAAI,CAACW,IAAI,CAAC,SAAC/B,IAAc,SAAKA,IAAI,CAACc,GAAG,GAAKU,OAAO,CAACV,GAAG,CAAA,CAAC,CAAE,CACvE,IAAMkB,KAAK,CAAG,AACZ,mBAAGZ,IAAI,CAAJA,QADS,CAEZ,kDACKU,OAAO,GACVzB,IAAI,CAAEyB,OAAO,CAACzB,IAAI,EAAI,AAAC,QAAM,CAAc,MAAA,CAAZyB,OAAO,CAAChB,GAAG,CAAE,GACzCU,OAAO,CACX,CACF,CAAA,AAAC,AAEF,IAAI,CAAC9B,OAAO,CAACsC,KAAK,CAAEZ,IAAI,CAAC,CAAE,CACzB,OAAO,oCACFH,KAAK,GACRG,IAAI,CAAEY,KAAK,EACZ,AAAC,AACJ,CAAC,AACH,CAAC,AAED,OAAOf,KAAK,AAAC,AACf,CAAC,CACDgB,YAAY,CAAE,SAAChB,KAAK,CAAEW,MAAM,CAAK,CAC/B,OAAO,oCACFX,KAAK,GACRI,SAAS,CAAEO,MAAM,CAACJ,OAAO,EAC1B,AAAC,AACJ,CAAC,CACF,CACDU,OAAO,CAAE,CACNC,OAAO,CAAR,SAACA,OAAO,CACN,KAAqC,CACrC,MAAuB,CACe,KAFpCX,OAAO,CACPY,GAAG,CAEGtB,GAAG,eAAEuB,YAAY,sEAHzB,AAAEb,OAAO,CAAT,KAAqC,CAAnCA,OAAO,AAA4B,CACrC,AAAEY,GAAG,CAAL,MAAuB,CAArBA,GAAG,AAAkB,AAEftB,CAAAA,GAAG,CAAwBU,OAAO,CAAlCV,GAAG,eAAwBU,OAAO,CAA7Ba,YAAY,CAAZA,YAAY,wBAAG,EAAE,cAAA,AAE9B,CAF2C,SAErCD,GAAG,CAAC,CACRE,IAAI,CAAE,mBAAmB,CACzBd,OAAO,CAAE,CACPV,GAAG,CAAHA,GAAG,CACHuB,YAAY,CAAZA,YAAY,CACb,CACF,CAAC,CAAA,QANF,aAME,AACF,CADG,SACGD,GAAG,CAAC,CACRE,IAAI,CAAE,yBAAyB,CAC/Bd,OAAO,CAAEV,GAAG,CACb,CAAC,CAAA,QAHF,aAGE,CAAC,YACL,CAAC,CACAyB,QAAQ,CAAT,SAACA,QAAQ,CACP,KAAqC,CACrC,MAA+B,CACgB,KAF7Cf,OAAO,CACPY,GAAG,CAAEI,MAAM,CAEL1B,GAAG,OAAEwB,IAAI,CAAWG,QAAQ,CAIR,GAAiE,CAArFrB,IAAI,CAAEC,SAAS,CAEnBqB,UAAU,CACRC,SAAS,CACXC,OAAO,CAELC,WAAW,CACXC,GAAG,CACHC,KAAK,sEAfX,AAAEvB,OAAO,CAAT,KAAqC,CAAnCA,OAAO,AAA4B,CACnCY,GAAG,CAAL,MAA+B,CAA7BA,GAAG,CAAEI,MAAM,CAAb,MAA+B,CAAxBA,MAAM,AAEL1B,CAAAA,GAAG,CAA8BU,OAAO,CAAxCV,GAAG,OAA8BU,OAAO,CAAnCc,IAAI,CAAJA,IAAI,gBAAG,MAAM,MAAA,CAAEG,QAAQ,CAAKjB,OAAO,CAApBiB,QAAQ,AAEpC,CAFiD,GAE7C,CAAC3B,GAAG,CAAE,SAAO,AAEW,UAAM0B,MAAM,CAAC,SAACQ,KAAe,SAAKA,KAAK,CAACC,UAAU,CAAA,CAAErD,YAAY,CAAC,CAAA,QAAjE,GAAiE,CAAjE,aAAiE,CAArFwB,IAAI,CAAgB,GAAiE,CAArFA,IAAI,CAAEC,SAAS,CAAK,GAAiE,CAA/EA,SAAS,AAEnBqB,CAAAA,UAAU,CAAGrB,SAAS,AACpBsB,CADqB,AACrBA,SAAS,GAAiB,AAC5BC,CAD6B,AAC7BA,OAAO,CAAoB,IAAI,AAE7BC,CAF8B,AAE9BA,WAAW,CAAGP,IAAI,GAAK,MAAM,AAC7BQ,CAD8B,AAC9BA,GAAG,CAAG1B,IAAI,CAAC8B,SAAS,CAAC,SAACC,CAAC,SAAKA,CAAC,CAACrC,GAAG,GAAKA,GAAG,CAAA,CAAC,AAC1CiC,CAD2C,AAC3CA,KAAK,CAAG3B,IAAI,CAACgC,MAAM,CAAC,SAACpD,IAAI,CAAEqD,CAAC,CAAK,CACrC,IAAIC,QAAQ,CAAGtD,IAAI,CAACuD,QAAQ,GAAK,KAAK,AAAC,AAEvC,IAAI,CAACD,QAAQ,CAAE,CACbA,QAAQ,CAAG,CAAA,CACTE,IAAI,CAAEH,CAAC,EAAIP,GAAG,CACdW,KAAK,CAAEJ,CAAC,EAAIP,GAAG,CACfY,KAAK,CAAEL,CAAC,GAAKP,GAAG,CAChBa,IAAI,CAAE7C,GAAG,GAAKd,IAAI,CAACc,GAAG,CACvB,CAAA,CAACwB,IAAI,CAAkB,AAC1B,CAAC,AAED,GAAIO,WAAW,CAAE,CACf,GAAI,CAACS,QAAQ,CAAE,CACb,GAAIxC,GAAG,GAAK4B,UAAU,EAAIG,WAAW,CAAE,CACrC,IAAMe,GAAG,CAAkBP,CAAC,CAAGA,CAAC,CAAG,CAAC,CAAGA,CAAC,CAAG,CAAC,AAAC,AAE7C,IAAIjC,IAAI,CAACwC,GAAG,CAAC,CAAE,CACblB,UAAU,CAAGtB,IAAI,CAACwC,GAAG,CAAC,CAAC9C,GAAG,AAC1B8B,CAD2B,AAC3BA,OAAO,CAAGxB,IAAI,CAACwC,GAAG,CAAC,AACrB,CAAC,AACH,CAAC,AACH,CAAC,AACH,MAAO,GAAIN,QAAQ,EAAItD,IAAI,CAACc,GAAG,GAAKA,GAAG,EAAI4B,UAAU,GAAK5B,GAAG,CAAE,CAC7D4B,UAAU,CAAG5B,GAAG,AAChB8B,CADiB,AACjBA,OAAO,CAAGxB,IAAI,CAACiC,CAAC,CAAC,AACnB,CAAC,AACD,GAAI,CAACC,QAAQ,CAAE,CACbX,SAAS,CAACkB,IAAI,CAAC7D,IAAI,CAAC,AACtB,CAAC,AACD,OAAOsD,QAAQ,AAAC,AAClB,CAAC,CAAC,AAEF,CAFG,GAEC3D,UAAU,CAAC8C,QAAQ,CAAC,CAAE,CACxBjB,OAAO,CAACiB,QAAQ,CAACE,SAAS,CAAEC,OAAO,CAAC,AACtC,CAAC,AAED,SAAMR,GAAG,CAAC,CACRE,IAAI,CAAE,oBAAoB,CAC1Bd,OAAO,CAAEuB,KAAK,CACf,CAAC,CAAA,QAHF,aAGE,AACF,CADG,SACGX,GAAG,CAAC,CACRE,IAAI,CAAE,yBAAyB,CAC/Bd,OAAO,CAAEkB,UAAU,CACpB,CAAC,CAAA,QAHF,aAGE,CAAC,YACL,CAAC,CACF,CACF,AAAC,AAEF,gBAAe3B,KAAK,AAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moneko/core",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "core",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.7",
|
|
22
22
|
"@soda/friendly-errors-webpack-plugin": "1.8.1",
|
|
23
23
|
"@swc/cli": "0.1.57",
|
|
24
|
-
"@swc/core": "1.3.
|
|
24
|
+
"@swc/core": "1.3.3",
|
|
25
25
|
"@swc/helpers": "0.4.11",
|
|
26
26
|
"add-asset-html-webpack-plugin": "5.0.2",
|
|
27
27
|
"antd-dayjs-webpack-plugin": "1.0.6",
|
|
28
|
-
"core-js": "3.
|
|
28
|
+
"core-js": "3.25.2",
|
|
29
29
|
"cross-env": "7.0.3",
|
|
30
30
|
"css-loader": "6.7.1",
|
|
31
|
-
"css-minimizer-webpack-plugin": "4.
|
|
31
|
+
"css-minimizer-webpack-plugin": "4.1.0",
|
|
32
32
|
"css-unicode-loader": "1.0.3",
|
|
33
33
|
"external-remotes-plugin": "1.0.0",
|
|
34
34
|
"fastclick": "1.0.6",
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
"mini-idc": "1.0.17",
|
|
41
41
|
"mini-svg-data-uri": "1.4.4",
|
|
42
42
|
"path-to-regexp": "6.2.1",
|
|
43
|
-
"portfinder": "1.0.
|
|
44
|
-
"react-activation": "0.
|
|
43
|
+
"portfinder": "1.0.32",
|
|
44
|
+
"react-activation": "0.12.0",
|
|
45
45
|
"react-refresh": "0.14.0",
|
|
46
46
|
"react-refresh-typescript": "2.0.7",
|
|
47
|
-
"react-router": "6.
|
|
48
|
-
"react-router-dom": "6.
|
|
47
|
+
"react-router": "6.4.1",
|
|
48
|
+
"react-router-dom": "6.4.1",
|
|
49
49
|
"rehype-accessible-emojis": "0.3.2",
|
|
50
50
|
"rehype-figure": "1.0.1",
|
|
51
51
|
"style-loader": "3.3.1",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"swc-plugin-import-on-demand": "1.0.2",
|
|
55
55
|
"tinycolor2": "1.4.2",
|
|
56
56
|
"ts-import-plugin": "2.0.0",
|
|
57
|
-
"ts-loader": "9.
|
|
57
|
+
"ts-loader": "9.4.1",
|
|
58
58
|
"typescript": "4.8.3",
|
|
59
59
|
"webfontloader": "1.6.28",
|
|
60
60
|
"webpack": "5.74.0",
|