@moneko/core 2.0.0-beta.9 → 2.0.1-8.2

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.
Files changed (161) hide show
  1. package/build/common.js +1 -1
  2. package/build/coverage.js +1 -1
  3. package/build/done.d.ts +8 -0
  4. package/build/done.js +1 -0
  5. package/build/envFlags.d.ts +2 -4
  6. package/build/envFlags.js +1 -1
  7. package/build/has-pkg.js +1 -1
  8. package/build/html-plugin-option.d.ts +2 -2
  9. package/build/html-plugin-option.js +1 -1
  10. package/build/index.d.ts +2 -0
  11. package/build/index.js +1 -0
  12. package/build/minify.d.ts +1 -1
  13. package/build/modifyVars.js +1 -1
  14. package/build/module-federation.d.ts +1 -1
  15. package/build/module-federation.js +1 -1
  16. package/build/module.config.js +1 -1
  17. package/build/process-env.d.ts +3 -1
  18. package/build/process-env.js +1 -1
  19. package/build/resolver-sync.js +1 -1
  20. package/build/seo.d.ts +1 -0
  21. package/build/seo.js +1 -0
  22. package/build/swcrc.js +1 -1
  23. package/build/tsloader.config.js +1 -1
  24. package/build/utils.d.ts +9 -6
  25. package/build/utils.js +1 -1
  26. package/build/webpack.common.d.ts +1 -0
  27. package/build/webpack.common.js +1 -1
  28. package/build/webpack.dev.js +1 -1
  29. package/build/webpack.prod.js +1 -1
  30. package/lib/components/app-router.d.ts +8 -0
  31. package/lib/components/app-router.js +2 -0
  32. package/lib/components/app-router.js.map +1 -0
  33. package/lib/components/{fallback-comp/index.js → fallback-comp.js} +1 -1
  34. package/lib/components/fallback-comp.js.map +1 -0
  35. package/lib/components/{fallback/index.js → fallback.js} +2 -2
  36. package/lib/components/fallback.js.map +1 -0
  37. package/lib/components/{layout-menu/index.d.ts → layout-menu.d.ts} +1 -2
  38. package/lib/components/layout-menu.js +2 -0
  39. package/lib/components/layout-menu.js.map +1 -0
  40. package/lib/index.d.ts +15 -14
  41. package/lib/index.js +1 -1
  42. package/lib/index.js.map +1 -1
  43. package/lib/localizable.d.ts +53 -0
  44. package/lib/localizable.js +2 -0
  45. package/lib/localizable.js.map +1 -0
  46. package/lib/menu.d.ts +115 -0
  47. package/lib/menu.js +2 -0
  48. package/lib/menu.js.map +1 -0
  49. package/lib/packages/back-stage/app.d.ts +2 -2
  50. package/lib/packages/back-stage/app.js +1 -1
  51. package/lib/packages/back-stage/app.js.map +1 -1
  52. package/lib/packages/back-stage/bootstrap.d.ts +1 -1
  53. package/lib/packages/back-stage/bootstrap.js +1 -1
  54. package/lib/packages/back-stage/bootstrap.js.map +1 -1
  55. package/lib/packages/back-stage/index.d.ts +1 -1
  56. package/lib/packages/back-stage/index.js +1 -1
  57. package/lib/packages/back-stage/index.js.map +1 -1
  58. package/lib/packages/back-stage/layout.d.ts +5 -0
  59. package/lib/packages/back-stage/layout.js +2 -0
  60. package/lib/packages/back-stage/layout.js.map +1 -0
  61. package/lib/packages/library/app.js +1 -1
  62. package/lib/packages/library/app.js.map +1 -1
  63. package/lib/packages/library/bootstrap.d.ts +1 -1
  64. package/lib/packages/library/bootstrap.js +1 -1
  65. package/lib/packages/library/bootstrap.js.map +1 -1
  66. package/lib/packages/library/index.d.ts +1 -1
  67. package/lib/packages/library/index.js +1 -1
  68. package/lib/packages/library/index.js.map +1 -1
  69. package/lib/packages/mobile/app.js +1 -1
  70. package/lib/packages/mobile/app.js.map +1 -1
  71. package/lib/packages/mobile/index.d.ts +1 -2
  72. package/lib/packages/mobile/index.js +1 -1
  73. package/lib/packages/mobile/index.js.map +1 -1
  74. package/lib/packages/single-spa/app.d.ts +6 -5
  75. package/lib/packages/single-spa/app.js +1 -1
  76. package/lib/packages/single-spa/app.js.map +1 -1
  77. package/lib/packages/single-spa/bootstrap.d.ts +0 -1
  78. package/lib/packages/single-spa/bootstrap.js +1 -1
  79. package/lib/packages/single-spa/bootstrap.js.map +1 -1
  80. package/lib/packages/single-spa/index.d.ts +1 -1
  81. package/lib/packages/single-spa/index.js +1 -1
  82. package/lib/packages/single-spa/index.js.map +1 -1
  83. package/lib/packages/site/app.js +1 -1
  84. package/lib/packages/site/app.js.map +1 -1
  85. package/lib/packages/site/bootstrap.d.ts +1 -1
  86. package/lib/packages/site/bootstrap.js +1 -1
  87. package/lib/packages/site/bootstrap.js.map +1 -1
  88. package/lib/packages/site/index.d.ts +1 -1
  89. package/lib/packages/site/index.js +1 -1
  90. package/lib/packages/site/index.js.map +1 -1
  91. package/lib/prefix/react-router-dom.js +1 -1
  92. package/lib/prefix/react-router-dom.js.map +1 -1
  93. package/lib/react-router-dom/link.d.ts +9 -0
  94. package/lib/react-router-dom/link.js +2 -0
  95. package/lib/react-router-dom/link.js.map +1 -0
  96. package/lib/{hooks/navgate.d.ts → react-router-dom/use-navgate.d.ts} +1 -1
  97. package/lib/{hooks/navgate.js → react-router-dom/use-navgate.js} +1 -1
  98. package/lib/react-router-dom/use-navgate.js.map +1 -0
  99. package/lib/router/index.d.ts +38 -8
  100. package/lib/router/index.js +1 -1
  101. package/lib/router/index.js.map +1 -1
  102. package/lib/sso/index.d.ts +23 -0
  103. package/lib/sso/index.js +2 -0
  104. package/lib/sso/index.js.map +1 -0
  105. package/lib/styles/normalize.css +269 -0
  106. package/lib/styles/variables.css +35 -0
  107. package/lib/utils/index.d.ts +1 -1
  108. package/lib/utils/index.js +1 -1
  109. package/lib/utils/index.js.map +1 -1
  110. package/package.json +31 -30
  111. package/typings/global.d.ts +181 -67
  112. package/build/has-antd.d.ts +0 -2
  113. package/build/has-antd.js +0 -1
  114. package/lib/components/app-router/index.d.ts +0 -8
  115. package/lib/components/app-router/index.js +0 -2
  116. package/lib/components/app-router/index.js.map +0 -1
  117. package/lib/components/fallback/index.js.map +0 -1
  118. package/lib/components/fallback-comp/index.js.map +0 -1
  119. package/lib/components/layout-menu/index.global.less +0 -40
  120. package/lib/components/layout-menu/index.js +0 -2
  121. package/lib/components/layout-menu/index.js.map +0 -1
  122. package/lib/hooks/navgate.js.map +0 -1
  123. package/lib/packages/back-stage/layout/index.d.ts +0 -3
  124. package/lib/packages/back-stage/layout/index.js +0 -2
  125. package/lib/packages/back-stage/layout/index.js.map +0 -1
  126. package/lib/packages/back-stage/layout/index.less +0 -91
  127. package/lib/packages/back-stage/models/app-program.d.ts +0 -24
  128. package/lib/packages/back-stage/models/app-program.js +0 -2
  129. package/lib/packages/back-stage/models/app-program.js.map +0 -1
  130. package/lib/prefix/i18n-hooks.d.ts +0 -1
  131. package/lib/prefix/i18n-hooks.js +0 -2
  132. package/lib/prefix/i18n-hooks.js.map +0 -1
  133. package/lib/prefix/mini-idc.d.ts +0 -1
  134. package/lib/prefix/mini-idc.js +0 -2
  135. package/lib/prefix/mini-idc.js.map +0 -1
  136. package/lib/styles/animation.d.ts +0 -5
  137. package/lib/styles/animation.js +0 -2
  138. package/lib/styles/animation.js.map +0 -1
  139. package/lib/styles/normalize.d.ts +0 -2
  140. package/lib/styles/normalize.js +0 -2
  141. package/lib/styles/normalize.js.map +0 -1
  142. package/lib/styles/vars.d.ts +0 -4
  143. package/lib/styles/vars.js +0 -2
  144. package/lib/styles/vars.js.map +0 -1
  145. package/lib/utils/color-palette.d.ts +0 -2
  146. package/lib/utils/color-palette.js +0 -2
  147. package/lib/utils/color-palette.js.map +0 -1
  148. package/lib/utils/env.d.ts +0 -0
  149. package/lib/utils/env.js +0 -2
  150. package/lib/utils/env.js.map +0 -1
  151. package/lib/utils/fontloader.d.ts +0 -1
  152. package/lib/utils/fontloader.js +0 -2
  153. package/lib/utils/fontloader.js.map +0 -1
  154. package/lib/utils/lazy-import.d.ts +0 -22
  155. package/lib/utils/lazy-import.js +0 -2
  156. package/lib/utils/lazy-import.js.map +0 -1
  157. package/lib/utils/theme.d.ts +0 -13
  158. package/lib/utils/theme.js +0 -2
  159. package/lib/utils/theme.js.map +0 -1
  160. /package/lib/components/{fallback-comp/index.d.ts → fallback-comp.d.ts} +0 -0
  161. /package/lib/components/{fallback/index.d.ts → fallback.d.ts} +0 -0
package/lib/index.d.ts CHANGED
@@ -1,16 +1,19 @@
1
1
  /// <reference types="react" />
2
2
  export * from './prefix/react-router-dom.js';
3
- export * from './prefix/i18n-hooks.js';
4
- export * from './prefix/mini-idc.js';
5
3
  export * from './utils';
6
- export { lazyImport, safeImport } from './utils/lazy-import';
7
- export { matchUtil, router, onlyLoginRouter, myPkgs } from './router';
8
- export type { RouterProps } from './router/index';
4
+ export { pathToRegexp } from 'path-to-regexp';
5
+ export { default as sso } from './sso';
6
+ export { type LocaleConfig, localizable, type LocaleName } from './localizable';
7
+ export { matchUtil, router, onlyLoginRouter, myPkgs, myDemoKv, mdxComponents, type ExampleModule, type RouterProps, type MyPkg, } from './router';
8
+ export { type TabItem, type MenuItem, type CloseTab, menu } from './menu';
9
+ export type { LayoutMenuProps } from './components/layout-menu';
10
+ export { createRouter, prefixRouter, routerData, RouterFragment } from './components/app-router';
9
11
  export declare const LayoutMenu: any;
10
- export type { ConfigType, AppType, CommomType, ProgramInfoType } from '../typings/global';
12
+ export declare const DashboardLayout: any;
13
+ export type { ConfigType, AppType, CommomType, ProgramInfoType, MemberTransformer, CoverageType, TerserOptions, MinifierType, SourceMapDevToolPluginOptions, ProjectCoverageType, SharedConfig, SwcOptions, OptimizationSplitChunksOptions, SwcImportOnDemandTransform, } from '../typings/global';
11
14
  import type { ConfigType, CommomType, CoverageType, ProjectCoverageType } from '../typings/global';
12
- export declare type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;
13
- export declare type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;
15
+ export type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;
16
+ export type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;
14
17
  /** 一些项目基本信息 */
15
18
  export declare const projectBasicInfo: {
16
19
  projectName: string;
@@ -25,13 +28,14 @@ export declare const projectBasicInfo: {
25
28
  description: string;
26
29
  version: string;
27
30
  type: "mobile" | "site" | "back-stage" | "single-spa" | "library";
28
- author: string | {
31
+ author: {
29
32
  name: string;
33
+ url?: string | undefined;
30
34
  email?: string | undefined;
31
35
  };
32
- repository: string | {
33
- url?: string | undefined;
36
+ repository: {
34
37
  type?: string | undefined;
38
+ url?: string | undefined;
35
39
  directory?: string | undefined;
36
40
  };
37
41
  routerMode: "hash" | "browser" | "memory";
@@ -41,6 +45,3 @@ export declare const projectBasicInfo: {
41
45
  };
42
46
  coverage: Record<string, CoverageType & Partial<ProjectCoverageType>>;
43
47
  };
44
- export { default as colorPalette } from './utils/color-palette';
45
- export { setThemeColor, getColorPalette } from './utils/theme';
46
- export type { ThemeColorOptions } from './utils/theme';
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export*from"./prefix/react-router-dom.js";export*from"./prefix/i18n-hooks.js";export*from"./prefix/mini-idc.js";export*from"./utils";export{lazyImport,safeImport}from"./utils/lazy-import";export{matchUtil,router,onlyLoginRouter,myPkgs}from"./router";export var LayoutMenu=HASANTD?require("./components/layout-menu").default:null;export var projectBasicInfo={projectName:projectName,providerConfig:providerConfig,programInfo:programInfo,coverage:projectCoverage};export{default as colorPalette}from"./utils/color-palette";export{setThemeColor,getColorPalette}from"./utils/theme";
1
+ export*from"./prefix/react-router-dom.js";export*from"./utils";export{pathToRegexp}from"path-to-regexp";export{default as sso}from"./sso";export{localizable}from"./localizable";export{matchUtil,router,onlyLoginRouter,myPkgs,myDemoKv,mdxComponents}from"./router";export{menu}from"./menu";export{createRouter,prefixRouter,routerData,RouterFragment}from"./components/app-router";export var LayoutMenu=hasAntd?require("./components/layout-menu").default:null;export var DashboardLayout=hasAntd?require("./packages/back-stage/layout").default:null;export var projectBasicInfo={projectName:projectName,providerConfig:providerConfig,programInfo:programInfo,coverage:projectCoverage};
2
2
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport * from './prefix/i18n-hooks.js';\nexport * from './prefix/mini-idc.js';\nexport * from './utils';\nexport { lazyImport, safeImport } from './utils/lazy-import';\nexport { matchUtil, router, onlyLoginRouter, myPkgs } from './router';\nexport type { RouterProps } from './router/index';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const LayoutMenu = HASANTD ? require('./components/layout-menu').default : null;\nexport type { ConfigType, AppType, CommomType, ProgramInfoType } from '../typings/global';\nimport type { ConfigType, CommomType, CoverageType, ProjectCoverageType } from '../typings/global';\nexport type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;\nexport type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;\n\ndeclare const projectCoverage: Record<string, CoverageType & Partial<ProjectCoverageType>>;\n\n/** 一些项目基本信息 */\nexport const projectBasicInfo = {\n projectName,\n providerConfig,\n programInfo,\n coverage: projectCoverage,\n};\n\nexport { default as colorPalette } from './utils/color-palette';\nexport { setThemeColor, getColorPalette } from './utils/theme';\nexport type { ThemeColorOptions } from './utils/theme';\n"],"names":["lazyImport","safeImport","matchUtil","router","onlyLoginRouter","myPkgs","LayoutMenu","HASANTD","require","default","projectBasicInfo","projectName","providerConfig","programInfo","coverage","projectCoverage","colorPalette","setThemeColor","getColorPalette"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,YAAc,wBAAyB,AACvC,YAAc,sBAAuB,AACrC,YAAc,SAAU,AACxB,QAASA,UAAU,CAAEC,UAAU,KAAQ,qBAAsB,AAC7D,QAASC,SAAS,CAAEC,MAAM,CAAEC,eAAe,CAAEC,MAAM,KAAQ,UAAW,AAGtE,QAAO,IAAMC,WAAaC,QAAUC,QAAQ,4BAA4BC,OAAO,CAAG,IAAI,AAAC,AASvF,QAAO,IAAMC,iBAAmB,CAC9BC,YAAAA,YACAC,eAAAA,eACAC,YAAAA,YACAC,SAAUC,eACZ,CAAE,AAEF,QAASN,WAAWO,YAAY,KAAQ,uBAAwB,AAChE,QAASC,aAAa,CAAEC,eAAe,KAAQ,eAAgB"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport * from './utils';\nexport { pathToRegexp } from 'path-to-regexp';\nexport { default as sso } from './sso';\nexport { type LocaleConfig, localizable, type LocaleName } from './localizable';\nexport {\n matchUtil,\n router,\n onlyLoginRouter,\n myPkgs,\n myDemoKv,\n mdxComponents,\n type ExampleModule,\n type RouterProps,\n type MyPkg,\n} from './router';\nexport { type TabItem, type MenuItem, type CloseTab, menu } from './menu';\nexport type { LayoutMenuProps } from './components/layout-menu';\nexport { createRouter, prefixRouter, routerData, RouterFragment } from './components/app-router';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const LayoutMenu = hasAntd ? require('./components/layout-menu').default : null;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const DashboardLayout = hasAntd ? require('./packages/back-stage/layout').default : null;\nexport type {\n ConfigType,\n AppType,\n CommomType,\n ProgramInfoType,\n MemberTransformer,\n CoverageType,\n TerserOptions,\n MinifierType,\n SourceMapDevToolPluginOptions,\n ProjectCoverageType,\n SharedConfig,\n SwcOptions,\n OptimizationSplitChunksOptions,\n SwcImportOnDemandTransform,\n} from '../typings/global';\nimport type { ConfigType, CommomType, CoverageType, ProjectCoverageType } from '../typings/global';\nexport type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;\nexport type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;\ndeclare const projectCoverage: Record<string, CoverageType & Partial<ProjectCoverageType>>;\n\n/** 一些项目基本信息 */\nexport const projectBasicInfo = {\n projectName,\n providerConfig,\n programInfo,\n coverage: projectCoverage,\n};\n"],"names":["pathToRegexp","default","sso","localizable","matchUtil","router","onlyLoginRouter","myPkgs","myDemoKv","mdxComponents","menu","createRouter","prefixRouter","routerData","RouterFragment","LayoutMenu","hasAntd","require","DashboardLayout","projectBasicInfo","projectName","providerConfig","programInfo","coverage","projectCoverage"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,YAAc,SAAU,AACxB,QAASA,YAAY,KAAQ,gBAAiB,AAC9C,QAASC,WAAWC,GAAG,KAAQ,OAAQ,AACvC,QAA4BC,WAAW,KAAyB,eAAgB,AAChF,QACEC,SAAS,CACTC,MAAM,CACNC,eAAe,CACfC,MAAM,CACNC,QAAQ,CACRC,aAAa,KAIR,UAAW,AAClB,QAAqDC,IAAI,KAAQ,QAAS,AAE1E,QAASC,YAAY,CAAEC,YAAY,CAAEC,UAAU,CAAEC,cAAc,KAAQ,yBAA0B,AAEjG,QAAO,IAAMC,WAAaC,QAAUC,QAAQ,4BAA4BhB,OAAO,CAAG,IAAI,AAAC,AAEvF,QAAO,IAAMiB,gBAAkBF,QAAUC,QAAQ,gCAAgChB,OAAO,CAAG,IAAI,AAAC,AAuBhG,QAAO,IAAMkB,iBAAmB,CAC9BC,YAAAA,YACAC,eAAAA,eACAC,YAAAA,YACAC,SAAUC,eACZ,CAAE"}
@@ -0,0 +1,53 @@
1
+ import type { ReactNode } from 'react';
2
+ export type LocaleName = 'ar_EG' | 'az_AZ' | 'bg_BG' | 'bn_BD' | 'by_BY' | 'ca_ES' | 'cs_CZ' | 'da_DK' | 'de_DE' | 'el_GR' | 'en_GB' | 'en_US' | 'es_ES' | 'et_EE' | 'fa_IR' | 'fi_FI' | 'fr_BE' | 'fr_CA' | 'fr_FR' | 'ga_IE' | 'gl_ES' | 'he_IL' | 'hi_IN' | 'hr_HR' | 'hu_HU' | 'hy_AM' | 'id_ID' | 'is_IS' | 'it_IT' | 'ja_JP' | 'ka_GE' | 'kk_KZ' | 'kmr_IQ' | 'km_KH' | 'kn_IN' | 'ko_KR' | 'ku_IQ' | 'lt_LT' | 'lv_LV' | 'mk_MK' | 'ml_IN' | 'mn_MN' | 'ms_MY' | 'nb_NO' | 'ne_NP' | 'nl_BE' | 'nl_NL' | 'pl_PL' | 'pt_BR' | 'pt_PT' | 'ro_RO' | 'ru_RU' | 'sk_SK' | 'sl_SI' | 'sr_RS' | 'sv_SE' | 'ta_IN' | 'th_TH' | 'tr_TR' | 'uk_UA' | 'ur_PK' | 'vi_VN' | 'zh_CN' | 'zh_HK' | 'zh_TW';
3
+ export type LocaleConfig = {
4
+ /** 语言名称 (未设置时使用文件名)*/
5
+ language?: LocaleName;
6
+ /** 描述 */
7
+ title: string;
8
+ /** Icon */
9
+ icon?: ReactNode | string;
10
+ /** 翻译字典 */
11
+ translation: Record<string, string>;
12
+ };
13
+ interface Locale extends LocaleConfig {
14
+ language: LocaleName;
15
+ }
16
+ export declare const localizable: {
17
+ /** 使用的语言 */
18
+ language: LocaleName;
19
+ /** 获取本地化文本 */
20
+ t: Record<string, string>;
21
+ /** 本地化支持列表 */
22
+ locales: Pick<Locale, "language" | "icon" | "title">[];
23
+ /** 设置使用的语言
24
+ * @param {LocaleName} lang 语言
25
+ * @constructor
26
+ */
27
+ set(lang: LocaleName): void;
28
+ } & (<K extends "language" | "t" | "locales" | "set">(key: K, updater: (val: {
29
+ /** 使用的语言 */
30
+ language: LocaleName;
31
+ /** 获取本地化文本 */
32
+ t: Record<string, string>;
33
+ /** 本地化支持列表 */
34
+ locales: Pick<Locale, "language" | "icon" | "title">[];
35
+ /** 设置使用的语言
36
+ * @param {LocaleName} lang 语言
37
+ * @constructor
38
+ */
39
+ set(lang: LocaleName): void;
40
+ }[K]) => {
41
+ /** 使用的语言 */
42
+ language: LocaleName;
43
+ /** 获取本地化文本 */
44
+ t: Record<string, string>;
45
+ /** 本地化支持列表 */
46
+ locales: Pick<Locale, "language" | "icon" | "title">[];
47
+ /** 设置使用的语言
48
+ * @param {LocaleName} lang 语言
49
+ * @constructor
50
+ */
51
+ set(lang: LocaleName): void;
52
+ }[K]) => void);
53
+ export {};
@@ -0,0 +1,2 @@
1
+ var _models_keys,_models_keys_call;import sso from"./sso";var models={keys:function(){return[]}};try{models=hasLocales?require.context("@/locales/",true,/\.(t|j)s$/):{keys:function(){return[]}}}catch(error){console.warn(error)}var resources={};var locales=[];(_models_keys=models.keys)===null||_models_keys===void 0?void 0:(_models_keys_call=_models_keys.call(models))===null||_models_keys_call===void 0?void 0:_models_keys_call.map(function(path,i){var item=models(path).default;if(item&&Object.prototype.toString.call(item)==="[object Object]"){var _item_language=item.language,language=_item_language===void 0?path.replace(/(.*\/)*([^.]+).*/gi,"$2"):_item_language,_item_title=item.title,title=_item_title===void 0?language:_item_title,icon=item.icon,_item_translation=item.translation,translation=_item_translation===void 0?{}:_item_translation;if(i===0){locales.splice(0)}locales.push({language:language,title:title,icon:icon});resources[language]={language:language,title:title,icon:icon,translation:new Proxy(translation,{get:function get(target,key){return target[key]||key}})}}item=null});var defaultLocale=Object.assign({title:"简体中文",language:"zh_CN",translation:{}},resources.zh_CN);export var localizable=sso({language:"zh_CN",t:defaultLocale.translation,locales:locales,set:function set(lang){var _resources_lang;localizable.language=lang;localizable.t=((_resources_lang=resources[lang])===null||_resources_lang===void 0?void 0:_resources_lang.translation)||defaultLocale.translation}});
2
+ //# sourceMappingURL=localizable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/localizable.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport sso from './sso';\n\nexport type LocaleName =\n | 'ar_EG'\n | 'az_AZ'\n | 'bg_BG'\n | 'bn_BD'\n | 'by_BY'\n | 'ca_ES'\n | 'cs_CZ'\n | 'da_DK'\n | 'de_DE'\n | 'el_GR'\n | 'en_GB'\n | 'en_US'\n | 'es_ES'\n | 'et_EE'\n | 'fa_IR'\n | 'fi_FI'\n | 'fr_BE'\n | 'fr_CA'\n | 'fr_FR'\n | 'ga_IE'\n | 'gl_ES'\n | 'he_IL'\n | 'hi_IN'\n | 'hr_HR'\n | 'hu_HU'\n | 'hy_AM'\n | 'id_ID'\n | 'is_IS'\n | 'it_IT'\n | 'ja_JP'\n | 'ka_GE'\n | 'kk_KZ'\n | 'kmr_IQ'\n | 'km_KH'\n | 'kn_IN'\n | 'ko_KR'\n | 'ku_IQ'\n | 'lt_LT'\n | 'lv_LV'\n | 'mk_MK'\n | 'ml_IN'\n | 'mn_MN'\n | 'ms_MY'\n | 'nb_NO'\n | 'ne_NP'\n | 'nl_BE'\n | 'nl_NL'\n | 'pl_PL'\n | 'pt_BR'\n | 'pt_PT'\n | 'ro_RO'\n | 'ru_RU'\n | 'sk_SK'\n | 'sl_SI'\n | 'sr_RS'\n | 'sv_SE'\n | 'ta_IN'\n | 'th_TH'\n | 'tr_TR'\n | 'uk_UA'\n | 'ur_PK'\n | 'vi_VN'\n | 'zh_CN'\n | 'zh_HK'\n | 'zh_TW';\n\nlet models = {\n keys: () => [],\n} as unknown as __WebpackModuleApi.RequireContext;\n\ndeclare const hasLocales: boolean;\n\ntry {\n models = hasLocales // eslint-disable-next-line\n ? require.context('@/locales/', true, /\\.(t|j)s$/) // eslint-disable-next-line\n : ({\n keys: () => [],\n } as unknown as __WebpackModuleApi.RequireContext);\n} catch (error) {\n // eslint-disable-next-line no-console\n console.warn(error);\n}\nexport type LocaleConfig = {\n /** 语言名称 (未设置时使用文件名)*/\n language?: LocaleName;\n /** 描述 */\n title: string;\n /** Icon */\n icon?: ReactNode | string;\n /** 翻译字典 */\n translation: Record<string, string>;\n};\ntype LocaleConfigMap = Record<LocaleName, Locale>;\nconst resources: Partial<LocaleConfigMap> = {};\nconst locales: Pick<Locale, 'language' | 'icon' | 'title'>[] = [];\n\nmodels.keys?.()?.map((path: string, i: number) => {\n let item: LocaleConfigMap[LocaleName] | null = models(path).default;\n\n if (item && Object.prototype.toString.call(item) === '[object Object]') {\n const {\n language = path.replace(/(.*\\/)*([^.]+).*/gi, '$2') as LocaleName,\n title = language,\n icon,\n translation = {},\n } = item;\n\n if (i === 0) {\n locales.splice(0);\n }\n locales.push({\n language,\n title,\n icon,\n });\n resources[language] = {\n language,\n title,\n icon,\n translation: new Proxy(translation, {\n get(target, key) {\n return target[key as string] || key;\n },\n }),\n };\n }\n item = null;\n});\n\ninterface Locale extends LocaleConfig {\n language: LocaleName;\n}\nconst defaultLocale: Locale = Object.assign(\n {\n title: '简体中文',\n language: 'zh_CN',\n translation: {},\n },\n resources.zh_CN\n);\n\nexport const localizable = sso({\n /** 使用的语言 */\n language: 'zh_CN' as LocaleName,\n /** 获取本地化文本 */\n t: defaultLocale.translation,\n /** 本地化支持列表 */\n locales: locales,\n /** 设置使用的语言\n * @param {LocaleName} lang 语言\n * @constructor\n */\n set(lang: LocaleName) {\n localizable.language = lang;\n localizable.t = resources[lang]?.translation || defaultLocale.translation;\n },\n});\n"],"names":["models","sso","keys","hasLocales","require","context","error","console","warn","resources","locales","map","path","i","item","default","Object","prototype","toString","call","language","replace","title","icon","translation","splice","push","Proxy","get","target","key","defaultLocale","assign","zh_CN","localizable","t","set","lang"],"mappings":"IAoGAA,aAAAA,iBAnGA,QAAOC,QAAS,OAAQ,CAqExB,IAAID,OAAS,CACXE,KAAM,iBAAM,EAAE,CAChB,EAIA,GAAI,CACFF,OAASG,WACLC,QAAQC,OAAO,CAAC,aAAc,IAAI,CAAE,aACnC,CACCH,KAAM,iBAAM,EAAE,CAChB,CAAkD,AACxD,CAAE,MAAOI,MAAO,CAEdC,QAAQC,IAAI,CAACF,MACf,CAYA,IAAMG,UAAsC,CAAC,EAC7C,IAAMC,QAAyD,EAAE,AAEjEV,EAAAA,aAAAA,OAAOE,IAAI,UAAXF,sBAAAA,KAAAA,EAAAA,CAAAA,kBAAAA,aAAAA,KAAAA,iBAAAA,2BAAAA,KAAAA,EAAAA,kBAAiBW,IAAI,SAACC,KAAcC,EAAc,CAChD,IAAIC,KAA2Cd,OAAOY,MAAMG,OAAO,CAEnE,GAAID,MAAQE,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACL,QAAU,kBAAmB,CACtE,mBAKIA,KAJFM,SAAAA,iCAAWR,KAAKS,OAAO,CAAC,qBAAsB,iCAI5CP,KAHFQ,MAAAA,2BAAQF,qBACRG,KAEET,KAFFS,uBAEET,KADFU,YAAAA,uCAAc,CAAC,oBAGjB,GAAIX,IAAM,EAAG,CACXH,QAAQe,MAAM,CAAC,EACjB,CAAC,AACDf,QAAQgB,IAAI,CAAC,CACXN,SAAAA,SACAE,MAAAA,MACAC,KAAAA,IACF,EACAd,CAAAA,SAAS,CAACW,SAAS,CAAG,CACpBA,SAAAA,SACAE,MAAAA,MACAC,KAAAA,KACAC,YAAa,IAAIG,MAAMH,YAAa,CAClCI,IAAAA,SAAAA,IAAIC,MAAM,CAAEC,GAAG,CAAE,CACf,OAAOD,MAAM,CAACC,IAAc,EAAIA,GAClC,CACF,EACF,CACF,CAAC,AACDhB,KAAO,IAAI,AACb,GAKA,IAAMiB,cAAwBf,OAAOgB,MAAM,CACzC,CACEV,MAAO,OACPF,SAAU,QACVI,YAAa,CAAC,CAChB,EACAf,UAAUwB,KAAK,CAGjB,QAAO,IAAMC,YAAcjC,IAAI,CAE7BmB,SAAU,QAEVe,EAAGJ,cAAcP,WAAW,CAE5Bd,QAASA,QAKT0B,IAAAA,SAAAA,IAAIC,IAAgB,CAAE,KAEJ5B,eADhByB,CAAAA,YAAYd,QAAQ,CAAGiB,IACvBH,CAAAA,YAAYC,CAAC,CAAG1B,CAAAA,CAAAA,gBAAAA,SAAS,CAAC4B,KAAK,UAAf5B,yBAAAA,KAAAA,EAAAA,gBAAiBe,WAAW,AAAD,GAAKO,cAAcP,WAAW,AAC3E,CACF,EAAG"}
package/lib/menu.d.ts ADDED
@@ -0,0 +1,115 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { RouterProps } from './router';
3
+ export type CloseTab = 'left' | 'right' | 'other' | 'self';
4
+ export interface TabItem extends RouterProps {
5
+ key: string;
6
+ url?: string;
7
+ path?: string;
8
+ closable?: boolean;
9
+ icon?: ReactNode;
10
+ label?: ReactNode;
11
+ dynamicTitle?: string;
12
+ }
13
+ export interface MenuItem extends RouterProps {
14
+ key: string;
15
+ type?: string;
16
+ label?: ReactNode;
17
+ children?: MenuItem[];
18
+ [key: string]: any;
19
+ }
20
+ type ClosedCallback = (closes?: TabItem[], next?: TabItem) => void;
21
+ export declare const menu: {
22
+ /** 当前菜单 */
23
+ activeKey: string;
24
+ /** 当前用户可访问的菜单列表 */
25
+ menus: MenuItem[];
26
+ /** 菜单列表的kv数据, 根据menus自动生成 */
27
+ kv: Record<string, MenuItem>;
28
+ /** 选项卡数据 */
29
+ tabs: TabItem[];
30
+ /** 设置菜单列表
31
+ * @param {MenuItem[]} data 菜单数据
32
+ * @constructor
33
+ */
34
+ setMenu(data: MenuItem[]): void;
35
+ /** 添加选项卡
36
+ * @param {TabItem} tab 选项卡
37
+ * @constructor
38
+ */
39
+ addTab(tab: TabItem): void;
40
+ /** 打开选项卡
41
+ * @param {TabItem} tab 选项卡
42
+ * @constructor
43
+ */
44
+ openTab(tab: TabItem): void;
45
+ /** 关闭选项卡
46
+ * @param {string} key 选项卡key
47
+ * @param {CloseTab} type 操作类型,如何关闭
48
+ * @param {ClosedCallback} callback 回调函数
49
+ * @constructor
50
+ */
51
+ closeTab(key: string, type: CloseTab | undefined, callback: ClosedCallback): void;
52
+ } & (<K extends "activeKey" | "menus" | "kv" | "tabs" | "setMenu" | "addTab" | "openTab" | "closeTab">(key: K, updater: (val: {
53
+ /** 当前菜单 */
54
+ activeKey: string;
55
+ /** 当前用户可访问的菜单列表 */
56
+ menus: MenuItem[];
57
+ /** 菜单列表的kv数据, 根据menus自动生成 */
58
+ kv: Record<string, MenuItem>;
59
+ /** 选项卡数据 */
60
+ tabs: TabItem[];
61
+ /** 设置菜单列表
62
+ * @param {MenuItem[]} data 菜单数据
63
+ * @constructor
64
+ */
65
+ setMenu(data: MenuItem[]): void;
66
+ /** 添加选项卡
67
+ * @param {TabItem} tab 选项卡
68
+ * @constructor
69
+ */
70
+ addTab(tab: TabItem): void;
71
+ /** 打开选项卡
72
+ * @param {TabItem} tab 选项卡
73
+ * @constructor
74
+ */
75
+ openTab(tab: TabItem): void;
76
+ /** 关闭选项卡
77
+ * @param {string} key 选项卡key
78
+ * @param {CloseTab} type 操作类型,如何关闭
79
+ * @param {ClosedCallback} callback 回调函数
80
+ * @constructor
81
+ */
82
+ closeTab(key: string, type: CloseTab | undefined, callback: ClosedCallback): void;
83
+ }[K]) => {
84
+ /** 当前菜单 */
85
+ activeKey: string;
86
+ /** 当前用户可访问的菜单列表 */
87
+ menus: MenuItem[];
88
+ /** 菜单列表的kv数据, 根据menus自动生成 */
89
+ kv: Record<string, MenuItem>;
90
+ /** 选项卡数据 */
91
+ tabs: TabItem[];
92
+ /** 设置菜单列表
93
+ * @param {MenuItem[]} data 菜单数据
94
+ * @constructor
95
+ */
96
+ setMenu(data: MenuItem[]): void;
97
+ /** 添加选项卡
98
+ * @param {TabItem} tab 选项卡
99
+ * @constructor
100
+ */
101
+ addTab(tab: TabItem): void;
102
+ /** 打开选项卡
103
+ * @param {TabItem} tab 选项卡
104
+ * @constructor
105
+ */
106
+ openTab(tab: TabItem): void;
107
+ /** 关闭选项卡
108
+ * @param {string} key 选项卡key
109
+ * @param {CloseTab} type 操作类型,如何关闭
110
+ * @param {ClosedCallback} callback 回调函数
111
+ * @constructor
112
+ */
113
+ closeTab(key: string, type: CloseTab | undefined, callback: ClosedCallback): void;
114
+ }[K]) => void);
115
+ export {};
package/lib/menu.js ADDED
@@ -0,0 +1,2 @@
1
+ function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import{isEqual,isFunction}from"@moneko/common";import sso from"./sso";var getItems=function(arr){var result=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(arr.length===0){return result}var _arr_=arr[0],_arr__children=_arr_.children,children=_arr__children===void 0?[]:_arr__children,i18n=_arr_.i18n,label=_arr_.label,hideMenu=_arr_.hideMenu,args=_objectWithoutProperties(_arr_,["children","i18n","label","hideMenu"]);var item=Object.create(null);Object.assign(item,args,{label:i18n||label});if(children.length){item.children=getItems(children)}if(!hideMenu){result.push(item)}return getItems(arr.slice(1),result)};var getMenuKV=function(arr,obj){var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=arr[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _ref=_step.value;var item=_ref;var children=item.children,args=_objectWithoutProperties(item,["children"]);obj[item.key]=args;if(children===null||children===void 0?void 0:children.length){getMenuKV(children,obj)}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}};export var menu=sso({activeKey:"home",menus:[],kv:{},tabs:[],setMenu:function setMenu(data){var items=getItems(data),kv={};getMenuKV(items,kv);menu.menus=items;menu.kv=kv},addTab:function addTab(tab){var current=menu.kv[tab.key];if(current&&!menu.tabs.find(function(item){return item.key===tab.key})){var ntabs=_toConsumableArray(menu.tabs).concat([_objectSpread(_objectSpreadProps(_objectSpread({},current),{i18n:current.i18n||"route-".concat(current.key)}),tab)]);if(!isEqual(ntabs,menu.tabs)){menu.tabs=ntabs}}},openTab:function openTab(tab){menu.addTab(tab);menu.activeKey=tab.key},closeTab:function closeTab(key){var type=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"self",callback=arguments.length>2?arguments[2]:void 0;if(!key)return;var tabs=menu.tabs,activeKey=menu.activeKey;var nActiveKey=activeKey;var closeTabs=[];var nTabs=[];var nextTab=null;var isCloseSelf=type==="self";var idx=tabs.findIndex(function(t){return t.key===key});var isNotClose=function(item,i){return item.closable===false||({left:i>=idx,right:i<=idx,other:i===idx,self:key!==item.key})[type]};for(var i=0;i<tabs.length;i++){var item=tabs[i];var notClose=isNotClose(item,i);if(isCloseSelf){if(!notClose){if(key===nActiveKey){var adx=i?i-1:i+1;if(tabs[adx]){nActiveKey=tabs[adx].key;nextTab=tabs[adx]}}}}else if(notClose&&item.key===key&&nActiveKey!==key){nActiveKey=key;nextTab=tabs[i]}if(!notClose){closeTabs.push(item)}if(notClose){nTabs.push(item)}}menu.tabs=nTabs;menu.activeKey=nActiveKey;if(isFunction(callback)){callback(closeTabs,nextTab);return}}});
2
+ //# sourceMappingURL=menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/menu.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { isEqual, isFunction } from '@moneko/common';\nimport sso from './sso';\nimport type { RouterProps } from './router';\n\nexport type CloseTab = 'left' | 'right' | 'other' | 'self';\nexport interface TabItem extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n icon?: ReactNode;\n label?: ReactNode;\n dynamicTitle?: string;\n}\nexport interface MenuItem extends RouterProps {\n key: string;\n type?: string;\n label?: ReactNode;\n children?: MenuItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n// eslint-disable-next-line no-unused-vars\ntype ClosedCallback = (closes?: TabItem[], next?: TabItem) => void;\n\nconst getItems = (arr: MenuItem[], result: MenuItem[] = []): MenuItem[] => {\n if (arr.length === 0) {\n return result;\n }\n const { children = [], i18n, label, hideMenu, ...args } = arr[0];\n const item: MenuItem = Object.create(null);\n\n Object.assign(item, args, { label: i18n || label });\n if (children.length) {\n item.children = getItems(children);\n }\n if (!hideMenu) {\n result.push(item);\n }\n return getItems(arr.slice(1), result);\n};\nconst getMenuKV = (arr: MenuItem[], obj: Record<string, MenuItem>): void => {\n for (const item of arr) {\n const { children, ...args } = item;\n\n obj[item.key] = args;\n if (children?.length) {\n getMenuKV(children, obj);\n }\n }\n};\n\nexport const menu = sso({\n /** 当前菜单 */\n activeKey: 'home',\n /** 当前用户可访问的菜单列表 */\n menus: [] as MenuItem[],\n /** 菜单列表的kv数据, 根据menus自动生成 */\n kv: {} as Record<string, MenuItem>,\n /** 选项卡数据 */\n tabs: [] as TabItem[],\n /** 设置菜单列表\n * @param {MenuItem[]} data 菜单数据\n * @constructor\n */\n setMenu(data: MenuItem[]) {\n const items = getItems(data),\n kv: Record<string, MenuItem> = {};\n\n getMenuKV(items, kv);\n menu.menus = items;\n menu.kv = kv;\n },\n /** 添加选项卡\n * @param {TabItem} tab 选项卡\n * @constructor\n */\n addTab(tab: TabItem) {\n const current = menu.kv[tab.key];\n\n if (current && !menu.tabs.find((item) => item.key === tab.key)) {\n const ntabs: TabItem[] = [\n ...menu.tabs,\n {\n ...current,\n i18n: current.i18n || `route-${current.key}`,\n ...tab,\n },\n ];\n\n if (!isEqual(ntabs, menu.tabs)) {\n menu.tabs = ntabs;\n }\n }\n },\n /** 打开选项卡\n * @param {TabItem} tab 选项卡\n * @constructor\n */\n openTab(tab: TabItem) {\n menu.addTab(tab);\n menu.activeKey = tab.key;\n },\n /** 关闭选项卡\n * @param {string} key 选项卡key\n * @param {CloseTab} type 操作类型,如何关闭\n * @param {ClosedCallback} callback 回调函数\n * @constructor\n */\n closeTab(key: string, type: CloseTab = 'self', callback: ClosedCallback) {\n if (!key) return;\n const { tabs, activeKey } = menu;\n let nActiveKey = activeKey;\n const closeTabs: TabItem[] = [];\n const nTabs: TabItem[] = [];\n let nextTab: TabItem | null = null;\n // 关闭当前tab\n const isCloseSelf = type === 'self';\n const idx = tabs.findIndex((t) => t.key === key);\n const isNotClose = (item: TabItem, i: number) => {\n return (\n item.closable === false ||\n {\n left: i >= idx,\n right: i <= idx,\n other: i === idx,\n self: key !== item.key,\n }[type]\n );\n };\n\n for (let i = 0; i < tabs.length; i++) {\n const item = tabs[i];\n const notClose = isNotClose(item, i);\n\n if (isCloseSelf) {\n if (!notClose) {\n if (key === nActiveKey) {\n const adx: number | null = i ? i - 1 : i + 1;\n\n if (tabs[adx]) {\n nActiveKey = tabs[adx].key;\n nextTab = tabs[adx];\n }\n }\n }\n } else if (notClose && item.key === key && nActiveKey !== key) {\n nActiveKey = key;\n nextTab = tabs[i];\n }\n if (!notClose) {\n closeTabs.push(item);\n }\n if (notClose) {\n nTabs.push(item);\n }\n }\n\n menu.tabs = nTabs;\n menu.activeKey = nActiveKey;\n if (isFunction(callback)) {\n callback(closeTabs, nextTab);\n return;\n }\n },\n});\n"],"names":["isEqual","isFunction","sso","getItems","arr","result","length","children","i18n","label","hideMenu","args","item","Object","create","assign","push","slice","getMenuKV","obj","key","menu","activeKey","menus","kv","tabs","setMenu","data","items","addTab","tab","current","find","ntabs","openTab","closeTab","type","callback","nActiveKey","closeTabs","nTabs","nextTab","isCloseSelf","idx","findIndex","t","isNotClose","i","closable","left","right","other","self","notClose","adx"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import React from 'react';
1
+ import { type FC } from 'react';
2
2
  import 'dayjs/locale/zh.js';
3
3
  import 'dayjs/locale/en.js';
4
- declare const App: React.FC;
4
+ declare const App: FC;
5
5
  export default App;
@@ -1,2 +1,2 @@
1
- function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}import React,{useEffect}from"react";import{BrowserRouter,HashRouter}from"react-router-dom";import{useSelector,shallowEqual}from"mini-idc";import{useLocale}from"i18n-hooks";import{ConfigProvider}from"antd";import AppRouter from"../../components/app-router";import FallbackComp from"../../components/fallback-comp";import{onlyLoginRouter}from"../../router";import{watermark}from"../../utils";import SiderLayout from"./layout";import zh_CN from"antd/es/locale/zh_CN";import en_US from"antd/es/locale/en_US";import dayjs from"dayjs";import relativeTime from"dayjs/plugin/relativeTime";import"dayjs/locale/zh.js";import"dayjs/locale/en.js";var localeDictionary={zh_CN:zh_CN,en_US:en_US};dayjs.extend(relativeTime);var Router;switch(programInfo.routerMode){case"hash":Router=HashRouter;break;case"browser":default:Router=BrowserRouter;break}ConfigProvider.config(providerConfig);var getAntdLocal=function(lang){return localeDictionary[lang]||zh_CN};var App=function(){var isLogin=useSelector(function(state){return!!state.account.info},shallowEqual);var _useLocale=useLocale(),lang=_useLocale.lang,getLanguage=_useLocale.getLanguage;useEffect(function(){document.body.style.backgroundImage="url(".concat(watermark({text:projectName}),")")},[]);var props={basename:programInfo.routeBaseName};if(programInfo.routerMode!=="browser"){props={}}return React.createElement(Router,_extends({},props),React.createElement(ConfigProvider,_extends({},providerConfig,{locale:getAntdLocal(lang),form:{validateMessages:{required:"".concat(getLanguage("ph:please-fill"),"${label}!"),types:{email:"${label}".concat(getLanguage("wrong-format"))},pattern:{mismatch:"".concat(getLanguage("ph:fill-correct"),"${label}!")}}}}),isLogin?React.createElement(SiderLayout,null):React.createElement(React.Fragment,null,React.createElement("div",{className:"flex f-a-c pos-r-0 login-toolbox"},React.createElement(FallbackComp,{compName:"switch-language"})),React.createElement(AppRouter,{router:onlyLoginRouter}),React.createElement(FallbackComp,{compName:"layout-footer"}))))};export default App;
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}import React,{useEffect}from"react";import{ConfigProvider}from"antd";import en_US from"antd/es/locale/en_US";import zh_CN from"antd/es/locale/zh_CN";import dayjs from"dayjs";import relativeTime from"dayjs/plugin/relativeTime";import{RouterProvider}from"react-router-dom";import{createRouter,prefixRouter,routerData,RouterFragment}from"../../components/app-router";import Fallback from"../../components/fallback";import{localizable}from"../../localizable";import{onlyLoginRouter}from"../../router";import"dayjs/locale/zh.js";import"dayjs/locale/en.js";import{watermark}from"../../utils";import{global}from"@/store";var localeDictionary={zh_CN:zh_CN,en_US:en_US};dayjs.extend(relativeTime);ConfigProvider.config({prefixCls:providerConfig.prefixCls,iconPrefixCls:providerConfig.iconPrefixCls,theme:providerConfig.theme});var App=function(){var isLogin=global.isLogin;var language=localizable.language,t=localizable.t;useEffect(function(){document.body.style.backgroundImage="url(".concat(watermark({text:projectName}),")")},[]);return React.createElement(RouterFragment,null,React.createElement(ConfigProvider,_extends({},providerConfig,{locale:localeDictionary[language]||zh_CN,form:{validateMessages:{required:"".concat(t["ph:please-fill"],"${label}!"),types:{email:"${label}".concat(t["wrong-format"])},pattern:{mismatch:"".concat(t["ph:fill-correct"],"${label}!")}}}}),React.createElement(RouterProvider,{router:createRouter(isLogin?routerData:prefixRouter(onlyLoginRouter,React.createElement(Fallback,null)),{basename:programInfo.routeBaseName,window:window}),fallbackElement:React.createElement(Fallback,null)})))};export default App;
2
2
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/packages/back-stage/app.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { BrowserRouter, HashRouter } from 'react-router-dom';\nimport { useSelector, shallowEqual } from 'mini-idc';\nimport { useLocale } from 'i18n-hooks';\nimport { ConfigProvider } from 'antd';\nimport AppRouter from '../../components/app-router';\nimport FallbackComp from '../../components/fallback-comp';\nimport { onlyLoginRouter } from '../../router';\nimport { watermark } from '../../utils';\nimport SiderLayout from './layout';\nimport zh_CN from 'antd/es/locale/zh_CN';\nimport en_US from 'antd/es/locale/en_US';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport 'dayjs/locale/zh.js';\nimport 'dayjs/locale/en.js';\nimport type { LocaleNameType } from 'i18n-hooks';\nimport type { Locale } from 'antd/es/locale-provider';\n\nconst localeDictionary: Partial<Record<LocaleNameType, Locale>> = {\n zh_CN,\n en_US,\n};\n\ndayjs.extend(relativeTime);\nlet Router: typeof HashRouter | typeof BrowserRouter;\n\nswitch (programInfo.routerMode) {\n case 'hash':\n Router = HashRouter;\n break;\n case 'browser':\n default:\n Router = BrowserRouter;\n break;\n}\nConfigProvider.config(providerConfig);\n\nconst getAntdLocal = (lang: LocaleNameType) => {\n return localeDictionary[lang] || zh_CN;\n};\n\nconst App: React.FC = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isLogin = useSelector((state: { account: any }) => !!state.account.info, shallowEqual);\n const { lang, getLanguage } = useLocale();\n\n useEffect(() => {\n document.body.style.backgroundImage = `url(${watermark({\n text: projectName,\n })})`;\n }, []);\n let props: Record<string, string> = {\n basename: programInfo.routeBaseName,\n };\n\n if (programInfo.routerMode !== 'browser') {\n props = {};\n }\n\n return (\n <Router {...props}>\n <ConfigProvider\n {...providerConfig}\n locale={getAntdLocal(lang)}\n form={{\n validateMessages: {\n required: `${getLanguage('ph:please-fill')}\\${label}!`,\n types: {\n email: `\\${label}${getLanguage('wrong-format')}`,\n },\n pattern: {\n mismatch: `${getLanguage('ph:fill-correct')}\\${label}!`,\n },\n },\n }}\n >\n {isLogin ? (\n <SiderLayout />\n ) : (\n <React.Fragment>\n <div className=\"flex f-a-c pos-r-0 login-toolbox\">\n <FallbackComp compName=\"switch-language\" />\n </div>\n <AppRouter router={onlyLoginRouter} />\n <FallbackComp compName=\"layout-footer\" />\n </React.Fragment>\n )}\n </ConfigProvider>\n </Router>\n );\n};\n\nexport default App;\n"],"names":["React","useEffect","BrowserRouter","HashRouter","useSelector","shallowEqual","useLocale","ConfigProvider","AppRouter","FallbackComp","onlyLoginRouter","watermark","SiderLayout","zh_CN","en_US","dayjs","relativeTime","localeDictionary","extend","Router","programInfo","routerMode","config","providerConfig","getAntdLocal","lang","App","isLogin","state","account","info","getLanguage","document","body","style","backgroundImage","text","projectName","props","basename","routeBaseName","locale","form","validateMessages","required","types","email","pattern","mismatch","Fragment","div","className","compName","router"],"mappings":"AAAA,oRAAA,OAAOA,OAASC,SAAS,KAAQ,OAAQ,AACzC,QAASC,aAAa,CAAEC,UAAU,KAAQ,kBAAmB,AAC7D,QAASC,WAAW,CAAEC,YAAY,KAAQ,UAAW,AACrD,QAASC,SAAS,KAAQ,YAAa,AACvC,QAASC,cAAc,KAAQ,MAAO,AACtC,QAAOC,cAAe,6BAA8B,AACpD,QAAOC,iBAAkB,gCAAiC,AAC1D,QAASC,eAAe,KAAQ,cAAe,AAC/C,QAASC,SAAS,KAAQ,aAAc,AACxC,QAAOC,gBAAiB,UAAW,AACnC,QAAOC,UAAW,sBAAuB,AACzC,QAAOC,UAAW,sBAAuB,AACzC,QAAOC,UAAW,OAAQ,AAC1B,QAAOC,iBAAkB,2BAA4B,AACrD,OAAO,oBAAqB,AAC5B,OAAO,oBAAqB,CAI5B,IAAMC,iBAA4D,CAChEJ,MAAAA,MACAC,MAAAA,KACF,EAEAC,MAAMG,MAAM,CAACF,cACb,IAAIG,OAEJ,OAAQC,YAAYC,UAAU,EAC5B,IAAK,OACHF,OAAShB,WACT,KAAM,AACR,KAAK,UACL,QACEgB,OAASjB,cACT,KAAM,AACV,CACAK,eAAee,MAAM,CAACC,gBAEtB,IAAMC,aAAe,SAACC,KAAyB,CAC7C,OAAOR,gBAAgB,CAACQ,KAAK,EAAIZ,KACnC,EAEA,IAAMa,IAAgB,UAAM,CAE1B,IAAMC,QAAUvB,YAAY,SAACwB,aAA4B,CAAC,CAACA,MAAMC,OAAO,CAACC,IAAI,EAAEzB,cAC/E,IAA8BC,WAAAA,YAAtBmB,KAAsBnB,WAAtBmB,KAAMM,YAAgBzB,WAAhByB,YAEd9B,UAAU,UAAM,CACd+B,SAASC,IAAI,CAACC,KAAK,CAACC,eAAe,CAAG,AAAC,OAEpC,OAF0CxB,UAAU,CACrDyB,KAAMC,WACR,GAAG,IACL,EAAG,EAAE,EACL,IAAIC,MAAgC,CAClCC,SAAUnB,YAAYoB,aAAa,AACrC,EAEA,GAAIpB,YAAYC,UAAU,GAAK,UAAW,CACxCiB,MAAQ,CAAC,CACX,CAAC,AAED,OACE,oBAACnB,mBAAWmB,OACV,oBAAC/B,2BACKgB,gBACJkB,OAAQjB,aAAaC,MACrBiB,KAAM,CACJC,iBAAkB,CAChBC,SAAU,AAAC,GAAgC,OAA9Bb,YAAY,kBAAkB,aAC3Cc,MAAO,CACLC,MAAO,AAAC,WAAuC,OAA5Bf,YAAY,gBACjC,EACAgB,QAAS,CACPC,SAAU,AAAC,GAAiC,OAA/BjB,YAAY,mBAAmB,YAC9C,CACF,CACF,IAECJ,QACC,oBAACf,kBAED,oBAACZ,MAAMiD,QAAQ,MACb,oBAACC,OAAIC,UAAU,oCACb,oBAAC1C,cAAa2C,SAAS,qBAEzB,oBAAC5C,WAAU6C,OAAQ3C,kBACnB,oBAACD,cAAa2C,SAAS,kBAE1B,EAIT,CAEA,gBAAe1B,GAAI"}
1
+ {"version":3,"sources":["../../../src/packages/back-stage/app.tsx"],"sourcesContent":["import React, { type FC, useEffect } from 'react';\nimport { ConfigProvider } from 'antd';\nimport en_US from 'antd/es/locale/en_US';\nimport zh_CN from 'antd/es/locale/zh_CN';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport { RouterProvider } from 'react-router-dom';\nimport {\n createRouter,\n prefixRouter,\n routerData,\n RouterFragment,\n} from '../../components/app-router';\nimport Fallback from '../../components/fallback';\nimport { type LocaleName, localizable } from '../../localizable';\nimport { onlyLoginRouter } from '../../router';\nimport 'dayjs/locale/zh.js';\nimport 'dayjs/locale/en.js';\nimport { watermark } from '../../utils';\nimport type { Locale } from 'antd/es/locale-provider';\nimport { global } from '@/store';\n\nconst localeDictionary: Partial<Record<LocaleName, Locale>> = {\n zh_CN,\n en_US,\n};\n\ndayjs.extend(relativeTime);\nConfigProvider.config({\n prefixCls: providerConfig.prefixCls,\n iconPrefixCls: providerConfig.iconPrefixCls,\n theme: providerConfig.theme,\n});\n\nconst App: FC = () => {\n const { isLogin } = global;\n const { language, t } = localizable;\n\n useEffect(() => {\n document.body.style.backgroundImage = `url(${watermark({\n text: projectName,\n })})`;\n }, []);\n\n return (\n <RouterFragment>\n <ConfigProvider\n {...providerConfig}\n locale={localeDictionary[language] || zh_CN}\n form={{\n validateMessages: {\n required: `${t['ph:please-fill']}\\${label}!`,\n types: {\n email: `\\${label}${t['wrong-format']}`,\n },\n pattern: {\n mismatch: `${t['ph:fill-correct']}\\${label}!`,\n },\n },\n }}\n >\n <RouterProvider\n router={createRouter(isLogin ? routerData : prefixRouter(onlyLoginRouter, <Fallback />), {\n basename: programInfo.routeBaseName,\n window: window,\n })}\n fallbackElement={<Fallback />}\n />\n </ConfigProvider>\n </RouterFragment>\n );\n};\n\nexport default App;\n"],"names":["React","useEffect","ConfigProvider","en_US","zh_CN","dayjs","relativeTime","RouterProvider","createRouter","prefixRouter","routerData","RouterFragment","Fallback","localizable","onlyLoginRouter","watermark","global","localeDictionary","extend","config","prefixCls","providerConfig","iconPrefixCls","theme","App","isLogin","language","t","document","body","style","backgroundImage","text","projectName","locale","form","validateMessages","required","types","email","pattern","mismatch","router","basename","programInfo","routeBaseName","window","fallbackElement"],"mappings":"oRAAA,OAAOA,OAAkBC,SAAS,KAAQ,OAAQ,AAClD,QAASC,cAAc,KAAQ,MAAO,AACtC,QAAOC,UAAW,sBAAuB,AACzC,QAAOC,UAAW,sBAAuB,AACzC,QAAOC,UAAW,OAAQ,AAC1B,QAAOC,iBAAkB,2BAA4B,AACrD,QAASC,cAAc,KAAQ,kBAAmB,AAClD,QACEC,YAAY,CACZC,YAAY,CACZC,UAAU,CACVC,cAAc,KACT,6BAA8B,AACrC,QAAOC,aAAc,2BAA4B,AACjD,QAA0BC,WAAW,KAAQ,mBAAoB,AACjE,QAASC,eAAe,KAAQ,cAAe,AAC/C,OAAO,oBAAqB,AAC5B,OAAO,oBAAqB,AAC5B,QAASC,SAAS,KAAQ,aAAc,AAExC,QAASC,MAAM,KAAQ,SAAU,CAEjC,IAAMC,iBAAwD,CAC5Db,MAAAA,MACAD,MAAAA,KACF,EAEAE,MAAMa,MAAM,CAACZ,cACbJ,eAAeiB,MAAM,CAAC,CACpBC,UAAWC,eAAeD,SAAS,CACnCE,cAAeD,eAAeC,aAAa,CAC3CC,MAAOF,eAAeE,KAAK,AAC7B,GAEA,IAAMC,IAAU,UAAM,CACpB,IAAM,AAAEC,QAAYT,OAAZS,QACR,IAAQC,SAAgBb,YAAhBa,SAAUC,EAAMd,YAANc,EAElB1B,UAAU,UAAM,CACd2B,SAASC,IAAI,CAACC,KAAK,CAACC,eAAe,CAAG,AAAC,OAEpC,OAF0ChB,UAAU,CACrDiB,KAAMC,WACR,GAAG,IACL,EAAG,EAAE,EAEL,OACE,oBAACtB,oBACC,oBAACT,2BACKmB,gBACJa,OAAQjB,gBAAgB,CAACS,SAAS,EAAItB,MACtC+B,KAAM,CACJC,iBAAkB,CAChBC,SAAU,AAAC,GAAsB,OAApBV,CAAC,CAAC,iBAAiB,CAAC,aACjCW,MAAO,CACLC,MAAO,AAAC,WAA6B,OAAlBZ,CAAC,CAAC,eAAe,CACtC,EACAa,QAAS,CACPC,SAAU,AAAC,GAAuB,OAArBd,CAAC,CAAC,kBAAkB,CAAC,YACpC,CACF,CACF,IAEA,oBAACpB,gBACCmC,OAAQlC,aAAaiB,QAAUf,WAAaD,aAAaK,gBAAiB,oBAACF,eAAY,CAAE,CACvF+B,SAAUC,YAAYC,aAAa,CACnCC,OAAQA,MACV,GACAC,gBAAiB,oBAACnC,kBAK5B,CAEA,gBAAeY,GAAI"}
@@ -1 +1 @@
1
- import '../../utils/fontloader';
1
+ export {};
@@ -1,2 +1,2 @@
1
- import"../../utils/fontloader";import React from"react";import App from"./app";import{I18nProvider}from"i18n-hooks";import{Provider,rootStore}from"mini-idc";import{isFunction}from"@moneko/common";import{Global}from"@emotion/react";import normalizeCss from"../../styles/normalize";import{rootVariables,globalStyles,rootStyle}from"../../styles/vars";var appEntry=APPENTRY?require(APPENTRY):null;var SafeReactDOM=require(ReactDOMPath);var version=parseFloat(React.version);var container=document.getElementById("root");var Main=function(){return React.createElement(React.Fragment,null,React.createElement(Global,{styles:rootVariables}),React.createElement(Global,{styles:normalizeCss}),React.createElement(Global,{styles:globalStyles}),React.createElement(Global,{styles:rootStyle}),React.createElement(I18nProvider,null,React.createElement(Provider,{store:rootStore},React.createElement(App,null))))};if(version>=18){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}if(programInfo.renderMode==="ssr"){window.rootInstance=SafeReactDOM.hydrateRoot(container,React.createElement(Main,null))}else{window.rootInstance=SafeReactDOM.createRoot(container);window.rootInstance.render(React.createElement(Main,null))}if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}else{if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}var render=module.hot?SafeReactDOM.render:SafeReactDOM.hydrate;render(React.createElement(Main,null),container);if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}
1
+ import React from"react";import{isFunction}from"@moneko/common";import App from"./app";var appEntry=APPENTRY?require(APPENTRY):null;var SafeReactDOM=require(ReactDOMPath);var version=parseFloat(React.version);var container=document.getElementById("root");if(version>=18){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}if(programInfo.renderMode==="ssr"){window.rootInstance=SafeReactDOM.hydrateRoot(container,React.createElement(App,null))}else{window.rootInstance=SafeReactDOM.createRoot(container);window.rootInstance.render(React.createElement(App,null))}if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}else{if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}var render=module.hot?SafeReactDOM.render:SafeReactDOM.hydrate;render(React.createElement(App,null),container);if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}
2
2
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/packages/back-stage/bootstrap.tsx"],"sourcesContent":["import '../../utils/fontloader';\nimport React from 'react';\nimport App from './app';\nimport { I18nProvider } from 'i18n-hooks';\nimport { Provider, rootStore } from 'mini-idc';\nimport { isFunction } from '@moneko/common';\nimport { Global } from '@emotion/react';\nimport normalizeCss from '../../styles/normalize';\nimport { rootVariables, globalStyles, rootStyle } from '../../styles/vars';\n\nconst appEntry: AppEntryMethods | null = APPENTRY ? require(APPENTRY) : null;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst SafeReactDOM = require(ReactDOMPath);\n\nconst version = parseFloat(React.version);\nconst container = document.getElementById('root') as HTMLElement;\n\nconst Main = () => (\n <>\n <Global styles={rootVariables} />\n <Global styles={normalizeCss} />\n <Global styles={globalStyles} />\n <Global styles={rootStyle} />\n <I18nProvider>\n <Provider store={rootStore}>\n <App />\n </Provider>\n </I18nProvider>\n </>\n);\n\nif (version >= 18) {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(container, <Main />);\n } else {\n window.rootInstance = SafeReactDOM.createRoot(container);\n window.rootInstance.render(<Main />);\n }\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n} else {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n const render = module.hot ? SafeReactDOM.render : SafeReactDOM.hydrate;\n\n render(<Main />, container);\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n}\n"],"names":["React","App","I18nProvider","Provider","rootStore","isFunction","Global","normalizeCss","rootVariables","globalStyles","rootStyle","appEntry","APPENTRY","require","SafeReactDOM","ReactDOMPath","version","parseFloat","container","document","getElementById","Main","styles","store","bootstrap","programInfo","renderMode","window","rootInstance","hydrateRoot","createRoot","render","mount","module","hot","hydrate"],"mappings":"AAAA,MAAO,wBAAyB,AAChC,QAAOA,UAAW,OAAQ,AAC1B,QAAOC,QAAS,OAAQ,AACxB,QAASC,YAAY,KAAQ,YAAa,AAC1C,QAASC,QAAQ,CAAEC,SAAS,KAAQ,UAAW,AAC/C,QAASC,UAAU,KAAQ,gBAAiB,AAC5C,QAASC,MAAM,KAAQ,gBAAiB,AACxC,QAAOC,iBAAkB,wBAAyB,AAClD,QAASC,aAAa,CAAEC,YAAY,CAAEC,SAAS,KAAQ,mBAAoB,CAE3E,IAAMC,SAAmCC,SAAWC,QAAQD,UAAY,IAAI,CAE5E,IAAME,aAAeD,QAAQE,cAE7B,IAAMC,QAAUC,WAAWjB,MAAMgB,OAAO,EACxC,IAAME,UAAYC,SAASC,cAAc,CAAC,QAE1C,IAAMC,KAAO,kBACX,wCACE,oBAACf,QAAOgB,OAAQd,gBAChB,oBAACF,QAAOgB,OAAQf,eAChB,oBAACD,QAAOgB,OAAQb,eAChB,oBAACH,QAAOgB,OAAQZ,YAChB,oBAACR,kBACC,oBAACC,UAASoB,MAAOnB,WACf,oBAACH,cAMT,GAAIe,SAAW,GAAI,CACjB,GAAIX,WAAWM,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUa,SAAS,EAAG,CACnCb,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUa,SAAS,EACrB,CAAC,AACD,GAAIC,YAAYC,UAAU,GAAK,MAAO,CACpCC,OAAOC,YAAY,CAAGd,aAAae,WAAW,CAACX,UAAW,oBAACG,WAC7D,KAAO,CACLM,OAAOC,YAAY,CAAGd,aAAagB,UAAU,CAACZ,WAC9CS,OAAOC,YAAY,CAACG,MAAM,CAAC,oBAACV,WAC9B,CAAC,AACD,GAAIhB,WAAWM,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUqB,KAAK,EAAG,CAC/BrB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUqB,KAAK,EACjB,CAAC,AACH,KAAO,CACL,GAAI3B,WAAWM,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUa,SAAS,EAAG,CACnCb,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUa,SAAS,EACrB,CAAC,AACD,IAAMO,OAASE,OAAOC,GAAG,CAAGpB,aAAaiB,MAAM,CAAGjB,aAAaqB,OAAO,CAEtEJ,OAAO,oBAACV,WAASH,WACjB,GAAIb,WAAWM,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUqB,KAAK,EAAG,CAC/BrB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUqB,KAAK,EACjB,CAAC,AACH,CAAC"}
1
+ {"version":3,"sources":["../../../src/packages/back-stage/bootstrap.tsx"],"sourcesContent":["import React from 'react';\nimport { isFunction } from '@moneko/common';\nimport App from './app';\n\nconst appEntry: AppEntryMethods | null = APPENTRY ? require(APPENTRY) : null;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst SafeReactDOM = require(ReactDOMPath);\nconst version = parseFloat(React.version);\nconst container = document.getElementById('root') as HTMLElement;\n\nif (version >= 18) {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(container, <App />);\n } else {\n window.rootInstance = SafeReactDOM.createRoot(container);\n window.rootInstance.render(<App />);\n }\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n} else {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n const render = module.hot ? SafeReactDOM.render : SafeReactDOM.hydrate;\n\n render(<App />, container);\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n}\n"],"names":["React","isFunction","App","appEntry","APPENTRY","require","SafeReactDOM","ReactDOMPath","version","parseFloat","container","document","getElementById","bootstrap","programInfo","renderMode","window","rootInstance","hydrateRoot","createRoot","render","mount","module","hot","hydrate"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,gBAAiB,AAC5C,QAAOC,QAAS,OAAQ,CAExB,IAAMC,SAAmCC,SAAWC,QAAQD,UAAY,IAAI,CAE5E,IAAME,aAAeD,QAAQE,cAC7B,IAAMC,QAAUC,WAAWT,MAAMQ,OAAO,EACxC,IAAME,UAAYC,SAASC,cAAc,CAAC,QAE1C,GAAIJ,SAAW,GAAI,CACjB,GAAIP,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EAAG,CACnCV,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EACrB,CAAC,AACD,GAAIC,YAAYC,UAAU,GAAK,MAAO,CACpCC,OAAOC,YAAY,CAAGX,aAAaY,WAAW,CAACR,UAAW,oBAACR,UAC7D,KAAO,CACLc,OAAOC,YAAY,CAAGX,aAAaa,UAAU,CAACT,WAC9CM,OAAOC,YAAY,CAACG,MAAM,CAAC,oBAAClB,UAC9B,CAAC,AACD,GAAID,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EAAG,CAC/BlB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EACjB,CAAC,AACH,KAAO,CACL,GAAIpB,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EAAG,CACnCV,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EACrB,CAAC,AACD,IAAMO,OAASE,OAAOC,GAAG,CAAGjB,aAAac,MAAM,CAAGd,aAAakB,OAAO,CAEtEJ,OAAO,oBAAClB,UAAQQ,WAChB,GAAIT,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EAAG,CAC/BlB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EACjB,CAAC,AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import '../../utils/env';
2
1
  import '../../utils/refresh-rem';
2
+ import '../../styles/normalize.css';
3
3
  declare const bootstrap: typeof import("./bootstrap");
4
4
  export default bootstrap;
@@ -1,2 +1,2 @@
1
- import"../../utils/env";import"../../utils/refresh-rem";var bootstrap=await import("./bootstrap");export default bootstrap;
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/env';\nimport '../../utils/refresh-rem';\n\nconst bootstrap = await import('./bootstrap');\n\nexport default bootstrap;\n"],"names":["bootstrap"],"mappings":"AAAA,MAAO,iBAAkB,AACzB,OAAO,yBAA0B,CAEjC,IAAMA,UAAY,MAAM,MAAM,CAAC,cAE/B,gBAAeA,SAAU"}
1
+ {"version":3,"sources":["../../../src/packages/back-stage/index.ts"],"sourcesContent":["import '../../utils/refresh-rem';\nimport '../../styles/normalize.css';\n\nconst bootstrap = await import('./bootstrap');\n\nexport default bootstrap;\n"],"names":["bootstrap"],"mappings":"AAAA,MAAO,yBAA0B,AACjC,OAAO,4BAA6B,CAEpC,IAAMA,UAAY,MAAM,MAAM,CAAC,cAE/B,gBAAeA,SAAU"}
@@ -0,0 +1,5 @@
1
+ import { type ReactNode, type FC } from 'react';
2
+ declare const DashboardLayout: FC<{
3
+ children?: ReactNode;
4
+ }>;
5
+ export default DashboardLayout;
@@ -0,0 +1,2 @@
1
+ function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _taggedTemplateLiteral(strings,raw){if(!raw){raw=strings.slice(0)}return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _templateObject(){var data=_taggedTemplateLiteral(["\n .",", ."," {\n z-index: 2;\n }\n ."," {\n position: sticky;\n top: 64px;\n overflow: initial !important;\n margin: 16px 16px 0 !important;\n\n > .","-tabs-nav {\n .","-tabs-tab {\n border-color: var(--border-color, rgb(5 5 5 / 6%)) !important;\n border-bottom-color: var(--border-color, rgb(5 5 5 / 6%)) !important;\n border-radius: var(--border-radius) !important;\n backdrop-filter: blur(16px);\n background-color: rgba(255, 255, 255, 0.8);\n &.","-tabs-tab-active {\n background-color: rgba(255, 255, 255, 0.9);\n }\n }\n\n &::before {\n content: none;\n }\n }\n }\n ."," {\n width: 100% !important;\n min-height: 100vh !important;\n }\n .",", ."," {\n overflow-y: auto;\n max-height: 100vh;\n }\n ."," {\n overflow-y: auto;\n }\n ."," {\n overflow-y: auto;\n }\n ."," {\n display: flex;\n margin: 0 16px;\n flex-direction: column;\n z-index: 1;\n }\n ."," {\n border-radius: var(--border-radius);\n padding: 24px;\n background: var(--component-card-bg, #fff);\n box-shadow: var(--box-shadow-lite);\n flex: 1;\n transition-property: background-color, box-shadow;\n }\n .",", .",", ."," > svg {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n ."," {\n position: sticky;\n top: 0;\n z-index: 1;\n display: flex;\n gap: 10px;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n padding: 14px;\n height: 68px;\n text-align: center;\n color: #de4553;\n transition-property: background-color, border-color;\n cursor: pointer;\n user-select: none;\n\n > svg,\n &::before {\n transition-property: opacity;\n }\n\n > svg {\n height: 32px;\n opacity: 0;\n }\n\n &::before {\n display: block;\n width: 22px;\n height: 32px;\n background: url(",") no-repeat center center / contain;\n opacity: 1;\n content: '';\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n }\n"]);_templateObject=function _templateObject(){return data};return data}import React,{useCallback,useEffect,useMemo,useState}from"react";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{css,injectGlobal}from"@emotion/css";import{Tabs,Layout,Dropdown}from"antd";import{useAliveController}from"react-activation";import{useSearchParams,useOutlet,useNavigate}from"react-router-dom";import FallbackComp from"../../components/fallback-comp";import LayoutMenu from"../../components/layout-menu";import{localizable}from"../../localizable";import{menu}from"../../menu";var prefixCls=providerConfig.prefixCls;var c=function(s){return"".concat(prefixCls,"-dashboard-").concat(s)};var cls={tabs:c("tabs"),layout:c("layout"),sider:c("sider"),header:c("header"),logo:c("logo"),section:c("section"),content:c("content"),view:c("view")};var layoutCss=css(_templateObject(),cls.header,cls.tabs,cls.tabs,prefixCls,prefixCls,prefixCls,cls.layout,cls.sider,cls.section,cls.section,cls.sider,cls.content,cls.view,cls.view,cls.logo,cls.logo,cls.logo,require(favicon));injectGlobal([layoutCss]);var closeTabs=[{label:"关闭左侧标签",icon:React.createElement(DeleteRowOutlined,{style:{transform:"scaleX(-1)"}}),key:"left"},{label:"关闭右侧标签",icon:React.createElement(DeleteRowOutlined,null),key:"right"},{label:"关闭其他标签",icon:React.createElement(CloseOutlined,null),key:"other"},{label:"刷新标签页",icon:React.createElement(ReloadOutlined,null),key:"refresh"}];var DashboardLayout=function(param){var children=param.children;var activeKey=menu.activeKey,tabs=menu.tabs,openTab=menu.openTab,closeTab=menu.closeTab,kv=menu.kv;var t=localizable.t;var outlet=useOutlet();var navigate=useNavigate();var dropScope=useAliveController().dropScope;var _useSearchParams=_slicedToArray(useSearchParams(),1),search=_useSearchParams[0];var _useState=_slicedToArray(useState(false),2),collapsed=_useState[0],setCollapsed=_useState[1];var handleCollapsed=useCallback(function(value){if(value){var _timer=window.setTimeout(function(){setCollapsed(value);window.clearTimeout(_timer);_timer=null},0)}else{setCollapsed(value);var _timer1=window.setTimeout(function(){window.clearTimeout(_timer1);_timer1=null},30)}},[]);var closedTab=useCallback(function(tabKey,type){if(type==="refresh"){navigate("/refresh");return}if(tabKey){closeTab(tabKey,type,function(closes,next){closes===null||closes===void 0?void 0:closes.forEach(function(item){if(item.path&&dropScope){dropScope(item.path)}});if(next){navigate("".concat(next.path,"?menuId=").concat(next.key))}})}},[closeTab,dropScope,navigate]);var _useMemo=useMemo(function(){return{menuId:search.get("menuId"),dynamicLabel:search.get("dynamicTitle")||""}},[search]),menuId=_useMemo.menuId,dynamicLabel=_useMemo.dynamicLabel;useEffect(function(){if(menuId){openTab({key:menuId,dynamicTitle:dynamicLabel})}},[dynamicLabel,menuId,openTab]);var getItems=useCallback(function(key){return key===activeKey?closeTabs:closeTabs.filter(function(i){return(i===null||i===void 0?void 0:i.key)!=="refresh"})},[activeKey]);var handleTabEdit=useCallback(function(targetKey,action){if(action==="remove"&&typeof targetKey==="string"){closedTab(targetKey)}},[closedTab]);var handleClick=useCallback(function(key){navigate("".concat(kv[key].key,"?menuId=").concat(kv[key].key))},[kv,navigate]);var tabPanel=useMemo(function(){return tabs.map(function(param){var key=param.key,icon=param.icon,label=param.label,dynamicTitle=param.dynamicTitle,closable=param.closable;return{key:key,label:React.createElement(Dropdown,{menu:{items:getItems(key),onClick:function(info){info.domEvent.stopPropagation();closedTab(key,info.key)}},trigger:["contextMenu"],destroyPopupOnHide:true},React.createElement("div",null,icon,t[label||"route-".concat(key)]+(dynamicTitle||""))),closable:closable}})},[closedTab,getItems,t,tabs]);return React.createElement(Layout,{className:cls.layout},layoutSider?React.createElement(Layout.Sider,_extends({className:cls.sider,trigger:null,collapsible:true,collapsed:collapsed,onBreakpoint:function(broken){return handleCollapsed(broken)},onCollapse:function(_collapsed){return handleCollapsed(_collapsed)},theme:"light",breakpoint:"md"},layoutSider),React.createElement("div",{className:cls.logo,"data-title":projectName},React.createElement(FallbackComp,{compName:"logo",show:!collapsed})),React.createElement(LayoutMenu,{collapsed:collapsed,theme:layoutSider.theme})):null,React.createElement(Layout,{className:cls.section},React.createElement(FallbackComp,{compName:"layout-header",className:cls.header,collapsed:collapsed,onCollapsed:function(){return handleCollapsed(!collapsed)}}),React.createElement(Tabs,{className:cls.tabs,hideAdd:true,onTabClick:handleClick,activeKey:activeKey,type:"editable-card",onEdit:handleTabEdit,items:tabPanel,animated:true}),React.createElement(Layout.Content,{className:cls.content},React.createElement("div",{className:cls.view},children||outlet),React.createElement(FallbackComp,{compName:"layout-footer"}))))};export default DashboardLayout;
2
+ //# sourceMappingURL=layout.js.map
@@ -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 { localizable } from '../../localizable';\nimport { menu, type CloseTab, type TabItem } from '../../menu';\nimport type { MenuItemType } from 'antd/es/menu/hooks/useItems';\n\ndeclare const favicon: string;\n\nconst { prefixCls } = providerConfig;\nconst c = (s: string) => `${prefixCls}-dashboard-${s}`;\nconst cls = {\n tabs: c('tabs'),\n layout: c('layout'),\n sider: c('sider'),\n header: c('header'),\n logo: c('logo'),\n section: c('section'),\n content: c('content'),\n view: c('view'),\n};\nconst layoutCss = css`\n .${cls.header}, .${cls.tabs} {\n z-index: 2;\n }\n .${cls.tabs} {\n position: sticky;\n top: 64px;\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-bottom-color: var(--border-color, rgb(5 5 5 / 6%)) !important;\n border-radius: var(--border-radius) !important;\n backdrop-filter: blur(16px);\n background-color: rgba(255, 255, 255, 0.8);\n &.${prefixCls}-tabs-tab-active {\n background-color: rgba(255, 255, 255, 0.9);\n }\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 z-index: 1;\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(${require(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]);\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, label, 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[(label as string) || `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 className={cls.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","header","logo","section","content","view","layoutCss","require","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","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
- function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}import React from"react";import{BrowserRouter,HashRouter}from"react-router-dom";import{router}from"../../router";import AppRouter from"../../components/app-router";import{Global}from"@emotion/react";import normalizeCss from"../../styles/normalize";import{rootVariables,globalStyles,rootStyle}from"../../styles/vars";var Router;switch(programInfo.routerMode){case"hash":Router=HashRouter;break;case"browser":default:Router=BrowserRouter;break}var I18n=hasLocales?require("i18n-hooks").I18nProvider:React.Fragment;var IDCProvider=React.Fragment,idcProps={};if(hasModels){var idc=require("mini-idc");idcProps={store:idc.rootStore};IDCProvider=idc.Provider}var App=function(){var props={basename:programInfo.routeBaseName};if(programInfo.routerMode!=="browser"){props={}}return React.createElement(React.Fragment,null,React.createElement(Global,{styles:rootVariables}),React.createElement(Global,{styles:normalizeCss}),React.createElement(Global,{styles:globalStyles}),React.createElement(Global,{styles:rootStyle}),React.createElement(I18n,null,React.createElement(IDCProvider,_extends({},idcProps),React.createElement(Router,_extends({},props),React.createElement(AppRouter,{router:router})))))};export default App;
1
+ import React from"react";import{RouterProvider}from"react-router-dom";import{RouterFragment,routerData,createRouter}from"../../components/app-router";import Fallback from"../../components/fallback";var App=function(){return React.createElement(RouterFragment,null,React.createElement(RouterProvider,{router:createRouter(routerData,{basename:programInfo.routeBaseName}),fallbackElement:React.createElement(Fallback,null)}))};export default App;
2
2
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/packages/library/app.tsx"],"sourcesContent":["import React from 'react';\nimport { BrowserRouter, HashRouter } from 'react-router-dom';\nimport { router } from '../../router';\nimport AppRouter from '../../components/app-router';\nimport { Global } from '@emotion/react';\nimport normalizeCss from '../../styles/normalize';\nimport { rootVariables, globalStyles, rootStyle } from '../../styles/vars';\n\nlet Router: typeof HashRouter | typeof BrowserRouter;\n\nswitch (programInfo.routerMode) {\n case 'hash':\n Router = HashRouter;\n break;\n case 'browser':\n default:\n Router = BrowserRouter;\n break;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst I18n = hasLocales ? require('i18n-hooks').I18nProvider : React.Fragment;\nlet IDCProvider: typeof React.Fragment = React.Fragment,\n idcProps = {};\n\nif (hasModels) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const idc = require('mini-idc');\n\n idcProps = { store: idc.rootStore };\n IDCProvider = idc.Provider;\n}\nconst App: React.FC = () => {\n let props: Record<string, string> = {\n basename: programInfo.routeBaseName,\n };\n\n if (programInfo.routerMode !== 'browser') {\n props = {};\n }\n return (\n <>\n <Global styles={rootVariables} />\n <Global styles={normalizeCss} />\n <Global styles={globalStyles} />\n <Global styles={rootStyle} />\n <I18n>\n <IDCProvider {...idcProps}>\n <Router {...props}>\n <AppRouter router={router} />\n </Router>\n </IDCProvider>\n </I18n>\n </>\n );\n};\n\nexport default App;\n"],"names":["React","BrowserRouter","HashRouter","router","AppRouter","Global","normalizeCss","rootVariables","globalStyles","rootStyle","Router","programInfo","routerMode","I18n","hasLocales","require","I18nProvider","Fragment","IDCProvider","idcProps","hasModels","idc","store","rootStore","Provider","App","props","basename","routeBaseName","styles"],"mappings":"AAAA,oRAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,aAAa,CAAEC,UAAU,KAAQ,kBAAmB,AAC7D,QAASC,MAAM,KAAQ,cAAe,AACtC,QAAOC,cAAe,6BAA8B,AACpD,QAASC,MAAM,KAAQ,gBAAiB,AACxC,QAAOC,iBAAkB,wBAAyB,AAClD,QAASC,aAAa,CAAEC,YAAY,CAAEC,SAAS,KAAQ,mBAAoB,CAE3E,IAAIC,OAEJ,OAAQC,YAAYC,UAAU,EAC5B,IAAK,OACHF,OAASR,WACT,KAAM,AACR,KAAK,UACL,QACEQ,OAAST,cACT,KAAM,AACV,CAGA,IAAMY,KAAOC,WAAaC,QAAQ,cAAcC,YAAY,CAAGhB,MAAMiB,QAAQ,CAC7E,IAAIC,YAAqClB,MAAMiB,QAAQ,CACrDE,SAAW,CAAC,EAEd,GAAIC,UAAW,CAEb,IAAMC,IAAMN,QAAQ,YAEpBI,SAAW,CAAEG,MAAOD,IAAIE,SAAS,AAAC,EAClCL,YAAcG,IAAIG,QAAQ,AAC5B,CAAC,AACD,IAAMC,IAAgB,UAAM,CAC1B,IAAIC,MAAgC,CAClCC,SAAUhB,YAAYiB,aAAa,AACrC,EAEA,GAAIjB,YAAYC,UAAU,GAAK,UAAW,CACxCc,MAAQ,CAAC,CACX,CAAC,AACD,OACE,wCACE,oBAACrB,QAAOwB,OAAQtB,gBAChB,oBAACF,QAAOwB,OAAQvB,eAChB,oBAACD,QAAOwB,OAAQrB,eAChB,oBAACH,QAAOwB,OAAQpB,YAChB,oBAACI,UACC,oBAACK,wBAAgBC,UACf,oBAACT,mBAAWgB,OACV,oBAACtB,WAAUD,OAAQA,YAM/B,CAEA,gBAAesB,GAAI"}
1
+ {"version":3,"sources":["../../../src/packages/library/app.tsx"],"sourcesContent":["import React from 'react';\nimport { RouterProvider } from 'react-router-dom';\nimport { RouterFragment, routerData, createRouter } from '../../components/app-router';\nimport Fallback from '../../components/fallback';\n\nconst App: React.FC = () => {\n return (\n <RouterFragment>\n <RouterProvider\n router={createRouter(routerData, {\n basename: programInfo.routeBaseName,\n })}\n fallbackElement={<Fallback />}\n />\n </RouterFragment>\n );\n};\n\nexport default App;\n"],"names":["React","RouterProvider","RouterFragment","routerData","createRouter","Fallback","App","router","basename","programInfo","routeBaseName","fallbackElement"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,cAAc,KAAQ,kBAAmB,AAClD,QAASC,cAAc,CAAEC,UAAU,CAAEC,YAAY,KAAQ,6BAA8B,AACvF,QAAOC,aAAc,2BAA4B,CAEjD,IAAMC,IAAgB,UAAM,CAC1B,OACE,oBAACJ,oBACC,oBAACD,gBACCM,OAAQH,aAAaD,WAAY,CAC/BK,SAAUC,YAAYC,aAAa,AACrC,GACAC,gBAAiB,oBAACN,iBAI1B,CAEA,gBAAeC,GAAI"}
@@ -1 +1 @@
1
- import '../../utils/fontloader';
1
+ export {};
@@ -1,2 +1,2 @@
1
- import"../../utils/fontloader";import React from"react";import{isFunction}from"@moneko/common";import App from"./app";var appEntry=APPENTRY?require(APPENTRY):null;var SafeReactDOM=require(ReactDOMPath);var version=parseFloat(React.version);var container=document.getElementById("root");if(version>=18){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}if(programInfo.renderMode==="ssr"){window.rootInstance=SafeReactDOM.hydrateRoot(container,React.createElement(App,null))}else{window.rootInstance=SafeReactDOM.createRoot(container);window.rootInstance.render(React.createElement(App,null))}if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}else{if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}var render=module.hot?SafeReactDOM.render:SafeReactDOM.hydrate;render(React.createElement(App,null),container);if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}
1
+ import React from"react";import{isFunction}from"@moneko/common";import App from"./app";var appEntry=APPENTRY?require(APPENTRY):null;var SafeReactDOM=require(ReactDOMPath);var version=parseFloat(React.version);var container=document.getElementById("root");if(version>=18){if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}if(programInfo.renderMode==="ssr"){window.rootInstance=SafeReactDOM.hydrateRoot(container,React.createElement(App,null))}else{window.rootInstance=SafeReactDOM.createRoot(container);window.rootInstance.render(React.createElement(App,null))}if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}else{if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap)){appEntry===null||appEntry===void 0?void 0:appEntry.bootstrap()}var render=module.hot?SafeReactDOM.render:SafeReactDOM.hydrate;render(React.createElement(App,null),container);if(isFunction(appEntry===null||appEntry===void 0?void 0:appEntry.mount)){appEntry===null||appEntry===void 0?void 0:appEntry.mount()}}
2
2
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/packages/library/bootstrap.tsx"],"sourcesContent":["import '../../utils/fontloader';\nimport React from 'react';\nimport { isFunction } from '@moneko/common';\nimport App from './app';\n\nconst appEntry: AppEntryMethods | null = APPENTRY ? require(APPENTRY) : null;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst SafeReactDOM = require(ReactDOMPath);\n\nconst version = parseFloat(React.version);\nconst container = document.getElementById('root') as HTMLElement;\n\nif (version >= 18) {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(container, <App />);\n } else {\n window.rootInstance = SafeReactDOM.createRoot(container);\n window.rootInstance.render(<App />);\n }\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n} else {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n const render = module.hot ? SafeReactDOM.render : SafeReactDOM.hydrate;\n\n render(<App />, container);\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n}\n"],"names":["React","isFunction","App","appEntry","APPENTRY","require","SafeReactDOM","ReactDOMPath","version","parseFloat","container","document","getElementById","bootstrap","programInfo","renderMode","window","rootInstance","hydrateRoot","createRoot","render","mount","module","hot","hydrate"],"mappings":"AAAA,MAAO,wBAAyB,AAChC,QAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,gBAAiB,AAC5C,QAAOC,QAAS,OAAQ,CAExB,IAAMC,SAAmCC,SAAWC,QAAQD,UAAY,IAAI,CAE5E,IAAME,aAAeD,QAAQE,cAE7B,IAAMC,QAAUC,WAAWT,MAAMQ,OAAO,EACxC,IAAME,UAAYC,SAASC,cAAc,CAAC,QAE1C,GAAIJ,SAAW,GAAI,CACjB,GAAIP,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EAAG,CACnCV,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EACrB,CAAC,AACD,GAAIC,YAAYC,UAAU,GAAK,MAAO,CACpCC,OAAOC,YAAY,CAAGX,aAAaY,WAAW,CAACR,UAAW,oBAACR,UAC7D,KAAO,CACLc,OAAOC,YAAY,CAAGX,aAAaa,UAAU,CAACT,WAC9CM,OAAOC,YAAY,CAACG,MAAM,CAAC,oBAAClB,UAC9B,CAAC,AACD,GAAID,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EAAG,CAC/BlB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EACjB,CAAC,AACH,KAAO,CACL,GAAIpB,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EAAG,CACnCV,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EACrB,CAAC,AACD,IAAMO,OAASE,OAAOC,GAAG,CAAGjB,aAAac,MAAM,CAAGd,aAAakB,OAAO,CAEtEJ,OAAO,oBAAClB,UAAQQ,WAChB,GAAIT,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EAAG,CAC/BlB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EACjB,CAAC,AACH,CAAC"}
1
+ {"version":3,"sources":["../../../src/packages/library/bootstrap.tsx"],"sourcesContent":["import React from 'react';\nimport { isFunction } from '@moneko/common';\nimport App from './app';\n\nconst appEntry: AppEntryMethods | null = APPENTRY ? require(APPENTRY) : null;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst SafeReactDOM = require(ReactDOMPath);\n\nconst version = parseFloat(React.version);\nconst container = document.getElementById('root') as HTMLElement;\n\nif (version >= 18) {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n if (programInfo.renderMode === 'ssr') {\n window.rootInstance = SafeReactDOM.hydrateRoot(container, <App />);\n } else {\n window.rootInstance = SafeReactDOM.createRoot(container);\n window.rootInstance.render(<App />);\n }\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n} else {\n if (isFunction(appEntry?.bootstrap)) {\n appEntry?.bootstrap();\n }\n const render = module.hot ? SafeReactDOM.render : SafeReactDOM.hydrate;\n\n render(<App />, container);\n if (isFunction(appEntry?.mount)) {\n appEntry?.mount();\n }\n}\n"],"names":["React","isFunction","App","appEntry","APPENTRY","require","SafeReactDOM","ReactDOMPath","version","parseFloat","container","document","getElementById","bootstrap","programInfo","renderMode","window","rootInstance","hydrateRoot","createRoot","render","mount","module","hot","hydrate"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,gBAAiB,AAC5C,QAAOC,QAAS,OAAQ,CAExB,IAAMC,SAAmCC,SAAWC,QAAQD,UAAY,IAAI,CAE5E,IAAME,aAAeD,QAAQE,cAE7B,IAAMC,QAAUC,WAAWT,MAAMQ,OAAO,EACxC,IAAME,UAAYC,SAASC,cAAc,CAAC,QAE1C,GAAIJ,SAAW,GAAI,CACjB,GAAIP,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EAAG,CACnCV,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EACrB,CAAC,AACD,GAAIC,YAAYC,UAAU,GAAK,MAAO,CACpCC,OAAOC,YAAY,CAAGX,aAAaY,WAAW,CAACR,UAAW,oBAACR,UAC7D,KAAO,CACLc,OAAOC,YAAY,CAAGX,aAAaa,UAAU,CAACT,WAC9CM,OAAOC,YAAY,CAACG,MAAM,CAAC,oBAAClB,UAC9B,CAAC,AACD,GAAID,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EAAG,CAC/BlB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EACjB,CAAC,AACH,KAAO,CACL,GAAIpB,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EAAG,CACnCV,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUU,SAAS,EACrB,CAAC,AACD,IAAMO,OAASE,OAAOC,GAAG,CAAGjB,aAAac,MAAM,CAAGd,aAAakB,OAAO,CAEtEJ,OAAO,oBAAClB,UAAQQ,WAChB,GAAIT,WAAWE,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EAAG,CAC/BlB,iBAAAA,kBAAAA,KAAAA,EAAAA,SAAUkB,KAAK,EACjB,CAAC,AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import '../../utils/env';
2
1
  import '../../utils/refresh-rem';
2
+ import '../../styles/normalize.css';
3
3
  declare const bootstrap: typeof import("./bootstrap");
4
4
  export default bootstrap;
@@ -1,2 +1,2 @@
1
- import"../../utils/env";import"../../utils/refresh-rem";var bootstrap=await import("./bootstrap");export default bootstrap;
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/env';\nimport '../../utils/refresh-rem';\n\nconst bootstrap = await import('./bootstrap');\n\nexport default bootstrap;\n"],"names":["bootstrap"],"mappings":"AAAA,MAAO,iBAAkB,AACzB,OAAO,yBAA0B,CAEjC,IAAMA,UAAY,MAAM,MAAM,CAAC,cAE/B,gBAAeA,SAAU"}
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"}