@moneko/core 2.0.16-beta.18 → 2.0.16-beta.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/common.js +1 -1
- package/build/envFlags.d.ts +1 -1
- package/build/envFlags.js +1 -1
- package/lib/localizable/index.d.ts +6 -13
- package/lib/localizable/index.js +1 -1
- package/lib/localizable/index.js.map +1 -1
- package/lib/packages/back-stage/index.d.ts +0 -1
- package/lib/packages/back-stage/index.js +1 -1
- package/lib/packages/back-stage/index.js.map +1 -1
- package/lib/packages/back-stage/{layout/index.d.ts → layout.d.ts} +1 -1
- package/lib/packages/back-stage/layout.js +2 -0
- package/lib/packages/back-stage/layout.js.map +1 -0
- package/lib/packages/library/index.d.ts +0 -1
- package/lib/packages/library/index.js +1 -1
- package/lib/packages/library/index.js.map +1 -1
- package/lib/packages/mobile/index.d.ts +0 -1
- package/lib/packages/mobile/index.js +1 -1
- package/lib/packages/mobile/index.js.map +1 -1
- package/lib/packages/single-spa/index.d.ts +0 -1
- package/lib/packages/single-spa/index.js +1 -1
- package/lib/packages/single-spa/index.js.map +1 -1
- package/lib/packages/site/index.d.ts +0 -1
- package/lib/packages/site/index.js +1 -1
- package/lib/packages/site/index.js.map +1 -1
- package/lib/styles/variables.css +1 -1
- package/package.json +1 -1
- package/typings/global.d.ts +2 -7
- package/lib/packages/back-stage/layout/index.js +0 -2
- package/lib/packages/back-stage/layout/index.js.map +0 -1
- package/lib/packages/back-stage/layout/index.less +0 -81
- package/lib/utils/env.d.ts +0 -0
- package/lib/utils/env.js +0 -2
- package/lib/utils/env.js.map +0 -1
package/build/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{ENTRYPATH:function(){return ENTRYPATH},log:function(){return log},CONFIG:function(){return CONFIG},PUBLICPATH:function(){return PUBLICPATH}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _readline=_interopRequireDefault(require("readline"));var _chalk=_interopRequireDefault(require("chalk"));var _webpackMerge=require("webpack-merge");var _processEnv=require("./process-env");var _utils=require("./utils");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _customConf_minifier;var ENTRYPATH={mobile:"mobile",site:"site","back-stage":"back-stage","single-spa":"single-spa",library:"library","single-component":"single-component"};var includeModule=[_processEnv.pkgName,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design"];var defaultSplitChunk={chunks:"all",minSize:1024,minChunks:1};if(_processEnv.APPTYPE==="single-component"){defaultSplitChunk=false}var defaultConfig={mode:"csr",compiler:"swc",bundleAnalyzer:{analyzerMode:"static",reportFilename:"report.html",openAnalyzer:false},entry:{},minifier:{options:{},css:"cssnano"},sourceMap:{filename:"[file].map",publicPath:""},env:{},
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{ENTRYPATH:function(){return ENTRYPATH},log:function(){return log},CONFIG:function(){return CONFIG},PUBLICPATH:function(){return PUBLICPATH}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _readline=_interopRequireDefault(require("readline"));var _chalk=_interopRequireDefault(require("chalk"));var _webpackMerge=require("webpack-merge");var _processEnv=require("./process-env");var _utils=require("./utils");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _customConf_minifier;var ENTRYPATH={mobile:"mobile",site:"site","back-stage":"back-stage","single-spa":"single-spa",library:"library","single-component":"single-component"};var includeModule=[_processEnv.pkgName,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design"];var defaultSplitChunk={chunks:"all",minSize:1024,minChunks:1};if(_processEnv.APPTYPE==="single-component"){defaultSplitChunk=false}var defaultConfig={mode:"csr",compiler:"swc",bundleAnalyzer:{analyzerMode:"static",reportFilename:"report.html",openAnalyzer:false},entry:{},minifier:{options:{},css:"cssnano"},sourceMap:{filename:"[file].map",publicPath:""},env:{},persistence:"".concat(_processEnv.PACKAGENAME,"-program:").concat(_processEnv.PACKAGEVERSION),routeBaseName:"/",publicPath:"auto",designSize:_processEnv.APPTYPE==="mobile"?375:1680,fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:{},layoutSider:{},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:_processEnv.PROGRAMPATH+"/node_modules/.temp_cache",devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:false,compress:false},htmlPluginOption:{template:"./node_modules/".concat(_processEnv.pkgName,"/template/index.html"),favicon:"./node_modules/".concat(_processEnv.pkgName,"/template/favicon.ico")},assetHtml:[],routerMode:"browser",plugins:[],splitChunk:defaultSplitChunk,runtimeChunk:_processEnv.APPTYPE==="single-component"?false:"single",moduleFederation:[],rulesInclude:{less:includeModule,css:includeModule,js:includeModule,media:includeModule,fonts:includeModule}};var log=function(msg){_readline.default.cursorTo(process.stdout,0);process.stdout.write(msg)};var customConf=defaultConfig;var configPath=null;var normalConf={};var envConf={};try{configPath=_path.default.join(_processEnv.PROGRAMPATH,"./config/index.ts");_fs.default.accessSync(configPath,_fs.default.constants.R_OK)}catch(error){configPath=null}if(configPath){try{var conf=eval((0,_utils.tfc)(configPath)).default;normalConf=(0,_utils.isFunction)(conf)?conf(process):conf}catch(error){process.stdout.write(_chalk.default.red(error))}}if(_processEnv.CUSTOMCONFIG){var customConfigPath=null;try{customConfigPath=_path.default.join(_processEnv.PROGRAMPATH,"./config/".concat(_processEnv.CUSTOMCONFIG,".ts"));_fs.default.accessSync(customConfigPath,_fs.default.constants.R_OK)}catch(error){customConfigPath=null}if(customConfigPath!==null){try{var conf=eval((0,_utils.tfc)(customConfigPath)).default;envConf=(0,_utils.isFunction)(conf)?conf(process):conf}catch(error){process.stdout.write(_chalk.default.red(error))}}}customConf=(0,_webpackMerge.merge)(customConf,normalConf,envConf);if(!(customConf===null||customConf===void 0?void 0:(_customConf_minifier=customConf.minifier)===null||_customConf_minifier===void 0?void 0:_customConf_minifier.type)){customConf.minifier.type=customConf.compiler==="swc"?"swc":"terser"}if(customConf.devtool===false)customConf.sourceMap=false;if(customConf.sourceMap===false)customConf.devtool=false;var CONFIG=customConf;var PUBLICPATH=CONFIG.publicPath||"auto";global.NEKOCLICONFIG={CONFIG:CONFIG,log:log};
|
package/build/envFlags.d.ts
CHANGED
package/build/envFlags.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _common=require("./common");var _coverage=require("./coverage");var _processEnv=require("./process-env");var _utils=require("./utils");function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}var reactVersion=_processEnv.hasReact?require("react/package.json").version:"18";var ReactDOMPath=parseFloat(reactVersion)>=18?"react-dom/client":"react-dom";var entryName=_processEnv.APPTYPE==="library"?"site":"src";var APPENTRY=false;try{var appEntryPath=_path.default.join(_processEnv.PROGRAMPATH,"./src/index.ts");_fs.default.accessSync(appEntryPath,_fs.default.constants.R_OK);APPENTRY=appEntryPath}catch(error){APPENTRY=false}var envFlags={projectName:JSON.stringify((0,_utils.toUpperCaseString)(_processEnv.PACKAGENAME)),projectCoverage:JSON.stringify(_coverage.coverage),providerConfig:JSON.stringify({prefixCls:_common.CONFIG.prefixCls,iconPrefixCls:_common.CONFIG.prefixCls+"-icon",input:{autoComplete:"off"}}),fallbackCompPath:JSON.stringify(_common.CONFIG.fallbackCompPath),ReactDOMPath:JSON.stringify(ReactDOMPath),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _common=require("./common");var _coverage=require("./coverage");var _htmlPluginOption=_interopRequireDefault(require("./html-plugin-option"));var _processEnv=require("./process-env");var _utils=require("./utils");function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}var reactVersion=_processEnv.hasReact?require("react/package.json").version:"18";var ReactDOMPath=parseFloat(reactVersion)>=18?"react-dom/client":"react-dom";var entryName=_processEnv.APPTYPE==="library"?"site":"src";var APPENTRY=false;try{var appEntryPath=_path.default.join(_processEnv.PROGRAMPATH,"./src/index.ts");_fs.default.accessSync(appEntryPath,_fs.default.constants.R_OK);APPENTRY=appEntryPath}catch(error){APPENTRY=false}var envFlags={projectName:JSON.stringify((0,_utils.toUpperCaseString)(_processEnv.PACKAGENAME)),projectCoverage:JSON.stringify(_coverage.coverage),providerConfig:JSON.stringify({prefixCls:_common.CONFIG.prefixCls,iconPrefixCls:_common.CONFIG.prefixCls+"-icon",input:{autoComplete:"off"}}),fallbackCompPath:JSON.stringify(_common.CONFIG.fallbackCompPath),ReactDOMPath:JSON.stringify(ReactDOMPath),favicon:JSON.stringify(_htmlPluginOption.default.favicon),hasLocales:JSON.stringify(_fs.default.existsSync(_path.default.join(_processEnv.PROGRAMPATH,"./".concat(entryName,"/locales")))),layoutSider:JSON.stringify(_common.CONFIG.layoutSider),hasAntd:JSON.stringify(_processEnv.hasAntd),APPTYPE:JSON.stringify(_processEnv.APPTYPE),APPENTRY:JSON.stringify(APPENTRY),programInfo:JSON.stringify(_objectSpreadProps(_objectSpread({},_processEnv.programInfo),{routeBaseName:_common.CONFIG.routeBaseName,designSize:_common.CONFIG.designSize,routerMode:_common.CONFIG.routerMode,renderMode:_common.CONFIG.mode})),"process.env":JSON.stringify(_objectSpread({NODE_ENV:_processEnv.NODE_ENV,APPTYPE:_processEnv.APPTYPE},_common.CONFIG.env))};var _default=envFlags;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
export type LocaleName = 'ar_EG' | 'az_AZ' | 'bg_BG' | 'bn_BD' | 'by_BY' | 'ca_ES' | 'cs_CZ' | 'da_DK' | 'de_DE' | 'el_GR' | 'en_GB' | 'en_US' | 'es_ES' | 'et_EE' | 'fa_IR' | 'fi_FI' | 'fr_BE' | 'fr_CA' | 'fr_FR' | 'ga_IE' | 'gl_ES' | 'he_IL' | 'hi_IN' | 'hr_HR' | 'hu_HU' | 'hy_AM' | 'id_ID' | 'is_IS' | 'it_IT' | 'ja_JP' | 'ka_GE' | 'kk_KZ' | 'kmr_IQ' | 'km_KH' | 'kn_IN' | 'ko_KR' | 'ku_IQ' | 'lt_LT' | 'lv_LV' | 'mk_MK' | 'ml_IN' | 'mn_MN' | 'ms_MY' | 'nb_NO' | 'ne_NP' | 'nl_BE' | 'nl_NL' | 'pl_PL' | 'pt_BR' | 'pt_PT' | 'ro_RO' | 'ru_RU' | 'sk_SK' | 'sl_SI' | 'sr_RS' | 'sv_SE' | 'ta_IN' | 'th_TH' | 'tr_TR' | 'uk_UA' | 'ur_PK' | 'vi_VN' | 'zh_CN' | 'zh_HK' | 'zh_TW';
|
|
3
3
|
export type LocaleConfig = {
|
|
4
|
-
/**
|
|
4
|
+
/** 语言名称 (未设置时使用文件名)*/
|
|
5
5
|
language?: LocaleName;
|
|
6
6
|
/** 描述 */
|
|
7
7
|
title: string;
|
|
8
8
|
/** Icon */
|
|
9
9
|
icon?: ReactNode | string;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
10
|
+
/** 翻译字典 */
|
|
11
|
+
translation: Record<string, string>;
|
|
13
12
|
};
|
|
14
13
|
interface Locale extends LocaleConfig {
|
|
15
14
|
language: LocaleName;
|
|
@@ -18,9 +17,7 @@ export declare const localizable: {
|
|
|
18
17
|
/** 使用的语言 */
|
|
19
18
|
language: LocaleName;
|
|
20
19
|
/** 获取本地化文本 */
|
|
21
|
-
t:
|
|
22
|
-
[key: string]: string | number;
|
|
23
|
-
};
|
|
20
|
+
t: Record<string, string>;
|
|
24
21
|
/** 本地化支持列表 */
|
|
25
22
|
locales: Pick<Locale, "language" | "icon" | "title">[];
|
|
26
23
|
/** 设置使用的语言
|
|
@@ -32,9 +29,7 @@ export declare const localizable: {
|
|
|
32
29
|
/** 使用的语言 */
|
|
33
30
|
language: LocaleName;
|
|
34
31
|
/** 获取本地化文本 */
|
|
35
|
-
t:
|
|
36
|
-
[key: string]: string | number;
|
|
37
|
-
};
|
|
32
|
+
t: Record<string, string>;
|
|
38
33
|
/** 本地化支持列表 */
|
|
39
34
|
locales: Pick<Locale, "language" | "icon" | "title">[];
|
|
40
35
|
/** 设置使用的语言
|
|
@@ -46,9 +41,7 @@ export declare const localizable: {
|
|
|
46
41
|
/** 使用的语言 */
|
|
47
42
|
language: LocaleName;
|
|
48
43
|
/** 获取本地化文本 */
|
|
49
|
-
t:
|
|
50
|
-
[key: string]: string | number;
|
|
51
|
-
};
|
|
44
|
+
t: Record<string, string>;
|
|
52
45
|
/** 本地化支持列表 */
|
|
53
46
|
locales: Pick<Locale, "language" | "icon" | "title">[];
|
|
54
47
|
/** 设置使用的语言
|
package/lib/localizable/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _models_keys,_models_keys_call;import createSlice from"../store";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?
|
|
1
|
+
var _models_keys,_models_keys_call;import createSlice from"../store";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=createSlice({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=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/localizable/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport createSlice from '../store';\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 /**
|
|
1
|
+
{"version":3,"sources":["../../src/localizable/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport createSlice from '../store';\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 = createSlice({\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","createSlice","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,gBAAiB,UAAW,CAqEnC,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,YAAY,CAErCmB,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,2 +1,2 @@
|
|
|
1
|
-
import"../../utils/
|
|
1
|
+
import"../../utils/refresh-rem";import"../../styles/normalize.css";var bootstrap=await import("./bootstrap");export default bootstrap;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/back-stage/index.ts"],"sourcesContent":["import '../../utils/
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/back-stage/index.ts"],"sourcesContent":["import '../../utils/refresh-rem';\nimport '../../styles/normalize.css';\n\nconst bootstrap = await import('./bootstrap');\n\nexport default bootstrap;\n"],"names":["bootstrap"],"mappings":"AAAA,MAAO,yBAA0B,AACjC,OAAO,4BAA6B,CAEpC,IAAMA,UAAY,MAAM,MAAM,CAAC,cAE/B,gBAAeA,SAAU"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { type ReactNode, type FC } from 'react';
|
|
2
|
-
import { type RouterProps } from '
|
|
2
|
+
import { type RouterProps } from '../../index';
|
|
3
3
|
export type CloseTab = 'left' | 'right' | 'other' | 'self';
|
|
4
4
|
export interface TabItem extends RouterProps {
|
|
5
5
|
key: string;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _taggedTemplateLiteral(strings,raw){if(!raw){raw=strings.slice(0)}return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _templateObject(){var data=_taggedTemplateLiteral(["\n ."," {\n position: sticky;\n top: 64px;\n z-index: 999;\n overflow: initial !important;\n margin: 16px 16px 0 !important;\n\n > .","-tabs-nav {\n .","-tabs-tab {\n border-color: var(--border-color, rgb(5 5 5 / 6%)) !important;\n border-radius: var(--border-radius) !important;\n backdrop-filter: blur(16px);\n }\n\n &::before {\n content: none;\n }\n }\n }\n ."," {\n width: 100% !important;\n min-height: 100vh !important;\n }\n .",", ."," {\n overflow-y: auto;\n max-height: 100vh;\n }\n ."," {\n overflow-y: auto;\n }\n ."," {\n overflow-y: auto;\n }\n ."," {\n display: flex;\n margin: 0 16px;\n flex-direction: column;\n }\n ."," {\n border-radius: var(--border-radius);\n padding: 24px;\n background: var(--component-card-bg, #fff);\n box-shadow: var(--box-shadow-lite);\n flex: 1;\n transition-property: background-color, box-shadow;\n }\n .",", .",", ."," > svg {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n ."," {\n position: sticky;\n top: 0;\n z-index: 1;\n display: flex;\n gap: 10px;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n padding: 14px;\n height: 68px;\n text-align: center;\n color: #de4553;\n transition-property: background-color, border-color;\n cursor: pointer;\n user-select: none;\n\n > svg,\n &::before {\n transition-property: opacity;\n }\n\n > svg {\n height: 32px;\n opacity: 0;\n }\n\n &::before {\n display: block;\n width: 22px;\n height: 32px;\n background: url(",") no-repeat center center / contain;\n opacity: 1;\n content: '';\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n }\n"]);_templateObject=function _templateObject(){return data};return data}import React,{useCallback,useEffect,useMemo,useState}from"react";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{css,injectGlobal}from"@emotion/css";import{Tabs,Layout,Dropdown}from"antd";import{useAliveController}from"react-activation";import{useSearchParams,useOutlet,useNavigate}from"react-router-dom";import FallbackComp from"../../components/fallback-comp";import LayoutMenu from"../../components/layout-menu";import{localizable}from"../../localizable";import{menu}from"@/store";var prefixCls=providerConfig.prefixCls;var c=function(s){return"".concat(prefixCls,"-dashboard-").concat(s)};var cls={tabs:c("tabs"),layout:c("layout"),sider:c("sider"),logo:c("logo"),section:c("section"),content:c("content"),view:c("view")};var layoutCss=css(_templateObject(),cls.tabs,prefixCls,prefixCls,cls.layout,cls.sider,cls.section,cls.section,cls.sider,cls.content,cls.view,cls.view,cls.logo,cls.logo,cls.logo,favicon);injectGlobal([layoutCss]);var closeTabs=[{label:"关闭左侧标签",icon:React.createElement(DeleteRowOutlined,{style:{transform:"scaleX(-1)"}}),key:"left"},{label:"关闭右侧标签",icon:React.createElement(DeleteRowOutlined,null),key:"right"},{label:"关闭其他标签",icon:React.createElement(CloseOutlined,null),key:"other"},{label:"刷新标签页",icon:React.createElement(ReloadOutlined,null),key:"refresh"}];var DashboardLayout=function(param){var children=param.children;var activeKey=menu.activeKey,tabs=menu.tabs,openTab=menu.openTab,closeTab=menu.closeTab,kv=menu.kv;var t=localizable.t;var outlet=useOutlet();var navigate=useNavigate();var dropScope=useAliveController().dropScope;var _useSearchParams=_slicedToArray(useSearchParams(),1),search=_useSearchParams[0];var _useState=_slicedToArray(useState(false),2),collapsed=_useState[0],setCollapsed=_useState[1];var handleCollapsed=useCallback(function(value){if(value){var _timer=window.setTimeout(function(){setCollapsed(value);window.clearTimeout(_timer);_timer=null},0)}else{setCollapsed(value);var _timer1=window.setTimeout(function(){window.clearTimeout(_timer1);_timer1=null},30)}},[]);var closedTab=useCallback(function(tabKey,type){if(type==="refresh"){navigate("/refresh");return}if(tabKey){closeTab(tabKey,type,function(closes,next){closes===null||closes===void 0?void 0:closes.forEach(function(item){if(item.path&&dropScope){dropScope(item.path)}});if(next){navigate("".concat(next.path,"?menuId=").concat(next.key))}})}},[closeTab,dropScope,navigate]);var _useMemo=useMemo(function(){return{menuId:search.get("menuId"),dynamicLabel:search.get("dynamicTitle")||""}},[search]),menuId=_useMemo.menuId,dynamicLabel=_useMemo.dynamicLabel;useEffect(function(){if(menuId){openTab({key:menuId,dynamicTitle:dynamicLabel})}},[dynamicLabel,menuId,openTab]);var getItems=useCallback(function(key){return key===activeKey?closeTabs:closeTabs.filter(function(i){return(i===null||i===void 0?void 0:i.key)!=="refresh"})},[activeKey]);var handleTabEdit=useCallback(function(targetKey,action){if(action==="remove"&&typeof targetKey==="string"){closedTab(targetKey)}},[closedTab]);var handleClick=useCallback(function(key){navigate("".concat(kv[key].key,"?menuId=").concat(kv[key].key))},[kv,navigate]);var tabPanel=useMemo(function(){return tabs.map(function(param){var key=param.key,icon=param.icon,i18n=param.i18n,dynamicTitle=param.dynamicTitle,closable=param.closable;return{key:key,label:React.createElement(Dropdown,{menu:{items:getItems(key),onClick:function(info){info.domEvent.stopPropagation();closedTab(key,info.key)}},trigger:["contextMenu"],destroyPopupOnHide:true},React.createElement("div",null,icon,t[i18n||"route-".concat(key)]+(dynamicTitle||""))),closable:closable}})},[closedTab,getItems,t,tabs]);return React.createElement(Layout,{className:cls.layout},layoutSider?React.createElement(Layout.Sider,_extends({className:cls.sider,trigger:null,collapsible:true,collapsed:collapsed,onBreakpoint:function(broken){return handleCollapsed(broken)},onCollapse:function(_collapsed){return handleCollapsed(_collapsed)},theme:"light",breakpoint:"md"},layoutSider),React.createElement("div",{className:cls.logo,"data-title":projectName},React.createElement(FallbackComp,{compName:"logo",show:!collapsed})),React.createElement(LayoutMenu,{collapsed:collapsed,theme:layoutSider.theme})):null,React.createElement(Layout,{className:cls.section},React.createElement(FallbackComp,{compName:"layout-header",collapsed:collapsed,onCollapsed:function(){return handleCollapsed(!collapsed)}}),React.createElement(Tabs,{className:cls.tabs,hideAdd:true,onTabClick:handleClick,activeKey:activeKey,type:"editable-card",onEdit:handleTabEdit,items:tabPanel,animated:true}),React.createElement(Layout.Content,{className:cls.content},React.createElement("div",{className:cls.view},children||outlet),React.createElement(FallbackComp,{compName:"layout-footer"}))))};export default DashboardLayout;
|
|
2
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/back-stage/layout.tsx"],"sourcesContent":["import React, { type ReactNode, useCallback, useEffect, useMemo, useState, type FC } from 'react';\nimport { ReloadOutlined, DeleteRowOutlined, CloseOutlined } from '@ant-design/icons';\nimport { css, injectGlobal } from '@emotion/css';\nimport { Tabs, Layout, Dropdown } from 'antd';\nimport { useAliveController } from 'react-activation';\nimport { useSearchParams, useOutlet, useNavigate } from 'react-router-dom';\nimport FallbackComp from '../../components/fallback-comp';\nimport LayoutMenu from '../../components/layout-menu';\nimport { type RouterProps } from '../../index';\nimport { localizable } from '../../localizable';\nimport type { MenuItemType } from 'antd/es/menu/hooks/useItems';\nimport { menu } from '@/store';\n\ndeclare const favicon: string;\n\nconst { prefixCls } = providerConfig;\n\nconst c = (s: string) => `${prefixCls}-dashboard-${s}`;\nconst cls = {\n tabs: c('tabs'),\n layout: c('layout'),\n sider: c('sider'),\n logo: c('logo'),\n section: c('section'),\n content: c('content'),\n view: c('view'),\n};\nconst layoutCss = css`\n .${cls.tabs} {\n position: sticky;\n top: 64px;\n z-index: 999;\n overflow: initial !important;\n margin: 16px 16px 0 !important;\n\n > .${prefixCls}-tabs-nav {\n .${prefixCls}-tabs-tab {\n border-color: var(--border-color, rgb(5 5 5 / 6%)) !important;\n border-radius: var(--border-radius) !important;\n backdrop-filter: blur(16px);\n }\n\n &::before {\n content: none;\n }\n }\n }\n .${cls.layout} {\n width: 100% !important;\n min-height: 100vh !important;\n }\n .${cls.sider}, .${cls.section} {\n overflow-y: auto;\n max-height: 100vh;\n }\n .${cls.section} {\n overflow-y: auto;\n }\n .${cls.sider} {\n overflow-y: auto;\n }\n .${cls.content} {\n display: flex;\n margin: 0 16px;\n flex-direction: column;\n }\n .${cls.view} {\n border-radius: var(--border-radius);\n padding: 24px;\n background: var(--component-card-bg, #fff);\n box-shadow: var(--box-shadow-lite);\n flex: 1;\n transition-property: background-color, box-shadow;\n }\n .${cls.view}, .${cls.logo}, .${cls.logo} > svg {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n .${cls.logo} {\n position: sticky;\n top: 0;\n z-index: 1;\n display: flex;\n gap: 10px;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n padding: 14px;\n height: 68px;\n text-align: center;\n color: #de4553;\n transition-property: background-color, border-color;\n cursor: pointer;\n user-select: none;\n\n > svg,\n &::before {\n transition-property: opacity;\n }\n\n > svg {\n height: 32px;\n opacity: 0;\n }\n\n &::before {\n display: block;\n width: 22px;\n height: 32px;\n background: url(${favicon}) no-repeat center center / contain;\n opacity: 1;\n content: '';\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n }\n`;\n\ninjectGlobal([layoutCss]);\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?: React.ReactNode;\n i18n?: string;\n dynamicTitle?: string;\n}\n\nconst closeTabs: ({ key: CloseTab | 'refresh' } & Omit<MenuItemType, 'key'>)[] = [\n {\n label: '关闭左侧标签',\n icon: <DeleteRowOutlined style={{ transform: 'scaleX(-1)' }} />,\n key: 'left',\n },\n {\n label: '关闭右侧标签',\n icon: <DeleteRowOutlined />,\n key: 'right',\n },\n {\n label: '关闭其他标签',\n icon: <CloseOutlined />,\n key: 'other',\n },\n {\n label: '刷新标签页',\n icon: <ReloadOutlined />,\n key: 'refresh',\n },\n];\nconst DashboardLayout: FC<{ children?: ReactNode }> = ({ children }) => {\n const { activeKey, tabs, openTab, closeTab, kv } = menu;\n const { t } = localizable;\n const outlet = useOutlet();\n const navigate = useNavigate();\n const { dropScope } = useAliveController();\n const [search] = useSearchParams();\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const handleCollapsed = useCallback((value: boolean) => {\n if (value) {\n let _timer: number | null = window.setTimeout(() => {\n setCollapsed(value);\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 0);\n } else {\n setCollapsed(value);\n let _timer: number | null = window.setTimeout(() => {\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 30);\n }\n }, []);\n const closedTab = useCallback(\n (tabKey?: string, type?: CloseTab | 'refresh') => {\n if (type === 'refresh') {\n navigate('/refresh');\n return;\n }\n if (tabKey) {\n closeTab(tabKey, type, function (closes?: TabItem[], next?: TabItem) {\n closes?.forEach((item) => {\n if (item.path && dropScope) {\n dropScope(item.path);\n }\n });\n if (next) {\n navigate(`${next.path}?menuId=${next.key}`);\n }\n });\n }\n },\n [closeTab, dropScope, navigate]\n );\n\n const { menuId, dynamicLabel } = useMemo(\n () => ({\n menuId: search.get('menuId'),\n dynamicLabel: search.get('dynamicTitle') || '',\n }),\n [search]\n );\n\n useEffect(() => {\n if (menuId) {\n openTab({\n key: menuId,\n dynamicTitle: dynamicLabel,\n });\n }\n }, [dynamicLabel, menuId, openTab]);\n\n const getItems = useCallback(\n (key: string) =>\n key === activeKey ? closeTabs : closeTabs.filter((i) => i?.key !== 'refresh'),\n [activeKey]\n );\n const handleTabEdit = useCallback(\n (\n targetKey: string | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\n action: 'add' | 'remove'\n ) => {\n if (action === 'remove' && typeof targetKey === 'string') {\n closedTab(targetKey);\n }\n },\n [closedTab]\n );\n const handleClick = useCallback(\n (key: string) => {\n navigate(`${kv[key].key}?menuId=${kv[key].key}`);\n },\n [kv, navigate]\n );\n const tabPanel = useMemo(() => {\n return tabs.map(({ key, icon, i18n, dynamicTitle, closable }: TabItem) => {\n return {\n key,\n label: (\n <Dropdown\n menu={{\n items: getItems(key),\n onClick: (info) => {\n info.domEvent.stopPropagation();\n closedTab(key, info.key as CloseTab);\n },\n }}\n trigger={['contextMenu']}\n destroyPopupOnHide\n >\n <div>\n {icon}\n {t[i18n || `route-${key}`] + (dynamicTitle || '')}\n </div>\n </Dropdown>\n ),\n closable,\n };\n });\n }, [closedTab, getItems, t, tabs]);\n\n return (\n <Layout className={cls.layout}>\n {layoutSider ? (\n <Layout.Sider\n className={cls.sider}\n trigger={null}\n collapsible\n collapsed={collapsed}\n onBreakpoint={(broken: boolean) => handleCollapsed(broken)}\n onCollapse={(_collapsed: boolean) => handleCollapsed(_collapsed)}\n theme=\"light\"\n breakpoint=\"md\"\n {...layoutSider}\n >\n <div className={cls.logo} data-title={projectName}>\n <FallbackComp compName=\"logo\" show={!collapsed} />\n </div>\n <LayoutMenu collapsed={collapsed} theme={layoutSider.theme} />\n </Layout.Sider>\n ) : null}\n <Layout className={cls.section}>\n <FallbackComp\n compName=\"layout-header\"\n collapsed={collapsed}\n onCollapsed={() => handleCollapsed(!collapsed)}\n />\n <Tabs\n className={cls.tabs}\n hideAdd\n onTabClick={handleClick}\n activeKey={activeKey}\n type=\"editable-card\"\n onEdit={handleTabEdit}\n items={tabPanel}\n animated\n />\n <Layout.Content className={cls.content}>\n <div className={cls.view}>{children || outlet}</div>\n <FallbackComp compName=\"layout-footer\" />\n </Layout.Content>\n </Layout>\n </Layout>\n );\n};\n\nexport default DashboardLayout;\n"],"names":["React","useCallback","useEffect","useMemo","useState","ReloadOutlined","DeleteRowOutlined","CloseOutlined","css","injectGlobal","Tabs","Layout","Dropdown","useAliveController","useSearchParams","useOutlet","useNavigate","FallbackComp","LayoutMenu","localizable","menu","prefixCls","providerConfig","c","s","cls","tabs","layout","sider","logo","section","content","view","layoutCss","favicon","closeTabs","label","icon","style","transform","key","DashboardLayout","children","activeKey","openTab","closeTab","kv","t","outlet","navigate","dropScope","search","collapsed","setCollapsed","handleCollapsed","value","_timer","window","setTimeout","clearTimeout","closedTab","tabKey","type","closes","next","forEach","item","path","menuId","get","dynamicLabel","dynamicTitle","getItems","filter","i","handleTabEdit","targetKey","action","handleClick","tabPanel","map","i18n","closable","items","onClick","info","domEvent","stopPropagation","trigger","destroyPopupOnHide","div","className","layoutSider","Sider","collapsible","onBreakpoint","broken","onCollapse","_collapsed","theme","breakpoint","data-title","projectName","compName","show","onCollapsed","hideAdd","onTabClick","onEdit","animated","Content"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../../utils/
|
|
1
|
+
import"../../utils/refresh-rem";import"../../styles/normalize.css";var bootstrap=await import("./bootstrap");export default bootstrap;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/library/index.ts"],"sourcesContent":["import '../../utils/
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/library/index.ts"],"sourcesContent":["import '../../utils/refresh-rem';\nimport '../../styles/normalize.css';\n\nconst bootstrap = await import('./bootstrap');\n\nexport default bootstrap;\n"],"names":["bootstrap"],"mappings":"AAAA,MAAO,yBAA0B,AACjC,OAAO,4BAA6B,CAEpC,IAAMA,UAAY,MAAM,MAAM,CAAC,cAE/B,gBAAeA,SAAU"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../../utils/
|
|
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();
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/mobile/index.tsx"],"sourcesContent":["import '../../utils/
|
|
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,5 +1,4 @@
|
|
|
1
1
|
import './public-path';
|
|
2
|
-
import '../../utils/env';
|
|
3
2
|
import '../../utils/refresh-rem';
|
|
4
3
|
import '../../styles/normalize.css';
|
|
5
4
|
declare const bootstrap: typeof import("./bootstrap").bootstrap, mount: typeof import("./bootstrap").mount, unmount: typeof import("./bootstrap").unmount;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./public-path";import"../../utils/
|
|
1
|
+
import"./public-path";import"../../utils/refresh-rem";import"../../styles/normalize.css";var _ref=await import("./bootstrap"),bootstrap=_ref.bootstrap,mount=_ref.mount,unmount=_ref.unmount;export{bootstrap,mount,unmount};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/single-spa/index.ts"],"sourcesContent":["import './public-path';\nimport '../../utils/
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/single-spa/index.ts"],"sourcesContent":["import './public-path';\nimport '../../utils/refresh-rem';\nimport '../../styles/normalize.css';\n\nconst { bootstrap, mount, unmount } = await import('./bootstrap');\n\nexport { bootstrap, mount, unmount };\n"],"names":["bootstrap","mount","unmount"],"mappings":"AAAA,MAAO,eAAgB,AACvB,OAAO,yBAA0B,AACjC,OAAO,4BAA6B,CAEpC,IAAsC,KAAA,MAAM,MAAM,CAAC,eAA3CA,UAA8B,KAA9BA,UAAWC,MAAmB,KAAnBA,MAAOC,QAAY,KAAZA,OAE1B,QAASF,SAAS,CAAEC,KAAK,CAAEC,OAAO,CAAG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../../utils/
|
|
1
|
+
import"../../utils/refresh-rem";import"../../styles/normalize.css";var bootstrap=await import("./bootstrap");export default bootstrap;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/site/index.ts"],"sourcesContent":["import '../../utils/
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/site/index.ts"],"sourcesContent":["import '../../utils/refresh-rem';\nimport '../../styles/normalize.css';\n\nconst bootstrap = await import('./bootstrap');\n\nexport default bootstrap;\n"],"names":["bootstrap"],"mappings":"AAAA,MAAO,yBAA0B,AACjC,OAAO,4BAA6B,CAEpC,IAAMA,UAAY,MAAM,MAAM,CAAC,cAE/B,gBAAeA,SAAU"}
|
package/lib/styles/variables.css
CHANGED
package/package.json
CHANGED
package/typings/global.d.ts
CHANGED
|
@@ -53,13 +53,8 @@ export declare type ConfigType<T = 'tsc'> = {
|
|
|
53
53
|
/** 环境变量, 可通过 process.env 获取 */
|
|
54
54
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
55
|
env?: Record<string, any>;
|
|
56
|
-
/**
|
|
57
|
-
|
|
58
|
-
| {
|
|
59
|
-
/** 持久化数据使用的key, 当key为 'none' 时, 关闭持久化 */
|
|
60
|
-
programName?: string;
|
|
61
|
-
}
|
|
62
|
-
| false;
|
|
56
|
+
/** persistence 持久化数据使用的key, 为 false 时关闭持久化 */
|
|
57
|
+
persistence?: string | false;
|
|
63
58
|
devtool?: Configuration['devtool'];
|
|
64
59
|
sourceMap?: SourceMapDevToolPluginOptions | false;
|
|
65
60
|
/** 路径别名映射 */
|
|
@@ -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 _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useCallback,useEffect,useMemo,useState}from"react";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{Tabs,Layout,Dropdown}from"antd";import{useAliveController}from"react-activation";import{useSearchParams,useOutlet,useNavigate}from"react-router-dom";import styles from"./index.less";import FallbackComp from"../../../components/fallback-comp";import LayoutMenu from"../../../components/layout-menu";import{localizable}from"../../../localizable";import{menu}from"@/store";var closeTabs=[{label:"关闭左侧标签",icon:React.createElement(DeleteRowOutlined,{style:{transform:"scaleX(-1)"}}),key:"left"},{label:"关闭右侧标签",icon:React.createElement(DeleteRowOutlined,null),key:"right"},{label:"关闭其他标签",icon:React.createElement(CloseOutlined,null),key:"other"},{label:"刷新标签页",icon:React.createElement(ReloadOutlined,null),key:"refresh"}];var DashboardLayout=function(param){var children=param.children;var activeKey=menu.activeKey,tabs=menu.tabs,openTab=menu.openTab,closeTab=menu.closeTab,kv=menu.kv;var t=localizable.t;var outlet=useOutlet();var navigate=useNavigate();var dropScope=useAliveController().dropScope;var _useSearchParams=_slicedToArray(useSearchParams(),1),search=_useSearchParams[0];var _useState=_slicedToArray(useState(false),2),collapsed=_useState[0],setCollapsed=_useState[1];var handleCollapsed=useCallback(function(value){if(value){var _timer=window.setTimeout(function(){setCollapsed(value);window.clearTimeout(_timer);_timer=null},0)}else{setCollapsed(value);var _timer1=window.setTimeout(function(){window.clearTimeout(_timer1);_timer1=null},30)}},[]);var closedTab=useCallback(function(tabKey,type){if(type==="refresh"){navigate("/refresh");return}if(tabKey){closeTab(tabKey,type,function(closes,next){closes===null||closes===void 0?void 0:closes.forEach(function(item){if(item.path&&dropScope){dropScope(item.path)}});if(next){navigate("".concat(next.path,"?menuId=").concat(next.key))}})}},[closeTab,dropScope,navigate]);var _useMemo=useMemo(function(){return{menuId:search.get("menuId"),dynamicLabel:search.get("dynamicTitle")||""}},[search]),menuId=_useMemo.menuId,dynamicLabel=_useMemo.dynamicLabel;useEffect(function(){if(menuId){openTab({key:menuId,dynamicTitle:dynamicLabel})}},[dynamicLabel,menuId,openTab]);var getItems=useCallback(function(key){return key===activeKey?closeTabs:closeTabs.filter(function(i){return(i===null||i===void 0?void 0:i.key)!=="refresh"})},[activeKey]);var handleTabEdit=useCallback(function(targetKey,action){if(action==="remove"&&typeof targetKey==="string"){closedTab(targetKey)}},[closedTab]);var handleClick=useCallback(function(key){navigate("".concat(kv[key].key,"?menuId=").concat(kv[key].key))},[kv,navigate]);var tabPanel=useMemo(function(){return tabs.map(function(param){var key=param.key,icon=param.icon,i18n=param.i18n,dynamicTitle=param.dynamicTitle,closable=param.closable;return{key:key,label:React.createElement(Dropdown,{menu:{items:getItems(key),onClick:function(info){info.domEvent.stopPropagation();closedTab(key,info.key)}},trigger:["contextMenu"],destroyPopupOnHide:true},React.createElement("div",null,icon,t[i18n||"route-".concat(key)]+(dynamicTitle||""))),closable:closable}})},[closedTab,getItems,t,tabs]);return React.createElement(Layout,{className:styles.layout},layoutSider?React.createElement(Layout.Sider,_extends({className:styles.sider,trigger:null,collapsible:true,collapsed:collapsed,onBreakpoint:function(broken){return handleCollapsed(broken)},onCollapse:function(_collapsed){return handleCollapsed(_collapsed)},theme:"light",breakpoint:"md"},layoutSider),React.createElement("div",{className:styles.logo,"data-title":projectName},React.createElement(FallbackComp,{compName:"logo",show:!collapsed})),React.createElement(LayoutMenu,{collapsed:collapsed,theme:layoutSider.theme})):null,React.createElement(Layout,{className:styles.section},React.createElement(FallbackComp,{compName:"layout-header",collapsed:collapsed,onCollapsed:function(){return handleCollapsed(!collapsed)}}),React.createElement(Tabs,{className:styles.tabs,hideAdd:true,onTabClick:handleClick,activeKey:activeKey,size:"middle",type:"editable-card",onEdit:handleTabEdit,items:tabPanel}),React.createElement(Layout.Content,{className:styles.layoutContent},React.createElement("div",{className:styles.content},children||outlet),React.createElement(FallbackComp,{compName:"layout-footer"}))))};export default DashboardLayout;
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/packages/back-stage/layout/index.tsx"],"sourcesContent":["import React, { type ReactNode, useCallback, useEffect, useMemo, useState, type FC } from 'react';\nimport { ReloadOutlined, DeleteRowOutlined, CloseOutlined } from '@ant-design/icons';\nimport { Tabs, Layout, Dropdown } from 'antd';\nimport { useAliveController } from 'react-activation';\nimport { useSearchParams, useOutlet, useNavigate } from 'react-router-dom';\nimport styles from './index.less';\nimport FallbackComp from '../../../components/fallback-comp';\nimport LayoutMenu from '../../../components/layout-menu';\nimport { type RouterProps } from '../../../index';\nimport { localizable } from '../../../localizable';\nimport type { MenuItemType } from 'antd/es/menu/hooks/useItems';\nimport { menu } from '@/store';\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?: React.ReactNode;\n i18n?: string;\n dynamicTitle?: string;\n}\n\nconst closeTabs: ({ key: CloseTab | 'refresh' } & Omit<MenuItemType, 'key'>)[] = [\n {\n label: '关闭左侧标签',\n icon: <DeleteRowOutlined style={{ transform: 'scaleX(-1)' }} />,\n key: 'left',\n },\n {\n label: '关闭右侧标签',\n icon: <DeleteRowOutlined />,\n key: 'right',\n },\n {\n label: '关闭其他标签',\n icon: <CloseOutlined />,\n key: 'other',\n },\n {\n label: '刷新标签页',\n icon: <ReloadOutlined />,\n key: 'refresh',\n },\n];\nconst DashboardLayout: FC<{ children?: ReactNode }> = ({ children }) => {\n const { activeKey, tabs, openTab, closeTab, kv } = menu;\n const { t } = localizable;\n const outlet = useOutlet();\n const navigate = useNavigate();\n const { dropScope } = useAliveController();\n const [search] = useSearchParams();\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const handleCollapsed = useCallback((value: boolean) => {\n if (value) {\n let _timer: number | null = window.setTimeout(() => {\n setCollapsed(value);\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 0);\n } else {\n setCollapsed(value);\n let _timer: number | null = window.setTimeout(() => {\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 30);\n }\n }, []);\n const closedTab = useCallback(\n (tabKey?: string, type?: CloseTab | 'refresh') => {\n if (type === 'refresh') {\n navigate('/refresh');\n return;\n }\n if (tabKey) {\n closeTab(tabKey, type, function (closes?: TabItem[], next?: TabItem) {\n closes?.forEach((item) => {\n if (item.path && dropScope) {\n dropScope(item.path);\n }\n });\n if (next) {\n navigate(`${next.path}?menuId=${next.key}`);\n }\n });\n }\n },\n [closeTab, dropScope, navigate]\n );\n\n const { menuId, dynamicLabel } = useMemo(\n () => ({\n menuId: search.get('menuId'),\n dynamicLabel: search.get('dynamicTitle') || '',\n }),\n [search]\n );\n\n useEffect(() => {\n if (menuId) {\n openTab({\n key: menuId,\n dynamicTitle: dynamicLabel,\n });\n }\n }, [dynamicLabel, menuId, openTab]);\n\n const getItems = useCallback(\n (key: string) =>\n key === activeKey ? closeTabs : closeTabs.filter((i) => i?.key !== 'refresh'),\n [activeKey]\n );\n const handleTabEdit = useCallback(\n (\n targetKey: string | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\n action: 'add' | 'remove'\n ) => {\n if (action === 'remove' && typeof targetKey === 'string') {\n closedTab(targetKey);\n }\n },\n [closedTab]\n );\n const handleClick = useCallback(\n (key: string) => {\n navigate(`${kv[key].key}?menuId=${kv[key].key}`);\n },\n [kv, navigate]\n );\n const tabPanel = useMemo(() => {\n return tabs.map(({ key, icon, i18n, dynamicTitle, closable }: TabItem) => {\n return {\n key,\n label: (\n <Dropdown\n menu={{\n items: getItems(key),\n onClick: (info) => {\n info.domEvent.stopPropagation();\n closedTab(key, info.key as CloseTab);\n },\n }}\n trigger={['contextMenu']}\n destroyPopupOnHide\n >\n <div>\n {icon}\n {t[i18n || `route-${key}`] + (dynamicTitle || '')}\n </div>\n </Dropdown>\n ),\n closable,\n };\n });\n }, [closedTab, getItems, t, tabs]);\n\n return (\n <Layout className={styles.layout}>\n {layoutSider ? (\n <Layout.Sider\n className={styles.sider}\n trigger={null}\n collapsible\n collapsed={collapsed}\n onBreakpoint={(broken: boolean) => handleCollapsed(broken)}\n onCollapse={(_collapsed: boolean) => handleCollapsed(_collapsed)}\n theme=\"light\"\n breakpoint=\"md\"\n {...layoutSider}\n >\n <div className={styles.logo} data-title={projectName}>\n <FallbackComp compName=\"logo\" show={!collapsed} />\n </div>\n <LayoutMenu collapsed={collapsed} theme={layoutSider.theme} />\n </Layout.Sider>\n ) : null}\n <Layout className={styles.section}>\n <FallbackComp\n compName=\"layout-header\"\n collapsed={collapsed}\n onCollapsed={() => handleCollapsed(!collapsed)}\n />\n <Tabs\n className={styles.tabs}\n hideAdd\n onTabClick={handleClick}\n activeKey={activeKey}\n size=\"middle\"\n type=\"editable-card\"\n onEdit={handleTabEdit}\n items={tabPanel}\n />\n <Layout.Content className={styles.layoutContent}>\n <div className={styles.content}>{children || outlet}</div>\n <FallbackComp compName=\"layout-footer\" />\n </Layout.Content>\n </Layout>\n </Layout>\n );\n};\n\nexport default DashboardLayout;\n"],"names":["React","useCallback","useEffect","useMemo","useState","ReloadOutlined","DeleteRowOutlined","CloseOutlined","Tabs","Layout","Dropdown","useAliveController","useSearchParams","useOutlet","useNavigate","styles","FallbackComp","LayoutMenu","localizable","menu","closeTabs","label","icon","style","transform","key","DashboardLayout","children","activeKey","tabs","openTab","closeTab","kv","t","outlet","navigate","dropScope","search","collapsed","setCollapsed","handleCollapsed","value","_timer","window","setTimeout","clearTimeout","closedTab","tabKey","type","closes","next","forEach","item","path","menuId","get","dynamicLabel","dynamicTitle","getItems","filter","i","handleTabEdit","targetKey","action","handleClick","tabPanel","map","i18n","closable","items","onClick","info","domEvent","stopPropagation","trigger","destroyPopupOnHide","div","className","layout","layoutSider","Sider","sider","collapsible","onBreakpoint","broken","onCollapse","_collapsed","theme","breakpoint","logo","data-title","projectName","compName","show","section","onCollapsed","hideAdd","onTabClick","size","onEdit","Content","layoutContent","content"],"mappings":"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"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
.tabs {
|
|
2
|
-
overflow: initial !important;
|
|
3
|
-
margin: 16px 16px 0 !important;
|
|
4
|
-
|
|
5
|
-
> :global(.@{ant-prefix}-tabs-nav) {
|
|
6
|
-
margin-bottom: 0 !important;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.layout {
|
|
11
|
-
width: 100% !important;
|
|
12
|
-
min-height: 100vh !important;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.sider,
|
|
16
|
-
.section {
|
|
17
|
-
max-height: 100vh;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.layout-content {
|
|
21
|
-
display: flex;
|
|
22
|
-
overflow-y: auto;
|
|
23
|
-
margin: 0 16px;
|
|
24
|
-
flex-direction: column;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.content {
|
|
28
|
-
flex: 1;
|
|
29
|
-
padding: 24px;
|
|
30
|
-
background: var(--component-card-bg, #fff);
|
|
31
|
-
box-shadow: var(--box-shadow-lite);
|
|
32
|
-
transition-property: background-color, box-shadow;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.sider {
|
|
36
|
-
overflow-y: auto;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.content,
|
|
40
|
-
.logo,
|
|
41
|
-
.logo > svg,
|
|
42
|
-
.logo::before {
|
|
43
|
-
transition-duration: var(--transition-duration);
|
|
44
|
-
transition-timing-function: var(--transition-timing-function);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.logo {
|
|
48
|
-
position: sticky;
|
|
49
|
-
top: 0;
|
|
50
|
-
z-index: 1;
|
|
51
|
-
display: flex;
|
|
52
|
-
gap: 10px;
|
|
53
|
-
justify-content: center;
|
|
54
|
-
align-items: center;
|
|
55
|
-
overflow: hidden;
|
|
56
|
-
padding: 14px;
|
|
57
|
-
height: 68px;
|
|
58
|
-
text-align: center;
|
|
59
|
-
color: #de4553;
|
|
60
|
-
transition-property: background-color, border-color;
|
|
61
|
-
cursor: pointer;
|
|
62
|
-
user-select: none;
|
|
63
|
-
|
|
64
|
-
> svg,&::before {
|
|
65
|
-
transition-property: opacity;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
> svg {
|
|
69
|
-
height: 32px;
|
|
70
|
-
opacity: 0;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
&::before {
|
|
74
|
-
display: block;
|
|
75
|
-
width: 22px;
|
|
76
|
-
height: 32px;
|
|
77
|
-
background: url('@{favicon}') no-repeat center center / contain;
|
|
78
|
-
opacity: 1;
|
|
79
|
-
content: '';
|
|
80
|
-
}
|
|
81
|
-
}
|
package/lib/utils/env.d.ts
DELETED
|
File without changes
|
package/lib/utils/env.js
DELETED
package/lib/utils/env.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/env.ts"],"sourcesContent":["if (!window.__MINIIDC__) {\n window.__MINIIDC__ = {};\n}\nif (miniIdc === false) {\n window.__MINIIDC__.__PROGRAMSTATENAME__ = 'none';\n} else if (miniIdc.programName) {\n window.__MINIIDC__.__PROGRAMSTATENAME__ = miniIdc.programName;\n}\n"],"names":["window","__MINIIDC__","miniIdc","__PROGRAMSTATENAME__","programName"],"mappings":"AAAA,GAAI,CAACA,OAAOC,WAAW,CAAE,CACvBD,OAAOC,WAAW,CAAG,CAAC,CACxB,CAAC,AACD,GAAIC,UAAY,KAAK,CAAE,CACrBF,OAAOC,WAAW,CAACE,oBAAoB,CAAG,MAC5C,MAAO,GAAID,QAAQE,WAAW,CAAE,CAC9BJ,OAAOC,WAAW,CAACE,oBAAoB,CAAGD,QAAQE,WAAW,AAC/D,CAAC"}
|